@solcre-org/core-ui 2.12.43 → 2.12.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/inc/components/area-code.css +174 -0
- package/assets/css/inc/components/data-entry.input.css +14 -1
- package/assets/css/inc/components/table.css +172 -83
- package/assets/css/main.css +1 -0
- package/assets/i18n/en/common.json +7 -0
- package/assets/i18n/es/common.json +7 -0
- package/assets/images/flags/001-paraguay.svg +1 -0
- package/assets/images/flags/002-senegal.svg +1 -0
- package/assets/images/flags/003-democratic republic of congo.svg +1 -0
- package/assets/images/flags/004-estonia.svg +1 -0
- package/assets/images/flags/005-georgia.svg +1 -0
- package/assets/images/flags/006-ghana.svg +1 -0
- package/assets/images/flags/007-jersey.svg +1 -0
- package/assets/images/flags/008-madagascar.svg +1 -0
- package/assets/images/flags/009-malawi.svg +1 -0
- package/assets/images/flags/010-mongolia.svg +1 -0
- package/assets/images/flags/011-china.svg +1 -0
- package/assets/images/flags/012-nepal.svg +1 -0
- package/assets/images/flags/013-samoa.svg +1 -0
- package/assets/images/flags/014-haiti.svg +1 -0
- package/assets/images/flags/015-isle of man.svg +1 -0
- package/assets/images/flags/016-ivory coast.svg +1 -0
- package/assets/images/flags/017-lesotho.svg +1 -0
- package/assets/images/flags/018-rwanda.svg +1 -0
- package/assets/images/flags/019-zimbabwe.svg +1 -0
- package/assets/images/flags/020-equatorial guinea.svg +1 -0
- package/assets/images/flags/021-republic of the congo.svg +1 -0
- package/assets/images/flags/022-brazil.svg +1 -0
- package/assets/images/flags/023-sri lanka.svg +1 -0
- package/assets/images/flags/024-swaziland.svg +1 -0
- package/assets/images/flags/025-tajikistan.svg +1 -0
- package/assets/images/flags/026-trinidad and tobago.svg +1 -0
- package/assets/images/flags/027-french polynesia.svg +1 -0
- package/assets/images/flags/028-madeira.svg +1 -0
- package/assets/images/flags/029-maldives.svg +1 -0
- package/assets/images/flags/030-moldova.svg +1 -0
- package/assets/images/flags/031-montenegro.svg +1 -0
- package/assets/images/flags/032-papua new guinea.svg +1 -0
- package/assets/images/flags/033-mexico.svg +1 -0
- package/assets/images/flags/034-tibet.svg +1 -0
- package/assets/images/flags/035-East Timor.svg +1 -0
- package/assets/images/flags/036-libya.svg +1 -0
- package/assets/images/flags/037-nato.svg +1 -0
- package/assets/images/flags/038-republic of macedonia.svg +1 -0
- package/assets/images/flags/039-sahrawi arab democratic republic.svg +1 -0
- package/assets/images/flags/040-sudan.svg +1 -0
- package/assets/images/flags/041-uzbekist/303/241n.svg +1 -0
- package/assets/images/flags/042-yemen.svg +1 -0
- package/assets/images/flags/043-liberia.svg +1 -0
- package/assets/images/flags/044-russia.svg +1 -0
- package/assets/images/flags/045-liechtenstein.svg +1 -0
- package/assets/images/flags/046-northern cyprus.svg +1 -0
- package/assets/images/flags/047-san marino.svg +1 -0
- package/assets/images/flags/048-st barts.svg +1 -0
- package/assets/images/flags/049-curacao.svg +1 -0
- package/assets/images/flags/050-djibouti.svg +1 -0
- package/assets/images/flags/051-eritrea.svg +1 -0
- package/assets/images/flags/052-guinea bissau.svg +1 -0
- package/assets/images/flags/053-kyrgyzstan.svg +1 -0
- package/assets/images/flags/054-mali.svg +1 -0
- package/assets/images/flags/055-india.svg +1 -0
- package/assets/images/flags/056-marshall island.svg +1 -0
- package/assets/images/flags/057-micronesia.svg +1 -0
- package/assets/images/flags/058-niger.svg +1 -0
- package/assets/images/flags/059-norfolk island.svg +1 -0
- package/assets/images/flags/060-sao tome and prince.svg +1 -0
- package/assets/images/flags/061-sardinia.svg +1 -0
- package/assets/images/flags/062-bhutan.svg +1 -0
- package/assets/images/flags/063-somalia.svg +1 -0
- package/assets/images/flags/064-suriname.svg +1 -0
- package/assets/images/flags/065-azores islands.svg +1 -0
- package/assets/images/flags/066-canada.svg +1 -0
- package/assets/images/flags/067-bahamas.svg +1 -0
- package/assets/images/flags/068-togo.svg +1 -0
- package/assets/images/flags/069-turkmenistan.svg +1 -0
- package/assets/images/flags/070-tuvalu.svg +1 -0
- package/assets/images/flags/071-vatican city.svg +1 -0
- package/assets/images/flags/072-austria.svg +1 -0
- package/assets/images/flags/073-virgin islands.svg +1 -0
- package/assets/images/flags/074-falkland islands.svg +1 -0
- package/assets/images/flags/075-gabon.svg +1 -0
- package/assets/images/flags/076-gibraltar.svg +1 -0
- package/assets/images/flags/077-netherlands.svg +1 -0
- package/assets/images/flags/078-greenland.svg +1 -0
- package/assets/images/flags/079-grenada.svg +1 -0
- package/assets/images/flags/080-guam.svg +1 -0
- package/assets/images/flags/081-guernsey.svg +1 -0
- package/assets/images/flags/082-guyana.svg +1 -0
- package/assets/images/flags/083-kiribati.svg +1 -0
- package/assets/images/flags/084-kuwait.svg +1 -0
- package/assets/images/flags/085-mauritania.svg +1 -0
- package/assets/images/flags/086-melilla.svg +1 -0
- package/assets/images/flags/087-montserrat.svg +1 -0
- package/assets/images/flags/088-thailand.svg +1 -0
- package/assets/images/flags/089-nauru.svg +1 -0
- package/assets/images/flags/090-northern marianas islands.svg +1 -0
- package/assets/images/flags/091-ossetia.svg +1 -0
- package/assets/images/flags/092-palestine.svg +1 -0
- package/assets/images/flags/093-pitcairn islands.svg +1 -0
- package/assets/images/flags/094-saba island.svg +1 -0
- package/assets/images/flags/095-saint kitts and nevis.svg +1 -0
- package/assets/images/flags/096-sint eustatius.svg +1 -0
- package/assets/images/flags/097-sint maarten.svg +1 -0
- package/assets/images/flags/098-portugal.svg +1 -0
- package/assets/images/flags/099-solomon islands.svg +1 -0
- package/assets/images/flags/100-somaliland.svg +1 -0
- package/assets/images/flags/101-south sudan.svg +1 -0
- package/assets/images/flags/102-st vincent and the grenadines.svg +1 -0
- package/assets/images/flags/103-gambia.svg +1 -0
- package/assets/images/flags/104-tokelau.svg +1 -0
- package/assets/images/flags/105-transnistria.svg +1 -0
- package/assets/images/flags/106-turks and caicos.svg +1 -0
- package/assets/images/flags/107-orkney islands.svg +1 -0
- package/assets/images/flags/108-guinea.svg +1 -0
- package/assets/images/flags/109-vietnam.svg +1 -0
- package/assets/images/flags/110-united kingdom.svg +1 -0
- package/assets/images/flags/111-kosovo.svg +1 -0
- package/assets/images/flags/112-seychelles.svg +1 -0
- package/assets/images/flags/113-sierra leone.svg +1 -0
- package/assets/images/flags/114-vanuatu.svg +1 -0
- package/assets/images/flags/115-dominica.svg +1 -0
- package/assets/images/flags/116-faroe islands.svg +1 -0
- package/assets/images/flags/117-fiji.svg +1 -0
- package/assets/images/flags/118-macao.svg +1 -0
- package/assets/images/flags/119-niue.svg +1 -0
- package/assets/images/flags/120-palau.svg +1 -0
- package/assets/images/flags/121-england.svg +1 -0
- package/assets/images/flags/122-Rapa Nui.svg +1 -0
- package/assets/images/flags/123-st lucia.svg +1 -0
- package/assets/images/flags/124-tonga.svg +1 -0
- package/assets/images/flags/125-martinique.svg +1 -0
- package/assets/images/flags/126-galapagos islands.svg +1 -0
- package/assets/images/flags/127-bulgaria.svg +1 -0
- package/assets/images/flags/128-croatia.svg +1 -0
- package/assets/images/flags/129-bolivia.svg +1 -0
- package/assets/images/flags/130-cambodia.svg +1 -0
- package/assets/images/flags/131-costa rica.svg +1 -0
- package/assets/images/flags/132-singapore.svg +1 -0
- package/assets/images/flags/133-cuba.svg +1 -0
- package/assets/images/flags/134-bangladesh.svg +1 -0
- package/assets/images/flags/135-botswana.svg +1 -0
- package/assets/images/flags/136-Algeria.svg +1 -0
- package/assets/images/flags/137-azerbaijan.svg +1 -0
- package/assets/images/flags/138-angola.svg +1 -0
- package/assets/images/flags/139-british columbia.svg +1 -0
- package/assets/images/flags/140-afghanistan.svg +1 -0
- package/assets/images/flags/141-armenia.svg +1 -0
- package/assets/images/flags/142-basque country.svg +1 -0
- package/assets/images/flags/143-australia.svg +1 -0
- package/assets/images/flags/144-burkina faso.svg +1 -0
- package/assets/images/flags/145-albania.svg +1 -0
- package/assets/images/flags/146-bahrain.svg +1 -0
- package/assets/images/flags/147-belize.svg +1 -0
- package/assets/images/flags/148-bermuda.svg +1 -0
- package/assets/images/flags/149-bosnia and herzegovina.svg +1 -0
- package/assets/images/flags/150-british virgin islands.svg +1 -0
- package/assets/images/flags/151-barbados.svg +1 -0
- package/assets/images/flags/152-belarus.svg +1 -0
- package/assets/images/flags/153-bonaire.svg +1 -0
- package/assets/images/flags/154-turkey.svg +1 -0
- package/assets/images/flags/155-brunei.svg +1 -0
- package/assets/images/flags/156-cameroon.svg +1 -0
- package/assets/images/flags/157-aland islands.svg +1 -0
- package/assets/images/flags/158-antigua and barbuda.svg +1 -0
- package/assets/images/flags/159-burundi.svg +1 -0
- package/assets/images/flags/160-andorra.svg +1 -0
- package/assets/images/flags/161-balearic islands.svg +1 -0
- package/assets/images/flags/162-abkhazia.svg +1 -0
- package/assets/images/flags/163-aruba.svg +1 -0
- package/assets/images/flags/164-benin.svg +1 -0
- package/assets/images/flags/165-poland.svg +1 -0
- package/assets/images/flags/166-cape verde.svg +1 -0
- package/assets/images/flags/167-chad.svg +1 -0
- package/assets/images/flags/168-bhutan.svg +1 -0
- package/assets/images/flags/169-british indian ocean territory.svg +1 -0
- package/assets/images/flags/170-cayman islands.svg +1 -0
- package/assets/images/flags/171-central african republic.svg +1 -0
- package/assets/images/flags/172-comoros.svg +1 -0
- package/assets/images/flags/173-canary islands.svg +1 -0
- package/assets/images/flags/174-corsica.svg +1 -0
- package/assets/images/flags/175-anguilla.svg +1 -0
- package/assets/images/flags/176-switzerland.svg +1 -0
- package/assets/images/flags/177-american samoa.svg +1 -0
- package/assets/images/flags/178-ceuta.svg +1 -0
- package/assets/images/flags/179-christmas island.svg +1 -0
- package/assets/images/flags/180-cocos island.svg +1 -0
- package/assets/images/flags/181-cook islands.svg +1 -0
- package/assets/images/flags/182-morocco.svg +10 -0
- package/assets/images/flags/183-taiwan.svg +1 -0
- package/assets/images/flags/184-egypt.svg +1 -0
- package/assets/images/flags/185-indonesia.svg +1 -0
- package/assets/images/flags/186-united states.svg +1 -0
- package/assets/images/flags/187-philippines.svg +1 -0
- package/assets/images/flags/188-south africa.svg +1 -0
- package/assets/images/flags/189-peru.svg +1 -0
- package/assets/images/flags/190-sweden.svg +1 -0
- package/assets/images/flags/191-denmark.svg +1 -0
- package/assets/images/flags/192-greece.svg +1 -0
- package/assets/images/flags/193-ireland.svg +1 -0
- package/assets/images/flags/194-laos.svg +1 -0
- package/assets/images/flags/195-united arab emirates.svg +1 -0
- package/assets/images/flags/196-hong kong.svg +1 -0
- package/assets/images/flags/197-france.svg +1 -0
- package/assets/images/flags/198-ukraine.svg +1 -0
- package/assets/images/flags/199-argentina.svg +1 -0
- package/assets/images/flags/200-iran.svg +1 -0
- package/assets/images/flags/201-colombia.svg +1 -0
- package/assets/images/flags/202-czech republic.svg +1 -0
- package/assets/images/flags/203-israel.svg +1 -0
- package/assets/images/flags/204-saudi arabia.svg +1 -0
- package/assets/images/flags/205-norway.svg +1 -0
- package/assets/images/flags/206-venezuela.svg +1 -0
- package/assets/images/flags/207-malaysia.svg +1 -0
- package/assets/images/flags/208-germany.svg +1 -0
- package/assets/images/flags/209-belgium.svg +1 -0
- package/assets/images/flags/210-hungary.svg +1 -0
- package/assets/images/flags/211-finland.svg +1 -0
- package/assets/images/flags/212-chile.svg +1 -0
- package/assets/images/flags/213-romania.svg +1 -0
- package/assets/images/flags/214-ecuador.svg +1 -0
- package/assets/images/flags/215-new zealand.svg +1 -0
- package/assets/images/flags/216-panama.svg +1 -0
- package/assets/images/flags/217-united nations.svg +1 -0
- package/assets/images/flags/218-slovakia.svg +1 -0
- package/assets/images/flags/219-south korea.svg +1 -0
- package/assets/images/flags/220-monaco.svg +1 -0
- package/assets/images/flags/221-jordan.svg +1 -0
- package/assets/images/flags/222-iceland.svg +1 -0
- package/assets/images/flags/223-guatemala.svg +1 -0
- package/assets/images/flags/224-syria.svg +1 -0
- package/assets/images/flags/225-uruguay.svg +1 -0
- package/assets/images/flags/226-north korea.svg +1 -0
- package/assets/images/flags/227-scotland.svg +1 -0
- package/assets/images/flags/228-serbia.svg +1 -0
- package/assets/images/flags/229-kazakhstan.svg +1 -0
- package/assets/images/flags/230-spain.svg +1 -0
- package/assets/images/flags/231-latvia.svg +1 -0
- package/assets/images/flags/232-pakistan.svg +1 -0
- package/assets/images/flags/233-cyprus.svg +1 -0
- package/assets/images/flags/234-kenya.svg +1 -0
- package/assets/images/flags/235-myanmar.svg +1 -0
- package/assets/images/flags/236-honduras.svg +1 -0
- package/assets/images/flags/237-jamaica.svg +1 -0
- package/assets/images/flags/238-lithuania.svg +1 -0
- package/assets/images/flags/239-hawaii.svg +1 -0
- package/assets/images/flags/240-luxembourg.svg +1 -0
- package/assets/images/flags/241-japan.svg +1 -0
- package/assets/images/flags/242-mauritius.svg +1 -0
- package/assets/images/flags/243-namibia.svg +1 -0
- package/assets/images/flags/244-qatar.svg +1 -0
- package/assets/images/flags/245-dominican republic.svg +1 -0
- package/assets/images/flags/246-wales.svg +1 -0
- package/assets/images/flags/247-zambia.svg +1 -0
- package/assets/images/flags/248-el salvador.svg +1 -0
- package/assets/images/flags/249-nicaragua.svg +1 -0
- package/assets/images/flags/250-tunisia.svg +1 -0
- package/assets/images/flags/251-malta.svg +1 -0
- package/assets/images/flags/252-european union.svg +1 -0
- package/assets/images/flags/253-nigeria.svg +1 -0
- package/assets/images/flags/254-uganda.svg +1 -0
- package/assets/images/flags/255-lebanon.svg +1 -0
- package/assets/images/flags/256-iraq.svg +1 -0
- package/assets/images/flags/257-mozambique.svg +1 -0
- package/assets/images/flags/258-puerto rico.svg +1 -0
- package/assets/images/flags/259-slovenia.svg +1 -0
- package/assets/images/flags/260-tanzania.svg +1 -0
- package/assets/images/flags/261-oman.svg +1 -0
- package/assets/images/flags/262-ethiopia.svg +1 -0
- package/assets/images/flags/263-italy.svg +1 -0
- package/fesm2022/solcre-org-core-ui.mjs +1031 -114
- package/fesm2022/solcre-org-core-ui.mjs.map +1 -1
- package/index.d.ts +389 -71
- 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,
|
|
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 {
|
|
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
|
+
});
|
|
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
|
+
});
|
|
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-
|
|
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.
|
|
14417
|
+
full: '2.12.45',
|
|
13501
14418
|
major: 2,
|
|
13502
14419
|
minor: 12,
|
|
13503
|
-
patch:
|
|
13504
|
-
timestamp: '2025-09-
|
|
13505
|
-
buildDate: '
|
|
14420
|
+
patch: 45,
|
|
14421
|
+
timestamp: '2025-09-23T14:31:24.373Z',
|
|
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
|