@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
@@ -0,0 +1,43 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export type WlcmStepDisableValue = 'on_any_previous_incomplete' | boolean;
4
+ export interface WlcmStepOptions {
5
+ completed?: boolean;
6
+ disabled?: WlcmStepDisableValue;
7
+ }
8
+ export declare abstract class WlcmStep {
9
+ abstract set key(value: unknown);
10
+ abstract get key(): unknown;
11
+ abstract key$: Observable<unknown>;
12
+ abstract set label(value: string);
13
+ abstract get label(): string;
14
+ abstract label$: Observable<string>;
15
+ abstract set completed(value: boolean);
16
+ abstract get completed(): boolean;
17
+ abstract completed$: Observable<boolean>;
18
+ abstract set disabled(value: WlcmStepDisableValue);
19
+ abstract get disabled(): WlcmStepDisableValue;
20
+ abstract disabled$: Observable<WlcmStepDisableValue>;
21
+ }
22
+ export declare abstract class WlcmStepBase extends WlcmStep {
23
+ protected options: WlcmStepOptions;
24
+ set key(value: unknown);
25
+ get key(): unknown;
26
+ private readonly _key$;
27
+ readonly key$: Observable<unknown>;
28
+ set label(value: string);
29
+ get label(): string;
30
+ private readonly _label$;
31
+ readonly label$: Observable<string>;
32
+ set completed(value: boolean);
33
+ get completed(): boolean;
34
+ private readonly _completed$;
35
+ readonly completed$: Observable<boolean>;
36
+ set disabled(value: WlcmStepDisableValue);
37
+ get disabled(): WlcmStepDisableValue;
38
+ private readonly _disabled$;
39
+ readonly disabled$: Observable<WlcmStepDisableValue>;
40
+ constructor(options: WlcmStepOptions);
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmStepBase, never>;
42
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmStepBase, never, never, { "key": { "alias": "key"; "required": false; }; "label": { "alias": "label"; "required": true; }; "completed": { "alias": "completed"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
43
+ }
@@ -0,0 +1,44 @@
1
+ import { ChangeDetectorRef, Signal } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { WlcmStep } from './step.models';
4
+ import * as i0 from "@angular/core";
5
+ export declare abstract class WlcmStepsNavigator {
6
+ abstract get active(): WlcmStep;
7
+ abstract readonly active$: Observable<WlcmStep | null>;
8
+ abstract get minIncompleteStepIndex(): number;
9
+ abstract readonly minIncompleteStepIndex$: Observable<number>;
10
+ abstract get isActiveCompleted(): boolean;
11
+ abstract next(): void;
12
+ abstract previous(): void;
13
+ abstract activate(key: unknown): void;
14
+ abstract canActivateNext(): boolean;
15
+ abstract isCurrentOrPrevious(key: unknown): boolean;
16
+ abstract getStepIndex(key: unknown): number | undefined;
17
+ }
18
+ export declare class WlcmStepperBase extends WlcmStepsNavigator {
19
+ protected changeDetector: ChangeDetectorRef;
20
+ private _listUpdated$;
21
+ private _keyToIndexMap;
22
+ protected _steps: Signal<ReadonlyArray<WlcmStep>>;
23
+ private readonly _active$;
24
+ readonly active$: Observable<WlcmStep | null>;
25
+ private readonly _minIncompleteStepIndex$;
26
+ readonly minIncompleteStepIndex$: Observable<number>;
27
+ constructor(changeDetector: ChangeDetectorRef);
28
+ get active(): WlcmStep;
29
+ get isActiveCompleted(): boolean;
30
+ get minIncompleteStepIndex(): number;
31
+ next(): void;
32
+ previous(): void;
33
+ activate(key: unknown): void;
34
+ canActivateNext(): boolean;
35
+ isCurrentOrPrevious(key: unknown): boolean;
36
+ getStepIndex(key: unknown): number | undefined;
37
+ private get _activeIndex();
38
+ private _getStep;
39
+ private _handleUpdatedList;
40
+ private _handleKeyChanges;
41
+ private _handleCompleteChanges;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmStepperBase, never>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmStepperBase, never, never, {}, {}, ["_steps"], never, false, never>;
44
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./components/step/step.component";
4
+ import * as i3 from "./components/stepper/stepper.component";
5
+ import * as i4 from "./components/step-header/step-header.component";
6
+ import * as i5 from "./components/stepper-header/stepper-header.component";
7
+ import * as i6 from "./directives/load-on-active-step.directive";
8
+ export declare class WlcmStepperModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmStepperModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WlcmStepperModule, never, [typeof i1.CommonModule, typeof i2.WlcmStepComponent, typeof i3.WlcmStepperComponent, typeof i4.WlcmStepHeaderComponent, typeof i5.WlcmStepperHeaderComponent, typeof i6.WlcmLoadOnActiveStepDirective], [typeof i2.WlcmStepComponent, typeof i3.WlcmStepperComponent, typeof i4.WlcmStepHeaderComponent, typeof i5.WlcmStepperHeaderComponent, typeof i6.WlcmLoadOnActiveStepDirective]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<WlcmStepperModule>;
12
+ }
@@ -0,0 +1,123 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @keyframes pass-indicator-animation {
5
+ from {
6
+ right: 100%;
7
+ }
8
+
9
+ to {
10
+ right: 0;
11
+ }
12
+ }
13
+
14
+ @keyframes complete-indicator-animation {
15
+ from {
16
+ width: 30%;
17
+ height: 30%;
18
+ }
19
+
20
+ to {
21
+ width: calc(100% + 4px);
22
+ height: calc(100% + 4px);
23
+ }
24
+ }
25
+
26
+ @mixin theme($theme-config) {
27
+ $theme: utils.using-theme($theme_config);
28
+
29
+ .wlcm-step-header {
30
+ &.wlcm-step-header-passed {
31
+ .wlcm-step-header-complete-indicator {
32
+ border-color: map-get($theme, primary-color);
33
+ }
34
+
35
+ .wlcm-step-header-label {
36
+ color: map-get($theme, primary-color);
37
+ }
38
+ }
39
+
40
+ &.wlcm-step-header-completed {
41
+ .wlcm-step-header-complete-indicator {
42
+ &::before {
43
+ content: '';
44
+ display: block;
45
+ position: absolute;
46
+ border-radius: 50%;
47
+ background: map-get($theme, primary-color);
48
+ animation: complete-indicator-animation 250ms
49
+ cubic-bezier(0.4, 0, 0.6, 1) forwards;
50
+ }
51
+ }
52
+ }
53
+
54
+ &.wlcm-step-header-passed,
55
+ &.wlcm-step-header-completed {
56
+ .wlcm-step-header-pass-indicator {
57
+ &::before {
58
+ content: '';
59
+ left: 0;
60
+ height: 2px;
61
+ display: block;
62
+ position: absolute;
63
+ background: map-get($theme, primary-color);
64
+ animation: pass-indicator-animation 250ms cubic-bezier(0.4, 0, 0.6, 1)
65
+ forwards;
66
+ }
67
+ }
68
+ }
69
+
70
+ &.wlcm-step-header-disabled {
71
+ .wlcm-step-header-button {
72
+ opacity: 0.7;
73
+ pointer-events: none;
74
+ }
75
+ }
76
+ }
77
+
78
+ .wlcm-step-header-button {
79
+ padding: 0;
80
+ width: 100%;
81
+ border: none;
82
+ outline: none;
83
+ display: flex;
84
+ flex-direction: column;
85
+ background: none;
86
+ cursor: pointer;
87
+ }
88
+
89
+ .wlcm-step-header-label {
90
+ display: inline-block;
91
+ font-family: map-get($theme, bold-font-family);
92
+ color: map-get($theme, field-outline-color);
93
+ margin-bottom: 5px;
94
+ line-height: 20px;
95
+ font-size: 14px;
96
+ }
97
+
98
+ .wlcm-step-header-progress-bar {
99
+ width: 100%;
100
+ height: 16px;
101
+ display: flex;
102
+ align-items: center;
103
+ }
104
+
105
+ .wlcm-step-header-complete-indicator {
106
+ width: 16px;
107
+ height: 16px;
108
+ border-radius: 50%;
109
+ border: 2px solid map-get($theme, field-outline-color);
110
+ box-sizing: border-box;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ position: relative;
115
+ }
116
+
117
+ .wlcm-step-header-pass-indicator {
118
+ flex: 1;
119
+ height: 2px;
120
+ background: map-get($theme, field-outline-color);
121
+ position: relative;
122
+ }
123
+ }
@@ -0,0 +1,15 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-step {
8
+ width: 100%;
9
+ display: none;
10
+
11
+ &.wlcm-step-active {
12
+ display: block;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+
7
+ .wlcm-stepper-header {
8
+ display: grid;
9
+ grid-auto-columns: 1fr;
10
+ grid-auto-flow: column;
11
+ align-items: center;
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ @use 'sass:map';
2
+ @use '../../core/utils' as utils;
3
+
4
+ @mixin theme($theme-config) {
5
+ $theme: utils.using-theme($theme_config);
6
+ }
@@ -0,0 +1,9 @@
1
+ @use './stepper-header' as stepperHeader;
2
+ @use './step-header' as stepHeader;
3
+ @use './step' as step;
4
+
5
+ @mixin theme($theme-config) {
6
+ @include stepperHeader.theme($theme-config);
7
+ @include stepHeader.theme($theme-config);
8
+ @include step.theme($theme-config);
9
+ }
@@ -7,6 +7,7 @@
7
7
  @use '../components/search-field/index' as searchField;
8
8
  @use '../components/date-range-picker/index' as dateRangePicker;
9
9
  @use '../components/phone-input/indes.scss' as phoneInput;
10
+ @use '../components/stepper/indes.scss' as stepper;
10
11
  @use '../components/table/index.scss' as table;
11
12
 
12
13
  @mixin all-component-themes($theme-config) {
@@ -17,5 +18,6 @@
17
18
  @include searchField.theme($theme-config);
18
19
  @include dateRangePicker.theme($theme-config);
19
20
  @include phoneInput.theme($theme-config);
21
+ @include stepper.theme($theme-config);
20
22
  @include table.theme($theme-config);
21
23
  }
package/package.json CHANGED
@@ -1,7 +1,14 @@
1
1
  {
2
2
  "name": "@wlcm/angular",
3
- "version": "17.3.4",
3
+ "version": "17.4.0",
4
4
  "license": "MIT",
5
+ "scripts": {
6
+ "start": "nx serve sandbox",
7
+ "build": "./builders/build-package.sh",
8
+ "publish": "./builders/publish-package.sh",
9
+ "generate-lib": "./builders/generators/lib.sh",
10
+ "run:sandbox": "nx serve sandbox"
11
+ },
5
12
  "type": "module",
6
13
  "module": "./index.mjs",
7
14
  "typings": "./index.d.ts",
@@ -54,6 +61,12 @@
54
61
  "esm2022": "./phone-input/esm2022/wlcm-angular-phone-input.mjs",
55
62
  "fesm2022": "./phone-input/fesm2022/wlcm-angular-phone-input.mjs",
56
63
  "default": "./phone-input/fesm2022/wlcm-angular-phone-input.mjs"
64
+ },
65
+ "./stepper": {
66
+ "types": "./stepper/index.d.ts",
67
+ "esm2022": "./stepper/esm2022/wlcm-angular-stepper.mjs",
68
+ "fesm2022": "./stepper/fesm2022/wlcm-angular-stepper.mjs",
69
+ "default": "./stepper/fesm2022/wlcm-angular-stepper.mjs"
57
70
  }
58
71
  },
59
72
  "dependencies": {
@@ -82,5 +95,51 @@
82
95
  "uuid": "^9.0.1",
83
96
  "zone.js": "~0.14.3"
84
97
  },
85
- "devDependencies": {}
98
+ "devDependencies": {
99
+ "@angular-devkit/build-angular": "~17.3.0",
100
+ "@angular-devkit/core": "~17.3.0",
101
+ "@angular-devkit/schematics": "~17.3.0",
102
+ "@angular-eslint/eslint-plugin": "~17.3.0",
103
+ "@angular-eslint/eslint-plugin-template": "~17.3.0",
104
+ "@angular-eslint/template-parser": "~17.3.0",
105
+ "@angular/cli": "~17.3.0",
106
+ "@angular/compiler-cli": "~17.3.0",
107
+ "@angular/language-service": "~17.3.0",
108
+ "@nx/cypress": "18.3.2",
109
+ "@nx/eslint": "18.3.2",
110
+ "@nx/eslint-plugin": "18.3.2",
111
+ "@nx/jest": "18.3.2",
112
+ "@nx/js": "18.3.2",
113
+ "@nx/web": "18.3.2",
114
+ "@nx/workspace": "18.3.2",
115
+ "@schematics/angular": "~17.3.0",
116
+ "@swc-node/register": "~1.8.0",
117
+ "@swc/core": "~1.3.85",
118
+ "@swc/helpers": "~0.5.2",
119
+ "@types/jest": "^29.4.0",
120
+ "@types/node": "18.16.9",
121
+ "@types/uuid": "^9.0.8",
122
+ "@typescript-eslint/eslint-plugin": "^7.3.0",
123
+ "@typescript-eslint/parser": "^7.3.0",
124
+ "autoprefixer": "^10.4.0",
125
+ "cypress": "^13.6.6",
126
+ "esbuild": "^0.19.2",
127
+ "eslint": "~8.57.0",
128
+ "eslint-config-prettier": "^9.0.0",
129
+ "eslint-plugin-cypress": "^2.13.4",
130
+ "jest": "^29.4.1",
131
+ "jest-environment-jsdom": "^29.4.1",
132
+ "jest-preset-angular": "~14.0.3",
133
+ "jshon": "^0.0.20121031",
134
+ "json": "^11.0.0",
135
+ "jsonc-eslint-parser": "^2.1.0",
136
+ "ng-packagr": "~17.3.0",
137
+ "nx": "18.3.2",
138
+ "postcss": "^8.4.5",
139
+ "postcss-url": "~10.1.3",
140
+ "prettier": "^2.6.2",
141
+ "ts-jest": "^29.1.0",
142
+ "ts-node": "10.9.1",
143
+ "typescript": "~5.4.2"
144
+ }
86
145
  }
@@ -1,26 +0,0 @@
1
- import { Component, Inject, input, output } from '@angular/core';
2
- import { WlcmFormsModule } 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
- 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 }); }
17
- 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" }] }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCountryCodeSelectComponent, decorators: [{
20
- type: Component,
21
- 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"] }]
22
- }], ctorParameters: () => [{ type: undefined, decorators: [{
23
- type: Inject,
24
- args: [WLCM_COUNTRY_CODE_OPTIONS]
25
- }] }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1jb2RlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3Bob25lLWlucHV0L3NyYy9saWIvY29tcG9uZW50cy9jb3VudHJ5LWNvZGUtc2VsZWN0L2NvdW50cnktY29kZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9waG9uZS1pbnB1dC9zcmMvbGliL2NvbXBvbmVudHMvY291bnRyeS1jb2RlLXNlbGVjdC9jb3VudHJ5LWNvZGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFpQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVU1RCxNQUFNLE9BQU8sOEJBQThCO0lBS3pDLFlBQXlELE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBSnpGLFlBQU8sR0FBMEIsTUFBTSxFQUFFLENBQUM7UUFFMUMsWUFBTyxHQUE2QixLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUyQixDQUFDOzhHQUxsRiw4QkFBOEIsa0JBS3JCLHlCQUF5QjtrR0FMbEMsOEJBQThCLHFUQ2pCM0MsZ2hCQW1CQSw2SEROWSxZQUFZLDhCQUFFLGVBQWUsK05BQUUsbUJBQW1CLHFUQUFFLGFBQWE7OzJGQUloRSw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0UsMEJBQTBCLFFBQzlCLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLGNBQy9CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDOzswQkFTL0QsTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXRTaWduYWwsIE91dHB1dEVtaXR0ZXJSZWYsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21Gb3Jtc01vZHVsZSB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgV0xDTV9DT1VOVFJZX0NPREVfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb3VudHJ5LWNvZGUtb3B0aW9ucy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUNvdW50cnlDb2RlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvdW50cnktY29kZS5tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQaG9uZUNvZGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGhvbmUtY29kZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1jb3VudHJ5LWNvZGUtc2VsZWN0JyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tY291bnRyeS1jb2RlLXNlbGVjdCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBQaG9uZUNvZGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cnktY29kZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291bnRyeS1jb2RlLXNlbGVjdC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21Db3VudHJ5Q29kZVNlbGVjdENvbXBvbmVudCB7XG4gIGNoYW5nZWQ6IE91dHB1dEVtaXR0ZXJSZWY8YW55PiA9IG91dHB1dCgpO1xuXG4gIGNvbnRyb2w6IElucHV0U2lnbmFsPEZvcm1Db250cm9sPiA9IGlucHV0KG5ldyBGb3JtQ29udHJvbCgnVVMnKSk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChXTENNX0NPVU5UUllfQ09ERV9PUFRJT05TKSBwcm90ZWN0ZWQgb3B0aW9uczogV2xjbUNvdW50cnlDb2RlT3B0aW9uW10pIHt9XG59XG4iLCI8d2xjbS1zZWxlY3RcbiAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sKClcIlxuICBbb3B0aW9uVGVtcGxhdGVdPVwib3B0aW9uVGVtcGxhdGVcIlxuICBbdHJpZ2dlclRlbXBsYXRlXT1cInRyaWdnZXJUZW1wbGF0ZVwiXG4gIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlZC5lbWl0KCRldmVudClcIlxuPjwvd2xjbS1zZWxlY3Q+XG5cbjxuZy10ZW1wbGF0ZSAjb3B0aW9uVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgPHNwYW4gY2xhc3M9XCJlbW9qaS1mbGFnXCI+e3sgb3B0aW9uLmVtb2ppRmxhZyB9fTwvc3Bhbj5cblxuICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RyaWdnZXJUZW1wbGF0ZSBsZXQtc2VsZWN0ZWQ+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWNvdW50cnktY29kZS1zZWxlY3QtdHJpZ2dlclwiPlxuICAgICt7eyBzZWxlY3RlZD8udmFsdWUgfCBwaG9uZUNvZGUgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,103 +0,0 @@
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;
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></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></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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SUFBSSxFQUFFLENBQUMsQ0FBQztnQ0FFN0csT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDbkMsQ0FBQzt5QkFDRjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQyxFQUFFO3FCQUNqRzsyRUFXa0QsVUFBVTtzQkFBNUQsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBRU0sVUFBVTtzQkFBeEQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIE5nWm9uZSwgVmlld0NoaWxkLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21QaG9uZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9waG9uZS1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV0xDTV9JTlBVVF9CSU5ERVIsIFdsY21Gb3JtRmllbGRJbnB1dCB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgV0xDTV9QSE9ORV9BREFQVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Bob25lLWFkYXB0ZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtUGhvbmVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Bob25lLWFkYXB0ZXIubW9kZWxzJztcbmltcG9ydCB7IEFzWW91VHlwZSwgQ291bnRyeUNvZGUsIFBob25lTnVtYmVyLCBnZXRQaG9uZUNvZGUsIGlzVmFsaWROdW1iZXIsIHBhcnNlUGhvbmVOdW1iZXIgfSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XG5pbXBvcnQgeyBXbGNtQ291bnRyeUNvZGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9jb3VudHJ5LWNvZGUtc2VsZWN0L2NvdW50cnktY29kZS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tcGhvbmUtaW5wdXQtY29udGFpbmVyJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tcGhvbmUtaW5wdXQtY29udGFpbmVyJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBXbGNtQ291bnRyeUNvZGVTZWxlY3RDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Bob25lLWlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdMQ01fSU5QVVRfQklOREVSLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXI6IFdsY21QaG9uZUlucHV0Q29udGFpbmVyQ29tcG9uZW50ID0gaW5qZWN0KFdsY21QaG9uZUlucHV0Q29udGFpbmVyQ29tcG9uZW50LCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgYmluZDogKCkgPT4gY29udGFpbmVyIH07XG4gICAgICB9LFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBXTENNX1BIT05FX0FEQVBURVIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21QaG9uZUlucHV0Q29udGFpbmVyQ29tcG9uZW50KSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtUGhvbmVJbnB1dENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIFdsY21Gb3JtRmllbGRJbnB1dCwgV2xjbVBob25lQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzU3RyZWFtJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYmx1clN0cmVhbSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGZvY3VzJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuX2ZvY3VzU3RyZWFtJC5hc09ic2VydmFibGUoKTtcblxuICBibHVyJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuX2JsdXJTdHJlYW0kLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIEBWaWV3Q2hpbGQoV2xjbUNvdW50cnlDb2RlU2VsZWN0Q29tcG9uZW50KSBwcml2YXRlIGNvZGVTZWxlY3QhOiBXbGNtQ291bnRyeUNvZGVTZWxlY3RDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChXbGNtUGhvbmVJbnB1dERpcmVjdGl2ZSkgcHJpdmF0ZSBwaG9uZUlucHV0ITogV2xjbVBob25lSW5wdXREaXJlY3RpdmU7XG5cbiAgcmVhZG9ubHkgY29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJ1VTJyk7XG5cbiAgcHJpdmF0ZSBfYXNZb3VUeXBlID0gbmV3IEFzWW91VHlwZSgnVVMnKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waG9uZUlucHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBbd2xjbVBob25lSW5wdXRdIGRpcmVjdGl2ZSBtdXN0IGJlIHByb3ZpZGVkLicpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlSW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIGlzRm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waG9uZUlucHV0LmVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnBob25lSW5wdXQuZWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcGFyc2VWYWx1ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuXG4gICAgaWYgKGlzVmFsaWROdW1iZXIodmFsdWUpKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IFBob25lTnVtYmVyID0gcGFyc2VQaG9uZU51bWJlcih2YWx1ZSwgJ1VTJyk7XG5cbiAgICAgIGlmIChyZXN1bHQuY291bnRyeSkgdGhpcy5jb250cm9sLnNldFZhbHVlKHJlc3VsdC5jb3VudHJ5KTtcblxuICAgICAgcmV0dXJuIHJlc3VsdC5uYXRpb25hbE51bWJlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG5cbiAgZm9ybWF0VmFsdWUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgdGhpcy5fYXNZb3VUeXBlLnJlc2V0KCk7XG5cbiAgICB0aGlzLl9hc1lvdVR5cGUuaW5wdXQoYCske3RoaXMuY3VycmVudENhbGxpbmdDb2RlfSR7dmFsdWV9YCk7XG5cbiAgICBjb25zdCBjb3VudHJ5Q29kZTogQ291bnRyeUNvZGUgfCB1bmRlZmluZWQgPSB0aGlzLl9hc1lvdVR5cGUuZ2V0Q291bnRyeSgpO1xuXG4gICAgaWYgKGNvdW50cnlDb2RlKSB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY291bnRyeUNvZGUpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2FzWW91VHlwZS5nZXROdW1iZXIoKT8ubnVtYmVyID8/ICcnO1xuICB9O1xuXG4gIGhhbmRsZUNvdW50cnlDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5waG9uZUlucHV0Ll91cGRhdGVDb250cm9sKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50Q2FsbGluZ0NvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0UGhvbmVDb2RlKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnBob25lSW5wdXQuZWxlbWVudCwgJ2ZvY3VzJykucGlwZSh0YXAoKCkgPT4gdGhpcy5fZm9jdXNTdHJlYW0kLm5leHQoKSkpLFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5waG9uZUlucHV0LmVsZW1lbnQsICdibHVyJykucGlwZSh0YXAoKCkgPT4gdGhpcy5fYmx1clN0cmVhbSQubmV4dCgpKSlcbiAgICAgIClcbiAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHdsY20tY291bnRyeS1jb2RlLXNlbGVjdFxuICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgKGNoYW5nZWQpPVwiaGFuZGxlQ291bnRyeUNoYW5nZSgpXCJcbj48L3dsY20tY291bnRyeS1jb2RlLXNlbGVjdD5cblxuPGRpdiBjbGFzcz1cIndsY20tcGhvbmUtaW5wdXQtY29udGFpbmVyLWRpdmlkZXJcIj48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21QaG9uZUlucHV0XVwiPjwvbmctY29udGVudD5cbiJdfQ==