@acorex/components 21.0.1-next.4 → 21.0.1-next.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/accordion/index.d.ts +0 -1
  2. package/action-sheet/index.d.ts +91 -31
  3. package/button-group/index.d.ts +6 -4
  4. package/chips/index.d.ts +3 -8
  5. package/collapse/index.d.ts +4 -6
  6. package/color-palette/index.d.ts +1 -2
  7. package/command/index.d.ts +8 -1
  8. package/conversation2/README.md +71 -31
  9. package/conversation2/index.d.ts +36 -35
  10. package/data-table/index.d.ts +4 -253
  11. package/dropdown/index.d.ts +2 -5
  12. package/fesm2022/acorex-components-accordion.mjs +16 -21
  13. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  14. package/fesm2022/acorex-components-action-sheet.mjs +170 -52
  15. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  16. package/fesm2022/acorex-components-alert.mjs +13 -13
  17. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  18. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  19. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  20. package/fesm2022/acorex-components-audio-wave.mjs +11 -10
  21. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  22. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  23. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  24. package/fesm2022/acorex-components-avatar.mjs +12 -12
  25. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  26. package/fesm2022/acorex-components-badge.mjs +9 -9
  27. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  28. package/fesm2022/acorex-components-bottom-navigation.mjs +11 -11
  29. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  30. package/fesm2022/acorex-components-breadcrumbs.mjs +11 -11
  31. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  32. package/fesm2022/acorex-components-button-group.mjs +23 -19
  33. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  34. package/fesm2022/acorex-components-button.mjs +18 -18
  35. package/fesm2022/acorex-components-button.mjs.map +1 -1
  36. package/fesm2022/acorex-components-calendar.mjs +17 -17
  37. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  38. package/fesm2022/acorex-components-check-box.mjs +10 -10
  39. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  40. package/fesm2022/acorex-components-chips.mjs +12 -14
  41. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  42. package/fesm2022/acorex-components-circular-progress.mjs +12 -10
  43. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  44. package/fesm2022/acorex-components-code-editor.mjs +10 -10
  45. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  46. package/fesm2022/acorex-components-collapse.mjs +22 -19
  47. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  48. package/fesm2022/acorex-components-color-box.mjs +9 -9
  49. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  50. package/fesm2022/acorex-components-color-palette.mjs +33 -38
  51. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  52. package/fesm2022/acorex-components-command.mjs +17 -11
  53. package/fesm2022/acorex-components-command.mjs.map +1 -1
  54. package/fesm2022/acorex-components-comment.mjs +32 -32
  55. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  56. package/fesm2022/acorex-components-conversation.mjs +51 -51
  57. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  58. package/fesm2022/acorex-components-conversation2.mjs +314 -308
  59. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  60. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  61. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  62. package/fesm2022/acorex-components-data-list.mjs +3 -3
  63. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  64. package/fesm2022/acorex-components-data-pager.mjs +33 -33
  65. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  66. package/fesm2022/acorex-components-data-table.mjs +50 -486
  67. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  68. package/fesm2022/acorex-components-datetime-box.mjs +9 -10
  69. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  70. package/fesm2022/acorex-components-datetime-input.mjs +9 -9
  71. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  72. package/fesm2022/acorex-components-datetime-picker.mjs +19 -17
  73. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  74. package/fesm2022/acorex-components-decorators.mjs +43 -36
  75. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  76. package/fesm2022/acorex-components-dialog.mjs +12 -12
  77. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  78. package/fesm2022/acorex-components-drawer-legacy.mjs +13 -13
  79. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
  80. package/fesm2022/acorex-components-drawer.mjs +15 -16
  81. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  82. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  83. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  84. package/fesm2022/acorex-components-dropdown.mjs +28 -26
  85. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  86. package/fesm2022/acorex-components-editor.mjs +11 -11
  87. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  88. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  89. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  90. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  91. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  92. package/fesm2022/acorex-components-form.mjs +48 -42
  93. package/fesm2022/acorex-components-form.mjs.map +1 -1
  94. package/fesm2022/acorex-components-grid-layout-builder.mjs +12 -13
  95. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  96. package/fesm2022/acorex-components-image-editor.mjs +44 -44
  97. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  98. package/fesm2022/acorex-components-image.mjs +9 -9
  99. package/fesm2022/acorex-components-image.mjs.map +1 -1
  100. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  101. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  102. package/fesm2022/acorex-components-kanban.mjs +140 -13
  103. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  104. package/fesm2022/acorex-components-kbd.mjs +29 -11
  105. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  106. package/fesm2022/acorex-components-label.mjs +9 -9
  107. package/fesm2022/acorex-components-label.mjs.map +1 -1
  108. package/fesm2022/acorex-components-list.mjs +9 -9
  109. package/fesm2022/acorex-components-list.mjs.map +1 -1
  110. package/fesm2022/acorex-components-loading-dialog.mjs +11 -11
  111. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  112. package/fesm2022/acorex-components-loading.mjs +23 -23
  113. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  114. package/fesm2022/acorex-components-map.mjs +14 -14
  115. package/fesm2022/acorex-components-map.mjs.map +1 -1
  116. package/fesm2022/acorex-components-media-viewer.mjs +257 -91
  117. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  118. package/fesm2022/acorex-components-menu.mjs +21 -21
  119. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  120. package/fesm2022/{acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs → acorex-components-modal-acorex-components-modal-BajlPo_n.mjs} +22 -22
  121. package/fesm2022/acorex-components-modal-acorex-components-modal-BajlPo_n.mjs.map +1 -0
  122. package/fesm2022/{acorex-components-modal-modal-content.component-CSJU1vRi.mjs → acorex-components-modal-modal-content.component-BVrBX4Qf.mjs} +9 -7
  123. package/fesm2022/acorex-components-modal-modal-content.component-BVrBX4Qf.mjs.map +1 -0
  124. package/fesm2022/acorex-components-modal.mjs +1 -1
  125. package/fesm2022/acorex-components-navbar.mjs +9 -9
  126. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  127. package/fesm2022/acorex-components-notification.mjs +28 -24
  128. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  129. package/fesm2022/acorex-components-number-box-legacy.mjs +9 -9
  130. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
  131. package/fesm2022/acorex-components-number-box.mjs +9 -9
  132. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  133. package/fesm2022/acorex-components-otp.mjs +9 -9
  134. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  135. package/fesm2022/acorex-components-page.mjs +10 -10
  136. package/fesm2022/acorex-components-page.mjs.map +1 -1
  137. package/fesm2022/acorex-components-paint.mjs +34 -39
  138. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  139. package/fesm2022/acorex-components-password-box.mjs +13 -13
  140. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  141. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  142. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  143. package/fesm2022/acorex-components-phone-box.mjs +96 -54
  144. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  145. package/fesm2022/acorex-components-picker.mjs +19 -18
  146. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  147. package/fesm2022/acorex-components-popover.mjs +132 -33
  148. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  149. package/fesm2022/acorex-components-popup.mjs +93 -101
  150. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  151. package/fesm2022/acorex-components-progress-bar.mjs +11 -9
  152. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  153. package/fesm2022/acorex-components-qrcode.mjs +9 -9
  154. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  155. package/fesm2022/acorex-components-query-builder.mjs +8 -8
  156. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  157. package/fesm2022/acorex-components-radio.mjs +9 -9
  158. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  159. package/fesm2022/acorex-components-rail-navigation.mjs +38 -36
  160. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  161. package/fesm2022/acorex-components-range-slider.mjs +10 -10
  162. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  163. package/fesm2022/acorex-components-rate-picker.mjs +20 -35
  164. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  165. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  166. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  167. package/fesm2022/acorex-components-result.mjs +8 -8
  168. package/fesm2022/acorex-components-result.mjs.map +1 -1
  169. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  170. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  171. package/fesm2022/acorex-components-rrule.mjs +9 -9
  172. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  173. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  174. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  175. package/fesm2022/acorex-components-scheduler.mjs +43 -43
  176. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  177. package/fesm2022/acorex-components-scss.mjs +4 -4
  178. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  179. package/fesm2022/acorex-components-search-box.mjs +16 -10
  180. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  181. package/fesm2022/acorex-components-select-box.mjs +11 -9
  182. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  183. package/fesm2022/acorex-components-selection-list-2.mjs +11 -11
  184. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  185. package/fesm2022/acorex-components-selection-list.mjs +9 -9
  186. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  187. package/fesm2022/acorex-components-side-menu.mjs +74 -25
  188. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  189. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  190. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  191. package/fesm2022/acorex-components-slider.mjs +12 -12
  192. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  193. package/fesm2022/acorex-components-sliding-item.mjs +14 -14
  194. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  195. package/fesm2022/acorex-components-step-wizard.mjs +14 -14
  196. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  197. package/fesm2022/acorex-components-switch.mjs +14 -14
  198. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  199. package/fesm2022/acorex-components-tabs.mjs +15 -15
  200. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  201. package/fesm2022/acorex-components-tag-box.mjs +9 -9
  202. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  203. package/fesm2022/acorex-components-tag.mjs +9 -9
  204. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  205. package/fesm2022/acorex-components-text-area.mjs +9 -9
  206. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  207. package/fesm2022/acorex-components-text-box.mjs +37 -131
  208. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  209. package/fesm2022/acorex-components-time-duration.mjs +22 -24
  210. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  211. package/fesm2022/acorex-components-time-line.mjs +12 -12
  212. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  213. package/fesm2022/acorex-components-toast.mjs +12 -12
  214. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  215. package/fesm2022/acorex-components-toolbar.mjs +8 -8
  216. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  217. package/fesm2022/acorex-components-tooltip.mjs +66 -65
  218. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  219. package/fesm2022/acorex-components-tree-view-legacy.mjs +16 -12
  220. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
  221. package/fesm2022/acorex-components-tree-view.mjs +32 -11
  222. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  223. package/fesm2022/acorex-components-uploader.mjs +16 -16
  224. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  225. package/fesm2022/acorex-components-video-player.mjs +8 -8
  226. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  227. package/fesm2022/acorex-components-wysiwyg.mjs +43 -43
  228. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  229. package/fesm2022/acorex-components.mjs.map +1 -1
  230. package/form/index.d.ts +2 -1
  231. package/grid-layout-builder/index.d.ts +1 -2
  232. package/kanban/index.d.ts +62 -4
  233. package/kbd/index.d.ts +13 -7
  234. package/loading/index.d.ts +1 -1
  235. package/media-viewer/index.d.ts +86 -53
  236. package/package.json +8 -14
  237. package/paint/index.d.ts +1 -6
  238. package/phone-box/index.d.ts +12 -7
  239. package/popover/index.d.ts +28 -6
  240. package/popup/index.d.ts +39 -42
  241. package/rate-picker/index.d.ts +5 -15
  242. package/side-menu/index.d.ts +9 -2
  243. package/slider/index.d.ts +2 -2
  244. package/text-box/index.d.ts +29 -48
  245. package/time-duration/index.d.ts +2 -2
  246. package/tooltip/index.d.ts +3 -7
  247. package/tree-view/index.d.ts +17 -0
  248. package/tree-view-legacy/index.d.ts +1 -0
  249. package/fesm2022/acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs.map +0 -1
  250. package/fesm2022/acorex-components-modal-modal-content.component-CSJU1vRi.mjs.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { MXInputBaseValueComponent, MXLookComponent, AXDataSource, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/cdk/common';
2
2
  import { AXDecoratorGenericComponent, AXDecoratorClearButtonComponent, AXDecoratorModule } from '@acorex/components/decorators';
3
- import * as i2 from '@acorex/components/form';
4
3
  import { AXFormModule } from '@acorex/components/form';
5
4
  import { AXSearchBoxComponent, AXSearchBoxModule } from '@acorex/components/search-box';
6
5
  import { AXSelectBoxComponent, AXSelectBoxModule } from '@acorex/components/select-box';
@@ -46,18 +45,42 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
46
45
  */
47
46
  this.excluded = input([], ...(ngDevMode ? [{ debugName: "excluded" }] : []));
48
47
  this.selectBox = viewChild('s', ...(ngDevMode ? [{ debugName: "selectBox" }] : []));
48
+ /** @ignore */
49
+ this.countries = signal([], ...(ngDevMode ? [{ debugName: "countries" }] : []));
50
+ /** @ignore */
51
+ this.selectedCountry = signal(null, ...(ngDevMode ? [{ debugName: "selectedCountry" }] : []));
49
52
  this.#countriesChanged = effect(() => {
50
53
  this.included();
51
54
  this.excluded();
52
55
  this.setCountries();
53
56
  this.cdr.detectChanges();
54
57
  this.selectBox().refresh();
55
- this.selectedCountry.set(this.countries()[0]);
56
58
  }, ...(ngDevMode ? [{ debugName: "#countriesChanged" }] : []));
57
- /** @ignore */
58
- this.countries = signal([], ...(ngDevMode ? [{ debugName: "countries" }] : []));
59
- /** @ignore */
60
- this.selectedCountry = signal(COUNTRIES[0], ...(ngDevMode ? [{ debugName: "selectedCountry" }] : []));
59
+ this.#init = afterNextRender(() => {
60
+ setTimeout(() => {
61
+ if (this.country() && !this.value) {
62
+ this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));
63
+ }
64
+ else if (!this.country() && !this.value) {
65
+ this.selectedCountry.set(this.countries()[0]);
66
+ }
67
+ });
68
+ this.setCountries();
69
+ });
70
+ this.#eff = effect(async () => {
71
+ if (this.selectedCountry()?.regex) {
72
+ this.removeValidation();
73
+ const message = await this.messageError;
74
+ this.addValidationRule({
75
+ rule: 'regex',
76
+ options: {
77
+ message,
78
+ pattern: this.selectedCountry()?.regex,
79
+ },
80
+ disabled: false,
81
+ });
82
+ }
83
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
61
84
  /** @ignore */
62
85
  this.dataSource = new AXDataSource({
63
86
  pageSize: 10,
@@ -76,20 +99,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
76
99
  });
77
100
  },
78
101
  });
79
- /** @ignore */
80
- this.#init = afterNextRender(() => {
81
- this.setCountries();
82
- this.setDefaultValue();
83
- setTimeout(() => {
84
- if (!this.value)
85
- return;
86
- const result = this.parsePhoneNumber(this.value);
87
- if (result.country) {
88
- this.selectedCountry.set(result.country);
89
- this.value = result.nationalNumber;
90
- }
91
- });
92
- });
93
102
  /**
94
103
  * Determines if the keyboard event is a valid action based on allowed keys and key codes.
95
104
  *
@@ -113,13 +122,25 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
113
122
  return await this.translationService.translateAsync('@acorex:validation.messages.phone');
114
123
  }
115
124
  #countriesChanged;
125
+ #init;
126
+ #eff;
116
127
  /** @ignore */
117
- _handleModelChange(value) {
128
+ _handleModelChange(e) {
118
129
  // Prevent value change if component is disabled or readonly
119
130
  if (this.disabled || this.readonly) {
120
131
  return;
121
132
  }
122
- this.commitValue(value, true);
133
+ if (e.isUserInteraction && e.value)
134
+ this.commitValue(e.value, true);
135
+ }
136
+ internalValueChanged(value) {
137
+ if (!value)
138
+ return;
139
+ const result = this.parsePhoneNumber(value);
140
+ if (result.country) {
141
+ this.selectedCountry.set(result.country);
142
+ this.commitValue(result.nationalNumber);
143
+ }
123
144
  }
124
145
  /** @ignore */
125
146
  handleCountryOnClosed() {
@@ -127,8 +148,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
127
148
  this.textbox?.focus();
128
149
  }, 300);
129
150
  }
130
- /** @ignore */
131
- #init;
132
151
  /**
133
152
  * Updates the list of countries based on included or excluded codes.
134
153
  *
@@ -146,19 +165,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
146
165
  }
147
166
  this.flags.set(COUNTRIES_FLAG_BASE64);
148
167
  }
149
- /**
150
- * Sets the default selected country based on the provided country code or the first country in the list.
151
- *
152
- * @returns void - No return value. Updates the selected country.
153
- */
154
- setDefaultValue() {
155
- if (this.country()) {
156
- this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));
157
- }
158
- else {
159
- this.selectedCountry.set(this.countries()[0]);
160
- }
161
- }
162
168
  handleKeyDown(e) {
163
169
  // Prevent all keyboard actions if component is disabled
164
170
  if (this.disabled) {
@@ -196,7 +202,8 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
196
202
  for (const country of sorted) {
197
203
  if (normalized.startsWith(country.iso2code)) {
198
204
  const countryCode = country.iso2code;
199
- const nationalNumber = normalized.slice(countryCode.length);
205
+ const rawNationalNumber = normalized.slice(countryCode.length);
206
+ const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);
200
207
  return {
201
208
  country,
202
209
  countryCode,
@@ -211,19 +218,56 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
211
218
  nationalNumber: normalized,
212
219
  };
213
220
  }
221
+ /**
222
+ * Formats a national phone number according to the country's format pattern.
223
+ * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).
224
+ *
225
+ * @param number - The raw national number (digits only)
226
+ * @param format - The country's phone number format pattern (e.g., '000 000 0000')
227
+ * @returns The formatted national number with spaces according to the format
228
+ */
229
+ formatNationalNumber(number, format) {
230
+ if (!format || !number) {
231
+ return number;
232
+ }
233
+ let result = '';
234
+ let numberIndex = 0;
235
+ for (let i = 0; i < format.length && numberIndex < number.length; i++) {
236
+ if (format[i] === '0') {
237
+ result += number[numberIndex];
238
+ numberIndex++;
239
+ }
240
+ else {
241
+ result += format[i];
242
+ }
243
+ }
244
+ // Append any remaining digits that exceed the format length
245
+ if (numberIndex < number.length) {
246
+ result += number.slice(numberIndex);
247
+ }
248
+ return result;
249
+ }
214
250
  /** @ignore */
215
251
  _handleCountryValueChanged(event) {
216
252
  // Prevent value change if component is disabled or readonly
217
253
  if (this.disabled || this.readonly) {
218
254
  return;
219
255
  }
220
- this.selectedCountry.set(event.component.selectedItems[0]);
256
+ //remove validation rule before add new one
257
+ if (event.isUserInteraction) {
258
+ this.selectedCountry.set(event.component.selectedItems[0]);
259
+ }
260
+ }
261
+ removeValidation() {
262
+ this.removeValidationRuleByType('regex');
263
+ this.textbox.reset();
264
+ this.textbox.resetErrors();
221
265
  }
222
266
  get __hostName() {
223
267
  return this.name;
224
268
  }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPhoneBoxComponent, isStandalone: true, selector: "ax-phone-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: "allowNull", publicName: "allowNull", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: "autoComplete", publicName: "autoComplete", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: "classNames", publicName: "class", isSignal: false, isRequired: false, transformFunction: null }, precode: { classPropertyName: "precode", publicName: "precode", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: "country", publicName: "country", isSignal: true, isRequired: false, transformFunction: null }, included: { classPropertyName: "included", publicName: "included", isSignal: true, isRequired: false, transformFunction: null }, excluded: { classPropertyName: "excluded", publicName: "excluded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress", country: "countryChange" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "class.ax-state-disabled": "disabled", "class.ax-state-readonly": "readonly", "attr.name": "this.__hostName" } }, providers: [
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXPhoneBoxComponent, isStandalone: true, selector: "ax-phone-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: "allowNull", publicName: "allowNull", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: "autoComplete", publicName: "autoComplete", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: "classNames", publicName: "class", isSignal: false, isRequired: false, transformFunction: null }, precode: { classPropertyName: "precode", publicName: "precode", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: "country", publicName: "country", isSignal: true, isRequired: false, transformFunction: null }, included: { classPropertyName: "included", publicName: "included", isSignal: true, isRequired: false, transformFunction: null }, excluded: { classPropertyName: "excluded", publicName: "excluded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress", country: "countryChange" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "attr.name": "this.__hostName" } }, providers: [
227
271
  { provide: AXComponent, useExisting: AXPhoneBoxComponent },
228
272
  { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },
229
273
  { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },
@@ -233,15 +277,11 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
233
277
  useExisting: forwardRef(() => AXPhoneBoxComponent),
234
278
  multi: true,
235
279
  },
236
- ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n @for (regex of [selectedCountry()?.regex]; track regex) {\n @if (regex && messageError) {\n <ax-validation-rule\n rule=\"regex\"\n [options]=\"{\n message: messageError,\n pattern: regex,\n }\"\n >\n </ax-validation-rule>\n }\n }\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"], dependencies: [{ kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
280
+ ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"selectedCountry()?.mask\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}@layer components{ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing,.25rem)*0)!important}.ax-country-item{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*2);padding-block:calc(var(--spacing,.25rem)*3);display:flex}.ax-country-item:hover{background-color:var(--color-surface,rgba(var(--ax-sys-color-surface)))}.ax-country-item .ax-country-name{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);margin-inline-end:calc(var(--spacing,.25rem)*2)}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{background-repeat:no-repeat;height:calc(var(--spacing,.25rem)*5)!important;width:calc(var(--spacing,.25rem)*6)!important}.ax-selected-country{align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline-end:calc(var(--spacing,.25rem)*2);display:flex}}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AXFormModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
237
281
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{
239
283
  type: Component,
240
- args: [{ selector: 'ax-phone-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
241
- ngSkipHydration: 'true',
242
- '[class.ax-state-disabled]': 'disabled',
243
- '[class.ax-state-readonly]': 'readonly',
244
- }, inputs: [
284
+ args: [{ selector: 'ax-phone-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [
245
285
  'disabled',
246
286
  'tabIndex',
247
287
  'readonly',
@@ -276,7 +316,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
276
316
  useExisting: forwardRef(() => AXPhoneBoxComponent),
277
317
  multi: true,
278
318
  },
279
- ], imports: [
319
+ ], host: {
320
+ ngSkipHydration: 'true',
321
+ }, imports: [
280
322
  AXTextBoxComponent,
281
323
  FormsModule,
282
324
  AXDecoratorGenericComponent,
@@ -285,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
285
327
  AXDecoratorClearButtonComponent,
286
328
  NgStyle,
287
329
  AXFormModule,
288
- ], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n @for (regex of [selectedCountry()?.regex]; track regex) {\n @if (regex && messageError) {\n <ax-validation-rule\n rule=\"regex\"\n [options]=\"{\n message: messageError,\n pattern: regex,\n }\"\n >\n </ax-validation-rule>\n }\n }\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"] }]
330
+ ], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"selectedCountry()?.mask\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}@layer components{ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:calc(var(--spacing,.25rem)*0)!important}.ax-country-item{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*2);padding-block:calc(var(--spacing,.25rem)*3);display:flex}.ax-country-item:hover{background-color:var(--color-surface,rgba(var(--ax-sys-color-surface)))}.ax-country-item .ax-country-name{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);margin-inline-end:calc(var(--spacing,.25rem)*2)}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{background-repeat:no-repeat;height:calc(var(--spacing,.25rem)*5)!important;width:calc(var(--spacing,.25rem)*6)!important}.ax-selected-country{align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline-end:calc(var(--spacing,.25rem)*2);display:flex}}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"] }]
289
331
  }], propDecorators: { textbox: [{
290
332
  type: ViewChild,
291
333
  args: [AXTextBoxComponent, { static: true }]
@@ -309,8 +351,8 @@ const MODULES = [
309
351
  AXTextBoxModule,
310
352
  ];
311
353
  class AXPhoneBoxModule {
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
313
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
355
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,
314
356
  FormsModule,
315
357
  IMaskModule,
316
358
  AXSelectBoxModule,
@@ -318,9 +360,9 @@ class AXPhoneBoxModule {
318
360
  AXDecoratorModule,
319
361
  AXButtonModule,
320
362
  AXTextBoxModule, AXPhoneBoxComponent], exports: [AXPhoneBoxComponent] }); }
321
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxModule, imports: [MODULES, COMPONENT] }); }
363
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxModule, imports: [MODULES, COMPONENT] }); }
322
364
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPhoneBoxModule, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxModule, decorators: [{
324
366
  type: NgModule,
325
367
  args: [{
326
368
  imports: [...MODULES, ...COMPONENT],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-phone-box.mjs","sources":["../tmp-esm2022/phone-box/lib/phone-box.component.js","../tmp-esm2022/phone-box/lib/phone-box.module.js","../tmp-esm2022/phone-box/acorex-components-phone-box.js"],"sourcesContent":["import { AXClearableComponent, AXComponent, AXDataSource, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64 } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation, afterNextRender, effect, forwardRef, inject, input, model, signal, viewChild, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\nexport class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n /** @ignore */\n this._updateOn = 'change';\n this.flags = signal(COUNTRIES_FLAG_BASE64, ...(ngDevMode ? [{ debugName: \"flags\" }] : []));\n this.translationService = inject(AXTranslationService);\n this.messageError = this.callTranslate();\n /**\n * static precode.\n */\n this.precode = input(...(ngDevMode ? [undefined, { debugName: \"precode\" }] : []));\n /**\n * The default country value for the component.\n */\n this.country = model('', ...(ngDevMode ? [{ debugName: \"country\" }] : []));\n /**\n * List of included values for the component.\n */\n this.included = input([], ...(ngDevMode ? [{ debugName: \"included\" }] : []));\n /**\n * List of excluded values for the component.\n */\n this.excluded = input([], ...(ngDevMode ? [{ debugName: \"excluded\" }] : []));\n this.selectBox = viewChild('s', ...(ngDevMode ? [{ debugName: \"selectBox\" }] : []));\n this.#countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n this.selectedCountry.set(this.countries()[0]);\n }, ...(ngDevMode ? [{ debugName: \"#countriesChanged\" }] : []));\n /** @ignore */\n this.countries = signal([], ...(ngDevMode ? [{ debugName: \"countries\" }] : []));\n /** @ignore */\n this.selectedCountry = signal(COUNTRIES[0], ...(ngDevMode ? [{ debugName: \"selectedCountry\" }] : []));\n /** @ignore */\n this.dataSource = new AXDataSource({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(list, (c) => c.name.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.iso2code.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.code.toUpperCase().includes(e.filter.value.toUpperCase()))\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n /** @ignore */\n this.#init = afterNextRender(() => {\n this.setCountries();\n this.setDefaultValue();\n setTimeout(() => {\n if (!this.value)\n return;\n const result = this.parsePhoneNumber(this.value);\n if (result.country) {\n this.selectedCountry.set(result.country);\n this.value = result.nationalNumber;\n }\n });\n });\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n this.isValidKeyboardAction = (event) => {\n const _code = parseInt(event.key);\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n }\n else {\n return false;\n }\n };\n }\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n #countriesChanged;\n /** @ignore */\n _handleModelChange(value) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n this.commitValue(value, true);\n }\n /** @ignore */\n handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n /** @ignore */\n #init;\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n }\n else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n }\n else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n /**\n * Sets the default selected country based on the provided country code or the first country in the list.\n *\n * @returns void - No return value. Updates the selected country.\n */\n setDefaultValue() {\n if (this.country()) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n }\n else {\n this.selectedCountry.set(this.countries()[0]);\n }\n }\n handleKeyDown(e) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation = (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n }\n else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n parsePhoneNumber(fullNumber) {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const nationalNumber = normalized.slice(countryCode.length);\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n /** @ignore */\n _handleCountryValueChanged(event) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXPhoneBoxComponent, isStandalone: true, selector: \"ax-phone-box\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: \"maxLength\", publicName: \"maxLength\", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: \"allowNull\", publicName: \"allowNull\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: \"autoComplete\", publicName: \"autoComplete\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: \"classNames\", publicName: \"class\", isSignal: false, isRequired: false, transformFunction: null }, precode: { classPropertyName: \"precode\", publicName: \"precode\", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: \"country\", publicName: \"country\", isSignal: true, isRequired: false, transformFunction: null }, included: { classPropertyName: \"included\", publicName: \"included\", isSignal: true, isRequired: false, transformFunction: null }, excluded: { classPropertyName: \"excluded\", publicName: \"excluded\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: \"onBlur\", onFocus: \"onFocus\", valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onKeyPress: \"onKeyPress\", country: \"countryChange\" }, host: { attributes: { \"ngSkipHydration\": \"true\" }, properties: { \"class.ax-state-disabled\": \"disabled\", \"class.ax-state-readonly\": \"readonly\", \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"selectBox\", first: true, predicate: [\"s\"], descendants: true, isSignal: true }, { propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n @for (regex of [selectedCountry()?.regex]; track regex) {\\n @if (regex && messageError) {\\n <ax-validation-rule\\n rule=\\\"regex\\\"\\n [options]=\\\"{\\n message: messageError,\\n pattern: regex,\\n }\\\"\\n >\\n </ax-validation-rule>\\n }\\n }\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"], dependencies: [{ kind: \"component\", type: AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"component\", type: AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"component\", type: AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i2.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-phone-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n ngSkipHydration: 'true',\n '[class.ax-state-disabled]': 'disabled',\n '[class.ax-state-readonly]': 'readonly',\n }, inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ], outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ], providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXSelectBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ], template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n @for (regex of [selectedCountry()?.regex]; track regex) {\\n @if (regex && messageError) {\\n <ax-validation-rule\\n rule=\\\"regex\\\"\\n [options]=\\\"{\\n message: messageError,\\n pattern: regex,\\n }\\\"\\n >\\n </ax-validation-rule>\\n }\\n }\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"] }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent, { static: true }]\n }], classNames: [{\n type: Input,\n args: ['class']\n }], precode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"precode\", required: false }] }], country: [{ type: i0.Input, args: [{ isSignal: true, alias: \"country\", required: false }] }, { type: i0.Output, args: [\"countryChange\"] }], included: [{ type: i0.Input, args: [{ isSignal: true, alias: \"included\", required: false }] }], excluded: [{ type: i0.Input, args: [{ isSignal: true, alias: \"excluded\", required: false }] }], selectBox: [{ type: i0.ViewChild, args: ['s', { isSignal: true }] }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQWUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0s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T0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQ25FLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQ25FLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQ2xFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixXQUNRO3dCQUNQLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCwyQkFBMkI7d0JBQzNCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiwrQkFBK0I7d0JBQy9CLE9BQU87d0JBQ1AsWUFBWTtxQkFDYjs7c0JBT0EsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O3NCQWdCOUMsS0FBSzt1QkFBQyxPQUFPO21lQXVCc0MsR0FBRztzQkFvTXRELFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JDbGVhckJ1dHRvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBDT1VOVFJJRVMsIENPVU5UUklFU19GTEFHX0JBU0U2NCwgQ291bnRyeUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgdGhhdCBoYW5kbGVzIHBob25lIG51bWJlciBpbnB1dCB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBob25lLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9uZS1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAnW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5heC1zdGF0ZS1yZWFkb25seV0nOiAncmVhZG9ubHknLFxuICB9LFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAnYWxsb3dOdWxsJyxcbiAgICAndHlwZScsXG4gICAgJ2F1dG9Db21wbGV0ZScsXG4gICAgJ2xvb2snLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnb25LZXlEb3duJyxcbiAgICAnb25LZXlVcCcsXG4gICAgJ29uS2V5UHJlc3MnLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQaG9uZUJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBob25lQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUGhvbmVCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBob25lQm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWFBob25lQm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWFRleHRCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIEFYU2VhcmNoQm94Q29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9yQ2xlYXJCdXR0b25Db21wb25lbnQsXG4gICAgTmdTdHlsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUGhvbmVCb3hDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfdXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgPSAnY2hhbmdlJztcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKEFYVGV4dEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSB0ZXh0Ym94OiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGZsYWdzID0gc2lnbmFsKENPVU5UUklFU19GTEFHX0JBU0U2NCk7XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IEFYVHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbWVzc2FnZUVycm9yID0gdGhpcy5jYWxsVHJhbnNsYXRlKCk7XG5cbiAgYXN5bmMgY2FsbFRyYW5zbGF0ZSgpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6dmFsaWRhdGlvbi5tZXNzYWdlcy5waG9uZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoJ2NsYXNzJylcbiAgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzdGF0aWMgcHJlY29kZS5cbiAgICovXG4gIHByZWNvZGUgPSBpbnB1dCgpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBjb3VudHJ5IHZhbHVlIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgY291bnRyeSA9IG1vZGVsPHN0cmluZz4oJycpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGluY2x1ZGVkIHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGluY2x1ZGVkID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBleGNsdWRlZCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBleGNsdWRlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RCb3ggPSB2aWV3Q2hpbGQ8QVhTZWxlY3RCb3hDb21wb25lbnQ+KCdzJyk7XG5cbiAgI2NvdW50cmllc0NoYW5nZWQgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuaW5jbHVkZWQoKTtcbiAgICB0aGlzLmV4Y2x1ZGVkKCk7XG4gICAgdGhpcy5zZXRDb3VudHJpZXMoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZWxlY3RCb3goKS5yZWZyZXNoKCk7XG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KHRoaXMuY291bnRyaWVzKClbMF0pO1xuICB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY291bnRyaWVzID0gc2lnbmFsPENvdW50cnlJdGVtW10+KFtdKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb3VudHJ5ID0gc2lnbmFsPENvdW50cnlJdGVtPihDT1VOVFJJRVNbMF0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAvLyBQcmV2ZW50IHZhbHVlIGNoYW5nZSBpZiBjb21wb25lbnQgaXMgZGlzYWJsZWQgb3IgcmVhZG9ubHlcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21taXRWYWx1ZSh2YWx1ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2U8Q291bnRyeUl0ZW0+KHtcbiAgICBwYWdlU2l6ZTogMTAsXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb3VudHJpZXMoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZS5maWx0ZXJcbiAgICAgICAgICA/IGZpbHRlcihcbiAgICAgICAgICAgICAgbGlzdCxcbiAgICAgICAgICAgICAgKGMpID0+XG4gICAgICAgICAgICAgICAgYy5uYW1lLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoKGUuZmlsdGVyLnZhbHVlIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSkgfHxcbiAgICAgICAgICAgICAgICBjLmlzbzJjb2RlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoKGUuZmlsdGVyLnZhbHVlIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSkgfHxcbiAgICAgICAgICAgICAgICBjLmNvZGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygoZS5maWx0ZXIudmFsdWUgYXMgc3RyaW5nKS50b1VwcGVyQ2FzZSgpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGxpc3Q7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGl0ZW1zOiByZXN1bHQuc2xpY2UoZS5za2lwLCBlLnNraXAgKyBlLnRha2UpLFxuICAgICAgICAgIHRvdGFsOiByZXN1bHQubGVuZ3RoLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBoYW5kbGVDb3VudHJ5T25DbG9zZWQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRib3g/LmZvY3VzKCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLnNldENvdW50cmllcygpO1xuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkgcmV0dXJuO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wYXJzZVBob25lTnVtYmVyKHRoaXMudmFsdWUpO1xuICAgICAgaWYgKHJlc3VsdC5jb3VudHJ5KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnNldChyZXN1bHQuY291bnRyeSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSByZXN1bHQubmF0aW9uYWxOdW1iZXI7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBrZXlib2FyZCBldmVudCBpcyBhIHZhbGlkIGFjdGlvbiBiYXNlZCBvbiBhbGxvd2VkIGtleXMgYW5kIGtleSBjb2Rlcy5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGtleWJvYXJkIGV2ZW50IHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gLSBUcnVlIGlmIHRoZSBrZXkgYWN0aW9uIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGlzVmFsaWRLZXlib2FyZEFjdGlvbiA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGNvbnN0IF9jb2RlID0gcGFyc2VJbnQoZXZlbnQua2V5KTtcblxuICAgIGNvbnN0IEFMTE9XRURfS0VZID0gWydCYWNrc3BhY2UnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnVGFiJ107XG5cbiAgICBjb25zdCBJU19DVFJMX0EgPSAoKSA9PiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICdhJykgfHwgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5ID09PSAnQScpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICBpZiAoKF9jb2RlID49IDAgJiYgX2NvZGUgPD0gOSkgfHwgQUxMT1dFRF9LRVkuaW5jbHVkZXMoZXZlbnQua2V5KSB8fCBJU19DVFJMX0EoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGxpc3Qgb2YgY291bnRyaWVzIGJhc2VkIG9uIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkIGNvZGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBVcGRhdGVzIHRoZSBpbnRlcm5hbCBjb3VudHJpZXMgbGlzdC5cbiAgICovXG4gIHNldENvdW50cmllcygpIHtcbiAgICBpZiAodGhpcy5pbmNsdWRlZCgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMuc2V0KENPVU5UUklFUy5maWx0ZXIoKGMpID0+IHRoaXMuaW5jbHVkZWQoKS5pbmNsdWRlcyhjLmNvZGUpKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV4Y2x1ZGVkKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvdW50cmllcy5zZXQoQ09VTlRSSUVTLmZpbHRlcigoYykgPT4gIXRoaXMuZXhjbHVkZWQoKS5pbmNsdWRlcyhjLmNvZGUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY291bnRyaWVzLnNldChDT1VOVFJJRVMpO1xuICAgIH1cbiAgICB0aGlzLmZsYWdzLnNldChDT1VOVFJJRVNfRkxBR19CQVNFNjQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgc2VsZWN0ZWQgY291bnRyeSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY291bnRyeSBjb2RlIG9yIHRoZSBmaXJzdCBjb3VudHJ5IGluIHRoZSBsaXN0LlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBVcGRhdGVzIHRoZSBzZWxlY3RlZCBjb3VudHJ5LlxuICAgKi9cbiAgc2V0RGVmYXVsdFZhbHVlKCkge1xuICAgIGlmICh0aGlzLmNvdW50cnkoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KHRoaXMuY291bnRyaWVzKCkuZmluZCgoYykgPT4gYy5jb2RlID09PSB0aGlzLmNvdW50cnkoKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeS5zZXQodGhpcy5jb3VudHJpZXMoKVswXSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUtleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIFByZXZlbnQgYWxsIGtleWJvYXJkIGFjdGlvbnMgaWYgY29tcG9uZW50IGlzIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSW4gcmVhZG9ubHkgc3RhdGUsIG9ubHkgYWxsb3cgY29weSBvcGVyYXRpb25zIChDdHJsK0MsIEN0cmwrQSlcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgY29uc3QgaXNDb3B5T3BlcmF0aW9uID1cbiAgICAgICAgKGUuY3RybEtleSAmJiAoZS5rZXkgPT09ICdjJyB8fCBlLmtleSA9PT0gJ0MnKSkgfHwgKGUuY3RybEtleSAmJiAoZS5rZXkgPT09ICdhJyB8fCBlLmtleSA9PT0gJ0EnKSk7XG5cbiAgICAgIGlmICghaXNDb3B5T3BlcmF0aW9uKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVmFsaWRLZXlib2FyZEFjdGlvbihlKSkge1xuICAgICAgdGhpcy5lbWl0T25LZXlkb3duRXZlbnQoZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVBob25lTnVtYmVyKGZ1bGxOdW1iZXI6IHN0cmluZyk6IHtcbiAgICBjb3VudHJ5OiBDb3VudHJ5SXRlbSB8IG51bGw7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZyB8IG51bGw7XG4gICAgbmF0aW9uYWxOdW1iZXI6IHN0cmluZztcbiAgfSB7XG4gICAgLy8gMSkgTm9ybWFsaXplIGlucHV0XG4gICAgbGV0IG5vcm1hbGl6ZWQgPSBmdWxsTnVtYmVyLnJlcGxhY2UoL1teMC05K10vZywgJycpO1xuXG4gICAgLy8gY29udmVydCAwMC4uLiDihpIgKy4uLlxuICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJzAwJykpIHtcbiAgICAgIG5vcm1hbGl6ZWQgPSAnKycgKyBub3JtYWxpemVkLnNsaWNlKDIpO1xuICAgIH1cblxuICAgIC8vIDIpIFNvcnQgY291bnRyaWVzIGJ5IGxvbmdlc3QgcHJlZml4IGZpcnN0XG4gICAgY29uc3Qgc29ydGVkID0gWy4uLkNPVU5UUklFU10uc29ydCgoYSwgYikgPT4gYi5pc28yY29kZS5sZW5ndGggLSBhLmlzbzJjb2RlLmxlbmd0aCk7XG5cbiAgICAvLyAzKSBNYXRjaCB0aGUgY291bnRyeSBjb2RlXG4gICAgZm9yIChjb25zdCBjb3VudHJ5IG9mIHNvcnRlZCkge1xuICAgICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aChjb3VudHJ5LmlzbzJjb2RlKSkge1xuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IGNvdW50cnkuaXNvMmNvZGU7XG4gICAgICAgIGNvbnN0IG5hdGlvbmFsTnVtYmVyID0gbm9ybWFsaXplZC5zbGljZShjb3VudHJ5Q29kZS5sZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY291bnRyeSxcbiAgICAgICAgICBjb3VudHJ5Q29kZSxcbiAgICAgICAgICBuYXRpb25hbE51bWJlcixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0KSBObyBtYXRjaCBmb3VuZFxuICAgIHJldHVybiB7XG4gICAgICBjb3VudHJ5OiBudWxsLFxuICAgICAgY291bnRyeUNvZGU6IG51bGwsXG4gICAgICBuYXRpb25hbE51bWJlcjogbm9ybWFsaXplZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2hhbmRsZUNvdW50cnlWYWx1ZUNoYW5nZWQoZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IHZhbHVlIGNoYW5nZSBpZiBjb21wb25lbnQgaXMgZGlzYWJsZWQgb3IgcmVhZG9ubHlcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnNldChldmVudC5jb21wb25lbnQuc2VsZWN0ZWRJdGVtc1swXSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCI8YXgtdGV4dC1ib3hcbiAgZGlyPVwibHRyXCJcbiAgW2xvb2tdPVwibG9va1wiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gIFttYXNrLW9wdGlvbnNdPVwieyBtYXNrOiBzZWxlY3RlZENvdW50cnkoKT8uZm9ybWF0IH1cIlxuICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRDb3VudHJ5KCk/LmZvcm1hdFwiXG4gIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAob25CbHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uRm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uS2V5RG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudC5uYXRpdmVFdmVudClcIlxuICAob25LZXlQcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudC5uYXRpdmVFdmVudClcIlxuICAob25LZXlVcCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudC5uYXRpdmVFdmVudClcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuICBAZm9yIChyZWdleCBvZiBbc2VsZWN0ZWRDb3VudHJ5KCk/LnJlZ2V4XTsgdHJhY2sgcmVnZXgpIHtcbiAgICBAaWYgKHJlZ2V4ICYmIG1lc3NhZ2VFcnJvcikge1xuICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZVxuICAgICAgICBydWxlPVwicmVnZXhcIlxuICAgICAgICBbb3B0aW9uc109XCJ7XG4gICAgICAgICAgbWVzc2FnZTogbWVzc2FnZUVycm9yLFxuICAgICAgICAgIHBhdHRlcm46IHJlZ2V4LFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgIDwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgIH1cbiAgfVxuXG4gIDxheC1wcmVmaXg+XG4gICAgQGlmIChwcmVjb2RlKCkpIHtcbiAgICAgIDxheC10ZXh0Pnt7IHByZWNvZGUoKSB9fTwvYXgtdGV4dD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgICNzXG4gICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtkcm9wZG93bldpZHRoXT1cIiczMjBweCdcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRDb3VudHJ5KClcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIidpc28yY29kZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInY29kZSdcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cImN1c3RvbUl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNvdW50cnlWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNsb3NlZCk9XCJoYW5kbGVDb3VudHJ5T25DbG9zZWQoKVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJpbmNsdWRlZCgpLmxlbmd0aCA9PT0gMSA/ICctMScgOiAnMSdcIlxuICAgICAgPlxuICAgICAgICA8YXgtc2VhcmNoLWJveCBjbGFzcz1cImF4LXNtXCIgbG9vaz1cImZpbGxcIj5cbiAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tSXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb3VudHJ5LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1jb3VudHJ5LWZsYWdcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtcG9zaXRpb24nOiBpdGVtLmRhdGEuYmtQb3NpdGlvbj8ueCArICcgJyArIGl0ZW0uZGF0YS5ia1Bvc2l0aW9uPy55LFxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgZmxhZ3MoKSArICcpJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWNvdW50cnktbmFtZVwiPnt7IGl0ZW0uZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWlzbzJjb2RlXCI+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0ZWQtY291bnRyeVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICB9XG4gIDwvYXgtcHJlZml4PlxuPC9heC10ZXh0LWJveD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2xlYXItYnV0dG9uIFwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\nexport class AXPhoneBoxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule, AXPhoneBoxComponent], exports: [AXPhoneBoxComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPhoneBoxModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RCxNQUFNLFNBQVMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDeEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsZUFBZTtDQUNoQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWUsRUFURSxtQkFBbUIsYUFBbkIsbUJBQW1CO2dIQWlCekIsZ0JBQWdCLFlBSmQsT0FBTyxFQUFLLFNBQVM7OzRGQUl2QixnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBBWFBob25lQm94Q29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1ib3guY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGhvbmVCb3hDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgSU1hc2tNb2R1bGUsXG4gIEFYU2VsZWN0Qm94TW9kdWxlLFxuICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWFRleHRCb3hNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUGhvbmVCb3hNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcGhvbmUtYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9waG9uZS1ib3gvc3JjL2Fjb3JleC1jb21wb25lbnRzLXBob25lLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-phone-box.mjs","sources":["../../../../packages/components/phone-box/src/lib/phone-box.component.ts","../../../../packages/components/phone-box/src/lib/phone-box.component.html","../../../../packages/components/phone-box/src/lib/phone-box.module.ts","../../../../packages/components/phone-box/src/acorex-components-phone-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXDataSource,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64, CountryItem } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\n\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\n@Component({\n selector: 'ax-phone-box',\n templateUrl: './phone-box.component.html',\n styleUrls: ['./phone-box.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ],\n host: {\n ngSkipHydration: 'true',\n },\n imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXSelectBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ],\n})\nexport class AXPhoneBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n /** @ignore */\n @ViewChild(AXTextBoxComponent, { static: true })\n private textbox: AXTextBoxComponent;\n\n protected flags = signal(COUNTRIES_FLAG_BASE64);\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n protected messageError = this.callTranslate();\n\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n\n /**\n * CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /**\n * static precode.\n */\n precode = input();\n\n /**\n * The default country value for the component.\n */\n country = model<string>('');\n\n /**\n * List of included values for the component.\n */\n included = input<string[]>([]);\n\n /**\n * List of excluded values for the component.\n */\n excluded = input<string[]>([]);\n\n private selectBox = viewChild<AXSelectBoxComponent>('s');\n\n /** @ignore */\n protected countries = signal<CountryItem[]>([]);\n\n /** @ignore */\n protected selectedCountry = signal<CountryItem>(null);\n\n #countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n });\n\n #init = afterNextRender(() => {\n setTimeout(() => {\n if (this.country() && !this.value) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n } else if (!this.country() && !this.value) {\n this.selectedCountry.set(this.countries()[0]);\n }\n });\n\n this.setCountries();\n });\n\n #eff = effect(async () => {\n if (this.selectedCountry()?.regex) {\n this.removeValidation();\n const message = await this.messageError;\n this.addValidationRule({\n rule: 'regex',\n options: {\n message,\n pattern: this.selectedCountry()?.regex,\n },\n disabled: false,\n });\n }\n });\n\n /** @ignore */\n protected _handleModelChange(e: AXValueChangedEvent<any>) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n if (e.isUserInteraction && e.value) this.commitValue(e.value, true);\n }\n\n protected override internalValueChanged(value: any): void {\n if (!value) return;\n const result = this.parsePhoneNumber(value);\n if (result.country) {\n this.selectedCountry.set(result.country);\n this.commitValue(result.nationalNumber);\n }\n }\n\n /** @ignore */\n protected dataSource = new AXDataSource<CountryItem>({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(\n list,\n (c) =>\n c.name.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.iso2code.toUpperCase().includes((e.filter.value as string).toUpperCase()) ||\n c.code.toUpperCase().includes((e.filter.value as string).toUpperCase()),\n )\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n\n /** @ignore */\n protected handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n isValidKeyboardAction = (event: KeyboardEvent) => {\n const _code = parseInt(event.key);\n\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n } else {\n return false;\n }\n };\n\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n } else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n } else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n\n protected handleKeyDown(e: KeyboardEvent) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation =\n (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n\n private parsePhoneNumber(fullNumber: string): {\n country: CountryItem | null;\n countryCode: string | null;\n nationalNumber: string;\n } {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const rawNationalNumber = normalized.slice(countryCode.length);\n const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);\n\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n\n /**\n * Formats a national phone number according to the country's format pattern.\n * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).\n *\n * @param number - The raw national number (digits only)\n * @param format - The country's phone number format pattern (e.g., '000 000 0000')\n * @returns The formatted national number with spaces according to the format\n */\n private formatNationalNumber(number: string, format: string): string {\n if (!format || !number) {\n return number;\n }\n\n let result = '';\n let numberIndex = 0;\n\n for (let i = 0; i < format.length && numberIndex < number.length; i++) {\n if (format[i] === '0') {\n result += number[numberIndex];\n numberIndex++;\n } else {\n result += format[i];\n }\n }\n\n // Append any remaining digits that exceed the format length\n if (numberIndex < number.length) {\n result += number.slice(numberIndex);\n }\n\n return result;\n }\n\n /** @ignore */\n _handleCountryValueChanged(event: AXValueChangedEvent) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n\n //remove validation rule before add new one\n if (event.isUserInteraction) {\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n }\n\n private removeValidation() {\n this.removeValidationRuleByType('regex');\n this.textbox.reset();\n this.textbox.resetErrors();\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maskPattern]=\"selectedCountry()?.mask\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\n\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPhoneBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}