@wlcm/angular 17.3.4 → 17.4.0

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 (294) hide show
  1. package/dist/README.md +62 -0
  2. package/dist/button/.npmignore +2 -0
  3. package/dist/core/.npmignore +2 -0
  4. package/dist/date-range-picker/.npmignore +2 -0
  5. package/dist/filters/.npmignore +2 -0
  6. package/dist/forms/.npmignore +2 -0
  7. package/dist/package.json +92 -0
  8. package/dist/phone-input/.npmignore +2 -0
  9. package/dist/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +32 -0
  10. package/dist/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +103 -0
  11. package/dist/phone-input/esm2022/lib/directives/phone-input.directive.mjs +124 -0
  12. package/{phone-input → dist/phone-input}/fesm2022/wlcm-angular-phone-input.mjs +19 -8
  13. package/dist/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -0
  14. package/{phone-input → dist/phone-input}/lib/components/country-code-select/country-code-select.component.d.ts +3 -0
  15. package/dist/search-field/.npmignore +2 -0
  16. package/dist/stepper/.npmignore +2 -0
  17. package/dist/stepper/README.md +7 -0
  18. package/dist/stepper/esm2022/index.mjs +11 -0
  19. package/dist/stepper/esm2022/lib/components/step/step.component.mjs +53 -0
  20. package/dist/stepper/esm2022/lib/components/step-header/step-header.component.mjs +79 -0
  21. package/dist/stepper/esm2022/lib/components/stepper/stepper.component.mjs +15 -0
  22. package/dist/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +16 -0
  23. package/dist/stepper/esm2022/lib/constants/step.constants.mjs +9 -0
  24. package/dist/stepper/esm2022/lib/constants/stepper.stepper.mjs +3 -0
  25. package/dist/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +51 -0
  26. package/dist/stepper/esm2022/lib/models/step.models.mjs +60 -0
  27. package/dist/stepper/esm2022/lib/models/stepper.models.mjs +114 -0
  28. package/dist/stepper/esm2022/lib/stepper.module.mjs +34 -0
  29. package/dist/stepper/esm2022/wlcm-angular-stepper.mjs +5 -0
  30. package/dist/stepper/fesm2022/wlcm-angular-stepper.mjs +385 -0
  31. package/dist/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -0
  32. package/dist/stepper/index.d.ts +10 -0
  33. package/dist/stepper/lib/components/step/step.component.d.ts +16 -0
  34. package/dist/stepper/lib/components/step-header/step-header.component.d.ts +20 -0
  35. package/dist/stepper/lib/components/stepper/stepper.component.d.ts +6 -0
  36. package/dist/stepper/lib/components/stepper-header/stepper-header.component.d.ts +8 -0
  37. package/dist/stepper/lib/constants/step.constants.d.ts +4 -0
  38. package/dist/stepper/lib/constants/stepper.stepper.d.ts +3 -0
  39. package/dist/stepper/lib/directives/load-on-active-step.directive.d.ts +13 -0
  40. package/dist/stepper/lib/models/step.models.d.ts +43 -0
  41. package/dist/stepper/lib/models/stepper.models.d.ts +44 -0
  42. package/dist/stepper/lib/stepper.module.d.ts +12 -0
  43. package/dist/styles/components/stepper/_step-header.scss +123 -0
  44. package/dist/styles/components/stepper/_step.scss +15 -0
  45. package/dist/styles/components/stepper/_stepper-header.scss +13 -0
  46. package/dist/styles/components/stepper/_stepper.scss +6 -0
  47. package/dist/styles/components/stepper/indes.scss +9 -0
  48. package/{styles → dist/styles}/core/_all-theme.scss +2 -0
  49. package/package.json +61 -2
  50. package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +0 -26
  51. package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +0 -103
  52. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +0 -119
  53. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +0 -1
  54. /package/{button → dist/button}/README.md +0 -0
  55. /package/{button → dist/button}/esm2022/index.mjs +0 -0
  56. /package/{button → dist/button}/esm2022/lib/button.module.mjs +0 -0
  57. /package/{button → dist/button}/esm2022/lib/components/button/button.component.mjs +0 -0
  58. /package/{button → dist/button}/esm2022/lib/models/button.models.mjs +0 -0
  59. /package/{button → dist/button}/esm2022/wlcm-angular-button.mjs +0 -0
  60. /package/{button → dist/button}/fesm2022/wlcm-angular-button.mjs +0 -0
  61. /package/{button → dist/button}/fesm2022/wlcm-angular-button.mjs.map +0 -0
  62. /package/{button → dist/button}/index.d.ts +0 -0
  63. /package/{button → dist/button}/lib/button.module.d.ts +0 -0
  64. /package/{button → dist/button}/lib/components/button/button.component.d.ts +0 -0
  65. /package/{button → dist/button}/lib/models/button.models.d.ts +0 -0
  66. /package/{core → dist/core}/README.md +0 -0
  67. /package/{core → dist/core}/esm2022/index.mjs +0 -0
  68. /package/{core → dist/core}/esm2022/lib/components/calendar-icon/calendar-icon.component.mjs +0 -0
  69. /package/{core → dist/core}/esm2022/lib/components/chevron-down-icon/chevron-down-icon.component.mjs +0 -0
  70. /package/{core → dist/core}/esm2022/lib/components/close-icon/close-icon.component.mjs +0 -0
  71. /package/{core → dist/core}/esm2022/lib/components/search-icon/search-icon.component.mjs +0 -0
  72. /package/{core → dist/core}/esm2022/lib/constants/http.constants.mjs +0 -0
  73. /package/{core → dist/core}/esm2022/lib/constants/icon.contants.mjs +0 -0
  74. /package/{core → dist/core}/esm2022/lib/directives/icon.directive.mjs +0 -0
  75. /package/{core → dist/core}/esm2022/lib/models/icon.models.mjs +0 -0
  76. /package/{core → dist/core}/esm2022/lib/models/option.models.mjs +0 -0
  77. /package/{core → dist/core}/esm2022/lib/models/paginated-data.models.mjs +0 -0
  78. /package/{core → dist/core}/esm2022/lib/models/query-params.models.mjs +0 -0
  79. /package/{core → dist/core}/esm2022/lib/utils/stream.utils.mjs +0 -0
  80. /package/{core → dist/core}/esm2022/wlcm-angular-core.mjs +0 -0
  81. /package/{core → dist/core}/fesm2022/wlcm-angular-core.mjs +0 -0
  82. /package/{core → dist/core}/fesm2022/wlcm-angular-core.mjs.map +0 -0
  83. /package/{core → dist/core}/index.d.ts +0 -0
  84. /package/{core → dist/core}/lib/components/calendar-icon/calendar-icon.component.d.ts +0 -0
  85. /package/{core → dist/core}/lib/components/chevron-down-icon/chevron-down-icon.component.d.ts +0 -0
  86. /package/{core → dist/core}/lib/components/close-icon/close-icon.component.d.ts +0 -0
  87. /package/{core → dist/core}/lib/components/search-icon/search-icon.component.d.ts +0 -0
  88. /package/{core → dist/core}/lib/constants/http.constants.d.ts +0 -0
  89. /package/{core → dist/core}/lib/constants/icon.contants.d.ts +0 -0
  90. /package/{core → dist/core}/lib/directives/icon.directive.d.ts +0 -0
  91. /package/{core → dist/core}/lib/models/icon.models.d.ts +0 -0
  92. /package/{core → dist/core}/lib/models/option.models.d.ts +0 -0
  93. /package/{core → dist/core}/lib/models/paginated-data.models.d.ts +0 -0
  94. /package/{core → dist/core}/lib/models/query-params.models.d.ts +0 -0
  95. /package/{core → dist/core}/lib/utils/stream.utils.d.ts +0 -0
  96. /package/{date-range-picker → dist/date-range-picker}/README.md +0 -0
  97. /package/{date-range-picker → dist/date-range-picker}/esm2022/index.mjs +0 -0
  98. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/components/calendar-header/calendar-header.component.mjs +0 -0
  99. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +0 -0
  100. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +0 -0
  101. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/components/date-range-picker-input/date-range-picker-input.component.mjs +0 -0
  102. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/constants/date-range-selection-model.constants.mjs +0 -0
  103. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs +0 -0
  104. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/date-range-picker.module.mjs +0 -0
  105. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/date-range-picker-input-base.directive.mjs +0 -0
  106. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/date-range-picker-input-end.directive.mjs +0 -0
  107. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/date-range-picker-input-start.directive.mjs +0 -0
  108. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/date-range-picker-trigger.directive.mjs +0 -0
  109. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/left-calendar.directive.mjs +0 -0
  110. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/directives/right-calendar.directive.mjs +0 -0
  111. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/models/data-range-calendar.models.mjs +0 -0
  112. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/models/date-range-validation.models.mjs +0 -0
  113. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/services/date-adapter.service.mjs +0 -0
  114. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/utils/date-range-input.validators.mjs +0 -0
  115. /package/{date-range-picker → dist/date-range-picker}/esm2022/lib/utils/date-range-picker-errors.mjs +0 -0
  116. /package/{date-range-picker → dist/date-range-picker}/esm2022/wlcm-angular-date-range-picker.mjs +0 -0
  117. /package/{date-range-picker → dist/date-range-picker}/fesm2022/wlcm-angular-date-range-picker.mjs +0 -0
  118. /package/{date-range-picker → dist/date-range-picker}/fesm2022/wlcm-angular-date-range-picker.mjs.map +0 -0
  119. /package/{date-range-picker → dist/date-range-picker}/index.d.ts +0 -0
  120. /package/{date-range-picker → dist/date-range-picker}/lib/components/calendar-header/calendar-header.component.d.ts +0 -0
  121. /package/{date-range-picker → dist/date-range-picker}/lib/components/date-range-picker/date-range-picker.component.d.ts +0 -0
  122. /package/{date-range-picker → dist/date-range-picker}/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +0 -0
  123. /package/{date-range-picker → dist/date-range-picker}/lib/components/date-range-picker-input/date-range-picker-input.component.d.ts +0 -0
  124. /package/{date-range-picker → dist/date-range-picker}/lib/constants/date-range-selection-model.constants.d.ts +0 -0
  125. /package/{date-range-picker → dist/date-range-picker}/lib/constants/date-range-trigger-selection-model.constants.d.ts +0 -0
  126. /package/{date-range-picker → dist/date-range-picker}/lib/date-range-picker.module.d.ts +0 -0
  127. /package/{date-range-picker → dist/date-range-picker}/lib/directives/date-range-picker-input-base.directive.d.ts +0 -0
  128. /package/{date-range-picker → dist/date-range-picker}/lib/directives/date-range-picker-input-end.directive.d.ts +0 -0
  129. /package/{date-range-picker → dist/date-range-picker}/lib/directives/date-range-picker-input-start.directive.d.ts +0 -0
  130. /package/{date-range-picker → dist/date-range-picker}/lib/directives/date-range-picker-trigger.directive.d.ts +0 -0
  131. /package/{date-range-picker → dist/date-range-picker}/lib/directives/left-calendar.directive.d.ts +0 -0
  132. /package/{date-range-picker → dist/date-range-picker}/lib/directives/right-calendar.directive.d.ts +0 -0
  133. /package/{date-range-picker → dist/date-range-picker}/lib/models/data-range-calendar.models.d.ts +0 -0
  134. /package/{date-range-picker → dist/date-range-picker}/lib/models/date-range-validation.models.d.ts +0 -0
  135. /package/{date-range-picker → dist/date-range-picker}/lib/services/date-adapter.service.d.ts +0 -0
  136. /package/{date-range-picker → dist/date-range-picker}/lib/utils/date-range-input.validators.d.ts +0 -0
  137. /package/{date-range-picker → dist/date-range-picker}/lib/utils/date-range-picker-errors.d.ts +0 -0
  138. /package/{filters → dist/filters}/README.md +0 -0
  139. /package/{filters → dist/filters}/esm2022/index.mjs +0 -0
  140. /package/{filters → dist/filters}/esm2022/lib/filters/components/filters/filters.component.mjs +0 -0
  141. /package/{filters → dist/filters}/esm2022/lib/filters/components/filters-button/filters-button.component.mjs +0 -0
  142. /package/{filters → dist/filters}/esm2022/lib/filters/components/filters-panel/filters-panel.component.mjs +0 -0
  143. /package/{filters → dist/filters}/esm2022/lib/filters/components/filters-unit/filters-unit.component.mjs +0 -0
  144. /package/{filters → dist/filters}/esm2022/lib/filters/directives/filters-content.directive.mjs +0 -0
  145. /package/{filters → dist/filters}/esm2022/lib/filters/directives/filters-trigger.directive.mjs +0 -0
  146. /package/{filters → dist/filters}/esm2022/lib/filters/filters.module.mjs +0 -0
  147. /package/{filters → dist/filters}/esm2022/lib/filters/models/filters-default-selection-model.mjs +0 -0
  148. /package/{filters → dist/filters}/esm2022/lib/filters/models/filters-trigger.base.mjs +0 -0
  149. /package/{filters → dist/filters}/esm2022/lib/filters/models/filters.models.mjs +0 -0
  150. /package/{filters → dist/filters}/esm2022/lib/filters/pipes/is-filters-param-checked.pipe.mjs +0 -0
  151. /package/{filters → dist/filters}/esm2022/lib/filters/pipes/total-filters-applied.pipe.mjs +0 -0
  152. /package/{filters → dist/filters}/esm2022/lib/filters/utils/filters.utils.mjs +0 -0
  153. /package/{filters → dist/filters}/esm2022/wlcm-angular-filters.mjs +0 -0
  154. /package/{filters → dist/filters}/fesm2022/wlcm-angular-filters.mjs +0 -0
  155. /package/{filters → dist/filters}/fesm2022/wlcm-angular-filters.mjs.map +0 -0
  156. /package/{filters → dist/filters}/index.d.ts +0 -0
  157. /package/{filters → dist/filters}/lib/filters/components/filters/filters.component.d.ts +0 -0
  158. /package/{filters → dist/filters}/lib/filters/components/filters-button/filters-button.component.d.ts +0 -0
  159. /package/{filters → dist/filters}/lib/filters/components/filters-panel/filters-panel.component.d.ts +0 -0
  160. /package/{filters → dist/filters}/lib/filters/components/filters-unit/filters-unit.component.d.ts +0 -0
  161. /package/{filters → dist/filters}/lib/filters/directives/filters-content.directive.d.ts +0 -0
  162. /package/{filters → dist/filters}/lib/filters/directives/filters-trigger.directive.d.ts +0 -0
  163. /package/{filters → dist/filters}/lib/filters/filters.module.d.ts +0 -0
  164. /package/{filters → dist/filters}/lib/filters/models/filters-default-selection-model.d.ts +0 -0
  165. /package/{filters → dist/filters}/lib/filters/models/filters-trigger.base.d.ts +0 -0
  166. /package/{filters → dist/filters}/lib/filters/models/filters.models.d.ts +0 -0
  167. /package/{filters → dist/filters}/lib/filters/pipes/is-filters-param-checked.pipe.d.ts +0 -0
  168. /package/{filters → dist/filters}/lib/filters/pipes/total-filters-applied.pipe.d.ts +0 -0
  169. /package/{filters → dist/filters}/lib/filters/utils/filters.utils.d.ts +0 -0
  170. /package/{forms → dist/forms}/README.md +0 -0
  171. /package/{forms → dist/forms}/esm2022/index.mjs +0 -0
  172. /package/{forms → dist/forms}/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +0 -0
  173. /package/{forms → dist/forms}/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +0 -0
  174. /package/{forms → dist/forms}/esm2022/lib/forms/components/error/error.component.mjs +0 -0
  175. /package/{forms → dist/forms}/esm2022/lib/forms/components/form-field/form-field.component.mjs +0 -0
  176. /package/{forms → dist/forms}/esm2022/lib/forms/components/index.mjs +0 -0
  177. /package/{forms → dist/forms}/esm2022/lib/forms/components/label/label.component.mjs +0 -0
  178. /package/{forms → dist/forms}/esm2022/lib/forms/components/select/select.component.mjs +0 -0
  179. /package/{forms → dist/forms}/esm2022/lib/forms/constants/form-elements.constants.mjs +0 -0
  180. /package/{forms → dist/forms}/esm2022/lib/forms/constants/form-errors.constants.mjs +0 -0
  181. /package/{forms → dist/forms}/esm2022/lib/forms/constants/form-field.constants.mjs +0 -0
  182. /package/{forms → dist/forms}/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +0 -0
  183. /package/{forms → dist/forms}/esm2022/lib/forms/constants/index.mjs +0 -0
  184. /package/{forms → dist/forms}/esm2022/lib/forms/directives/ac-input-binder.directive.mjs +0 -0
  185. /package/{forms → dist/forms}/esm2022/lib/forms/directives/autocomplete.directive.mjs +0 -0
  186. /package/{forms → dist/forms}/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +0 -0
  187. /package/{forms → dist/forms}/esm2022/lib/forms/directives/form-field-hint.directive.mjs +0 -0
  188. /package/{forms → dist/forms}/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +0 -0
  189. /package/{forms → dist/forms}/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +0 -0
  190. /package/{forms → dist/forms}/esm2022/lib/forms/directives/input.directive.mjs +0 -0
  191. /package/{forms → dist/forms}/esm2022/lib/forms/directives/select-input-binder.directive.mjs +0 -0
  192. /package/{forms → dist/forms}/esm2022/lib/forms/forms.module.mjs +0 -0
  193. /package/{forms → dist/forms}/esm2022/lib/forms/models/_index.mjs +0 -0
  194. /package/{forms → dist/forms}/esm2022/lib/forms/models/form-errors.models.mjs +0 -0
  195. /package/{forms → dist/forms}/esm2022/lib/forms/models/form.models.mjs +0 -0
  196. /package/{forms → dist/forms}/esm2022/lib/forms/models/input.models.mjs +0 -0
  197. /package/{forms → dist/forms}/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +0 -0
  198. /package/{forms → dist/forms}/esm2022/lib/forms/services/form-state-handler.service.mjs +0 -0
  199. /package/{forms → dist/forms}/esm2022/lib/forms/services/index.mjs +0 -0
  200. /package/{forms → dist/forms}/esm2022/wlcm-angular-forms.mjs +0 -0
  201. /package/{forms → dist/forms}/fesm2022/wlcm-angular-forms.mjs +0 -0
  202. /package/{forms → dist/forms}/fesm2022/wlcm-angular-forms.mjs.map +0 -0
  203. /package/{forms → dist/forms}/index.d.ts +0 -0
  204. /package/{forms → dist/forms}/lib/forms/components/autocomplete/autocomplete.component.d.ts +0 -0
  205. /package/{forms → dist/forms}/lib/forms/components/checkbox/checkbox.component.d.ts +0 -0
  206. /package/{forms → dist/forms}/lib/forms/components/error/error.component.d.ts +0 -0
  207. /package/{forms → dist/forms}/lib/forms/components/form-field/form-field.component.d.ts +0 -0
  208. /package/{forms → dist/forms}/lib/forms/components/index.d.ts +0 -0
  209. /package/{forms → dist/forms}/lib/forms/components/label/label.component.d.ts +0 -0
  210. /package/{forms → dist/forms}/lib/forms/components/select/select.component.d.ts +0 -0
  211. /package/{forms → dist/forms}/lib/forms/constants/form-elements.constants.d.ts +0 -0
  212. /package/{forms → dist/forms}/lib/forms/constants/form-errors.constants.d.ts +0 -0
  213. /package/{forms → dist/forms}/lib/forms/constants/form-field.constants.d.ts +0 -0
  214. /package/{forms → dist/forms}/lib/forms/constants/form-state-handlers.constants.d.ts +0 -0
  215. /package/{forms → dist/forms}/lib/forms/constants/index.d.ts +0 -0
  216. /package/{forms → dist/forms}/lib/forms/directives/ac-input-binder.directive.d.ts +0 -0
  217. /package/{forms → dist/forms}/lib/forms/directives/autocomplete.directive.d.ts +0 -0
  218. /package/{forms → dist/forms}/lib/forms/directives/form-field-custom-container.directive.d.ts +0 -0
  219. /package/{forms → dist/forms}/lib/forms/directives/form-field-hint.directive.d.ts +0 -0
  220. /package/{forms → dist/forms}/lib/forms/directives/form-field-prefix.directive.d.ts +0 -0
  221. /package/{forms → dist/forms}/lib/forms/directives/form-field-suffix.directive.d.ts +0 -0
  222. /package/{forms → dist/forms}/lib/forms/directives/input.directive.d.ts +0 -0
  223. /package/{forms → dist/forms}/lib/forms/directives/select-input-binder.directive.d.ts +0 -0
  224. /package/{forms → dist/forms}/lib/forms/forms.module.d.ts +0 -0
  225. /package/{forms → dist/forms}/lib/forms/models/_index.d.ts +0 -0
  226. /package/{forms → dist/forms}/lib/forms/models/form-errors.models.d.ts +0 -0
  227. /package/{forms → dist/forms}/lib/forms/models/form.models.d.ts +0 -0
  228. /package/{forms → dist/forms}/lib/forms/models/input.models.d.ts +0 -0
  229. /package/{forms → dist/forms}/lib/forms/pipes/errors-mapper.pipe.d.ts +0 -0
  230. /package/{forms → dist/forms}/lib/forms/services/form-state-handler.service.d.ts +0 -0
  231. /package/{forms → dist/forms}/lib/forms/services/index.d.ts +0 -0
  232. /package/{index.d.ts → dist/index.d.ts} +0 -0
  233. /package/{index.mjs → dist/index.mjs} +0 -0
  234. /package/{phone-input → dist/phone-input}/README.md +0 -0
  235. /package/{phone-input → dist/phone-input}/esm2022/index.mjs +0 -0
  236. /package/{phone-input → dist/phone-input}/esm2022/lib/constants/country-code-options.constants.mjs +0 -0
  237. /package/{phone-input → dist/phone-input}/esm2022/lib/constants/phone-adapter.constants.mjs +0 -0
  238. /package/{phone-input → dist/phone-input}/esm2022/lib/models/country-code.models.mjs +0 -0
  239. /package/{phone-input → dist/phone-input}/esm2022/lib/models/phone-adapter.models.mjs +0 -0
  240. /package/{phone-input → dist/phone-input}/esm2022/lib/models/phone.models.mjs +0 -0
  241. /package/{phone-input → dist/phone-input}/esm2022/lib/phone-input.module.mjs +0 -0
  242. /package/{phone-input → dist/phone-input}/esm2022/lib/pipes/phone-code.pipe.mjs +0 -0
  243. /package/{phone-input → dist/phone-input}/esm2022/wlcm-angular-phone-input.mjs +0 -0
  244. /package/{phone-input → dist/phone-input}/index.d.ts +0 -0
  245. /package/{phone-input → dist/phone-input}/lib/components/phone-input-container/phone-input-container.component.d.ts +0 -0
  246. /package/{phone-input → dist/phone-input}/lib/constants/country-code-options.constants.d.ts +0 -0
  247. /package/{phone-input → dist/phone-input}/lib/constants/phone-adapter.constants.d.ts +0 -0
  248. /package/{phone-input → dist/phone-input}/lib/directives/phone-input.directive.d.ts +0 -0
  249. /package/{phone-input → dist/phone-input}/lib/models/country-code.models.d.ts +0 -0
  250. /package/{phone-input → dist/phone-input}/lib/models/phone-adapter.models.d.ts +0 -0
  251. /package/{phone-input → dist/phone-input}/lib/models/phone.models.d.ts +0 -0
  252. /package/{phone-input → dist/phone-input}/lib/phone-input.module.d.ts +0 -0
  253. /package/{phone-input → dist/phone-input}/lib/pipes/phone-code.pipe.d.ts +0 -0
  254. /package/{search-field → dist/search-field}/README.md +0 -0
  255. /package/{search-field → dist/search-field}/esm2022/index.mjs +0 -0
  256. /package/{search-field → dist/search-field}/esm2022/lib/components/search-field/search-field.component.mjs +0 -0
  257. /package/{search-field → dist/search-field}/esm2022/lib/search-field.module.mjs +0 -0
  258. /package/{search-field → dist/search-field}/esm2022/wlcm-angular-search-field.mjs +0 -0
  259. /package/{search-field → dist/search-field}/fesm2022/wlcm-angular-search-field.mjs +0 -0
  260. /package/{search-field → dist/search-field}/fesm2022/wlcm-angular-search-field.mjs.map +0 -0
  261. /package/{search-field → dist/search-field}/index.d.ts +0 -0
  262. /package/{search-field → dist/search-field}/lib/components/search-field/search-field.component.d.ts +0 -0
  263. /package/{search-field → dist/search-field}/lib/search-field.module.d.ts +0 -0
  264. /package/{styles → dist/styles}/components/button/index.scss +0 -0
  265. /package/{styles → dist/styles}/components/common/index.scss +0 -0
  266. /package/{styles → dist/styles}/components/date-range-picker/_date-range-picker-body.scss +0 -0
  267. /package/{styles → dist/styles}/components/date-range-picker/_date-range-picker-header.scss +0 -0
  268. /package/{styles → dist/styles}/components/date-range-picker/_date-range-picker-input.scss +0 -0
  269. /package/{styles → dist/styles}/components/date-range-picker/_date-range-picker-panel.scss +0 -0
  270. /package/{styles → dist/styles}/components/date-range-picker/index.scss +0 -0
  271. /package/{styles → dist/styles}/components/filters/_filters-panel.scss +0 -0
  272. /package/{styles → dist/styles}/components/filters/_filters-unit.scss +0 -0
  273. /package/{styles → dist/styles}/components/filters/index.scss +0 -0
  274. /package/{styles → dist/styles}/components/forms/_autocomplete.scss +0 -0
  275. /package/{styles → dist/styles}/components/forms/_checkbox.scss +0 -0
  276. /package/{styles → dist/styles}/components/forms/_error.scss +0 -0
  277. /package/{styles → dist/styles}/components/forms/_form-field.scss +0 -0
  278. /package/{styles → dist/styles}/components/forms/_label.scss +0 -0
  279. /package/{styles → dist/styles}/components/forms/_radio.scss +0 -0
  280. /package/{styles → dist/styles}/components/forms/_select.scss +0 -0
  281. /package/{styles → dist/styles}/components/forms/index.scss +0 -0
  282. /package/{styles → dist/styles}/components/phone-input/_country-code-select.scss +0 -0
  283. /package/{styles → dist/styles}/components/phone-input/_phone-input-container.scss +0 -0
  284. /package/{styles → dist/styles}/components/phone-input/indes.scss +0 -0
  285. /package/{styles → dist/styles}/components/search-field/index.scss +0 -0
  286. /package/{styles → dist/styles}/components/table/_table-head-data.scss +0 -0
  287. /package/{styles → dist/styles}/components/table/_table-head.scss +0 -0
  288. /package/{styles → dist/styles}/components/table/_table-row-data.scss +0 -0
  289. /package/{styles → dist/styles}/components/table/_table-row.scss +0 -0
  290. /package/{styles → dist/styles}/components/table/_table.scss +0 -0
  291. /package/{styles → dist/styles}/components/table/index.scss +0 -0
  292. /package/{styles → dist/styles}/core/_core.scss +0 -0
  293. /package/{styles → dist/styles}/core/_utils.scss +0 -0
  294. /package/{styles → dist/styles}/wlcm.scss +0 -0
package/dist/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # WlcmCommunity
2
+
3
+ <a alt="Nx logo" href="https://nx.dev" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo.png" width="45"></a>
4
+
5
+ ✨ **This workspace has been generated by [Nx, Smart Monorepos · Fast CI.](https://nx.dev)** ✨
6
+
7
+ ## Integrate with editors
8
+
9
+ Enhance your Nx experience by installing [Nx Console](https://nx.dev/nx-console) for your favorite editor. Nx Console
10
+ provides an interactive UI to view your projects, run tasks, generate code, and more! Available for VSCode, IntelliJ and
11
+ comes with a LSP for Vim users.
12
+
13
+ ## Start the application
14
+
15
+ Run `npx nx serve sandbox` to start the development server. Happy coding!
16
+
17
+ ## Build for production
18
+
19
+ Run `npx nx build sandbox` to build the application. The build artifacts are stored in the output directory (e.g. `dist/` or `build/`), ready to be deployed.
20
+
21
+ ## Running tasks
22
+
23
+ To execute tasks with Nx use the following syntax:
24
+
25
+ ```
26
+ npx nx <target> <project> <...options>
27
+ ```
28
+
29
+ You can also run multiple targets:
30
+
31
+ ```
32
+ npx nx run-many -t <target1> <target2>
33
+ ```
34
+
35
+ ..or add `-p` to filter specific projects
36
+
37
+ ```
38
+ npx nx run-many -t <target1> <target2> -p <proj1> <proj2>
39
+ ```
40
+
41
+ Targets can be defined in the `package.json` or `projects.json`. Learn more [in the docs](https://nx.dev/features/run-tasks).
42
+
43
+ ## Set up CI!
44
+
45
+ Nx comes with local caching already built-in (check your `nx.json`). On CI you might want to go a step further.
46
+
47
+ - [Set up remote caching](https://nx.dev/features/share-your-cache)
48
+ - [Set up task distribution across multiple machines](https://nx.dev/nx-cloud/features/distribute-task-execution)
49
+ - [Learn more how to setup CI](https://nx.dev/recipes/ci)
50
+
51
+ ## Explore the project graph
52
+
53
+ Run `npx nx graph` to show the graph of the workspace.
54
+ It will show tasks that you can run with Nx.
55
+
56
+ - [Learn more about Exploring the Project Graph](https://nx.dev/core-features/explore-graph)
57
+
58
+ ## Connect with us!
59
+
60
+ - [Join the community](https://nx.dev/community)
61
+ - [Subscribe to the Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
62
+ - [Follow us on Twitter](https://twitter.com/nxdevtools)
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@wlcm/angular",
3
+ "version": "17.4.0",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "module": "./index.mjs",
7
+ "typings": "./index.d.ts",
8
+ "private": false,
9
+ "exports": {
10
+ ".": {
11
+ "sass": "./styles/wlcm.scss",
12
+ "esm": "./index.mjs",
13
+ "types": "./index.d.ts",
14
+ "default": "./index.mjs"
15
+ },
16
+ "./core": {
17
+ "types": "./core/index.d.ts",
18
+ "esm2022": "./core/esm2022/wlcm-angular-core.mjs",
19
+ "fesm2022": "./core/fesm2022/wlcm-angular-core.mjs",
20
+ "default": "./core/fesm2022/wlcm-angular-core.mjs"
21
+ },
22
+ "./button": {
23
+ "types": "./button/index.d.ts",
24
+ "esm2022": "./button/esm2022/wlcm-angular-button.mjs",
25
+ "fesm2022": "./button/fesm2022/wlcm-angular-button.mjs",
26
+ "default": "./button/fesm2022/wlcm-angular-button.mjs"
27
+ },
28
+ "./filters": {
29
+ "types": "./filters/index.d.ts",
30
+ "esm2022": "./filters/esm2022/wlcm-angular-filters.mjs",
31
+ "fesm2022": "./filters/fesm2022/wlcm-angular-filters.mjs",
32
+ "default": "./filters/fesm2022/wlcm-angular-filters.mjs"
33
+ },
34
+ "./forms": {
35
+ "types": "./forms/index.d.ts",
36
+ "esm2022": "./forms/esm2022/wlcm-angular-forms.mjs",
37
+ "fesm2022": "./forms/fesm2022/wlcm-angular-forms.mjs",
38
+ "default": "./forms/fesm2022/wlcm-angular-forms.mjs"
39
+ },
40
+ "./search-field": {
41
+ "types": "./search-field/index.d.ts",
42
+ "esm2022": "./search-field/esm2022/wlcm-angular-search-field.mjs",
43
+ "fesm2022": "./search-field/fesm2022/wlcm-angular-search-field.mjs",
44
+ "default": "./search-field/fesm2022/wlcm-angular-search-field.mjs"
45
+ },
46
+ "./date-range-picker": {
47
+ "types": "./date-range-picker/index.d.ts",
48
+ "esm2022": "./date-range-picker/esm2022/wlcm-angular-date-range-picker.mjs",
49
+ "fesm2022": "./date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs",
50
+ "default": "./date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs"
51
+ },
52
+ "./phone-input": {
53
+ "types": "./phone-input/index.d.ts",
54
+ "esm2022": "./phone-input/esm2022/wlcm-angular-phone-input.mjs",
55
+ "fesm2022": "./phone-input/fesm2022/wlcm-angular-phone-input.mjs",
56
+ "default": "./phone-input/fesm2022/wlcm-angular-phone-input.mjs"
57
+ },
58
+ "./stepper": {
59
+ "types": "./stepper/index.d.ts",
60
+ "esm2022": "./stepper/esm2022/wlcm-angular-stepper.mjs",
61
+ "fesm2022": "./stepper/fesm2022/wlcm-angular-stepper.mjs",
62
+ "default": "./stepper/fesm2022/wlcm-angular-stepper.mjs"
63
+ }
64
+ },
65
+ "dependencies": {
66
+ "@angular/animations": "~17.3.0",
67
+ "@angular/cdk": "^17.3.5",
68
+ "@angular/common": "~17.3.0",
69
+ "@angular/compiler": "~17.3.0",
70
+ "@angular/core": "~17.3.0",
71
+ "@angular/forms": "~17.3.0",
72
+ "@angular/material": "^17.3.5",
73
+ "@angular/material-date-fns-adapter": "^17.3.10",
74
+ "@angular/material-moment-adapter": "^17.3.10",
75
+ "@angular/platform-browser": "~17.3.0",
76
+ "@angular/platform-browser-dynamic": "~17.3.0",
77
+ "@angular/router": "~17.3.0",
78
+ "@ngneat/until-destroy": "^10.0.0",
79
+ "@nx/angular": "18.3.2",
80
+ "@rx-angular/template": "^17.1.0",
81
+ "countries-list": "^3.1.0",
82
+ "date-fns": "^3.6.0",
83
+ "imask": "^7.6.1",
84
+ "libphonenumber-js": "^1.11.3",
85
+ "moment": "^2.30.1",
86
+ "rxjs": "~7.8.0",
87
+ "tslib": "^2.3.0",
88
+ "uuid": "^9.0.1",
89
+ "zone.js": "~0.14.3"
90
+ },
91
+ "devDependencies": {}
92
+ }
@@ -0,0 +1,2 @@
1
+ # Nested package.json's are only needed for development.
2
+ **/package.json
@@ -0,0 +1,32 @@
1
+ import { Component, Inject, ViewChild, input, output } from '@angular/core';
2
+ import { WlcmFormsModule, WlcmSelectComponent } from '@wlcm/angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { WLCM_COUNTRY_CODE_OPTIONS } from '../../constants/country-code-options.constants';
5
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
6
+ import { PhoneCodePipe } from '../../pipes/phone-code.pipe';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@wlcm/angular/forms";
9
+ import * as i2 from "@angular/forms";
10
+ export class WlcmCountryCodeSelectComponent {
11
+ constructor(options) {
12
+ this.options = options;
13
+ this.changed = output();
14
+ this.control = input(new FormControl('US'));
15
+ }
16
+ get selectComponent() {
17
+ return this.wlcmSelect.matSelect;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCountryCodeSelectComponent, deps: [{ token: WLCM_COUNTRY_CODE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: WlcmCountryCodeSelectComponent, isStandalone: true, selector: "wlcm-country-code-select", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, host: { classAttribute: "wlcm-country-code-select" }, viewQueries: [{ propertyName: "wlcmSelect", first: true, predicate: WlcmSelectComponent, descendants: true }], ngImport: i0, template: "<wlcm-select\n [options]=\"options\"\n [formControl]=\"control()\"\n [optionTemplate]=\"optionTemplate\"\n [triggerTemplate]=\"triggerTemplate\"\n (selectionChange)=\"changed.emit($event)\"\n></wlcm-select>\n\n<ng-template #optionTemplate let-option>\n <span class=\"emoji-flag\">{{ option.emojiFlag }}</span>\n\n {{ option.viewValue }}\n</ng-template>\n\n<ng-template #triggerTemplate let-selected>\n <div class=\"wlcm-country-code-select-trigger\">\n +{{ selected?.value | phoneCode }}\n </div>\n</ng-template>\n", styles: [".emoji-flag{font-size:20px;vertical-align:bottom;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmSelectComponent, selector: "wlcm-select", inputs: ["multiple", "placeholder", "options", "optionTemplate", "triggerTemplate"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: PhoneCodePipe, name: "phoneCode" }] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCountryCodeSelectComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'wlcm-country-code-select', host: { class: 'wlcm-country-code-select' }, standalone: true, imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule, PhoneCodePipe], template: "<wlcm-select\n [options]=\"options\"\n [formControl]=\"control()\"\n [optionTemplate]=\"optionTemplate\"\n [triggerTemplate]=\"triggerTemplate\"\n (selectionChange)=\"changed.emit($event)\"\n></wlcm-select>\n\n<ng-template #optionTemplate let-option>\n <span class=\"emoji-flag\">{{ option.emojiFlag }}</span>\n\n {{ option.viewValue }}\n</ng-template>\n\n<ng-template #triggerTemplate let-selected>\n <div class=\"wlcm-country-code-select-trigger\">\n +{{ selected?.value | phoneCode }}\n </div>\n</ng-template>\n", styles: [".emoji-flag{font-size:20px;vertical-align:bottom;margin-right:8px}\n"] }]
25
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
26
+ type: Inject,
27
+ args: [WLCM_COUNTRY_CODE_OPTIONS]
28
+ }] }], propDecorators: { wlcmSelect: [{
29
+ type: ViewChild,
30
+ args: [WlcmSelectComponent]
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1jb2RlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3Bob25lLWlucHV0L3NyYy9saWIvY29tcG9uZW50cy9jb3VudHJ5LWNvZGUtc2VsZWN0L2NvdW50cnktY29kZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9waG9uZS1pbnB1dC9zcmMvbGliL2NvbXBvbmVudHMvY291bnRyeS1jb2RlLXNlbGVjdC9jb3VudHJ5LWNvZGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFpQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFXNUQsTUFBTSxPQUFPLDhCQUE4QjtJQU96QyxZQUF5RCxPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQU56RixZQUFPLEdBQTBCLE1BQU0sRUFBRSxDQUFDO1FBRTFDLFlBQU8sR0FBNkIsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFJMkIsQ0FBQztJQUU3RixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOzhHQVhVLDhCQUE4QixrQkFPckIseUJBQXlCO2tHQVBsQyw4QkFBOEIsaVdBSzlCLG1CQUFtQixnREN2QmhDLGdoQkFtQkEsNkhETFksWUFBWSw4QkFBRSxlQUFlLCtOQUFFLG1CQUFtQixxVEFBRSxhQUFhOzsyRkFJaEUsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNFLDBCQUEwQixRQUM5QixFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxjQUMvQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQzs7MEJBVy9ELE1BQU07MkJBQUMseUJBQXlCO3lDQUZMLFVBQVU7c0JBQWpELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0U2lnbmFsLCBPdXRwdXRFbWl0dGVyUmVmLCBWaWV3Q2hpbGQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21Gb3Jtc01vZHVsZSwgV2xjbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgV0xDTV9DT1VOVFJZX0NPREVfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb3VudHJ5LWNvZGUtb3B0aW9ucy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUNvdW50cnlDb2RlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvdW50cnktY29kZS5tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQaG9uZUNvZGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGhvbmUtY29kZS5waXBlJztcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tY291bnRyeS1jb2RlLXNlbGVjdCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWNvdW50cnktY29kZS1zZWxlY3QnIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21Gb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgUGhvbmVDb2RlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3VudHJ5LWNvZGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cnktY29kZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtQ291bnRyeUNvZGVTZWxlY3RDb21wb25lbnQge1xuICBjaGFuZ2VkOiBPdXRwdXRFbWl0dGVyUmVmPGFueT4gPSBvdXRwdXQoKTtcblxuICBjb250cm9sOiBJbnB1dFNpZ25hbDxGb3JtQ29udHJvbD4gPSBpbnB1dChuZXcgRm9ybUNvbnRyb2woJ1VTJykpO1xuXG4gIEBWaWV3Q2hpbGQoV2xjbVNlbGVjdENvbXBvbmVudCkgcHJpdmF0ZSB3bGNtU2VsZWN0ITogV2xjbVNlbGVjdENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdMQ01fQ09VTlRSWV9DT0RFX09QVElPTlMpIHByb3RlY3RlZCBvcHRpb25zOiBXbGNtQ291bnRyeUNvZGVPcHRpb25bXSkge31cblxuICBnZXQgc2VsZWN0Q29tcG9uZW50KCk6IE1hdFNlbGVjdCB7XG4gICAgcmV0dXJuIHRoaXMud2xjbVNlbGVjdC5tYXRTZWxlY3Q7XG4gIH1cbn1cbiIsIjx3bGNtLXNlbGVjdFxuICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2woKVwiXG4gIFtvcHRpb25UZW1wbGF0ZV09XCJvcHRpb25UZW1wbGF0ZVwiXG4gIFt0cmlnZ2VyVGVtcGxhdGVdPVwidHJpZ2dlclRlbXBsYXRlXCJcbiAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4+PC93bGNtLXNlbGVjdD5cblxuPG5nLXRlbXBsYXRlICNvcHRpb25UZW1wbGF0ZSBsZXQtb3B0aW9uPlxuICA8c3BhbiBjbGFzcz1cImVtb2ppLWZsYWdcIj57eyBvcHRpb24uZW1vamlGbGFnIH19PC9zcGFuPlxuXG4gIHt7IG9wdGlvbi52aWV3VmFsdWUgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdHJpZ2dlclRlbXBsYXRlIGxldC1zZWxlY3RlZD5cbiAgPGRpdiBjbGFzcz1cIndsY20tY291bnRyeS1jb2RlLXNlbGVjdC10cmlnZ2VyXCI+XG4gICAgK3t7IHNlbGVjdGVkPy52YWx1ZSB8IHBob25lQ29kZSB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,103 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { CommonModule } from '@angular/common';
3
+ import { Component, ContentChild, NgZone, ViewChild, forwardRef, inject } from '@angular/core';
4
+ import { WlcmPhoneInputDirective } from '../../directives/phone-input.directive';
5
+ import { WLCM_INPUT_BINDER } from '@wlcm/angular/forms';
6
+ import { WLCM_PHONE_ADAPTER } from '../../constants/phone-adapter.constants';
7
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
8
+ import { Subject, fromEvent, merge, tap } from 'rxjs';
9
+ import { AsYouType, getPhoneCode, isValidNumber, parsePhoneNumber } from 'libphonenumber-js';
10
+ import { WlcmCountryCodeSelectComponent } from '../country-code-select/country-code-select.component';
11
+ import { FormControl } from '@angular/forms';
12
+ import * as i0 from "@angular/core";
13
+ let WlcmPhoneInputContainerComponent = class WlcmPhoneInputContainerComponent {
14
+ constructor(_zone) {
15
+ this._zone = _zone;
16
+ this._focusStream$ = new Subject();
17
+ this._blurStream$ = new Subject();
18
+ this.focus$ = this._focusStream$.asObservable();
19
+ this.blur$ = this._blurStream$.asObservable();
20
+ this.control = new FormControl('US');
21
+ this._asYouType = new AsYouType('US');
22
+ this.parseValue = (value) => {
23
+ if (!value || value.length === 0)
24
+ return '';
25
+ if (isValidNumber(value)) {
26
+ const result = parsePhoneNumber(value, 'US');
27
+ if (result.country)
28
+ this.control.setValue(result.country);
29
+ return result.nationalNumber;
30
+ }
31
+ return value;
32
+ };
33
+ this.formatValue = (value) => {
34
+ this._asYouType.reset();
35
+ this._asYouType.input(`+${this.currentCallingCode}${value}`);
36
+ const countryCode = this._asYouType.getCountry();
37
+ if (countryCode)
38
+ this.control.setValue(countryCode);
39
+ return this._asYouType.getNumber()?.number ?? '';
40
+ };
41
+ }
42
+ ngAfterContentInit() {
43
+ if (!this.phoneInput) {
44
+ throw new Error('The [wlcmPhoneInput] directive must be provided.');
45
+ }
46
+ this.handleInputEvents();
47
+ }
48
+ isFocused() {
49
+ return this.phoneInput.element === document.activeElement || this.codeSelect?.selectComponent.panelOpen;
50
+ }
51
+ focus() {
52
+ this.phoneInput.element.focus();
53
+ }
54
+ handleCountryChange() {
55
+ this.phoneInput._updateControl();
56
+ }
57
+ get currentCallingCode() {
58
+ return getPhoneCode(this.control.value);
59
+ }
60
+ handleInputEvents() {
61
+ this._zone.runOutsideAngular(() => {
62
+ merge(fromEvent(this.phoneInput.element, 'focus').pipe(tap(() => this._focusStream$.next())), fromEvent(this.phoneInput.element, 'blur').pipe(tap(() => this._blurStream$.next())))
63
+ .pipe(untilDestroyed(this))
64
+ .subscribe();
65
+ });
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmPhoneInputContainerComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmPhoneInputContainerComponent, isStandalone: true, selector: "wlcm-phone-input-container", host: { classAttribute: "wlcm-phone-input-container" }, providers: [
69
+ {
70
+ provide: WLCM_INPUT_BINDER,
71
+ useFactory: () => {
72
+ const container = inject(WlcmPhoneInputContainerComponent, { self: true });
73
+ return { bind: () => container };
74
+ },
75
+ },
76
+ { provide: WLCM_PHONE_ADAPTER, useExisting: forwardRef(() => WlcmPhoneInputContainerComponent) },
77
+ ], queries: [{ propertyName: "phoneInput", first: true, predicate: WlcmPhoneInputDirective, descendants: true }], viewQueries: [{ propertyName: "codeSelect", first: true, predicate: WlcmCountryCodeSelectComponent, descendants: true }], ngImport: i0, template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n (click)=\"$event.stopPropagation()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmCountryCodeSelectComponent, selector: "wlcm-country-code-select", inputs: ["control"], outputs: ["changed"] }] }); }
78
+ };
79
+ WlcmPhoneInputContainerComponent = __decorate([
80
+ UntilDestroy(),
81
+ __metadata("design:paramtypes", [NgZone])
82
+ ], WlcmPhoneInputContainerComponent);
83
+ export { WlcmPhoneInputContainerComponent };
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmPhoneInputContainerComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'wlcm-phone-input-container', host: { class: 'wlcm-phone-input-container' }, standalone: true, imports: [CommonModule, WlcmCountryCodeSelectComponent], providers: [
87
+ {
88
+ provide: WLCM_INPUT_BINDER,
89
+ useFactory: () => {
90
+ const container = inject(WlcmPhoneInputContainerComponent, { self: true });
91
+ return { bind: () => container };
92
+ },
93
+ },
94
+ { provide: WLCM_PHONE_ADAPTER, useExisting: forwardRef(() => WlcmPhoneInputContainerComponent) },
95
+ ], template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n (click)=\"$event.stopPropagation()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n" }]
96
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { codeSelect: [{
97
+ type: ViewChild,
98
+ args: [WlcmCountryCodeSelectComponent]
99
+ }], phoneInput: [{
100
+ type: ContentChild,
101
+ args: [WlcmPhoneInputDirective]
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvcGhvbmUtaW5wdXQvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLWlucHV0LWNvbnRhaW5lci9waG9uZS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9waG9uZS1pbnB1dC9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtaW5wdXQtY29udGFpbmVyL3Bob25lLWlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsU0FBUyxFQUE0QixZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFn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TSxTQUFTLEdBQXFDLE1BQU0sbUNBQW1DLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0NBRTdHLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7NEJBQ25DLENBQUM7eUJBQ0Y7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUNBQWlDLENBQUMsRUFBRTtxQkFDakc7MkVBV2tELFVBQVU7c0JBQTVELFNBQVM7dUJBQUMsOEJBQThCO2dCQUVNLFVBQVU7c0JBQXhELFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBOZ1pvbmUsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXbGNtUGhvbmVJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcGhvbmUtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdMQ01fSU5QVVRfQklOREVSLCBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFdMQ01fUEhPTkVfQURBUFRFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9waG9uZS1hZGFwdGVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2xjbVBob25lQWRhcHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9waG9uZS1hZGFwdGVyLm1vZGVscyc7XG5pbXBvcnQgeyBBc1lvdVR5cGUsIENvdW50cnlDb2RlLCBQaG9uZU51bWJlciwgZ2V0UGhvbmVDb2RlLCBpc1ZhbGlkTnVtYmVyLCBwYXJzZVBob25lTnVtYmVyIH0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xuaW1wb3J0IHsgV2xjbUNvdW50cnlDb2RlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY291bnRyeS1jb2RlLXNlbGVjdC9jb3VudHJ5LWNvZGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXBob25lLWlucHV0LWNvbnRhaW5lcicsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLXBob25lLWlucHV0LWNvbnRhaW5lcicgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUNvdW50cnlDb2RlU2VsZWN0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9waG9uZS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBXTENNX0lOUFVUX0JJTkRFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyOiBXbGNtUGhvbmVJbnB1dENvbnRhaW5lckNvbXBvbmVudCA9IGluamVjdChXbGNtUGhvbmVJbnB1dENvbnRhaW5lckNvbXBvbmVudCwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gICAgICAgIHJldHVybiB7IGJpbmQ6ICgpID0+IGNvbnRhaW5lciB9O1xuICAgICAgfSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogV0xDTV9QSE9ORV9BREFQVEVSLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtUGhvbmVJbnB1dENvbnRhaW5lckNvbXBvbmVudCkgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVBob25lSW5wdXRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBXbGNtRm9ybUZpZWxkSW5wdXQsIFdsY21QaG9uZUFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c1N0cmVhbSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JsdXJTdHJlYW0kOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9mb2N1c1N0cmVhbSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9ibHVyU3RyZWFtJC5hc09ic2VydmFibGUoKTtcblxuICBAVmlld0NoaWxkKFdsY21Db3VudHJ5Q29kZVNlbGVjdENvbXBvbmVudCkgcHJpdmF0ZSBjb2RlU2VsZWN0ITogV2xjbUNvdW50cnlDb2RlU2VsZWN0Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoV2xjbVBob25lSW5wdXREaXJlY3RpdmUpIHByaXZhdGUgcGhvbmVJbnB1dCE6IFdsY21QaG9uZUlucHV0RGlyZWN0aXZlO1xuXG4gIHJlYWRvbmx5IGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCdVUycpO1xuXG4gIHByaXZhdGUgX2FzWW91VHlwZSA9IG5ldyBBc1lvdVR5cGUoJ1VTJyk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfem9uZTogTmdab25lKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGhvbmVJbnB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgW3dsY21QaG9uZUlucHV0XSBkaXJlY3RpdmUgbXVzdCBiZSBwcm92aWRlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUlucHV0RXZlbnRzKCk7XG4gIH1cblxuICBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGhvbmVJbnB1dC5lbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8IHRoaXMuY29kZVNlbGVjdD8uc2VsZWN0Q29tcG9uZW50LnBhbmVsT3BlbjtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMucGhvbmVJbnB1dC5lbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwYXJzZVZhbHVlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG5cbiAgICBpZiAoaXNWYWxpZE51bWJlcih2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdDogUGhvbmVOdW1iZXIgPSBwYXJzZVBob25lTnVtYmVyKHZhbHVlLCAnVVMnKTtcblxuICAgICAgaWYgKHJlc3VsdC5jb3VudHJ5KSB0aGlzLmNvbnRyb2wuc2V0VmFsdWUocmVzdWx0LmNvdW50cnkpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0Lm5hdGlvbmFsTnVtYmVyO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcblxuICBmb3JtYXRWYWx1ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICB0aGlzLl9hc1lvdVR5cGUucmVzZXQoKTtcblxuICAgIHRoaXMuX2FzWW91VHlwZS5pbnB1dChgKyR7dGhpcy5jdXJyZW50Q2FsbGluZ0NvZGV9JHt2YWx1ZX1gKTtcblxuICAgIGNvbnN0IGNvdW50cnlDb2RlOiBDb3VudHJ5Q29kZSB8IHVuZGVmaW5lZCA9IHRoaXMuX2FzWW91VHlwZS5nZXRDb3VudHJ5KCk7XG5cbiAgICBpZiAoY291bnRyeUNvZGUpIHRoaXMuY29udHJvbC5zZXRWYWx1ZShjb3VudHJ5Q29kZSk7XG5cbiAgICByZXR1cm4gdGhpcy5fYXNZb3VUeXBlLmdldE51bWJlcigpPy5udW1iZXIgPz8gJyc7XG4gIH07XG5cbiAgaGFuZGxlQ291bnRyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBob25lSW5wdXQuX3VwZGF0ZUNvbnRyb2woKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRDYWxsaW5nQ29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRQaG9uZUNvZGUodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMucGhvbmVJbnB1dC5lbGVtZW50LCAnZm9jdXMnKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dCgpKSksXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnBob25lSW5wdXQuZWxlbWVudCwgJ2JsdXInKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9ibHVyU3RyZWFtJC5uZXh0KCkpKVxuICAgICAgKVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8d2xjbS1jb3VudHJ5LWNvZGUtc2VsZWN0XG4gIFtjb250cm9sXT1cImNvbnRyb2xcIlxuICAoY2hhbmdlZCk9XCJoYW5kbGVDb3VudHJ5Q2hhbmdlKClcIlxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbj48L3dsY20tY291bnRyeS1jb2RlLXNlbGVjdD5cblxuPGRpdiBjbGFzcz1cIndsY20tcGhvbmUtaW5wdXQtY29udGFpbmVyLWRpdmlkZXJcIj48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21QaG9uZUlucHV0XVwiPjwvbmctY29udGVudD5cbiJdfQ==
@@ -0,0 +1,124 @@
1
+ import { Directive, ElementRef, HostListener, Inject, effect, forwardRef, input, } from '@angular/core';
2
+ import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import IMask from 'imask';
4
+ import { WLCM_PHONE_ADAPTER } from '../constants/phone-adapter.constants';
5
+ import { WlcmPhoneAdapter } from '../models/phone-adapter.models';
6
+ import { Subject, fromEvent, takeUntil } from 'rxjs';
7
+ import { WlcmPhoneValidationErrorType } from '../models/phone.models';
8
+ import { isValidNumber } from 'libphonenumber-js';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../models/phone-adapter.models";
11
+ export class WlcmPhoneInputDirective {
12
+ handleBlur() {
13
+ this._touched?.();
14
+ }
15
+ constructor(_elementRef, phoneAdapter) {
16
+ this._elementRef = _elementRef;
17
+ this.phoneAdapter = phoneAdapter;
18
+ this.control = new FormControl();
19
+ this.destroyInputObserver$ = new Subject();
20
+ this.mask = input('', { alias: 'wlcmPhoneInputMask' });
21
+ effect(() => {
22
+ const maskPattern = this.mask();
23
+ if (maskPattern) {
24
+ if (!this._imaskRef)
25
+ this.initializeMask();
26
+ this._imaskRef.mask = maskPattern;
27
+ this._imaskRef.updateControl();
28
+ this._imaskRef.on('accept', () => this.handleInput());
29
+ }
30
+ else {
31
+ this.subscribeToInputEvent();
32
+ }
33
+ });
34
+ this.subscribeToPasteEvent();
35
+ }
36
+ ngOnDestroy() {
37
+ this.destroyInputObserver$.next();
38
+ this.destroyInputObserver$.complete();
39
+ }
40
+ writeValue(value) {
41
+ const parsedValue = this.phoneAdapter.parseValue(value);
42
+ if (this._imaskRef) {
43
+ this._imaskRef.value = parsedValue;
44
+ }
45
+ else {
46
+ this.element.value = parsedValue;
47
+ }
48
+ }
49
+ registerOnChange(callback) {
50
+ this._changed = callback;
51
+ }
52
+ registerOnTouched(callback) {
53
+ this._touched = callback;
54
+ }
55
+ registerOnValidatorChange(callback) {
56
+ this._validatorChanged = callback;
57
+ }
58
+ validate(control) {
59
+ const isValid = isValidNumber(control.value ?? '');
60
+ if (!isValid) {
61
+ return { [WlcmPhoneValidationErrorType.InvalidPhoneNumber]: true };
62
+ }
63
+ return null;
64
+ }
65
+ setDisabledState(isDisabled) {
66
+ if (isDisabled) {
67
+ return this.control.disable();
68
+ }
69
+ this.control.enable();
70
+ }
71
+ _updateControl() {
72
+ this.handleInput();
73
+ }
74
+ get element() {
75
+ return this._elementRef.nativeElement;
76
+ }
77
+ handleInput() {
78
+ const value = this.element.value;
79
+ this._changed?.(this.phoneAdapter.formatValue(value));
80
+ }
81
+ handlePaste(event) {
82
+ event.preventDefault();
83
+ const value = event.clipboardData?.getData('text') ?? '';
84
+ this.writeValue(value);
85
+ this.handleInput();
86
+ }
87
+ initializeMask() {
88
+ this._imaskRef = IMask(this.element, { mask: Number });
89
+ }
90
+ subscribeToInputEvent() {
91
+ fromEvent(this.element, 'input')
92
+ .pipe(takeUntil(this.destroyInputObserver$))
93
+ .subscribe(() => this.handleInput());
94
+ }
95
+ subscribeToPasteEvent() {
96
+ fromEvent(this.element, 'paste')
97
+ .pipe(takeUntil(this.destroyInputObserver$))
98
+ .subscribe((event) => this.handlePaste(event));
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmPhoneInputDirective, deps: [{ token: i0.ElementRef }, { token: WLCM_PHONE_ADAPTER }], target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.5", type: WlcmPhoneInputDirective, isStandalone: true, selector: "[wlcmPhoneInput]", inputs: { mask: { classPropertyName: "mask", publicName: "wlcmPhoneInputMask", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "blur": "handleBlur($event)" }, classAttribute: "wlcm-form-field-input" }, providers: [
102
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmPhoneInputDirective), multi: true },
103
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmPhoneInputDirective), multi: true },
104
+ ], ngImport: i0 }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmPhoneInputDirective, decorators: [{
107
+ type: Directive,
108
+ args: [{
109
+ selector: '[wlcmPhoneInput]',
110
+ host: { class: 'wlcm-form-field-input' },
111
+ standalone: true,
112
+ providers: [
113
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmPhoneInputDirective), multi: true },
114
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmPhoneInputDirective), multi: true },
115
+ ],
116
+ }]
117
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.WlcmPhoneAdapter, decorators: [{
118
+ type: Inject,
119
+ args: [WLCM_PHONE_ADAPTER]
120
+ }] }], propDecorators: { handleBlur: [{
121
+ type: HostListener,
122
+ args: ['blur', ['$event']]
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9waG9uZS1pbnB1dC9zcmMvbGliL2RpcmVjdGl2ZXMvcGhvbmUtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBR04sTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFvQixNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLHVCQUF1QjtJQWVBLFVBQVU7UUFDMUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQ1UsV0FBeUMsRUFDYixZQUE4QjtRQUQxRCxnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7UUFDYixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFwQjNELFlBQU8sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQVExQywwQkFBcUIsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUk3RCxTQUFJLEdBQXdCLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFB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OzsyRkFFVSx1QkFBdUI7a0JBVG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQy9GLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDcEc7aUJBQ0Y7OzBCQXNCSSxNQUFNOzJCQUFDLGtCQUFrQjt5Q0FOTSxVQUFVO3NCQUEzQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0U2lnbmFsLFxuICBPbkRlc3Ryb3ksXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBJTWFzaywgeyBJbnB1dE1hc2sgfSBmcm9tICdpbWFzayc7XG5pbXBvcnQgeyBXTENNX1BIT05FX0FEQVBURVIgfSBmcm9tICcuLi9jb25zdGFudHMvcGhvbmUtYWRhcHRlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbVBob25lQWRhcHRlciB9IGZyb20gJy4uL21vZGVscy9waG9uZS1hZGFwdGVyLm1vZGVscyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2xjbVBob25lVmFsaWRhdGlvbkVycm9yVHlwZSB9IGZyb20gJy4uL21vZGVscy9waG9uZS5tb2RlbHMnO1xuaW1wb3J0IHsgaXNWYWxpZE51bWJlciB9IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3dsY21QaG9uZUlucHV0XScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWZvcm0tZmllbGQtaW5wdXQnIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVBob25lSW5wdXREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21QaG9uZUlucHV0RGlyZWN0aXZlKSwgbXVsdGk6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVBob25lSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICByZWFkb25seSBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcblxuICBwcml2YXRlIF90b3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF92YWxpZGF0b3JDaGFuZ2VkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGRlc3Ryb3lJbnB1dE9ic2VydmVyJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfaW1hc2tSZWY/OiBJbnB1dE1hc2s7XG5cbiAgbWFzazogSW5wdXRTaWduYWw8c3RyaW5nPiA9IGlucHV0KCcnLCB7IGFsaWFzOiAnd2xjbVBob25lSW5wdXRNYXNrJyB9KTtcblxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSkgaGFuZGxlQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkPy4oKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgQEluamVjdChXTENNX1BIT05FX0FEQVBURVIpIHByaXZhdGUgcGhvbmVBZGFwdGVyOiBXbGNtUGhvbmVBZGFwdGVyXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBtYXNrUGF0dGVybjogc3RyaW5nID0gdGhpcy5tYXNrKCk7XG5cbiAgICAgIGlmIChtYXNrUGF0dGVybikge1xuICAgICAgICBpZiAoIXRoaXMuX2ltYXNrUmVmKSB0aGlzLmluaXRpYWxpemVNYXNrKCk7XG5cbiAgICAgICAgdGhpcy5faW1hc2tSZWYhLm1hc2sgPSBtYXNrUGF0dGVybjtcblxuICAgICAgICB0aGlzLl9pbWFza1JlZiEudXBkYXRlQ29udHJvbCgpO1xuXG4gICAgICAgIHRoaXMuX2ltYXNrUmVmIS5vbignYWNjZXB0JywgKCkgPT4gdGhpcy5oYW5kbGVJbnB1dCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9JbnB1dEV2ZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVRvUGFzdGVFdmVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95SW5wdXRPYnNlcnZlciQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveUlucHV0T2JzZXJ2ZXIkLmNvbXBsZXRlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWRWYWx1ZTogc3RyaW5nID0gdGhpcy5waG9uZUFkYXB0ZXIucGFyc2VWYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5faW1hc2tSZWYpIHtcbiAgICAgIHRoaXMuX2ltYXNrUmVmLnZhbHVlID0gcGFyc2VkVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHBhcnNlZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSBpc1ZhbGlkTnVtYmVyKGNvbnRyb2wudmFsdWUgPz8gJycpO1xuXG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICByZXR1cm4geyBbV2xjbVBob25lVmFsaWRhdGlvbkVycm9yVHlwZS5JbnZhbGlkUGhvbmVOdW1iZXJdOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICB9XG5cbiAgX3VwZGF0ZUNvbnRyb2woKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dCgpO1xuICB9XG5cbiAgZ2V0IGVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHRoaXMuZWxlbWVudC52YWx1ZTtcblxuICAgIHRoaXMuX2NoYW5nZWQ/Lih0aGlzLnBob25lQWRhcHRlci5mb3JtYXRWYWx1ZSh2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKSA/PyAnJztcblxuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICB0aGlzLmhhbmRsZUlucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVNYXNrKCk6IHZvaWQge1xuICAgIHRoaXMuX2ltYXNrUmVmID0gSU1hc2sodGhpcy5lbGVtZW50LCB7IG1hc2s6IE51bWJlciB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9JbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95SW5wdXRPYnNlcnZlciQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRsZUlucHV0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1Bhc3RlRXZlbnQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pih0aGlzLmVsZW1lbnQsICdwYXN0ZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95SW5wdXRPYnNlcnZlciQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZVBhc3RlKGV2ZW50KSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, effect, forwardRef, Directive, Inject, HostListener, Pipe, output, Component, inject, NgZone, ViewChild, ContentChild, NgModule } from '@angular/core';
2
+ import { InjectionToken, input, effect, forwardRef, Directive, Inject, HostListener, Pipe, output, Component, ViewChild, inject, NgZone, ContentChild, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { __decorate, __metadata } from 'tslib';
5
5
  import * as i2 from '@angular/forms';
@@ -8,7 +8,7 @@ import IMask from 'imask';
8
8
  import { Subject, fromEvent, takeUntil, merge, tap } from 'rxjs';
9
9
  import { isValidNumber, getCountries, getPhoneCode, AsYouType, parsePhoneNumber } from 'libphonenumber-js';
10
10
  import * as i1 from '@wlcm/angular/forms';
11
- import { WlcmFormsModule, WLCM_INPUT_BINDER } from '@wlcm/angular/forms';
11
+ import { WlcmSelectComponent, WlcmFormsModule, WLCM_INPUT_BINDER } from '@wlcm/angular/forms';
12
12
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
13
13
  import { WlcmOption } from '@wlcm/angular/core';
14
14
  import { countries, getEmojiFlag, getCountryCode } from 'countries-list';
@@ -54,7 +54,12 @@ class WlcmPhoneInputDirective {
54
54
  }
55
55
  writeValue(value) {
56
56
  const parsedValue = this.phoneAdapter.parseValue(value);
57
- this.element.value = parsedValue;
57
+ if (this._imaskRef) {
58
+ this._imaskRef.value = parsedValue;
59
+ }
60
+ else {
61
+ this.element.value = parsedValue;
62
+ }
58
63
  }
59
64
  registerOnChange(callback) {
60
65
  this._changed = callback;
@@ -178,8 +183,11 @@ class WlcmCountryCodeSelectComponent {
178
183
  this.changed = output();
179
184
  this.control = input(new FormControl('US'));
180
185
  }
186
+ get selectComponent() {
187
+ return this.wlcmSelect.matSelect;
188
+ }
181
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCountryCodeSelectComponent, deps: [{ token: WLCM_COUNTRY_CODE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: WlcmCountryCodeSelectComponent, isStandalone: true, selector: "wlcm-country-code-select", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, host: { classAttribute: "wlcm-country-code-select" }, ngImport: i0, template: "<wlcm-select\n [options]=\"options\"\n [formControl]=\"control()\"\n [optionTemplate]=\"optionTemplate\"\n [triggerTemplate]=\"triggerTemplate\"\n (selectionChange)=\"changed.emit($event)\"\n></wlcm-select>\n\n<ng-template #optionTemplate let-option>\n <span class=\"emoji-flag\">{{ option.emojiFlag }}</span>\n\n {{ option.viewValue }}\n</ng-template>\n\n<ng-template #triggerTemplate let-selected>\n <div class=\"wlcm-country-code-select-trigger\">\n +{{ selected?.value | phoneCode }}\n </div>\n</ng-template>\n", styles: [".emoji-flag{font-size:20px;vertical-align:bottom;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmSelectComponent, selector: "wlcm-select", inputs: ["multiple", "placeholder", "options", "optionTemplate", "triggerTemplate"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: PhoneCodePipe, name: "phoneCode" }] }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: WlcmCountryCodeSelectComponent, isStandalone: true, selector: "wlcm-country-code-select", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, host: { classAttribute: "wlcm-country-code-select" }, viewQueries: [{ propertyName: "wlcmSelect", first: true, predicate: WlcmSelectComponent, descendants: true }], ngImport: i0, template: "<wlcm-select\n [options]=\"options\"\n [formControl]=\"control()\"\n [optionTemplate]=\"optionTemplate\"\n [triggerTemplate]=\"triggerTemplate\"\n (selectionChange)=\"changed.emit($event)\"\n></wlcm-select>\n\n<ng-template #optionTemplate let-option>\n <span class=\"emoji-flag\">{{ option.emojiFlag }}</span>\n\n {{ option.viewValue }}\n</ng-template>\n\n<ng-template #triggerTemplate let-selected>\n <div class=\"wlcm-country-code-select-trigger\">\n +{{ selected?.value | phoneCode }}\n </div>\n</ng-template>\n", styles: [".emoji-flag{font-size:20px;vertical-align:bottom;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmSelectComponent, selector: "wlcm-select", inputs: ["multiple", "placeholder", "options", "optionTemplate", "triggerTemplate"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: PhoneCodePipe, name: "phoneCode" }] }); }
183
191
  }
184
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCountryCodeSelectComponent, decorators: [{
185
193
  type: Component,
@@ -187,7 +195,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
187
195
  }], ctorParameters: () => [{ type: undefined, decorators: [{
188
196
  type: Inject,
189
197
  args: [WLCM_COUNTRY_CODE_OPTIONS]
190
- }] }] });
198
+ }] }], propDecorators: { wlcmSelect: [{
199
+ type: ViewChild,
200
+ args: [WlcmSelectComponent]
201
+ }] } });
191
202
 
192
203
  let WlcmPhoneInputContainerComponent = class WlcmPhoneInputContainerComponent {
193
204
  constructor(_zone) {
@@ -225,7 +236,7 @@ let WlcmPhoneInputContainerComponent = class WlcmPhoneInputContainerComponent {
225
236
  this.handleInputEvents();
226
237
  }
227
238
  isFocused() {
228
- return this.phoneInput.element === document.activeElement;
239
+ return this.phoneInput.element === document.activeElement || this.codeSelect?.selectComponent.panelOpen;
229
240
  }
230
241
  focus() {
231
242
  this.phoneInput.element.focus();
@@ -253,7 +264,7 @@ let WlcmPhoneInputContainerComponent = class WlcmPhoneInputContainerComponent {
253
264
  },
254
265
  },
255
266
  { provide: WLCM_PHONE_ADAPTER, useExisting: forwardRef(() => WlcmPhoneInputContainerComponent) },
256
- ], queries: [{ propertyName: "phoneInput", first: true, predicate: WlcmPhoneInputDirective, descendants: true }], viewQueries: [{ propertyName: "codeSelect", first: true, predicate: WlcmCountryCodeSelectComponent, descendants: true }], ngImport: i0, template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmCountryCodeSelectComponent, selector: "wlcm-country-code-select", inputs: ["control"], outputs: ["changed"] }] }); }
267
+ ], queries: [{ propertyName: "phoneInput", first: true, predicate: WlcmPhoneInputDirective, descendants: true }], viewQueries: [{ propertyName: "codeSelect", first: true, predicate: WlcmCountryCodeSelectComponent, descendants: true }], ngImport: i0, template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n (click)=\"$event.stopPropagation()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmCountryCodeSelectComponent, selector: "wlcm-country-code-select", inputs: ["control"], outputs: ["changed"] }] }); }
257
268
  };
258
269
  WlcmPhoneInputContainerComponent = __decorate([
259
270
  UntilDestroy(),
@@ -270,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
270
281
  },
271
282
  },
272
283
  { provide: WLCM_PHONE_ADAPTER, useExisting: forwardRef(() => WlcmPhoneInputContainerComponent) },
273
- ], template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n" }]
284
+ ], template: "<wlcm-country-code-select\n [control]=\"control\"\n (changed)=\"handleCountryChange()\"\n (click)=\"$event.stopPropagation()\"\n></wlcm-country-code-select>\n\n<div class=\"wlcm-phone-input-container-divider\"></div>\n\n<ng-content select=\"[wlcmPhoneInput]\"></ng-content>\n" }]
274
285
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { codeSelect: [{
275
286
  type: ViewChild,
276
287
  args: [WlcmCountryCodeSelectComponent]