@smallpearl/ngx-helper 20.0.2 → 20.0.4
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/fesm2022/smallpearl-ngx-helper-entities.mjs +3 -3
- package/fesm2022/smallpearl-ngx-helper-entities.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-entity-field.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-hover-dropdown.mjs +3 -3
- package/fesm2022/smallpearl-ngx-helper-hover-dropdown.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-locale.mjs +6 -6
- package/fesm2022/smallpearl-ngx-helper-locale.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-busy-wheel.mjs +9 -9
- package/fesm2022/smallpearl-ngx-helper-mat-busy-wheel.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-context-menu.mjs +3 -3
- package/fesm2022/smallpearl-ngx-helper-mat-context-menu.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-entity-crud.mjs +17 -17
- package/fesm2022/smallpearl-ngx-helper-mat-entity-crud.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-entity-list.mjs +30 -45
- package/fesm2022/smallpearl-ngx-helper-mat-entity-list.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-file-input.mjs +21 -21
- package/fesm2022/smallpearl-ngx-helper-mat-file-input.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-form-error.mjs +15 -15
- package/fesm2022/smallpearl-ngx-helper-mat-form-error.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-select-entity.mjs +106 -115
- package/fesm2022/smallpearl-ngx-helper-mat-select-entity.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-select-infinite-scroll.mjs +6 -6
- package/fesm2022/smallpearl-ngx-helper-mat-select-infinite-scroll.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-side-menu-layout.mjs +166 -140
- package/fesm2022/smallpearl-ngx-helper-mat-side-menu-layout.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-mat-tel-input.mjs +38 -36
- package/fesm2022/smallpearl-ngx-helper-mat-tel-input.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-stationary-with-line-items.mjs +6 -6
- package/fesm2022/smallpearl-ngx-helper-stationary-with-line-items.mjs.map +1 -1
- package/fesm2022/smallpearl-ngx-helper-utils.mjs +23 -0
- package/fesm2022/smallpearl-ngx-helper-utils.mjs.map +1 -0
- package/fesm2022/smallpearl-ngx-helper.mjs +2 -7
- package/fesm2022/smallpearl-ngx-helper.mjs.map +1 -1
- package/package.json +34 -29
- package/{mat-select-entity/index.d.ts → types/smallpearl-ngx-helper-mat-select-entity.d.ts} +2 -1
- package/types/smallpearl-ngx-helper-utils.d.ts +6 -0
- package/types/smallpearl-ngx-helper.d.ts +3 -0
- package/core/index.d.ts +0 -3
- package/fesm2022/smallpearl-ngx-helper-core.mjs +0 -8
- package/fesm2022/smallpearl-ngx-helper-core.mjs.map +0 -1
- package/index.d.ts +0 -4
- /package/{entities/index.d.ts → types/smallpearl-ngx-helper-entities.d.ts} +0 -0
- /package/{entity-field/index.d.ts → types/smallpearl-ngx-helper-entity-field.d.ts} +0 -0
- /package/{forms/index.d.ts → types/smallpearl-ngx-helper-forms.d.ts} +0 -0
- /package/{hover-dropdown/index.d.ts → types/smallpearl-ngx-helper-hover-dropdown.d.ts} +0 -0
- /package/{locale/index.d.ts → types/smallpearl-ngx-helper-locale.d.ts} +0 -0
- /package/{mat-busy-wheel/index.d.ts → types/smallpearl-ngx-helper-mat-busy-wheel.d.ts} +0 -0
- /package/{mat-context-menu/index.d.ts → types/smallpearl-ngx-helper-mat-context-menu.d.ts} +0 -0
- /package/{mat-entity-crud/index.d.ts → types/smallpearl-ngx-helper-mat-entity-crud.d.ts} +0 -0
- /package/{mat-entity-list/index.d.ts → types/smallpearl-ngx-helper-mat-entity-list.d.ts} +0 -0
- /package/{mat-file-input/index.d.ts → types/smallpearl-ngx-helper-mat-file-input.d.ts} +0 -0
- /package/{mat-form-error/index.d.ts → types/smallpearl-ngx-helper-mat-form-error.d.ts} +0 -0
- /package/{mat-select-infinite-scroll/index.d.ts → types/smallpearl-ngx-helper-mat-select-infinite-scroll.d.ts} +0 -0
- /package/{mat-side-menu-layout/index.d.ts → types/smallpearl-ngx-helper-mat-side-menu-layout.d.ts} +0 -0
- /package/{mat-tel-input/index.d.ts → types/smallpearl-ngx-helper-mat-tel-input.d.ts} +0 -0
- /package/{sideload/index.d.ts → types/smallpearl-ngx-helper-sideload.d.ts} +0 -0
- /package/{stationary-with-line-items/index.d.ts → types/smallpearl-ngx-helper-stationary-with-line-items.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smallpearl-ngx-helper-mat-tel-input.mjs","sources":["../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/providers.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/country-codes.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/mat-telephone.component.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/smallpearl-ngx-helper-mat-tel-input.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface QQMatTelephoneInputConfig {\n /**\n * Provider function to detect geographi location and return it\n * to the control. If implemented, the control would call this\n * function during initialization and auto-select the\n * country returned.\n * @param http \n * @returns \n */\n getCountryCode?: (http: HttpClient) => Observable<{\n ip: string;\n countryCode: string;\n regionCode: string;\n city: string;\n }>,\n\n /**\n * When user explicitly selects a country from the country\n * drop down, this function will be called giving the client a chance\n * to save it either to a persistent storage or a session variable.\n */\n saveCountrySelection?: (countryInfo: { code: string, name: string, callingCode: number}) => Promise<void>;\n\n /**\n * Countries supported by the telephone control. The string is a\n * regex pattern that will be used to filter supported countries.\n * So if you specify \".*\", it'll list all countries of the world.\n * \"TW|SG|MY\" restricts the coutries list to Taiwan, Singapore &\n * Malaysia.\n */\n countries?: string;\n}\n\n\nexport const QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER = new InjectionToken<QQMatTelephoneInputConfig>(\n 'QQMatTelephoneInputConfigProvider'\n);\n","// Array of country objects for the flag dropdown.\n\n// Here is the criteria for the plugin to support a given country/territory\n// - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n// - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes\n// - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png\n// - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml\n\n// Each country array has the following information:\n// [\n// Country name,\n// iso2 code,\n// International dial code,\n// ]\nexport const COUNTRY_CODES = [\n { name: \"Afghanistan (افغانستان)\", code: \"AF\", callingCode: 93 },\n { name: \"Albania (Shqipëri)\", code: \"AL\", callingCode: 355 },\n { name: \"Algeria (الجزائر)\", code: \"DZ\", callingCode: 213 },\n { name: \"American Samoa\", code: \"AS\", callingCode: 1 },\n { name: \"Andorra\", code: \"AD\", callingCode: 376 },\n { name: \"Angola\", code: \"AO\", callingCode: 244 },\n { name: \"Anguilla\", code: \"AI\", callingCode: 1 },\n { name: \"Antigua and Barbuda\", code: \"AG\", callingCode: 1 },\n { name: \"Argentina\", code: \"AR\", callingCode: 54 },\n { name: \"Armenia (Հայաստան)\", code: \"AM\", callingCode: 374 },\n { name: \"Aruba\", code: \"AW\", callingCode: 297 },\n { name: \"Ascension Island\", code: \"AC\", callingCode: 247 },\n { name: \"Australia\", code: \"AU\", callingCode: 61 },\n { name: \"Austria (Österreich)\", code: \"AT\", callingCode: 43 },\n { name: \"Azerbaijan (Azərbaycan)\", code: \"AZ\", callingCode: 994 },\n { name: \"Bahamas\", code: \"BS\", callingCode: 1 },\n { name: \"Bahrain (البحرين)\", code: \"BH\", callingCode: 973 },\n { name: \"Bangladesh (বাংলাদেশ)\", code: \"BD\", callingCode: 880 },\n { name: \"Barbados\", code: \"BB\", callingCode: 1 },\n { name: \"Belarus (Беларусь)\", code: \"BY\", callingCode: 375 },\n { name: \"Belgium (België)\", code: \"BE\", callingCode: 32 },\n { name: \"Belize\", code: \"BZ\", callingCode: 501 },\n { name: \"Benin (Bénin)\", code: \"BJ\", callingCode: 229 },\n { name: \"Bermuda\", code: \"BM\", callingCode: 1 },\n { name: \"Bhutan (འབྲུག)\", code: \"BT\", callingCode: 975 },\n { name: \"Bolivia\", code: \"BO\", callingCode: 591 },\n { name: \"Bosnia and Herzegovina (Босна и Херцеговина)\", code: \"BA\", callingCode: 387 },\n { name: \"Botswana\", code: \"BW\", callingCode: 267 },\n { name: \"Brazil (Brasil)\", code: \"BR\", callingCode: 55 },\n { name: \"British Indian Ocean Territory\", code: \"IO\", callingCode: 246 },\n { name: \"British Virgin Islands\", code: \"VG\", callingCode: 1 },\n { name: \"Brunei\", code: \"BN\", callingCode: 673 },\n { name: \"Bulgaria (България)\", code: \"BG\", callingCode: 359 },\n { name: \"Burkina Faso\", code: \"BF\", callingCode: 226 },\n { name: \"Burundi (Uburundi)\", code: \"BI\", callingCode: 257 },\n { name: \"Cambodia (កម្ពុជា)\", code: \"KH\", callingCode: 855 },\n { name: \"Cameroon (Cameroun)\", code: \"CM\", callingCode: 237 },\n { name: \"Canada\", code: \"CA\", callingCode: 1 },\n { name: \"Cape Verde (Kabu Verdi)\", code: \"CV\", callingCode: 238 },\n { name: \"Caribbean Netherlands\", code: \"BQ\", callingCode: 599 },\n { name: \"Cayman Islands\", code: \"KY\", callingCode: 1 },\n { name: \"Central African Republic (République centrafricaine)\", code: \"CF\", callingCode: 236 },\n { name: \"Chad (Tchad)\", code: \"TD\", callingCode: 235 },\n { name: \"Chile\", code: \"CL\", callingCode: 56 },\n { name: \"China (中国)\", code: \"CN\", callingCode: 86 },\n { name: \"Christmas Island\", code: \"CX\", callingCode: 61 },\n { name: \"Cocos (Keeling) Islands\", code: \"CC\", callingCode: 61 },\n { name: \"Colombia\", code: \"CO\", callingCode: 57 },\n { name: \"Comoros (جزر القمر)\", code: \"KM\", callingCode: 269 },\n { name: \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\", code: \"CD\", callingCode: 243 },\n { name: \"Congo (Republic) (Congo-Brazzaville)\", code: \"CG\", callingCode: 242 },\n { name: \"Cook Islands\", code: \"CK\", callingCode: 682 },\n { name: \"Costa Rica\", code: \"CR\", callingCode: 506 },\n { name: \"Côte d’Ivoire\", code: \"CI\", callingCode: 225 },\n { name: \"Croatia (Hrvatska)\", code: \"HR\", callingCode: 385 },\n { name: \"Cuba\", code: \"CU\", callingCode: 53 },\n { name: \"Curaçao\", code: \"CW\", callingCode: 599 },\n { name: \"Cyprus (Κύπρος)\", code: \"CY\", callingCode: 357 },\n { name: \"Czech Republic (Česká republika)\", code: \"CZ\", callingCode: 420 },\n { name: \"Denmark (Danmark)\", code: \"DK\", callingCode: 45 },\n { name: \"Djibouti\", code: \"DJ\", callingCode: 253 },\n { name: \"Dominica\", code: \"DM\", callingCode: 1 },\n { name: \"Dominican Republic (República Dominicana)\", code: \"DO\", callingCode: 1 },\n { name: \"Ecuador\", code: \"EC\", callingCode: 593 },\n { name: \"Egypt (مصر)\", code: \"EG\", callingCode: 20 },\n { name: \"El Salvador\", code: \"SV\", callingCode: 503 },\n { name: \"Equatorial Guinea (Guinea Ecuatorial)\", code: \"GQ\", callingCode: 240 },\n { name: \"Eritrea\", code: \"ER\", callingCode: 291 },\n { name: \"Estonia (Eesti)\", code: \"EE\", callingCode: 372 },\n { name: \"Eswatini\", code: \"SZ\", callingCode: 268 },\n { name: \"Ethiopia\", code: \"ET\", callingCode: 251 },\n { name: \"Falkland Islands (Islas Malvinas)\", code: \"FK\", callingCode: 500 },\n { name: \"Faroe Islands (Føroyar)\", code: \"FO\", callingCode: 298 },\n { name: \"Fiji\", code: \"FJ\", callingCode: 679 },\n { name: \"Finland (Suomi)\", code: \"FI\", callingCode: 358 },\n { name: \"France\", code: \"FR\", callingCode: 33 },\n { name: \"French Guiana (Guyane française)\", code: \"GF\", callingCode: 594 },\n { name: \"French Polynesia (Polynésie française)\", code: \"PF\", callingCode: 689 },\n { name: \"Gabon\", code: \"GA\", callingCode: 241 },\n { name: \"Gambia\", code: \"GM\", callingCode: 220 },\n { name: \"Georgia (საქართველო)\", code: \"GE\", callingCode: 995 },\n { name: \"Germany (Deutschland)\", code: \"DE\", callingCode: 49 },\n { name: \"Ghana (Gaana)\", code: \"GH\", callingCode: 233 },\n { name: \"Gibraltar\", code: \"GI\", callingCode: 350 },\n { name: \"Greece (Ελλάδα)\", code: \"GR\", callingCode: 30 },\n { name: \"Greenland (Kalaallit Nunaat)\", code: \"GL\", callingCode: 299 },\n { name: \"Grenada\", code: \"GD\", callingCode: 1 },\n { name: \"Guadeloupe\", code: \"GP\", callingCode: 590 },\n { name: \"Guam\", code: \"GU\", callingCode: 1 },\n { name: \"Guatemala\", code: \"GT\", callingCode: 502 },\n { name: \"Guernsey\", code: \"GG\", callingCode: 44 },\n { name: \"Guinea (Guinée)\", code: \"GN\", callingCode: 224 },\n { name: \"Guinea-Bissau (Guiné Bissau)\", code: \"GW\", callingCode: 245 },\n { name: \"Guyana\", code: \"GY\", callingCode: 592 },\n { name: \"Haiti\", code: \"HT\", callingCode: 509 },\n { name: \"Honduras\", code: \"HN\", callingCode: 504 },\n { name: \"Hong Kong (香港)\", code: \"HK\", callingCode: 852 },\n { name: \"Hungary (Magyarország)\", code: \"HU\", callingCode: 36 },\n { name: \"Iceland (Ísland)\", code: \"IS\", callingCode: 354 },\n { name: \"India (भारत)\", code: \"IN\", callingCode: 91 },\n { name: \"Indonesia\", code: \"ID\", callingCode: 62 },\n { name: \"Iran (ایران)\", code: \"IR\", callingCode: 98 },\n { name: \"Iraq (العراق)\", code: \"IQ\", callingCode: 964 },\n { name: \"Ireland\", code: \"IE\", callingCode: 353 },\n { name: \"Isle of Man\", code: \"IM\", callingCode: 44 },\n { name: \"Israel (ישראל)\", code: \"IL\", callingCode: 972 },\n { name: \"Italy (Italia)\", code: \"IT\", callingCode: 39 },\n { name: \"Jamaica\", code: \"JM\", callingCode: 1 },\n { name: \"Japan (日本)\", code: \"JP\", callingCode: 81 },\n { name: \"Jersey\", code: \"JE\", callingCode: 44 },\n { name: \"Jordan (الأردن)\", code: \"JO\", callingCode: 962 },\n { name: \"Kazakhstan (Казахстан)\", code: \"KZ\", callingCode: 7 },\n { name: \"Kenya\", code: \"KE\", callingCode: 254 },\n { name: \"Kiribati\", code: \"KI\", callingCode: 686 },\n { name: \"Kosovo\", code: \"XK\", callingCode: 383 },\n { name: \"Kuwait (الكويت)\", code: \"KW\", callingCode: 965 },\n { name: \"Kyrgyzstan (Кыргызстан)\", code: \"KG\", callingCode: 996 },\n { name: \"Laos (ລາວ)\", code: \"LA\", callingCode: 856 },\n { name: \"Latvia (Latvija)\", code: \"LV\", callingCode: 371 },\n { name: \"Lebanon (لبنان)\", code: \"LB\", callingCode: 961 },\n { name: \"Lesotho\", code: \"LS\", callingCode: 266 },\n { name: \"Liberia\", code: \"LR\", callingCode: 231 },\n { name: \"Libya (ليبيا)\", code: \"LY\", callingCode: 218 },\n { name: \"Liechtenstein\", code: \"LI\", callingCode: 423 },\n { name: \"Lithuania (Lietuva)\", code: \"LT\", callingCode: 370 },\n { name: \"Luxembourg\", code: \"LU\", callingCode: 352 },\n { name: \"Macau (澳門)\", code: \"MO\", callingCode: 853 },\n { name: \"North Macedonia (Македонија)\", code: \"MK\", callingCode: 389 },\n { name: \"Madagascar (Madagasikara)\", code: \"MG\", callingCode: 261 },\n { name: \"Malawi\", code: \"MW\", callingCode: 265 },\n { name: \"Malaysia\", code: \"MY\", callingCode: 60 },\n { name: \"Maldives\", code: \"MV\", callingCode: 960 },\n { name: \"Mali\", code: \"ML\", callingCode: 223 },\n { name: \"Malta\", code: \"MT\", callingCode: 356 },\n { name: \"Marshall Islands\", code: \"MH\", callingCode: 692 },\n { name: \"Martinique\", code: \"MQ\", callingCode: 596 },\n { name: \"Mauritania (موريتانيا)\", code: \"MR\", callingCode: 222 },\n { name: \"Mauritius (Moris)\", code: \"MU\", callingCode: 230 },\n { name: \"Mayotte\", code: \"YT\", callingCode: 262 },\n { name: \"Mexico (México)\", code: \"MX\", callingCode: 52 },\n { name: \"Micronesia\", code: \"FM\", callingCode: 691 },\n { name: \"Moldova (Republica Moldova)\", code: \"MD\", callingCode: 373 },\n { name: \"Monaco\", code: \"MC\", callingCode: 377 },\n { name: \"Mongolia (Монгол)\", code: \"MN\", callingCode: 976 },\n { name: \"Montenegro (Crna Gora)\", code: \"ME\", callingCode: 382 },\n { name: \"Montserrat\", code: \"MS\", callingCode: 1 },\n { name: \"Morocco (المغرب)\", code: \"MA\", callingCode: 212 },\n { name: \"Mozambique (Moçambique)\", code: \"MZ\", callingCode: 258 },\n { name: \"Myanmar (Burma) (မြန်မာ)\", code: \"MM\", callingCode: 95 },\n { name: \"Namibia (Namibië)\", code: \"NA\", callingCode: 264 },\n { name: \"Nauru\", code: \"NR\", callingCode: 674 },\n { name: \"Nepal (नेपाल)\", code: \"NP\", callingCode: 977 },\n { name: \"Netherlands (Nederland)\", code: \"NL\", callingCode: 31 },\n { name: \"New Caledonia (Nouvelle-Calédonie)\", code: \"NC\", callingCode: 687 },\n { name: \"New Zealand\", code: \"NZ\", callingCode: 64 },\n { name: \"Nicaragua\", code: \"NI\", callingCode: 505 },\n { name: \"Niger (Nijar)\", code: \"NE\", callingCode: 227 },\n { name: \"Nigeria\", code: \"NG\", callingCode: 234 },\n { name: \"Niue\", code: \"NU\", callingCode: 683 },\n { name: \"Norfolk Island\", code: \"NF\", callingCode: 672 },\n { name: \"North Korea (조선 민주주의 인민 공화국)\", code: \"KP\", callingCode: 850 },\n { name: \"Northern Mariana Islands\", code: \"MP\", callingCode: 1 },\n { name: \"Norway (Norge)\", code: \"NO\", callingCode: 47 },\n { name: \"Oman (عُمان)\", code: \"OM\", callingCode: 968 },\n { name: \"Pakistan (پاکستان)\", code: \"PK\", callingCode: 92 },\n { name: \"Palau\", code: \"PW\", callingCode: 680 },\n { name: \"Palestine (فلسطين)\", code: \"PS\", callingCode: 970 },\n { name: \"Panama (Panamá)\", code: \"PA\", callingCode: 507 },\n { name: \"Papua New Guinea\", code: \"PG\", callingCode: 675 },\n { name: \"Paraguay\", code: \"PY\", callingCode: 595 },\n { name: \"Peru (Perú)\", code: \"PE\", callingCode: 51 },\n { name: \"Philippines\", code: \"PH\", callingCode: 63 },\n { name: \"Poland (Polska)\", code: \"PL\", callingCode: 48 },\n { name: \"Portugal\", code: \"PT\", callingCode: 351 },\n { name: \"Puerto Rico\", code: \"PR\", callingCode: 1 },\n { name: \"Qatar (قطر)\", code: \"QA\", callingCode: 974 },\n { name: \"Réunion (La Réunion)\", code: \"RE\", callingCode: 262 },\n { name: \"Romania (România)\", code: \"RO\", callingCode: 40 },\n { name: \"Russia (Россия)\", code: \"RU\", callingCode: 7 },\n { name: \"Rwanda\", code: \"RW\", callingCode: 250 },\n { name: \"Saint Barthélemy\", code: \"BL\", callingCode: 590 },\n { name: \"Saint Helena\", code: \"SH\", callingCode: 290 },\n { name: \"Saint Kitts and Nevis\", code: \"KN\", callingCode: 1 },\n { name: \"Saint Lucia\", code: \"LC\", callingCode: 1 },\n { name: \"Saint Martin (Saint-Martin (partie française))\", code: \"MF\", callingCode: 590 },\n { name: \"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\", code: \"PM\", callingCode: 508 },\n { name: \"Saint Vincent and the Grenadines\", code: \"VC\", callingCode: 1 },\n { name: \"Samoa\", code: \"WS\", callingCode: 685 },\n { name: \"San Marino\", code: \"SM\", callingCode: 378 },\n { name: \"São Tomé and Príncipe (São Tomé e Príncipe)\", code: \"ST\", callingCode: 239 },\n { name: \"Saudi Arabia (المملكة العربية السعودية)\", code: \"SA\", callingCode: 966 },\n { name: \"Senegal (Sénégal)\", code: \"SN\", callingCode: 221 },\n { name: \"Serbia (Србија)\", code: \"RS\", callingCode: 381 },\n { name: \"Seychelles\", code: \"SC\", callingCode: 248 },\n { name: \"Sierra Leone\", code: \"SL\", callingCode: 232 },\n { name: \"Singapore\", code: \"SG\", callingCode: 65 },\n { name: \"Sint Maarten\", code: \"SX\", callingCode: 1 },\n { name: \"Slovakia (Slovensko)\", code: \"SK\", callingCode: 421 },\n { name: \"Slovenia (Slovenija)\", code: \"SI\", callingCode: 386 },\n { name: \"Solomon Islands\", code: \"SB\", callingCode: 677 },\n { name: \"Somalia (Soomaaliya)\", code: \"SO\", callingCode: 252 },\n { name: \"South Africa\", code: \"ZA\", callingCode: 27 },\n { name: \"South Korea (대한민국)\", code: \"KR\", callingCode: 82 },\n { name: \"South Sudan (جنوب السودان)\", code: \"SS\", callingCode: 211 },\n { name: \"Spain (España)\", code: \"ES\", callingCode: 34 },\n { name: \"Sri Lanka (ශ්රී ලංකාව)\", code: \"LK\", callingCode: 94 },\n { name: \"Sudan (السودان)\", code: \"SD\", callingCode: 249 },\n { name: \"Suriname\", code: \"SR\", callingCode: 597 },\n { name: \"Svalbard and Jan Mayen\", code: \"SJ\", callingCode: 47 },\n { name: \"Sweden (Sverige)\", code: \"SE\", callingCode: 46 },\n { name: \"Switzerland (Schweiz)\", code: \"CH\", callingCode: 41 },\n { name: \"Syria (سوريا)\", code: \"SY\", callingCode: 963 },\n { name: \"Taiwan (台灣)\", code: \"TW\", callingCode: 886 },\n { name: \"Tajikistan\", code: \"TJ\", callingCode: 992 },\n { name: \"Tanzania\", code: \"TZ\", callingCode: 255 },\n { name: \"Thailand (ไทย)\", code: \"TH\", callingCode: 66 },\n { name: \"Timor-Leste\", code: \"TL\", callingCode: 670 },\n { name: \"Togo\", code: \"TG\", callingCode: 228 },\n { name: \"Tokelau\", code: \"TK\", callingCode: 690 },\n { name: \"Tonga\", code: \"TO\", callingCode: 676 },\n { name: \"Trinidad and Tobago\", code: \"TT\", callingCode: 1 },\n { name: \"Tunisia (تونس)\", code: \"TN\", callingCode: 216 },\n { name: \"Turkey (Türkiye)\", code: \"TR\", callingCode: 90 },\n { name: \"Turkmenistan\", code: \"TM\", callingCode: 993 },\n { name: \"Turks and Caicos Islands\", code: \"TC\", callingCode: 1 },\n { name: \"Tuvalu\", code: \"TV\", callingCode: 688 },\n { name: \"U.S. Virgin Islands\", code: \"VI\", callingCode: 1 },\n { name: \"Uganda\", code: \"UG\", callingCode: 256 },\n { name: \"Ukraine (Україна)\", code: \"UA\", callingCode: 380 },\n { name: \"United Arab Emirates (الإمارات العربية المتحدة)\", code: \"AE\", callingCode: 971 },\n { name: \"United Kingdom\", code: \"GB\", callingCode: 44 },\n { name: \"United States\", code: \"US\", callingCode: 1 },\n { name: \"Uruguay\", code: \"UY\", callingCode: 598 },\n { name: \"Uzbekistan (Oʻzbekiston)\", code: \"UZ\", callingCode: 998 },\n { name: \"Vanuatu\", code: \"VU\", callingCode: 678 },\n { name: \"Vatican City (Città del Vaticano)\", code: \"VA\", callingCode: 39 },\n { name: \"Venezuela\", code: \"VE\", callingCode: 58 },\n { name: \"Vietnam (Việt Nam)\", code: \"VN\", callingCode: 84 },\n { name: \"Wallis and Futuna (Wallis-et-Futuna)\", code: \"WF\", callingCode: 681 },\n { name: \"Western Sahara (الصحراء الغربية)\", code: \"EH\", callingCode: 212 },\n { name: \"Yemen (اليمن)\", code: \"YE\", callingCode: 967 },\n { name: \"Zambia\", code: \"ZM\", callingCode: 260 },\n { name: \"Zimbabwe\", code: \"ZW\", callingCode: 263 },\n { name: \"Åland Islands\", code: \"AX\", callingCode: 358 }\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport {\n MAT_FORM_FIELD,\n MatFormField,\n MatFormFieldControl,\n} from '@angular/material/form-field';\nimport { PhoneNumberType, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, NEVER, ReplaySubject, Subject } from 'rxjs';\nimport { catchError, map, take, takeUntil, tap } from 'rxjs/operators';\nimport { COUNTRY_CODES } from './country-codes';\nimport { QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER } from './providers';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport {\n MatSelect,\n MatSelectChange,\n MatSelectModule,\n} from '@angular/material/select';\n\ninterface CountryInfo {\n name: string;\n code: string;\n callingCode: number;\n}\n\nconst ALL_COUNTRIES_CALLING_CODES = '.*';\n\n/** Data structure for holding telephone number. */\nexport class ISOTelNumber {\n constructor(public country: string, public national: string) {}\n}\n\ntype TelephoneNumberParts = CountryInfo & { nationalNumber: string };\n\n@Component({\n selector: 'sp-mat-telephone-input',\n template: `\n <!--\n <div\n rol=\"group\"\n class=\"tel-input-wrapper\"\n [formGroup]=\"parts\"\n [attr.aria-labelledby]=\"_formField?.getLabelId()\"\n (focusin)=\"onFocusIn($event)\"\n (focusout)=\"onFocusOut($event)\"\n >\n <select\n #countryCodeSelector\n title=\"Country Code\"\n formControlName=\"country\"\n (change)=\"onCountryChange($event)\"\n >\n <option\n *ngFor=\"let c of filteredCountries | async\"\n value=\"{{ c.code }}\"\n [attr.data-descr]=\"c.name + '.' + c.callingCode\"\n >\n {{ c.name }} +{{ c.callingCode }}\n </option>\n </select>\n <input\n #nationalNumberInput\n formControlName=\"national\"\n type=\"tel\"\n (input)=\"onNationalNumberChange($event)\"\n />\n </div>\n-->\n <div class=\"tel-input-wrapper\" [formGroup]=\"parts\">\n <mat-select\n #countryCodeSelector\n formControlName=\"country\"\n (selectionChange)=\"onCountryChange($event)\"\n >\n <mat-option>\n <ngx-mat-select-search\n [placeholderLabel]=\"searchText\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"countryFilterCtrl\"\n ></ngx-mat-select-search>\n </mat-option>\n <mat-option\n *ngFor=\"let c of filteredCountries | async\"\n [value]=\"c\"\n [attr.data-descr]=\"c.name + '.' + c.callingCode\"\n >\n {{ c.name }} +{{ c.callingCode }}\n </mat-option>\n </mat-select>\n <input\n style=\"padding-left: 4px\"\n #nationalNumberInput\n formControlName=\"national\"\n type=\"tel\"\n (input)=\"onNationalNumberChange($event)\"\n />\n </div>\n `,\n styles: `\n .tel-input-wrapper {\n display: flex;\n padding: 1px 1px 1px 1px;\n }\n .error-border {\n border-color: red;\n }\n .box-border {\n border-bottom: 1px solid gray;\n border-radius: 4px;\n }\n mat-select {\n display: inline-block;\n border: none;\n outline: none;\n scroll-behavior: smooth;\n background: none;\n width: 30%;\n }\n mat-select:focus {\n border: none;\n outline: none;\n background: none;\n scroll-behavior: smooth;\n }\n input {\n flex: 1 1 auto;\n background: none;\n border: none;\n }\n input:focus {\n border: none;\n outline: none;\n }\n `,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ],\n providers: [\n { provide: MatFormFieldControl, useExisting: SPMatTelephoneInputComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SPMatTelephoneInputComponent\n implements\n OnInit,\n OnDestroy,\n ControlValueAccessor,\n MatFormFieldControl<ISOTelNumber>\n{\n static nextId = 0;\n\n @ViewChild('countryCodeSelector', { static: true }) countrySelect!: MatSelect;\n @ViewChild('nationalNumberInput') nationalInput!: ElementRef;\n\n @Input() mobile = false;\n // A regular expression specified as a string. This will be used to\n // construct a RegExp object, by passing it as the argument.\n @Input() allowedCountries!: string;\n @Input() defaultCountry: string = '';\n\n filter$ = new BehaviorSubject<string>('');\n countries$ = this.filter$.pipe(\n map((searchStr) => {\n const countries = new Array<CountryInfo>();\n const searchStrLower = searchStr.toLocaleLowerCase();\n this.countries.forEach((country) => {\n if (\n `${country.callingCode} ${country.code} ${country.name}`\n .toLocaleLowerCase()\n .includes(searchStrLower)\n ) {\n countries.push(country);\n }\n });\n return countries;\n })\n );\n\n countries: Array<CountryInfo> = [];\n public filteredCountries: ReplaySubject<CountryInfo[]> = new ReplaySubject<\n CountryInfo[]\n >(1);\n\n isDisabled = false;\n\n private _onChange = (_: any) => {};\n private control!: UntypedFormControl;\n private onCountrySelectFocus!: () => void;\n private onCountrySelectBlur!: () => void;\n\n phoneUtil: any = PhoneNumberUtil.getInstance();\n\n parts: FormGroup<{\n country: FormControl<CountryInfo | null>;\n national: FormControl<string | null>;\n }>;\n stateChanges = new Subject<void>();\n focused = false;\n touched = false;\n controlType = 'qq-tel-input';\n id = `qq-tel-input-${SPMatTelephoneInputComponent.nextId++}`;\n onChange = (_: any) => {};\n onTouched = () => {};\n\n public telForm = new FormGroup({});\n /** control for the MatSelect filter keyword */\n public countryFilterCtrl = new FormControl<string>('');\n\n get empty() {\n const {\n value: { country, national },\n } = this.parts;\n\n return !country && !national;\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n @Input('aria-describedby') userAriaDescribedBy!: string;\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required);\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required!: boolean;\n\n @Input() searchText = '';\n @Input() noEntriesFoundLabel = 'Not found';\n\n @Input()\n get disabled(): boolean {\n return this._disabled ?? this.ngControl?.control?.disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n private _disabled!: boolean;\n destroy = new Subject<void>();\n\n @Input()\n get value(): ISOTelNumber | null {\n if (this.parts.valid) {\n const {\n value: { country, national },\n } = this.parts;\n return new ISOTelNumber(`${country!.callingCode}`, national!);\n }\n return null;\n }\n set value(tel: ISOTelNumber | null) {\n const { country, national } = tel || new ISOTelNumber('', '');\n let ci: CountryInfo | undefined;\n if (country) {\n ci = this.countries.find(\n (ci: CountryInfo) => `${ci.callingCode}` == country\n );\n }\n // this.phoneUtil.\n this.parts.setValue({ country: ci!, national });\n this.stateChanges.next();\n }\n\n get errorState(): boolean {\n return this.parts.invalid && this.touched;\n }\n\n onFocusIn(event: FocusEvent) {\n if (!this.focused) {\n this.focused = true;\n this.stateChanges.next();\n }\n }\n\n onFocusOut(event: FocusEvent) {\n if (\n !this._elementRef.nativeElement.contains(event.relatedTarget as Element)\n ) {\n this.touched = true;\n this.focused = false;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement\n ): void {\n if (!control.errors && nextElement) {\n this._focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n autoFocusPrev(control: AbstractControl, prevElement: HTMLInputElement): void {\n if (control.value.length < 1) {\n this._focusMonitor.focusVia(prevElement, 'program');\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement = this._elementRef.nativeElement.querySelector(\n '.qq-tel-input-container'\n )!;\n if (controlElement) {\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n }\n\n onContainerClick() {\n // this._focusMonitor.focusVia(this.countrySelect, 'program');\n // if (this.parts.controls.national.valid) {\n // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // } else if (this.parts.controls.country.valid) {\n // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // // } else if (this.parts.controls.national.valid) {\n // // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // } else {\n // this._focusMonitor.focusVia(this.countrySelect, 'program');\n // }\n }\n\n constructor(\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n @Optional() @Inject(MAT_FORM_FIELD) public _formField: MatFormField,\n @Optional() @Self() public ngControl: NgControl,\n formBuilder: FormBuilder\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n this.parts = formBuilder.group({\n country: [undefined as unknown as CountryInfo, Validators.required],\n national: ['', Validators.required],\n });\n\n this.initCountries();\n }\n\n ngOnInit(): void {\n this.initCountries();\n // this.onCountrySelectFocus = () => {\n // const options = (this.countrySelect.nativeElement as HTMLSelectElement).options;\n // [].forEach.call(options, function(o: any) {\n // const countryInfo: string = o.getAttribute('data-descr');\n // const [name, callingCode] = countryInfo.split('.');\n // o.textContent = name + ' (' + callingCode + ')';\n // });\n // }\n // this.onCountrySelectBlur = () => {\n // const options = (this.countrySelect.nativeElement as HTMLSelectElement).options;\n // [].forEach.call(options, function(o: any) {\n // const countryInfo: string = o.getAttribute('data-descr');\n // const [name, callingCode] = countryInfo.split('.');\n // o.textContent = '+' + callingCode;\n // });\n // }\n // this.countrySelect.nativeElement.addEventListener('focus', this.onCountrySelectFocus);\n // this.countrySelect.nativeElement.addEventListener('blur', this.onCountrySelectBlur);\n\n if (this.defaultCountry) {\n const country = this.countries.find(\n (ci) => ci.code == this.defaultCountry\n );\n this.parts.controls.country.setValue(country!);\n }\n\n this.filteredCountries.next(this.countries.slice());\n\n // listen for search field value changes\n this.countryFilterCtrl.valueChanges\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n this.filterCountries();\n });\n }\n\n protected setInitialValue() {\n this.filteredCountries\n .pipe(take(1), takeUntil(this.destroy))\n .subscribe(() => {\n // Setting the compareWith property to a comparison function\n // triggers initializing the selection according to the initial value of\n // the form control (i.e. _initializeSelection()).\n // This needs to be done after the filteredCountries are loaded\n // initially and after the mat-option elements are available.\n this.countrySelect.compareWith = (a: CountryInfo, b: CountryInfo) =>\n a && b && a.code === b.code;\n });\n }\n\n private filterCountries() {\n if (!this.countries) {\n return;\n }\n // get the search keyword\n let search = this.countryFilterCtrl.value;\n if (!search) {\n this.filteredCountries.next(this.countries.slice());\n return;\n }\n search = search.toLowerCase();\n // filter the banks\n this.filteredCountries.next(\n this.countries.filter(\n (country) =>\n country.name.toLowerCase().indexOf(search!) > -1 ||\n country.callingCode.toString().indexOf(search!) > -1 ||\n country.code.toLowerCase().indexOf(search!) > -1\n )\n );\n }\n\n ngAfterViewInit() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.control = ngControl.control as UntypedFormControl;\n }\n this.disableComponents();\n\n if (!this.parts.controls.country.value) {\n this.detectCountry();\n } else {\n this.setInitialValue();\n }\n }\n\n ngOnDestroy() {\n // this.countrySelect.nativeElement.removeAllListners();\n this.destroy.next();\n this.destroy.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /**\n * Set the country code to the given code.\n *\n * @param code Numeric country code to set the value of the country\n * ion-select to. Will validate the code against a built-in country\n * code list.\n */\n setCountryCode(code: string) {\n code = code.trim();\n if (code.startsWith('+')) {\n code = code.substring(1);\n }\n for (let index = 0; index < this.countries.length; index++) {\n const country = this.countries[index];\n if (`${country.callingCode}` === code) {\n this.parts.controls.country.setValue(country);\n this.cdr.detectChanges();\n }\n }\n }\n\n // ControlValueAccessor interface methods\n writeValue(telNumber: string): void {\n // Check the supplied number string can be converted into a numeric value.\n try {\n if (telNumber) {\n const phoneNumber = this.phoneUtil.parse(telNumber);\n if (phoneNumber) {\n const cc = phoneNumber.getCountryCode();\n const country = this.countries.find((ci) => ci.callingCode === cc);\n if (country) {\n this.parts.controls.country.setValue(country);\n this.parts.controls.national.setValue(\n phoneNumber.getNationalNumber()\n );\n }\n }\n } else {\n // null value usually means form-reset. Clear national number\n // and leave selected country code intact.\n this.parts.controls.country.setValue(null);\n this.parts.controls.national.setValue(null);\n this.parts.controls.country.setErrors(null);\n this.parts.controls.national.setErrors(null);\n this.parts.setErrors(null);\n }\n this.cdr.detectChanges();\n } catch (error) {\n // empty\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n if (this.countrySelect && this.nationalInput) {\n this.disableComponents();\n }\n }\n\n onCountryChange(ev: MatSelectChange) {\n const telNumberParts = this.getTelephoneNumberParts();\n if (telNumberParts) {\n this.notifyChange(telNumberParts);\n this.control.setErrors(null);\n } else {\n if (this.control) {\n this.control.setErrors({ invalidPhoneNumber: true });\n this.cdr.detectChanges();\n }\n }\n }\n\n onNationalNumberChange(ev: Event) {\n const telNumberParts = this.getTelephoneNumberParts();\n if (telNumberParts) {\n this.notifyChange(telNumberParts);\n this.control.setErrors(null);\n } else {\n if (this.control) {\n this.control.setErrors({ invalidPhoneNumber: true });\n this.cdr.detectChanges();\n }\n }\n }\n\n /**\n * Returns the telephone number in ISO8601 format.\n * @param numberParts\n * @returns\n */\n private ISOTelephoneNumber(\n numberParts: CountryInfo & { nationalNumber: string }\n ) {\n return `+${numberParts.callingCode}${numberParts.nationalNumber}`;\n }\n\n private notifyChange(numberParts: CountryInfo & { nationalNumber: string }) {\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n if (geoLocationProvider && geoLocationProvider.saveCountrySelection) {\n geoLocationProvider\n .saveCountrySelection(numberParts)\n .then(() => this._onChange(this.ISOTelephoneNumber(numberParts)))\n .catch(() => {});\n } else {\n this._onChange(this.ISOTelephoneNumber(numberParts));\n }\n }\n\n get placeholderText() {\n let placeholderText = this.placeholder;\n if (this.required) {\n placeholderText = placeholderText + '*';\n }\n return placeholderText;\n }\n\n get hasErrors() {\n return this.control && this.control.hasError('invalidPhoneNumber');\n }\n\n private disableComponents() {\n const action = this.isDisabled ? 'addClass' : 'removeClass';\n if (this.countrySelect) {\n //this.countryCodeSelector.disabled = this.isDisabled;\n }\n if (this.nationalInput) {\n //this.nationalNumberInput.disabled = this.isDisabled;\n }\n }\n\n /**\n * Returns the full telephone number, combining the selected\n * country code with the national number.\n *\n * Leading zeros in the national number are removed.\n *\n * Validates the entered number using google-libphonenumber and if\n * invalid, returns an empty string.\n */\n private getTelephoneNumberParts(): TelephoneNumberParts | null {\n const selectedCountry: CountryInfo | null =\n this.parts.controls.country.value;\n const nationalNumber = this.parts.controls.national.value;\n if (nationalNumber) {\n const ci = this.countries.find(\n (ci: CountryInfo) => ci.callingCode == selectedCountry!.callingCode\n );\n if (ci) {\n try {\n const phoneNumber = this.phoneUtil.parse(nationalNumber, ci.code);\n if (this.phoneUtil.isValidNumberForRegion(phoneNumber, ci!.code)) {\n const numberType = this.phoneUtil.getNumberType(phoneNumber);\n // console.log(`Valid phone number for country ${ci.code}: ${this.phoneUtil.format(phoneNumber, PhoneNumberFormat.E164)}, type: ${numberType}`);\n if (!this.mobile || numberType === PhoneNumberType.MOBILE) {\n // const fullNumber = this.phoneUtil.format(phoneNumber, PhoneNumberFormat.E164);\n // console.log('full tel number:', fullNumber);\n return {\n ...ci,\n nationalNumber: nationalNumber,\n };\n }\n }\n } catch (error) {\n // do nothing\n }\n }\n }\n return null;\n }\n\n private getAllowedCountries() {\n if (this.allowedCountries) {\n return this.allowedCountries;\n }\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n return geoLocationProvider && geoLocationProvider.countries\n ? geoLocationProvider.countries\n : ALL_COUNTRIES_CALLING_CODES;\n }\n\n private detectCountry() {\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n if (geoLocationProvider && geoLocationProvider.getCountryCode) {\n geoLocationProvider\n .getCountryCode(this.http)\n .pipe(\n tap((res) => {\n // console.log(`detectCountry response: ${JSON.stringify(res)}`);\n if (res.countryCode) {\n const cc = COUNTRY_CODES.find((cc) => cc.code == res.countryCode);\n if (cc && !this.parts.controls.country.value) {\n this.parts.controls.country.setValue(cc);\n this.cdr.detectChanges();\n }\n }\n }),\n catchError((err) => {\n // console.log(`detectCountry error: ${JSON.stringify(err)}`);\n return NEVER;\n })\n )\n .subscribe();\n } else {\n // console.log(`QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER not available`);\n }\n }\n\n // Initialize this.countries if it's not already been initialized.\n private initCountries() {\n if (!this.countries.length) {\n // determine countries we support\n const ccRegex = new RegExp(this.getAllowedCountries());\n COUNTRY_CODES.forEach((c) => {\n if (ccRegex.test(c.code)) {\n this.countries.push(c);\n }\n });\n this.countries = this.countries.sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smallpearl-ngx-helper-mat-tel-input.mjs","sources":["../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/providers.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/country-codes.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/src/mat-telephone.component.ts","../../../../projects/smallpearl/ngx-helper/mat-tel-input/smallpearl-ngx-helper-mat-tel-input.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface QQMatTelephoneInputConfig {\n /**\n * Provider function to detect geographi location and return it\n * to the control. If implemented, the control would call this\n * function during initialization and auto-select the\n * country returned.\n * @param http \n * @returns \n */\n getCountryCode?: (http: HttpClient) => Observable<{\n ip: string;\n countryCode: string;\n regionCode: string;\n city: string;\n }>,\n\n /**\n * When user explicitly selects a country from the country\n * drop down, this function will be called giving the client a chance\n * to save it either to a persistent storage or a session variable.\n */\n saveCountrySelection?: (countryInfo: { code: string, name: string, callingCode: number}) => Promise<void>;\n\n /**\n * Countries supported by the telephone control. The string is a\n * regex pattern that will be used to filter supported countries.\n * So if you specify \".*\", it'll list all countries of the world.\n * \"TW|SG|MY\" restricts the coutries list to Taiwan, Singapore &\n * Malaysia.\n */\n countries?: string;\n}\n\n\nexport const QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER = new InjectionToken<QQMatTelephoneInputConfig>(\n 'QQMatTelephoneInputConfigProvider'\n);\n","// Array of country objects for the flag dropdown.\n\n// Here is the criteria for the plugin to support a given country/territory\n// - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n// - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes\n// - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png\n// - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml\n\n// Each country array has the following information:\n// [\n// Country name,\n// iso2 code,\n// International dial code,\n// ]\nexport const COUNTRY_CODES = [\n { name: \"Afghanistan (افغانستان)\", code: \"AF\", callingCode: 93 },\n { name: \"Albania (Shqipëri)\", code: \"AL\", callingCode: 355 },\n { name: \"Algeria (الجزائر)\", code: \"DZ\", callingCode: 213 },\n { name: \"American Samoa\", code: \"AS\", callingCode: 1 },\n { name: \"Andorra\", code: \"AD\", callingCode: 376 },\n { name: \"Angola\", code: \"AO\", callingCode: 244 },\n { name: \"Anguilla\", code: \"AI\", callingCode: 1 },\n { name: \"Antigua and Barbuda\", code: \"AG\", callingCode: 1 },\n { name: \"Argentina\", code: \"AR\", callingCode: 54 },\n { name: \"Armenia (Հայաստան)\", code: \"AM\", callingCode: 374 },\n { name: \"Aruba\", code: \"AW\", callingCode: 297 },\n { name: \"Ascension Island\", code: \"AC\", callingCode: 247 },\n { name: \"Australia\", code: \"AU\", callingCode: 61 },\n { name: \"Austria (Österreich)\", code: \"AT\", callingCode: 43 },\n { name: \"Azerbaijan (Azərbaycan)\", code: \"AZ\", callingCode: 994 },\n { name: \"Bahamas\", code: \"BS\", callingCode: 1 },\n { name: \"Bahrain (البحرين)\", code: \"BH\", callingCode: 973 },\n { name: \"Bangladesh (বাংলাদেশ)\", code: \"BD\", callingCode: 880 },\n { name: \"Barbados\", code: \"BB\", callingCode: 1 },\n { name: \"Belarus (Беларусь)\", code: \"BY\", callingCode: 375 },\n { name: \"Belgium (België)\", code: \"BE\", callingCode: 32 },\n { name: \"Belize\", code: \"BZ\", callingCode: 501 },\n { name: \"Benin (Bénin)\", code: \"BJ\", callingCode: 229 },\n { name: \"Bermuda\", code: \"BM\", callingCode: 1 },\n { name: \"Bhutan (འབྲུག)\", code: \"BT\", callingCode: 975 },\n { name: \"Bolivia\", code: \"BO\", callingCode: 591 },\n { name: \"Bosnia and Herzegovina (Босна и Херцеговина)\", code: \"BA\", callingCode: 387 },\n { name: \"Botswana\", code: \"BW\", callingCode: 267 },\n { name: \"Brazil (Brasil)\", code: \"BR\", callingCode: 55 },\n { name: \"British Indian Ocean Territory\", code: \"IO\", callingCode: 246 },\n { name: \"British Virgin Islands\", code: \"VG\", callingCode: 1 },\n { name: \"Brunei\", code: \"BN\", callingCode: 673 },\n { name: \"Bulgaria (България)\", code: \"BG\", callingCode: 359 },\n { name: \"Burkina Faso\", code: \"BF\", callingCode: 226 },\n { name: \"Burundi (Uburundi)\", code: \"BI\", callingCode: 257 },\n { name: \"Cambodia (កម្ពុជា)\", code: \"KH\", callingCode: 855 },\n { name: \"Cameroon (Cameroun)\", code: \"CM\", callingCode: 237 },\n { name: \"Canada\", code: \"CA\", callingCode: 1 },\n { name: \"Cape Verde (Kabu Verdi)\", code: \"CV\", callingCode: 238 },\n { name: \"Caribbean Netherlands\", code: \"BQ\", callingCode: 599 },\n { name: \"Cayman Islands\", code: \"KY\", callingCode: 1 },\n { name: \"Central African Republic (République centrafricaine)\", code: \"CF\", callingCode: 236 },\n { name: \"Chad (Tchad)\", code: \"TD\", callingCode: 235 },\n { name: \"Chile\", code: \"CL\", callingCode: 56 },\n { name: \"China (中国)\", code: \"CN\", callingCode: 86 },\n { name: \"Christmas Island\", code: \"CX\", callingCode: 61 },\n { name: \"Cocos (Keeling) Islands\", code: \"CC\", callingCode: 61 },\n { name: \"Colombia\", code: \"CO\", callingCode: 57 },\n { name: \"Comoros (جزر القمر)\", code: \"KM\", callingCode: 269 },\n { name: \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\", code: \"CD\", callingCode: 243 },\n { name: \"Congo (Republic) (Congo-Brazzaville)\", code: \"CG\", callingCode: 242 },\n { name: \"Cook Islands\", code: \"CK\", callingCode: 682 },\n { name: \"Costa Rica\", code: \"CR\", callingCode: 506 },\n { name: \"Côte d’Ivoire\", code: \"CI\", callingCode: 225 },\n { name: \"Croatia (Hrvatska)\", code: \"HR\", callingCode: 385 },\n { name: \"Cuba\", code: \"CU\", callingCode: 53 },\n { name: \"Curaçao\", code: \"CW\", callingCode: 599 },\n { name: \"Cyprus (Κύπρος)\", code: \"CY\", callingCode: 357 },\n { name: \"Czech Republic (Česká republika)\", code: \"CZ\", callingCode: 420 },\n { name: \"Denmark (Danmark)\", code: \"DK\", callingCode: 45 },\n { name: \"Djibouti\", code: \"DJ\", callingCode: 253 },\n { name: \"Dominica\", code: \"DM\", callingCode: 1 },\n { name: \"Dominican Republic (República Dominicana)\", code: \"DO\", callingCode: 1 },\n { name: \"Ecuador\", code: \"EC\", callingCode: 593 },\n { name: \"Egypt (مصر)\", code: \"EG\", callingCode: 20 },\n { name: \"El Salvador\", code: \"SV\", callingCode: 503 },\n { name: \"Equatorial Guinea (Guinea Ecuatorial)\", code: \"GQ\", callingCode: 240 },\n { name: \"Eritrea\", code: \"ER\", callingCode: 291 },\n { name: \"Estonia (Eesti)\", code: \"EE\", callingCode: 372 },\n { name: \"Eswatini\", code: \"SZ\", callingCode: 268 },\n { name: \"Ethiopia\", code: \"ET\", callingCode: 251 },\n { name: \"Falkland Islands (Islas Malvinas)\", code: \"FK\", callingCode: 500 },\n { name: \"Faroe Islands (Føroyar)\", code: \"FO\", callingCode: 298 },\n { name: \"Fiji\", code: \"FJ\", callingCode: 679 },\n { name: \"Finland (Suomi)\", code: \"FI\", callingCode: 358 },\n { name: \"France\", code: \"FR\", callingCode: 33 },\n { name: \"French Guiana (Guyane française)\", code: \"GF\", callingCode: 594 },\n { name: \"French Polynesia (Polynésie française)\", code: \"PF\", callingCode: 689 },\n { name: \"Gabon\", code: \"GA\", callingCode: 241 },\n { name: \"Gambia\", code: \"GM\", callingCode: 220 },\n { name: \"Georgia (საქართველო)\", code: \"GE\", callingCode: 995 },\n { name: \"Germany (Deutschland)\", code: \"DE\", callingCode: 49 },\n { name: \"Ghana (Gaana)\", code: \"GH\", callingCode: 233 },\n { name: \"Gibraltar\", code: \"GI\", callingCode: 350 },\n { name: \"Greece (Ελλάδα)\", code: \"GR\", callingCode: 30 },\n { name: \"Greenland (Kalaallit Nunaat)\", code: \"GL\", callingCode: 299 },\n { name: \"Grenada\", code: \"GD\", callingCode: 1 },\n { name: \"Guadeloupe\", code: \"GP\", callingCode: 590 },\n { name: \"Guam\", code: \"GU\", callingCode: 1 },\n { name: \"Guatemala\", code: \"GT\", callingCode: 502 },\n { name: \"Guernsey\", code: \"GG\", callingCode: 44 },\n { name: \"Guinea (Guinée)\", code: \"GN\", callingCode: 224 },\n { name: \"Guinea-Bissau (Guiné Bissau)\", code: \"GW\", callingCode: 245 },\n { name: \"Guyana\", code: \"GY\", callingCode: 592 },\n { name: \"Haiti\", code: \"HT\", callingCode: 509 },\n { name: \"Honduras\", code: \"HN\", callingCode: 504 },\n { name: \"Hong Kong (香港)\", code: \"HK\", callingCode: 852 },\n { name: \"Hungary (Magyarország)\", code: \"HU\", callingCode: 36 },\n { name: \"Iceland (Ísland)\", code: \"IS\", callingCode: 354 },\n { name: \"India (भारत)\", code: \"IN\", callingCode: 91 },\n { name: \"Indonesia\", code: \"ID\", callingCode: 62 },\n { name: \"Iran (ایران)\", code: \"IR\", callingCode: 98 },\n { name: \"Iraq (العراق)\", code: \"IQ\", callingCode: 964 },\n { name: \"Ireland\", code: \"IE\", callingCode: 353 },\n { name: \"Isle of Man\", code: \"IM\", callingCode: 44 },\n { name: \"Israel (ישראל)\", code: \"IL\", callingCode: 972 },\n { name: \"Italy (Italia)\", code: \"IT\", callingCode: 39 },\n { name: \"Jamaica\", code: \"JM\", callingCode: 1 },\n { name: \"Japan (日本)\", code: \"JP\", callingCode: 81 },\n { name: \"Jersey\", code: \"JE\", callingCode: 44 },\n { name: \"Jordan (الأردن)\", code: \"JO\", callingCode: 962 },\n { name: \"Kazakhstan (Казахстан)\", code: \"KZ\", callingCode: 7 },\n { name: \"Kenya\", code: \"KE\", callingCode: 254 },\n { name: \"Kiribati\", code: \"KI\", callingCode: 686 },\n { name: \"Kosovo\", code: \"XK\", callingCode: 383 },\n { name: \"Kuwait (الكويت)\", code: \"KW\", callingCode: 965 },\n { name: \"Kyrgyzstan (Кыргызстан)\", code: \"KG\", callingCode: 996 },\n { name: \"Laos (ລາວ)\", code: \"LA\", callingCode: 856 },\n { name: \"Latvia (Latvija)\", code: \"LV\", callingCode: 371 },\n { name: \"Lebanon (لبنان)\", code: \"LB\", callingCode: 961 },\n { name: \"Lesotho\", code: \"LS\", callingCode: 266 },\n { name: \"Liberia\", code: \"LR\", callingCode: 231 },\n { name: \"Libya (ليبيا)\", code: \"LY\", callingCode: 218 },\n { name: \"Liechtenstein\", code: \"LI\", callingCode: 423 },\n { name: \"Lithuania (Lietuva)\", code: \"LT\", callingCode: 370 },\n { name: \"Luxembourg\", code: \"LU\", callingCode: 352 },\n { name: \"Macau (澳門)\", code: \"MO\", callingCode: 853 },\n { name: \"North Macedonia (Македонија)\", code: \"MK\", callingCode: 389 },\n { name: \"Madagascar (Madagasikara)\", code: \"MG\", callingCode: 261 },\n { name: \"Malawi\", code: \"MW\", callingCode: 265 },\n { name: \"Malaysia\", code: \"MY\", callingCode: 60 },\n { name: \"Maldives\", code: \"MV\", callingCode: 960 },\n { name: \"Mali\", code: \"ML\", callingCode: 223 },\n { name: \"Malta\", code: \"MT\", callingCode: 356 },\n { name: \"Marshall Islands\", code: \"MH\", callingCode: 692 },\n { name: \"Martinique\", code: \"MQ\", callingCode: 596 },\n { name: \"Mauritania (موريتانيا)\", code: \"MR\", callingCode: 222 },\n { name: \"Mauritius (Moris)\", code: \"MU\", callingCode: 230 },\n { name: \"Mayotte\", code: \"YT\", callingCode: 262 },\n { name: \"Mexico (México)\", code: \"MX\", callingCode: 52 },\n { name: \"Micronesia\", code: \"FM\", callingCode: 691 },\n { name: \"Moldova (Republica Moldova)\", code: \"MD\", callingCode: 373 },\n { name: \"Monaco\", code: \"MC\", callingCode: 377 },\n { name: \"Mongolia (Монгол)\", code: \"MN\", callingCode: 976 },\n { name: \"Montenegro (Crna Gora)\", code: \"ME\", callingCode: 382 },\n { name: \"Montserrat\", code: \"MS\", callingCode: 1 },\n { name: \"Morocco (المغرب)\", code: \"MA\", callingCode: 212 },\n { name: \"Mozambique (Moçambique)\", code: \"MZ\", callingCode: 258 },\n { name: \"Myanmar (Burma) (မြန်မာ)\", code: \"MM\", callingCode: 95 },\n { name: \"Namibia (Namibië)\", code: \"NA\", callingCode: 264 },\n { name: \"Nauru\", code: \"NR\", callingCode: 674 },\n { name: \"Nepal (नेपाल)\", code: \"NP\", callingCode: 977 },\n { name: \"Netherlands (Nederland)\", code: \"NL\", callingCode: 31 },\n { name: \"New Caledonia (Nouvelle-Calédonie)\", code: \"NC\", callingCode: 687 },\n { name: \"New Zealand\", code: \"NZ\", callingCode: 64 },\n { name: \"Nicaragua\", code: \"NI\", callingCode: 505 },\n { name: \"Niger (Nijar)\", code: \"NE\", callingCode: 227 },\n { name: \"Nigeria\", code: \"NG\", callingCode: 234 },\n { name: \"Niue\", code: \"NU\", callingCode: 683 },\n { name: \"Norfolk Island\", code: \"NF\", callingCode: 672 },\n { name: \"North Korea (조선 민주주의 인민 공화국)\", code: \"KP\", callingCode: 850 },\n { name: \"Northern Mariana Islands\", code: \"MP\", callingCode: 1 },\n { name: \"Norway (Norge)\", code: \"NO\", callingCode: 47 },\n { name: \"Oman (عُمان)\", code: \"OM\", callingCode: 968 },\n { name: \"Pakistan (پاکستان)\", code: \"PK\", callingCode: 92 },\n { name: \"Palau\", code: \"PW\", callingCode: 680 },\n { name: \"Palestine (فلسطين)\", code: \"PS\", callingCode: 970 },\n { name: \"Panama (Panamá)\", code: \"PA\", callingCode: 507 },\n { name: \"Papua New Guinea\", code: \"PG\", callingCode: 675 },\n { name: \"Paraguay\", code: \"PY\", callingCode: 595 },\n { name: \"Peru (Perú)\", code: \"PE\", callingCode: 51 },\n { name: \"Philippines\", code: \"PH\", callingCode: 63 },\n { name: \"Poland (Polska)\", code: \"PL\", callingCode: 48 },\n { name: \"Portugal\", code: \"PT\", callingCode: 351 },\n { name: \"Puerto Rico\", code: \"PR\", callingCode: 1 },\n { name: \"Qatar (قطر)\", code: \"QA\", callingCode: 974 },\n { name: \"Réunion (La Réunion)\", code: \"RE\", callingCode: 262 },\n { name: \"Romania (România)\", code: \"RO\", callingCode: 40 },\n { name: \"Russia (Россия)\", code: \"RU\", callingCode: 7 },\n { name: \"Rwanda\", code: \"RW\", callingCode: 250 },\n { name: \"Saint Barthélemy\", code: \"BL\", callingCode: 590 },\n { name: \"Saint Helena\", code: \"SH\", callingCode: 290 },\n { name: \"Saint Kitts and Nevis\", code: \"KN\", callingCode: 1 },\n { name: \"Saint Lucia\", code: \"LC\", callingCode: 1 },\n { name: \"Saint Martin (Saint-Martin (partie française))\", code: \"MF\", callingCode: 590 },\n { name: \"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\", code: \"PM\", callingCode: 508 },\n { name: \"Saint Vincent and the Grenadines\", code: \"VC\", callingCode: 1 },\n { name: \"Samoa\", code: \"WS\", callingCode: 685 },\n { name: \"San Marino\", code: \"SM\", callingCode: 378 },\n { name: \"São Tomé and Príncipe (São Tomé e Príncipe)\", code: \"ST\", callingCode: 239 },\n { name: \"Saudi Arabia (المملكة العربية السعودية)\", code: \"SA\", callingCode: 966 },\n { name: \"Senegal (Sénégal)\", code: \"SN\", callingCode: 221 },\n { name: \"Serbia (Србија)\", code: \"RS\", callingCode: 381 },\n { name: \"Seychelles\", code: \"SC\", callingCode: 248 },\n { name: \"Sierra Leone\", code: \"SL\", callingCode: 232 },\n { name: \"Singapore\", code: \"SG\", callingCode: 65 },\n { name: \"Sint Maarten\", code: \"SX\", callingCode: 1 },\n { name: \"Slovakia (Slovensko)\", code: \"SK\", callingCode: 421 },\n { name: \"Slovenia (Slovenija)\", code: \"SI\", callingCode: 386 },\n { name: \"Solomon Islands\", code: \"SB\", callingCode: 677 },\n { name: \"Somalia (Soomaaliya)\", code: \"SO\", callingCode: 252 },\n { name: \"South Africa\", code: \"ZA\", callingCode: 27 },\n { name: \"South Korea (대한민국)\", code: \"KR\", callingCode: 82 },\n { name: \"South Sudan (جنوب السودان)\", code: \"SS\", callingCode: 211 },\n { name: \"Spain (España)\", code: \"ES\", callingCode: 34 },\n { name: \"Sri Lanka (ශ්රී ලංකාව)\", code: \"LK\", callingCode: 94 },\n { name: \"Sudan (السودان)\", code: \"SD\", callingCode: 249 },\n { name: \"Suriname\", code: \"SR\", callingCode: 597 },\n { name: \"Svalbard and Jan Mayen\", code: \"SJ\", callingCode: 47 },\n { name: \"Sweden (Sverige)\", code: \"SE\", callingCode: 46 },\n { name: \"Switzerland (Schweiz)\", code: \"CH\", callingCode: 41 },\n { name: \"Syria (سوريا)\", code: \"SY\", callingCode: 963 },\n { name: \"Taiwan (台灣)\", code: \"TW\", callingCode: 886 },\n { name: \"Tajikistan\", code: \"TJ\", callingCode: 992 },\n { name: \"Tanzania\", code: \"TZ\", callingCode: 255 },\n { name: \"Thailand (ไทย)\", code: \"TH\", callingCode: 66 },\n { name: \"Timor-Leste\", code: \"TL\", callingCode: 670 },\n { name: \"Togo\", code: \"TG\", callingCode: 228 },\n { name: \"Tokelau\", code: \"TK\", callingCode: 690 },\n { name: \"Tonga\", code: \"TO\", callingCode: 676 },\n { name: \"Trinidad and Tobago\", code: \"TT\", callingCode: 1 },\n { name: \"Tunisia (تونس)\", code: \"TN\", callingCode: 216 },\n { name: \"Turkey (Türkiye)\", code: \"TR\", callingCode: 90 },\n { name: \"Turkmenistan\", code: \"TM\", callingCode: 993 },\n { name: \"Turks and Caicos Islands\", code: \"TC\", callingCode: 1 },\n { name: \"Tuvalu\", code: \"TV\", callingCode: 688 },\n { name: \"U.S. Virgin Islands\", code: \"VI\", callingCode: 1 },\n { name: \"Uganda\", code: \"UG\", callingCode: 256 },\n { name: \"Ukraine (Україна)\", code: \"UA\", callingCode: 380 },\n { name: \"United Arab Emirates (الإمارات العربية المتحدة)\", code: \"AE\", callingCode: 971 },\n { name: \"United Kingdom\", code: \"GB\", callingCode: 44 },\n { name: \"United States\", code: \"US\", callingCode: 1 },\n { name: \"Uruguay\", code: \"UY\", callingCode: 598 },\n { name: \"Uzbekistan (Oʻzbekiston)\", code: \"UZ\", callingCode: 998 },\n { name: \"Vanuatu\", code: \"VU\", callingCode: 678 },\n { name: \"Vatican City (Città del Vaticano)\", code: \"VA\", callingCode: 39 },\n { name: \"Venezuela\", code: \"VE\", callingCode: 58 },\n { name: \"Vietnam (Việt Nam)\", code: \"VN\", callingCode: 84 },\n { name: \"Wallis and Futuna (Wallis-et-Futuna)\", code: \"WF\", callingCode: 681 },\n { name: \"Western Sahara (الصحراء الغربية)\", code: \"EH\", callingCode: 212 },\n { name: \"Yemen (اليمن)\", code: \"YE\", callingCode: 967 },\n { name: \"Zambia\", code: \"ZM\", callingCode: 260 },\n { name: \"Zimbabwe\", code: \"ZW\", callingCode: 263 },\n { name: \"Åland Islands\", code: \"AX\", callingCode: 358 }\n];\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport {\n MAT_FORM_FIELD,\n MatFormField,\n MatFormFieldControl,\n} from '@angular/material/form-field';\nimport { PhoneNumberType, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, NEVER, ReplaySubject, Subject } from 'rxjs';\nimport { catchError, map, take, takeUntil, tap } from 'rxjs/operators';\nimport { COUNTRY_CODES } from './country-codes';\nimport { QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER } from './providers';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport {\n MatSelect,\n MatSelectChange,\n MatSelectModule,\n} from '@angular/material/select';\n\ninterface CountryInfo {\n name: string;\n code: string;\n callingCode: number;\n}\n\nconst ALL_COUNTRIES_CALLING_CODES = '.*';\n\n/** Data structure for holding telephone number. */\nexport class ISOTelNumber {\n constructor(public country: string, public national: string) {}\n}\n\ntype TelephoneNumberParts = CountryInfo & { nationalNumber: string };\n\n@Component({\n selector: 'sp-mat-telephone-input',\n template: `\n <!--\n <div\n rol=\"group\"\n class=\"tel-input-wrapper\"\n [formGroup]=\"parts\"\n [attr.aria-labelledby]=\"_formField?.getLabelId()\"\n (focusin)=\"onFocusIn($event)\"\n (focusout)=\"onFocusOut($event)\"\n >\n <select\n #countryCodeSelector\n title=\"Country Code\"\n formControlName=\"country\"\n (change)=\"onCountryChange($event)\"\n >\n <option\n *ngFor=\"let c of filteredCountries | async\"\n value=\"{{ c.code }}\"\n [attr.data-descr]=\"c.name + '.' + c.callingCode\"\n >\n {{ c.name }} +{{ c.callingCode }}\n </option>\n </select>\n <input\n #nationalNumberInput\n formControlName=\"national\"\n type=\"tel\"\n (input)=\"onNationalNumberChange($event)\"\n />\n </div>\n -->\n <div class=\"tel-input-wrapper\" [formGroup]=\"parts\">\n <mat-select\n #countryCodeSelector\n formControlName=\"country\"\n (selectionChange)=\"onCountryChange($event)\"\n >\n <mat-option>\n <ngx-mat-select-search\n [placeholderLabel]=\"searchText\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [formControl]=\"countryFilterCtrl\"\n ></ngx-mat-select-search>\n </mat-option>\n @for (c of filteredCountries | async; track c) {\n <mat-option\n [value]=\"c\"\n [attr.data-descr]=\"c.name + '.' + c.callingCode\"\n >\n {{ c.name }} +{{ c.callingCode }}\n </mat-option>\n }\n </mat-select>\n <input\n style=\"padding-left: 4px\"\n #nationalNumberInput\n formControlName=\"national\"\n type=\"tel\"\n (input)=\"onNationalNumberChange($event)\"\n />\n </div>\n `,\n styles: `\n .tel-input-wrapper {\n display: flex;\n padding: 1px 1px 1px 1px;\n }\n .error-border {\n border-color: red;\n }\n .box-border {\n border-bottom: 1px solid gray;\n border-radius: 4px;\n }\n mat-select {\n display: inline-block;\n border: none;\n outline: none;\n scroll-behavior: smooth;\n background: none;\n width: 30%;\n }\n mat-select:focus {\n border: none;\n outline: none;\n background: none;\n scroll-behavior: smooth;\n }\n input {\n flex: 1 1 auto;\n background: none;\n border: none;\n }\n input:focus {\n border: none;\n outline: none;\n }\n `,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ],\n providers: [\n { provide: MatFormFieldControl, useExisting: SPMatTelephoneInputComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SPMatTelephoneInputComponent\n implements\n OnInit,\n OnDestroy,\n ControlValueAccessor,\n MatFormFieldControl<ISOTelNumber>\n{\n static nextId = 0;\n\n @ViewChild('countryCodeSelector', { static: true }) countrySelect!: MatSelect;\n @ViewChild('nationalNumberInput') nationalInput!: ElementRef;\n\n @Input() mobile = false;\n // A regular expression specified as a string. This will be used to\n // construct a RegExp object, by passing it as the argument.\n @Input() allowedCountries!: string;\n @Input() defaultCountry: string = '';\n\n filter$ = new BehaviorSubject<string>('');\n countries$ = this.filter$.pipe(\n map((searchStr) => {\n const countries = new Array<CountryInfo>();\n const searchStrLower = searchStr.toLocaleLowerCase();\n this.countries.forEach((country) => {\n if (\n `${country.callingCode} ${country.code} ${country.name}`\n .toLocaleLowerCase()\n .includes(searchStrLower)\n ) {\n countries.push(country);\n }\n });\n return countries;\n })\n );\n\n countries: Array<CountryInfo> = [];\n public filteredCountries: ReplaySubject<CountryInfo[]> = new ReplaySubject<\n CountryInfo[]\n >(1);\n\n isDisabled = false;\n\n private _onChange = (_: any) => {};\n private control!: UntypedFormControl;\n private onCountrySelectFocus!: () => void;\n private onCountrySelectBlur!: () => void;\n\n phoneUtil: any = PhoneNumberUtil.getInstance();\n\n parts: FormGroup<{\n country: FormControl<CountryInfo | null>;\n national: FormControl<string | null>;\n }>;\n stateChanges = new Subject<void>();\n focused = false;\n touched = false;\n controlType = 'qq-tel-input';\n id = `qq-tel-input-${SPMatTelephoneInputComponent.nextId++}`;\n onChange = (_: any) => {};\n onTouched = () => {};\n\n public telForm = new FormGroup({});\n /** control for the MatSelect filter keyword */\n public countryFilterCtrl = new FormControl<string>('');\n\n get empty() {\n const {\n value: { country, national },\n } = this.parts;\n\n return !country && !national;\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n @Input('aria-describedby') userAriaDescribedBy!: string;\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required);\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required!: boolean;\n\n @Input() searchText = '';\n @Input() noEntriesFoundLabel = 'Not found';\n\n @Input()\n get disabled(): boolean {\n return this._disabled ?? this.ngControl?.control?.disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n private _disabled!: boolean;\n destroy = new Subject<void>();\n\n @Input()\n get value(): ISOTelNumber | null {\n if (this.parts.valid) {\n const {\n value: { country, national },\n } = this.parts;\n return new ISOTelNumber(`${country!.callingCode}`, national!);\n }\n return null;\n }\n set value(tel: ISOTelNumber | null) {\n const { country, national } = tel || new ISOTelNumber('', '');\n let ci: CountryInfo | undefined;\n if (country) {\n ci = this.countries.find(\n (ci: CountryInfo) => `${ci.callingCode}` == country\n );\n }\n // this.phoneUtil.\n this.parts.setValue({ country: ci!, national });\n this.stateChanges.next();\n }\n\n get errorState(): boolean {\n return this.parts.invalid && this.touched;\n }\n\n onFocusIn(event: FocusEvent) {\n if (!this.focused) {\n this.focused = true;\n this.stateChanges.next();\n }\n }\n\n onFocusOut(event: FocusEvent) {\n if (\n !this._elementRef.nativeElement.contains(event.relatedTarget as Element)\n ) {\n this.touched = true;\n this.focused = false;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement\n ): void {\n if (!control.errors && nextElement) {\n this._focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n autoFocusPrev(control: AbstractControl, prevElement: HTMLInputElement): void {\n if (control.value.length < 1) {\n this._focusMonitor.focusVia(prevElement, 'program');\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement = this._elementRef.nativeElement.querySelector(\n '.qq-tel-input-container'\n )!;\n if (controlElement) {\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n }\n\n onContainerClick() {\n // this._focusMonitor.focusVia(this.countrySelect, 'program');\n // if (this.parts.controls.national.valid) {\n // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // } else if (this.parts.controls.country.valid) {\n // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // // } else if (this.parts.controls.national.valid) {\n // // this._focusMonitor.focusVia(this.nationalInput, 'program');\n // } else {\n // this._focusMonitor.focusVia(this.countrySelect, 'program');\n // }\n }\n\n constructor(\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n @Optional() @Inject(MAT_FORM_FIELD) public _formField: MatFormField,\n @Optional() @Self() public ngControl: NgControl,\n formBuilder: FormBuilder\n ) {\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n this.parts = formBuilder.group({\n country: [undefined as unknown as CountryInfo, Validators.required],\n national: ['', Validators.required],\n });\n\n this.initCountries();\n }\n\n ngOnInit(): void {\n this.initCountries();\n // this.onCountrySelectFocus = () => {\n // const options = (this.countrySelect.nativeElement as HTMLSelectElement).options;\n // [].forEach.call(options, function(o: any) {\n // const countryInfo: string = o.getAttribute('data-descr');\n // const [name, callingCode] = countryInfo.split('.');\n // o.textContent = name + ' (' + callingCode + ')';\n // });\n // }\n // this.onCountrySelectBlur = () => {\n // const options = (this.countrySelect.nativeElement as HTMLSelectElement).options;\n // [].forEach.call(options, function(o: any) {\n // const countryInfo: string = o.getAttribute('data-descr');\n // const [name, callingCode] = countryInfo.split('.');\n // o.textContent = '+' + callingCode;\n // });\n // }\n // this.countrySelect.nativeElement.addEventListener('focus', this.onCountrySelectFocus);\n // this.countrySelect.nativeElement.addEventListener('blur', this.onCountrySelectBlur);\n\n if (this.defaultCountry) {\n const country = this.countries.find(\n (ci) => ci.code == this.defaultCountry\n );\n this.parts.controls.country.setValue(country!);\n }\n\n this.filteredCountries.next(this.countries.slice());\n\n // listen for search field value changes\n this.countryFilterCtrl.valueChanges\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n this.filterCountries();\n });\n }\n\n protected setInitialValue() {\n this.filteredCountries\n .pipe(take(1), takeUntil(this.destroy))\n .subscribe(() => {\n // Setting the compareWith property to a comparison function\n // triggers initializing the selection according to the initial value of\n // the form control (i.e. _initializeSelection()).\n // This needs to be done after the filteredCountries are loaded\n // initially and after the mat-option elements are available.\n this.countrySelect.compareWith = (a: CountryInfo, b: CountryInfo) =>\n a && b && a.code === b.code;\n });\n }\n\n private filterCountries() {\n if (!this.countries) {\n return;\n }\n // get the search keyword\n let search = this.countryFilterCtrl.value;\n if (!search) {\n this.filteredCountries.next(this.countries.slice());\n return;\n }\n search = search.toLowerCase();\n // filter the banks\n this.filteredCountries.next(\n this.countries.filter(\n (country) =>\n country.name.toLowerCase().indexOf(search!) > -1 ||\n country.callingCode.toString().indexOf(search!) > -1 ||\n country.code.toLowerCase().indexOf(search!) > -1\n )\n );\n }\n\n ngAfterViewInit() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.control = ngControl.control as UntypedFormControl;\n }\n this.disableComponents();\n\n if (!this.parts.controls.country.value) {\n this.detectCountry();\n } else {\n this.setInitialValue();\n }\n }\n\n ngOnDestroy() {\n // this.countrySelect.nativeElement.removeAllListners();\n this.destroy.next();\n this.destroy.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /**\n * Set the country code to the given code.\n *\n * @param code Numeric country code to set the value of the country\n * ion-select to. Will validate the code against a built-in country\n * code list.\n */\n setCountryCode(code: string) {\n code = code.trim();\n if (code.startsWith('+')) {\n code = code.substring(1);\n }\n for (let index = 0; index < this.countries.length; index++) {\n const country = this.countries[index];\n if (`${country.callingCode}` === code) {\n this.parts.controls.country.setValue(country);\n this.cdr.detectChanges();\n }\n }\n }\n\n // ControlValueAccessor interface methods\n writeValue(telNumber: string): void {\n // Check the supplied number string can be converted into a numeric value.\n try {\n if (telNumber) {\n const phoneNumber = this.phoneUtil.parse(telNumber);\n if (phoneNumber) {\n const cc = phoneNumber.getCountryCode();\n const country = this.countries.find((ci) => ci.callingCode === cc);\n if (country) {\n this.parts.controls.country.setValue(country);\n this.parts.controls.national.setValue(\n phoneNumber.getNationalNumber()\n );\n }\n }\n } else {\n // null value usually means form-reset. Clear national number\n // and leave selected country code intact.\n this.parts.controls.country.setValue(null);\n this.parts.controls.national.setValue(null);\n this.parts.controls.country.setErrors(null);\n this.parts.controls.national.setErrors(null);\n this.parts.setErrors(null);\n }\n this.cdr.detectChanges();\n } catch (error) {\n // empty\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n if (this.countrySelect && this.nationalInput) {\n this.disableComponents();\n }\n }\n\n onCountryChange(ev: MatSelectChange) {\n const telNumberParts = this.getTelephoneNumberParts();\n if (telNumberParts) {\n this.notifyChange(telNumberParts);\n this.control.setErrors(null);\n } else {\n if (this.control) {\n this.control.setErrors({ invalidPhoneNumber: true });\n this.cdr.detectChanges();\n }\n }\n }\n\n onNationalNumberChange(ev: Event) {\n const telNumberParts = this.getTelephoneNumberParts();\n if (telNumberParts) {\n this.notifyChange(telNumberParts);\n this.control.setErrors(null);\n } else {\n if (this.control) {\n this.control.setErrors({ invalidPhoneNumber: true });\n this.cdr.detectChanges();\n }\n }\n }\n\n /**\n * Returns the telephone number in ISO8601 format.\n * @param numberParts\n * @returns\n */\n private ISOTelephoneNumber(\n numberParts: CountryInfo & { nationalNumber: string }\n ) {\n return `+${numberParts.callingCode}${numberParts.nationalNumber}`;\n }\n\n private notifyChange(numberParts: CountryInfo & { nationalNumber: string }) {\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n if (geoLocationProvider && geoLocationProvider.saveCountrySelection) {\n geoLocationProvider\n .saveCountrySelection(numberParts)\n .then(() => this._onChange(this.ISOTelephoneNumber(numberParts)))\n .catch(() => {});\n } else {\n this._onChange(this.ISOTelephoneNumber(numberParts));\n }\n }\n\n get placeholderText() {\n let placeholderText = this.placeholder;\n if (this.required) {\n placeholderText = placeholderText + '*';\n }\n return placeholderText;\n }\n\n get hasErrors() {\n return this.control && this.control.hasError('invalidPhoneNumber');\n }\n\n private disableComponents() {\n const action = this.isDisabled ? 'addClass' : 'removeClass';\n if (this.countrySelect) {\n //this.countryCodeSelector.disabled = this.isDisabled;\n }\n if (this.nationalInput) {\n //this.nationalNumberInput.disabled = this.isDisabled;\n }\n }\n\n /**\n * Returns the full telephone number, combining the selected\n * country code with the national number.\n *\n * Leading zeros in the national number are removed.\n *\n * Validates the entered number using google-libphonenumber and if\n * invalid, returns an empty string.\n */\n private getTelephoneNumberParts(): TelephoneNumberParts | null {\n const selectedCountry: CountryInfo | null =\n this.parts.controls.country.value;\n const nationalNumber = this.parts.controls.national.value;\n if (nationalNumber) {\n const ci = this.countries.find(\n (ci: CountryInfo) => ci.callingCode == selectedCountry!.callingCode\n );\n if (ci) {\n try {\n const phoneNumber = this.phoneUtil.parse(nationalNumber, ci.code);\n if (this.phoneUtil.isValidNumberForRegion(phoneNumber, ci!.code)) {\n const numberType = this.phoneUtil.getNumberType(phoneNumber);\n // console.log(`Valid phone number for country ${ci.code}: ${this.phoneUtil.format(phoneNumber, PhoneNumberFormat.E164)}, type: ${numberType}`);\n if (!this.mobile || numberType === PhoneNumberType.MOBILE) {\n // const fullNumber = this.phoneUtil.format(phoneNumber, PhoneNumberFormat.E164);\n // console.log('full tel number:', fullNumber);\n return {\n ...ci,\n nationalNumber: nationalNumber,\n };\n }\n }\n } catch (error) {\n // do nothing\n }\n }\n }\n return null;\n }\n\n private getAllowedCountries() {\n if (this.allowedCountries) {\n return this.allowedCountries;\n }\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n return geoLocationProvider && geoLocationProvider.countries\n ? geoLocationProvider.countries\n : ALL_COUNTRIES_CALLING_CODES;\n }\n\n private detectCountry() {\n const geoLocationProvider = this.injector.get(\n QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER,\n null\n );\n if (geoLocationProvider && geoLocationProvider.getCountryCode) {\n geoLocationProvider\n .getCountryCode(this.http)\n .pipe(\n tap((res) => {\n // console.log(`detectCountry response: ${JSON.stringify(res)}`);\n if (res.countryCode) {\n const cc = COUNTRY_CODES.find((cc) => cc.code == res.countryCode);\n if (cc && !this.parts.controls.country.value) {\n this.parts.controls.country.setValue(cc);\n this.cdr.detectChanges();\n }\n }\n }),\n catchError((err) => {\n // console.log(`detectCountry error: ${JSON.stringify(err)}`);\n return NEVER;\n })\n )\n .subscribe();\n } else {\n // console.log(`QQMAT_TELEPHONE_INPUT_CONFIG_PROVIDER not available`);\n }\n }\n\n // Initialize this.countries if it's not already been initialized.\n private initCountries() {\n if (!this.countries.length) {\n // determine countries we support\n const ccRegex = new RegExp(this.getAllowedCountries());\n COUNTRY_CODES.forEach((c) => {\n if (ccRegex.test(c.code)) {\n this.countries.push(c);\n }\n });\n this.countries = this.countries.sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -63,8 +63,8 @@ class FieldsRendererComponent {
|
|
|
63
63
|
this.cdr = cdr;
|
|
64
64
|
}
|
|
65
65
|
ngOnInit() { }
|
|
66
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
66
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldsRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: FieldsRendererComponent, isStandalone: true, selector: "sp-fields-renderer", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
68
68
|
@if (isString()) {
|
|
69
69
|
{{ stringValue() }}
|
|
70
70
|
} @else {
|
|
@@ -83,7 +83,7 @@ class FieldsRendererComponent {
|
|
|
83
83
|
}
|
|
84
84
|
`, isInline: true, styles: [".field-values{padding:.2em 0;text-align:end}tr td:first-of-type{padding-right:1em}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: FieldsRendererComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
88
|
args: [{ imports: [AsyncPipe], selector: 'sp-fields-renderer', template: `
|
|
89
89
|
@if (isString()) {
|
|
@@ -165,8 +165,8 @@ class StationaryWithLineItemsComponent {
|
|
|
165
165
|
}
|
|
166
166
|
return of('');
|
|
167
167
|
}
|
|
168
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
169
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
168
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: StationaryWithLineItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: StationaryWithLineItemsComponent, isStandalone: true, selector: "sp-stationary-with-line-items", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, number: { classPropertyName: "number", publicName: "number", isSignal: true, isRequired: false, transformFunction: null }, leftHeader: { classPropertyName: "leftHeader", publicName: "leftHeader", isSignal: true, isRequired: false, transformFunction: null }, leftHeaderTemplate: { classPropertyName: "leftHeaderTemplate", publicName: "leftHeaderTemplate", isSignal: true, isRequired: false, transformFunction: null }, rightHeader: { classPropertyName: "rightHeader", publicName: "rightHeader", isSignal: true, isRequired: false, transformFunction: null }, rightHeaderTemplate: { classPropertyName: "rightHeaderTemplate", publicName: "rightHeaderTemplate", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, leftFooter: { classPropertyName: "leftFooter", publicName: "leftFooter", isSignal: true, isRequired: false, transformFunction: null }, leftFooterTemplate: { classPropertyName: "leftFooterTemplate", publicName: "leftFooterTemplate", isSignal: true, isRequired: false, transformFunction: null }, rightFooter: { classPropertyName: "rightFooter", publicName: "rightFooter", isSignal: true, isRequired: false, transformFunction: null }, rightFooterTemplate: { classPropertyName: "rightFooterTemplate", publicName: "rightFooterTemplate", isSignal: true, isRequired: false, transformFunction: null }, itemFieldName: { classPropertyName: "itemFieldName", publicName: "itemFieldName", isSignal: true, isRequired: false, transformFunction: null }, itemColumnFields: { classPropertyName: "itemColumnFields", publicName: "itemColumnFields", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
170
170
|
<div class="stationary-wrapper mat-body">
|
|
171
171
|
<div class="title">{{ title() }}</div>
|
|
172
172
|
@if (number()) {
|
|
@@ -270,7 +270,7 @@ class StationaryWithLineItemsComponent {
|
|
|
270
270
|
</div>
|
|
271
271
|
`, isInline: true, styles: [".stationary-wrapper{padding:2em 1em}.title{font-size:1.6em;font-weight:600;text-align:end;margin-bottom:.5em}.number{font-size:1.1em;font-weight:500;text-align:end;margin-bottom:.5em}.header,.footer{display:flex;flex-direction:row;margin-top:1em}.left-header,.left-footer{display:flex;align-items:bottom;text-align:start;padding-right:1em;min-width:50%;overflow-wrap:break-word;text-wrap:wrap}.right-header,.right-footer{display:flex;justify-content:flex-end;min-width:50%;overflow:clip}.items{margin:2em 0}.items table{width:100%;border:0px solid lightgray}.items table thead{background-color:#000;color:#fff}.items table thead th{padding:.4em}.items table td{padding:.8em .4em;border-bottom:1px solid lightgray;border-right:0px solid lightgray}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FieldsRendererComponent, selector: "sp-fields-renderer", inputs: ["entity", "fields"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
272
272
|
}
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: StationaryWithLineItemsComponent, decorators: [{
|
|
274
274
|
type: Component,
|
|
275
275
|
args: [{ imports: [
|
|
276
276
|
CommonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smallpearl-ngx-helper-stationary-with-line-items.mjs","sources":["../../../../projects/smallpearl/ngx-helper/stationary-with-line-items/src/stationary-with-line-items.component.ts","../../../../projects/smallpearl/ngx-helper/stationary-with-line-items/smallpearl-ngx-helper-stationary-with-line-items.ts"],"sourcesContent":["import { AsyncPipe, CommonModule, UpperCasePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, OnInit, TemplateRef } from '@angular/core';\nimport { SP_ENTITY_FIELD_CONFIG, SPEntityField, SPEntityFieldSpec } from '@smallpearl/ngx-helper/entity-field';\nimport { Observable, of } from 'rxjs';\n\n\n// @Component({\n// standalone: true,\n// imports: [],\n// selector: 'sp-string-or-object-renderer',\n// template: `\n// @if (isString()) {\n// {{ value() }}\n// } @else {\n// <table>\n// @for (row of objectAsArray(); track $index) {\n// <tr>\n// @for (col of row; track $index) {\n// <td [style]=\"'text-align: ' + valueAlignment()\">{{ col }}</td>\n// }\n// </tr>\n// }\n// </table>\n// }\n// `,\n// changeDetection: ChangeDetectionStrategy.OnPush\n// })\n// export class StringOrObjectRendererComponent implements OnInit {\n// value = input.required<any>();\n// valueAlignment = input<string>()\n// isString = computed(() => typeof this.value() === 'string');\n// objectAsArray = computed(() => {\n// const arrayValues = [];\n// const value = this.value();\n// if (typeof value !== 'string') {\n// for (const key in this.value()) {\n// const keyValue = this.value()[key];\n// arrayValues.push([key, keyValue]);\n// }\n// }\n// return arrayValues;\n// });\n\n// constructor() { }\n\n// ngOnInit() { }\n// }\n\n@Component({\n imports: [AsyncPipe],\n selector: 'sp-fields-renderer',\n template: `\n @if (isString()) {\n {{ stringValue() }}\n } @else {\n <div class=\"\">\n <table>\n <tbody>\n @for (field of fields(); track $index) {\n <tr>\n <td [class]=\"field.class\">{{ field.label() | async }}:</td>\n <td [class]=\"field.class\">{{ field.value(entity()) }}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n `,\n styles: `\n .field-values {\n padding: 0.2em 0;\n text-align: end;\n }\n tr td:first-of-type {\n padding-right: 1em;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FieldsRendererComponent<TEntity extends { [P in IdKey]: PropertyKey }, IdKey extends string = 'id'> implements OnInit {\n entity = input.required<TEntity>();\n fields = input.required<SPEntityField<TEntity, IdKey>[]>();\n\n isString = computed(() => typeof this.fields() === 'string');\n // If the field is a single string, looks up entity's properties\n // for matching field name as the string and if it doesn't exist returns\n // the string itself as the value.\n stringValue = computed(() => {\n const fields = this.fields();\n if (typeof fields === 'string') {\n return (this.entity() as any)[fields] ?? fields;\n }\n return '';\n });\n\n constructor(public cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n}\n\n/**\n * A component that renders a stationary with line items, such as invoice,\n * payment receipt, bill, bill payment record, journal entry, etc. All these\n * documents have a uniform format and this component abstracts out the\n * information displayed in this type of document as properties that the client\n * can provide while it takes care of the rendering.\n *\n * Ideally we would declare this as a wrapper class with the actual rendering\n * to be performed by an inner replaceable component. This way the app will be\n * able to support multiple stationary designs, which eventually can be\n * chosen by the user. Perhaps even providing them a feature to design the\n * stationary.\n *\n * This is the first towards that long path ahead.\n */\n@Component({\n imports: [\n CommonModule,\n UpperCasePipe,\n FieldsRendererComponent\n ],\n selector: 'sp-stationary-with-line-items',\n template: `\n <div class=\"stationary-wrapper mat-body\">\n <div class=\"title\">{{ title() }}</div>\n @if (number()) {\n <div class=\"number\">#{{ number() }}</div>\n }\n <div class=\"header\">\n <div class=\"left-header\">\n @if (leftHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"leftHeaderTemplate() ?? null\"></ng-container>\n } @else {\n @if (leftHeader()) {\n @if (isString(leftHeader())) {\n {{ leftHeader() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_leftHeaderFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n <div class=\"right-header\">\n @if (rightHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"rightHeaderTemplate() ?? null\"></ng-container>\n } @else {\n @if (rightHeader()) {\n @if (isString(rightHeader())) {\n {{ rightHeader() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_rightHeaderFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n </div> <!-- end <div class=\"header\"> -->\n\n <!-- items -->\n @if (itemColumnFields()) {\n <div class=\"items\">\n <table>\n <thead>\n @for (field of _itemColumnFields(); track $index) {\n <th [class]=\"field.class\" [style.text-align]=\"field.spec.valueOptions?.alignment\">{{ (fieldLabel(field) | async) | uppercase }}</th>\n }\n </thead>\n <tbody>\n <!-- enumerate each element of the 'items' array and render the\n specified columns for each. -->\n @for (row of _items(); track $index) {\n <tr>\n @for (field of _itemColumnFields(); track $index) {\n <td [class]=\"field.class\" [style.text-align]=\"field.spec.valueOptions?.alignment\" [innerHtml]=\"field.value(row)\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!-- end items -->\n\n <!-- footer -->\n <div class=\"footer\">\n <div class=\"left-footer\">\n @if (leftFooterTemplate()) {\n <ng-container *ngTemplateOutlet=\"leftFooterTemplate() ?? null\"></ng-container>\n } @else {\n @if (leftFooter()) {\n @if (isString(leftFooter())) {\n {{ leftFooter() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_leftFooterFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n <div class=\"right-footer\">\n @if (rightFooterTemplate()) {\n <ng-container *ngTemplateOutlet=\"rightFooterTemplate() ?? null\"></ng-container>\n } @else {\n @if (rightFooter()) {\n @if (isString(rightFooter())) {\n {{ rightFooter() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_rightFooterFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n </div>\n </div>\n `,\n styles: `\n .stationary-wrapper {\n padding: 2em 1em;\n }\n .title {\n font-size: 1.6em;\n font-weight: 600;\n text-align: end;\n margin-bottom: 0.5em;\n }\n .number {\n font-size: 1.1em;\n font-weight: 500;\n text-align: end;\n margin-bottom: 0.5em;\n }\n .header, .footer {\n display: flex;\n flex-direction: row;\n margin-top: 1em;\n }\n .left-header, .left-footer {\n display: flex;\n align-items: bottom;\n text-align: start;\n padding-right: 1em;\n min-width: 50%;\n overflow-wrap: break-word;\n text-wrap: wrap;\n }\n .right-header, .right-footer {\n display: flex;\n justify-content: flex-end;\n min-width: 50%;\n overflow: clip;\n }\n .items {\n margin: 2em 0;\n }\n .items table {\n width: 100%;\n border: 0px solid lightgray;\n }\n .items table thead {\n background-color: black;\n color: white;\n & th {\n padding: 0.4em;\n }\n }\n .items table td {\n padding: 0.8em 0.4em;\n border-bottom: 1px solid lightgray;\n border-right: 0px solid lightgray\n }\n .footer {\n\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StationaryWithLineItemsComponent<TEntity extends { [P in IdKey]: PropertyKey }, TEntityLineItem extends { [P in IdKey]: PropertyKey }, IdKey extends string = 'id'> implements OnInit {\n entity = input.required<TEntity>();\n title = input.required<string>();\n number = input<string|number>();\n\n leftHeader = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _leftHeaderFields = computed(() => this.getSPEntityFields(this.leftHeader()));\n leftHeaderTemplate = input<TemplateRef<any>>();\n\n rightHeader = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _rightHeaderFields = computed(() => this.getSPEntityFields(this.rightHeader()));\n rightHeaderTemplate = input<TemplateRef<any>>();\n\n items = input<{[key: string]: string}[]>();\n\n leftFooter = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _leftFooterFields = computed(() => this.getSPEntityFields(this.leftFooter()));\n leftFooterTemplate = input<TemplateRef<any>>();\n\n rightFooter = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _rightFooterFields = computed(() => this.getSPEntityFields(this.rightFooter()));\n rightFooterTemplate = input<TemplateRef<any>>();\n\n itemFieldName = input<string>('items');\n itemColumnFields = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>>();\n _itemColumnFields = computed(() => this.getSPEntityFields(this.itemColumnFields()));\n\n _items = computed(() => (this.entity() as any)[this.itemFieldName()]);\n\n ngxEntityFieldConfig = inject(SP_ENTITY_FIELD_CONFIG, { optional: true })!;\n\n constructor() {}\n\n ngOnInit() {}\n\n isString(value: any) {\n return typeof value === 'string';\n }\n\n /**\n * Make the method a generic as we'll be using it for both TEntity and its\n * child TEntityLineItem objects.\n * @param fieldSpecs\n * @returns\n */\n getSPEntityFields<T>(fieldSpecs: Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string|undefined): Array<SPEntityField<TEntity, IdKey>> {\n if (fieldSpecs && typeof fieldSpecs !== 'string') {\n return fieldSpecs.map(spec => new SPEntityField<TEntity, IdKey>(spec, this.ngxEntityFieldConfig));\n }\n return [];\n }\n\n fieldLabel(field: SPEntityField<TEntity, IdKey>): Observable<string> {\n const label = field.label()\n if (label) {\n return label instanceof Observable ? label : of(label as string);\n }\n return of('');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smallpearl-ngx-helper-stationary-with-line-items.mjs","sources":["../../../../projects/smallpearl/ngx-helper/stationary-with-line-items/src/stationary-with-line-items.component.ts","../../../../projects/smallpearl/ngx-helper/stationary-with-line-items/smallpearl-ngx-helper-stationary-with-line-items.ts"],"sourcesContent":["import { AsyncPipe, CommonModule, UpperCasePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, OnInit, TemplateRef } from '@angular/core';\nimport { SP_ENTITY_FIELD_CONFIG, SPEntityField, SPEntityFieldSpec } from '@smallpearl/ngx-helper/entity-field';\nimport { Observable, of } from 'rxjs';\n\n\n// @Component({\n// standalone: true,\n// imports: [],\n// selector: 'sp-string-or-object-renderer',\n// template: `\n// @if (isString()) {\n// {{ value() }}\n// } @else {\n// <table>\n// @for (row of objectAsArray(); track $index) {\n// <tr>\n// @for (col of row; track $index) {\n// <td [style]=\"'text-align: ' + valueAlignment()\">{{ col }}</td>\n// }\n// </tr>\n// }\n// </table>\n// }\n// `,\n// changeDetection: ChangeDetectionStrategy.OnPush\n// })\n// export class StringOrObjectRendererComponent implements OnInit {\n// value = input.required<any>();\n// valueAlignment = input<string>()\n// isString = computed(() => typeof this.value() === 'string');\n// objectAsArray = computed(() => {\n// const arrayValues = [];\n// const value = this.value();\n// if (typeof value !== 'string') {\n// for (const key in this.value()) {\n// const keyValue = this.value()[key];\n// arrayValues.push([key, keyValue]);\n// }\n// }\n// return arrayValues;\n// });\n\n// constructor() { }\n\n// ngOnInit() { }\n// }\n\n@Component({\n imports: [AsyncPipe],\n selector: 'sp-fields-renderer',\n template: `\n @if (isString()) {\n {{ stringValue() }}\n } @else {\n <div class=\"\">\n <table>\n <tbody>\n @for (field of fields(); track $index) {\n <tr>\n <td [class]=\"field.class\">{{ field.label() | async }}:</td>\n <td [class]=\"field.class\">{{ field.value(entity()) }}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n `,\n styles: `\n .field-values {\n padding: 0.2em 0;\n text-align: end;\n }\n tr td:first-of-type {\n padding-right: 1em;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FieldsRendererComponent<TEntity extends { [P in IdKey]: PropertyKey }, IdKey extends string = 'id'> implements OnInit {\n entity = input.required<TEntity>();\n fields = input.required<SPEntityField<TEntity, IdKey>[]>();\n\n isString = computed(() => typeof this.fields() === 'string');\n // If the field is a single string, looks up entity's properties\n // for matching field name as the string and if it doesn't exist returns\n // the string itself as the value.\n stringValue = computed(() => {\n const fields = this.fields();\n if (typeof fields === 'string') {\n return (this.entity() as any)[fields] ?? fields;\n }\n return '';\n });\n\n constructor(public cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n}\n\n/**\n * A component that renders a stationary with line items, such as invoice,\n * payment receipt, bill, bill payment record, journal entry, etc. All these\n * documents have a uniform format and this component abstracts out the\n * information displayed in this type of document as properties that the client\n * can provide while it takes care of the rendering.\n *\n * Ideally we would declare this as a wrapper class with the actual rendering\n * to be performed by an inner replaceable component. This way the app will be\n * able to support multiple stationary designs, which eventually can be\n * chosen by the user. Perhaps even providing them a feature to design the\n * stationary.\n *\n * This is the first towards that long path ahead.\n */\n@Component({\n imports: [\n CommonModule,\n UpperCasePipe,\n FieldsRendererComponent\n ],\n selector: 'sp-stationary-with-line-items',\n template: `\n <div class=\"stationary-wrapper mat-body\">\n <div class=\"title\">{{ title() }}</div>\n @if (number()) {\n <div class=\"number\">#{{ number() }}</div>\n }\n <div class=\"header\">\n <div class=\"left-header\">\n @if (leftHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"leftHeaderTemplate() ?? null\"></ng-container>\n } @else {\n @if (leftHeader()) {\n @if (isString(leftHeader())) {\n {{ leftHeader() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_leftHeaderFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n <div class=\"right-header\">\n @if (rightHeaderTemplate()) {\n <ng-container *ngTemplateOutlet=\"rightHeaderTemplate() ?? null\"></ng-container>\n } @else {\n @if (rightHeader()) {\n @if (isString(rightHeader())) {\n {{ rightHeader() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_rightHeaderFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n </div> <!-- end <div class=\"header\"> -->\n\n <!-- items -->\n @if (itemColumnFields()) {\n <div class=\"items\">\n <table>\n <thead>\n @for (field of _itemColumnFields(); track $index) {\n <th [class]=\"field.class\" [style.text-align]=\"field.spec.valueOptions?.alignment\">{{ (fieldLabel(field) | async) | uppercase }}</th>\n }\n </thead>\n <tbody>\n <!-- enumerate each element of the 'items' array and render the\n specified columns for each. -->\n @for (row of _items(); track $index) {\n <tr>\n @for (field of _itemColumnFields(); track $index) {\n <td [class]=\"field.class\" [style.text-align]=\"field.spec.valueOptions?.alignment\" [innerHtml]=\"field.value(row)\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!-- end items -->\n\n <!-- footer -->\n <div class=\"footer\">\n <div class=\"left-footer\">\n @if (leftFooterTemplate()) {\n <ng-container *ngTemplateOutlet=\"leftFooterTemplate() ?? null\"></ng-container>\n } @else {\n @if (leftFooter()) {\n @if (isString(leftFooter())) {\n {{ leftFooter() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_leftFooterFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n <div class=\"right-footer\">\n @if (rightFooterTemplate()) {\n <ng-container *ngTemplateOutlet=\"rightFooterTemplate() ?? null\"></ng-container>\n } @else {\n @if (rightFooter()) {\n @if (isString(rightFooter())) {\n {{ rightFooter() }}\n } @else {\n <sp-fields-renderer\n [entity]=\"entity()\"\n [fields]=\"_rightFooterFields()\"\n ></sp-fields-renderer>\n }\n }\n }\n </div>\n </div>\n </div>\n `,\n styles: `\n .stationary-wrapper {\n padding: 2em 1em;\n }\n .title {\n font-size: 1.6em;\n font-weight: 600;\n text-align: end;\n margin-bottom: 0.5em;\n }\n .number {\n font-size: 1.1em;\n font-weight: 500;\n text-align: end;\n margin-bottom: 0.5em;\n }\n .header, .footer {\n display: flex;\n flex-direction: row;\n margin-top: 1em;\n }\n .left-header, .left-footer {\n display: flex;\n align-items: bottom;\n text-align: start;\n padding-right: 1em;\n min-width: 50%;\n overflow-wrap: break-word;\n text-wrap: wrap;\n }\n .right-header, .right-footer {\n display: flex;\n justify-content: flex-end;\n min-width: 50%;\n overflow: clip;\n }\n .items {\n margin: 2em 0;\n }\n .items table {\n width: 100%;\n border: 0px solid lightgray;\n }\n .items table thead {\n background-color: black;\n color: white;\n & th {\n padding: 0.4em;\n }\n }\n .items table td {\n padding: 0.8em 0.4em;\n border-bottom: 1px solid lightgray;\n border-right: 0px solid lightgray\n }\n .footer {\n\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StationaryWithLineItemsComponent<TEntity extends { [P in IdKey]: PropertyKey }, TEntityLineItem extends { [P in IdKey]: PropertyKey }, IdKey extends string = 'id'> implements OnInit {\n entity = input.required<TEntity>();\n title = input.required<string>();\n number = input<string|number>();\n\n leftHeader = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _leftHeaderFields = computed(() => this.getSPEntityFields(this.leftHeader()));\n leftHeaderTemplate = input<TemplateRef<any>>();\n\n rightHeader = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _rightHeaderFields = computed(() => this.getSPEntityFields(this.rightHeader()));\n rightHeaderTemplate = input<TemplateRef<any>>();\n\n items = input<{[key: string]: string}[]>();\n\n leftFooter = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _leftFooterFields = computed(() => this.getSPEntityFields(this.leftFooter()));\n leftFooterTemplate = input<TemplateRef<any>>();\n\n rightFooter = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string>();\n _rightFooterFields = computed(() => this.getSPEntityFields(this.rightFooter()));\n rightFooterTemplate = input<TemplateRef<any>>();\n\n itemFieldName = input<string>('items');\n itemColumnFields = input<Array<SPEntityFieldSpec<TEntity, IdKey> | string>>();\n _itemColumnFields = computed(() => this.getSPEntityFields(this.itemColumnFields()));\n\n _items = computed(() => (this.entity() as any)[this.itemFieldName()]);\n\n ngxEntityFieldConfig = inject(SP_ENTITY_FIELD_CONFIG, { optional: true })!;\n\n constructor() {}\n\n ngOnInit() {}\n\n isString(value: any) {\n return typeof value === 'string';\n }\n\n /**\n * Make the method a generic as we'll be using it for both TEntity and its\n * child TEntityLineItem objects.\n * @param fieldSpecs\n * @returns\n */\n getSPEntityFields<T>(fieldSpecs: Array<SPEntityFieldSpec<TEntity, IdKey> | string>|string|undefined): Array<SPEntityField<TEntity, IdKey>> {\n if (fieldSpecs && typeof fieldSpecs !== 'string') {\n return fieldSpecs.map(spec => new SPEntityField<TEntity, IdKey>(spec, this.ngxEntityFieldConfig));\n }\n return [];\n }\n\n fieldLabel(field: SPEntityField<TEntity, IdKey>): Observable<string> {\n const label = field.label()\n if (label) {\n return label instanceof Observable ? label : of(label as string);\n }\n return of('');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TranslocoTestingModule } from '@jsverse/transloco';
|
|
2
|
+
|
|
3
|
+
const en = {};
|
|
4
|
+
const de = {};
|
|
5
|
+
const zhHant = {};
|
|
6
|
+
function getTranslocoModule(langs, options = {}) {
|
|
7
|
+
return TranslocoTestingModule.forRoot({
|
|
8
|
+
langs: langs ?? { en, de, zhHant },
|
|
9
|
+
translocoConfig: {
|
|
10
|
+
availableLangs: ['en', 'de', 'zhHant'],
|
|
11
|
+
defaultLang: 'en',
|
|
12
|
+
},
|
|
13
|
+
preloadLangs: true,
|
|
14
|
+
...options,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generated bundle index. Do not edit.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export { getTranslocoModule };
|
|
23
|
+
//# sourceMappingURL=smallpearl-ngx-helper-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smallpearl-ngx-helper-utils.mjs","sources":["../../../../projects/smallpearl/ngx-helper/utils/src/transloco-testing.module.ts","../../../../projects/smallpearl/ngx-helper/utils/smallpearl-ngx-helper-utils.ts"],"sourcesContent":["import { TranslocoTestingModule, TranslocoTestingOptions } from '@jsverse/transloco';\n\nconst en = {};\nconst de = {};\nconst zhHant = {};\n\nexport function getTranslocoModule(langs?: any, options: TranslocoTestingOptions = {}) {\n return TranslocoTestingModule.forRoot({\n langs: langs ?? { en, de, zhHant },\n translocoConfig: {\n availableLangs: ['en', 'de', 'zhHant'],\n defaultLang: 'en',\n },\n preloadLangs: true,\n ...options,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,EAAE,GAAG,EAAE;AACb,MAAM,MAAM,GAAG,EAAE;SAED,kBAAkB,CAAC,KAAW,EAAE,UAAmC,EAAE,EAAA;IACnF,OAAO,sBAAsB,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AAClC,QAAA,eAAe,EAAE;AACf,YAAA,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AACtC,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA;AACD,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,GAAG,OAAO;AACX,KAAA,CAAC;AACJ;;AChBA;;AAEG;;;;"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
const VERSION = '0.1.0';
|
|
3
|
-
|
|
4
|
-
/*
|
|
5
|
-
* Public API Surface of ngx-helper
|
|
6
|
-
*/
|
|
1
|
+
const NGX_HELPER_VERSION = '21.0.0';
|
|
7
2
|
|
|
8
3
|
/**
|
|
9
4
|
* Generated bundle index. Do not edit.
|
|
10
5
|
*/
|
|
11
6
|
|
|
12
|
-
export {
|
|
7
|
+
export { NGX_HELPER_VERSION };
|
|
13
8
|
//# sourceMappingURL=smallpearl-ngx-helper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smallpearl-ngx-helper.mjs","sources":["../../../../projects/smallpearl/ngx-helper/
|
|
1
|
+
{"version":3,"file":"smallpearl-ngx-helper.mjs","sources":["../../../../projects/smallpearl/ngx-helper/version.ts","../../../../projects/smallpearl/ngx-helper/smallpearl-ngx-helper.ts"],"sourcesContent":["export const NGX_HELPER_VERSION = '21.0.0';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './version';\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,GAAG;;ACAlC;;AAEG;;;;"}
|