iss-ctrl 0.0.2-beta-2 → 0.0.3

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 (1042) hide show
  1. package/.editorconfig +13 -0
  2. package/.eslintrc.json +90 -0
  3. package/README.md +25 -26
  4. package/angular.json +190 -0
  5. package/bun.lock +1998 -0
  6. package/package.json +48 -25
  7. package/projects/iss/.eslintrc.json +37 -0
  8. package/projects/iss/README.md +24 -0
  9. package/projects/iss/ng-package.json +10 -0
  10. package/projects/iss/package.json +17 -0
  11. package/projects/iss/src/components/controls/base/control.base.ts +77 -0
  12. package/projects/iss/src/components/controls/base/viewer.base.ts +8 -0
  13. package/projects/iss/src/components/controls/base/wrapper.base.ts +85 -0
  14. package/projects/iss/src/components/controls/checkbox/checkbox.control.ts +93 -0
  15. package/projects/iss/src/components/controls/checkbox/checkbox.viewer.ts +15 -0
  16. package/projects/iss/src/components/controls/checkbox/checkbox.wrapper.ts +36 -0
  17. package/projects/iss/src/components/controls/chips/chips.control.ts +99 -0
  18. package/projects/iss/src/components/controls/chips/chips.viewer.ts +23 -0
  19. package/projects/iss/src/components/controls/chips/chips.wrapper.ts +31 -0
  20. package/projects/iss/src/components/controls/date-picker/date-picker.control.ts +85 -0
  21. package/projects/iss/src/components/controls/date-picker/date-picker.viewer.ts +14 -0
  22. package/projects/iss/src/components/controls/date-picker/date-picker.wrapper.ts +35 -0
  23. package/projects/iss/src/components/controls/date-range-picker/date-range-picker.control.ts +143 -0
  24. package/projects/iss/src/components/controls/date-range-picker/date-range-picker.viewer.ts +22 -0
  25. package/projects/iss/src/components/controls/date-range-picker/date-range-picker.wrapper.ts +35 -0
  26. package/projects/iss/src/components/controls/datetime-picker/datetime-picker.control.ts +109 -0
  27. package/projects/iss/src/components/controls/datetime-picker/datetime-picker.viewer.ts +17 -0
  28. package/projects/iss/src/components/controls/datetime-picker/datetime-picker.wrapper.ts +38 -0
  29. package/projects/iss/src/components/controls/file-picker/attachment.viewer.ts +165 -0
  30. package/projects/iss/src/components/controls/file-picker/droppable.directive.ts +28 -0
  31. package/projects/iss/src/components/controls/file-picker/file-handler.service.ts +115 -0
  32. package/projects/iss/src/components/controls/file-picker/file-picker.control.ts +187 -0
  33. package/projects/iss/src/components/controls/file-picker/file-picker.wrapper.ts +120 -0
  34. package/projects/iss/src/components/controls/input/input.control.ts +95 -0
  35. package/projects/iss/src/components/controls/input/input.viewer.ts +11 -0
  36. package/projects/iss/src/components/controls/input/input.wrapper.ts +40 -0
  37. package/projects/iss/src/components/controls/mobile/flags/ad.svg +282 -0
  38. package/projects/iss/src/components/controls/mobile/flags/ae.svg +6 -0
  39. package/projects/iss/src/components/controls/mobile/flags/af.svg +9 -0
  40. package/projects/iss/src/components/controls/mobile/flags/ag.svg +15 -0
  41. package/projects/iss/src/components/controls/mobile/flags/ai.svg +35 -0
  42. package/projects/iss/src/components/controls/mobile/flags/al.svg +7 -0
  43. package/projects/iss/src/components/controls/mobile/flags/am.svg +5 -0
  44. package/projects/iss/src/components/controls/mobile/flags/ao.svg +19 -0
  45. package/projects/iss/src/components/controls/mobile/flags/aq.svg +45 -0
  46. package/projects/iss/src/components/controls/mobile/flags/ar.svg +66 -0
  47. package/projects/iss/src/components/controls/mobile/flags/as.svg +225 -0
  48. package/projects/iss/src/components/controls/mobile/flags/at.svg +4 -0
  49. package/projects/iss/src/components/controls/mobile/flags/au.svg +32 -0
  50. package/projects/iss/src/components/controls/mobile/flags/aw.svg +11 -0
  51. package/projects/iss/src/components/controls/mobile/flags/ax.svg +11 -0
  52. package/projects/iss/src/components/controls/mobile/flags/az.svg +11 -0
  53. package/projects/iss/src/components/controls/mobile/flags/ba.svg +18 -0
  54. package/projects/iss/src/components/controls/mobile/flags/bb.svg +11 -0
  55. package/projects/iss/src/components/controls/mobile/flags/bd.svg +4 -0
  56. package/projects/iss/src/components/controls/mobile/flags/be.svg +5 -0
  57. package/projects/iss/src/components/controls/mobile/flags/bf.svg +14 -0
  58. package/projects/iss/src/components/controls/mobile/flags/bg.svg +5 -0
  59. package/projects/iss/src/components/controls/mobile/flags/bh.svg +4 -0
  60. package/projects/iss/src/components/controls/mobile/flags/bi.svg +26 -0
  61. package/projects/iss/src/components/controls/mobile/flags/bj.svg +5 -0
  62. package/projects/iss/src/components/controls/mobile/flags/bl.svg +5 -0
  63. package/projects/iss/src/components/controls/mobile/flags/bm.svg +374 -0
  64. package/projects/iss/src/components/controls/mobile/flags/bn.svg +70 -0
  65. package/projects/iss/src/components/controls/mobile/flags/bo.svg +3625 -0
  66. package/projects/iss/src/components/controls/mobile/flags/bq.svg +5 -0
  67. package/projects/iss/src/components/controls/mobile/flags/br.svg +92 -0
  68. package/projects/iss/src/components/controls/mobile/flags/bs.svg +5 -0
  69. package/projects/iss/src/components/controls/mobile/flags/bt.svg +487 -0
  70. package/projects/iss/src/components/controls/mobile/flags/bv.svg +11 -0
  71. package/projects/iss/src/components/controls/mobile/flags/bw.svg +5 -0
  72. package/projects/iss/src/components/controls/mobile/flags/by.svg +15 -0
  73. package/projects/iss/src/components/controls/mobile/flags/bz.svg +629 -0
  74. package/projects/iss/src/components/controls/mobile/flags/ca.svg +7 -0
  75. package/projects/iss/src/components/controls/mobile/flags/cc.svg +33 -0
  76. package/projects/iss/src/components/controls/mobile/flags/cd.svg +5 -0
  77. package/projects/iss/src/components/controls/mobile/flags/cf.svg +7 -0
  78. package/projects/iss/src/components/controls/mobile/flags/cg.svg +5 -0
  79. package/projects/iss/src/components/controls/mobile/flags/ch.svg +4 -0
  80. package/projects/iss/src/components/controls/mobile/flags/ci.svg +5 -0
  81. package/projects/iss/src/components/controls/mobile/flags/ck.svg +29 -0
  82. package/projects/iss/src/components/controls/mobile/flags/cl.svg +14 -0
  83. package/projects/iss/src/components/controls/mobile/flags/cm.svg +15 -0
  84. package/projects/iss/src/components/controls/mobile/flags/cn.svg +11 -0
  85. package/projects/iss/src/components/controls/mobile/flags/co.svg +5 -0
  86. package/projects/iss/src/components/controls/mobile/flags/cr.svg +1332 -0
  87. package/projects/iss/src/components/controls/mobile/flags/cu.svg +6 -0
  88. package/projects/iss/src/components/controls/mobile/flags/cv.svg +24 -0
  89. package/projects/iss/src/components/controls/mobile/flags/cw.svg +16 -0
  90. package/projects/iss/src/components/controls/mobile/flags/cx.svg +24 -0
  91. package/projects/iss/src/components/controls/mobile/flags/cy.svg +13 -0
  92. package/projects/iss/src/components/controls/mobile/flags/cz.svg +5 -0
  93. package/projects/iss/src/components/controls/mobile/flags/de.svg +5 -0
  94. package/projects/iss/src/components/controls/mobile/flags/dj.svg +6 -0
  95. package/projects/iss/src/components/controls/mobile/flags/dk.svg +5 -0
  96. package/projects/iss/src/components/controls/mobile/flags/dm.svg +198 -0
  97. package/projects/iss/src/components/controls/mobile/flags/do.svg +238 -0
  98. package/projects/iss/src/components/controls/mobile/flags/dz.svg +5 -0
  99. package/projects/iss/src/components/controls/mobile/flags/ec.svg +1292 -0
  100. package/projects/iss/src/components/controls/mobile/flags/ee.svg +5 -0
  101. package/projects/iss/src/components/controls/mobile/flags/eg.svg +125 -0
  102. package/projects/iss/src/components/controls/mobile/flags/eh.svg +12 -0
  103. package/projects/iss/src/components/controls/mobile/flags/er.svg +9 -0
  104. package/projects/iss/src/components/controls/mobile/flags/es.svg +445 -0
  105. package/projects/iss/src/components/controls/mobile/flags/et.svg +16 -0
  106. package/projects/iss/src/components/controls/mobile/flags/eu.svg +28 -0
  107. package/projects/iss/src/components/controls/mobile/flags/fi.svg +5 -0
  108. package/projects/iss/src/components/controls/mobile/flags/fj.svg +203 -0
  109. package/projects/iss/src/components/controls/mobile/flags/fk.svg +922 -0
  110. package/projects/iss/src/components/controls/mobile/flags/flags.png +0 -0
  111. package/projects/iss/src/components/controls/mobile/flags/flags@2x.png +0 -0
  112. package/projects/iss/src/components/controls/mobile/flags/fm.svg +16 -0
  113. package/projects/iss/src/components/controls/mobile/flags/fo.svg +11 -0
  114. package/projects/iss/src/components/controls/mobile/flags/fonts.css +271 -0
  115. package/projects/iss/src/components/controls/mobile/flags/fr.svg +5 -0
  116. package/projects/iss/src/components/controls/mobile/flags/ga.svg +5 -0
  117. package/projects/iss/src/components/controls/mobile/flags/gb-eng.svg +7 -0
  118. package/projects/iss/src/components/controls/mobile/flags/gb-nir.svg +15 -0
  119. package/projects/iss/src/components/controls/mobile/flags/gb-sct.svg +11 -0
  120. package/projects/iss/src/components/controls/mobile/flags/gb-wls.svg +16 -0
  121. package/projects/iss/src/components/controls/mobile/flags/gb.svg +15 -0
  122. package/projects/iss/src/components/controls/mobile/flags/gd.svg +11 -0
  123. package/projects/iss/src/components/controls/mobile/flags/ge.svg +17 -0
  124. package/projects/iss/src/components/controls/mobile/flags/gf.svg +5 -0
  125. package/projects/iss/src/components/controls/mobile/flags/gg.svg +8 -0
  126. package/projects/iss/src/components/controls/mobile/flags/gh.svg +6 -0
  127. package/projects/iss/src/components/controls/mobile/flags/gi.svg +69 -0
  128. package/projects/iss/src/components/controls/mobile/flags/gl.svg +4 -0
  129. package/projects/iss/src/components/controls/mobile/flags/gm.svg +7 -0
  130. package/projects/iss/src/components/controls/mobile/flags/gn.svg +5 -0
  131. package/projects/iss/src/components/controls/mobile/flags/gp.svg +5 -0
  132. package/projects/iss/src/components/controls/mobile/flags/gq.svg +88 -0
  133. package/projects/iss/src/components/controls/mobile/flags/gr.svg +4 -0
  134. package/projects/iss/src/components/controls/mobile/flags/gs.svg +693 -0
  135. package/projects/iss/src/components/controls/mobile/flags/gt.svg +317 -0
  136. package/projects/iss/src/components/controls/mobile/flags/gu.svg +58 -0
  137. package/projects/iss/src/components/controls/mobile/flags/gw.svg +13 -0
  138. package/projects/iss/src/components/controls/mobile/flags/gy.svg +7 -0
  139. package/projects/iss/src/components/controls/mobile/flags/hk.svg +17 -0
  140. package/projects/iss/src/components/controls/mobile/flags/hm.svg +32 -0
  141. package/projects/iss/src/components/controls/mobile/flags/hn.svg +10 -0
  142. package/projects/iss/src/components/controls/mobile/flags/hr.svg +282 -0
  143. package/projects/iss/src/components/controls/mobile/flags/ht.svg +1470 -0
  144. package/projects/iss/src/components/controls/mobile/flags/hu.svg +5 -0
  145. package/projects/iss/src/components/controls/mobile/flags/id.svg +4 -0
  146. package/projects/iss/src/components/controls/mobile/flags/ie.svg +5 -0
  147. package/projects/iss/src/components/controls/mobile/flags/il.svg +5 -0
  148. package/projects/iss/src/components/controls/mobile/flags/im.svg +33 -0
  149. package/projects/iss/src/components/controls/mobile/flags/in.svg +25 -0
  150. package/projects/iss/src/components/controls/mobile/flags/io.svg +895 -0
  151. package/projects/iss/src/components/controls/mobile/flags/iq.svg +12 -0
  152. package/projects/iss/src/components/controls/mobile/flags/ir.svg +31 -0
  153. package/projects/iss/src/components/controls/mobile/flags/is.svg +5 -0
  154. package/projects/iss/src/components/controls/mobile/flags/it.svg +5 -0
  155. package/projects/iss/src/components/controls/mobile/flags/je.svg +40 -0
  156. package/projects/iss/src/components/controls/mobile/flags/jm.svg +9 -0
  157. package/projects/iss/src/components/controls/mobile/flags/jo.svg +10 -0
  158. package/projects/iss/src/components/controls/mobile/flags/jp.svg +4 -0
  159. package/projects/iss/src/components/controls/mobile/flags/ke.svg +28 -0
  160. package/projects/iss/src/components/controls/mobile/flags/kg.svg +7 -0
  161. package/projects/iss/src/components/controls/mobile/flags/kh.svg +133 -0
  162. package/projects/iss/src/components/controls/mobile/flags/ki.svg +54 -0
  163. package/projects/iss/src/components/controls/mobile/flags/km.svg +13 -0
  164. package/projects/iss/src/components/controls/mobile/flags/kn.svg +24 -0
  165. package/projects/iss/src/components/controls/mobile/flags/kp.svg +16 -0
  166. package/projects/iss/src/components/controls/mobile/flags/kr.svg +16 -0
  167. package/projects/iss/src/components/controls/mobile/flags/kw.svg +6 -0
  168. package/projects/iss/src/components/controls/mobile/flags/ky.svg +153 -0
  169. package/projects/iss/src/components/controls/mobile/flags/kz.svg +49 -0
  170. package/projects/iss/src/components/controls/mobile/flags/la.svg +5 -0
  171. package/projects/iss/src/components/controls/mobile/flags/lb.svg +8 -0
  172. package/projects/iss/src/components/controls/mobile/flags/lc.svg +6 -0
  173. package/projects/iss/src/components/controls/mobile/flags/li.svg +75 -0
  174. package/projects/iss/src/components/controls/mobile/flags/lk.svg +50 -0
  175. package/projects/iss/src/components/controls/mobile/flags/lr.svg +15 -0
  176. package/projects/iss/src/components/controls/mobile/flags/ls.svg +32 -0
  177. package/projects/iss/src/components/controls/mobile/flags/lt.svg +5 -0
  178. package/projects/iss/src/components/controls/mobile/flags/lu.svg +5 -0
  179. package/projects/iss/src/components/controls/mobile/flags/lv.svg +4 -0
  180. package/projects/iss/src/components/controls/mobile/flags/ly.svg +8 -0
  181. package/projects/iss/src/components/controls/mobile/flags/ma.svg +4 -0
  182. package/projects/iss/src/components/controls/mobile/flags/mc.svg +4 -0
  183. package/projects/iss/src/components/controls/mobile/flags/md.svg +102 -0
  184. package/projects/iss/src/components/controls/mobile/flags/me.svg +240 -0
  185. package/projects/iss/src/components/controls/mobile/flags/mf.svg +5 -0
  186. package/projects/iss/src/components/controls/mobile/flags/mg.svg +5 -0
  187. package/projects/iss/src/components/controls/mobile/flags/mh.svg +18 -0
  188. package/projects/iss/src/components/controls/mobile/flags/mk.svg +6 -0
  189. package/projects/iss/src/components/controls/mobile/flags/ml.svg +5 -0
  190. package/projects/iss/src/components/controls/mobile/flags/mm.svg +12 -0
  191. package/projects/iss/src/components/controls/mobile/flags/mn.svg +12 -0
  192. package/projects/iss/src/components/controls/mobile/flags/mo.svg +13 -0
  193. package/projects/iss/src/components/controls/mobile/flags/mp.svg +2919 -0
  194. package/projects/iss/src/components/controls/mobile/flags/mq.svg +5 -0
  195. package/projects/iss/src/components/controls/mobile/flags/mr.svg +5 -0
  196. package/projects/iss/src/components/controls/mobile/flags/ms.svg +59 -0
  197. package/projects/iss/src/components/controls/mobile/flags/mt.svg +52 -0
  198. package/projects/iss/src/components/controls/mobile/flags/mu.svg +6 -0
  199. package/projects/iss/src/components/controls/mobile/flags/mv.svg +8 -0
  200. package/projects/iss/src/components/controls/mobile/flags/mw.svg +24 -0
  201. package/projects/iss/src/components/controls/mobile/flags/mx.svg +1129 -0
  202. package/projects/iss/src/components/controls/mobile/flags/my.svg +12 -0
  203. package/projects/iss/src/components/controls/mobile/flags/mz.svg +50 -0
  204. package/projects/iss/src/components/controls/mobile/flags/na.svg +17 -0
  205. package/projects/iss/src/components/controls/mobile/flags/nc.svg +5 -0
  206. package/projects/iss/src/components/controls/mobile/flags/ne.svg +6 -0
  207. package/projects/iss/src/components/controls/mobile/flags/nf.svg +8 -0
  208. package/projects/iss/src/components/controls/mobile/flags/ng.svg +4 -0
  209. package/projects/iss/src/components/controls/mobile/flags/ni.svg +281 -0
  210. package/projects/iss/src/components/controls/mobile/flags/nl.svg +5 -0
  211. package/projects/iss/src/components/controls/mobile/flags/no.svg +11 -0
  212. package/projects/iss/src/components/controls/mobile/flags/np.svg +33 -0
  213. package/projects/iss/src/components/controls/mobile/flags/nr.svg +8 -0
  214. package/projects/iss/src/components/controls/mobile/flags/nu.svg +23 -0
  215. package/projects/iss/src/components/controls/mobile/flags/nz.svg +37 -0
  216. package/projects/iss/src/components/controls/mobile/flags/om.svg +307 -0
  217. package/projects/iss/src/components/controls/mobile/flags/pa.svg +15 -0
  218. package/projects/iss/src/components/controls/mobile/flags/pe.svg +767 -0
  219. package/projects/iss/src/components/controls/mobile/flags/pf.svg +38 -0
  220. package/projects/iss/src/components/controls/mobile/flags/pg.svg +16 -0
  221. package/projects/iss/src/components/controls/mobile/flags/ph.svg +28 -0
  222. package/projects/iss/src/components/controls/mobile/flags/pk.svg +7 -0
  223. package/projects/iss/src/components/controls/mobile/flags/pl.svg +4 -0
  224. package/projects/iss/src/components/controls/mobile/flags/pm.svg +5 -0
  225. package/projects/iss/src/components/controls/mobile/flags/pn.svg +131 -0
  226. package/projects/iss/src/components/controls/mobile/flags/pr.svg +6 -0
  227. package/projects/iss/src/components/controls/mobile/flags/ps.svg +6 -0
  228. package/projects/iss/src/components/controls/mobile/flags/pt.svg +79 -0
  229. package/projects/iss/src/components/controls/mobile/flags/pw.svg +4 -0
  230. package/projects/iss/src/components/controls/mobile/flags/py.svg +192 -0
  231. package/projects/iss/src/components/controls/mobile/flags/qa.svg +7 -0
  232. package/projects/iss/src/components/controls/mobile/flags/re.svg +5 -0
  233. package/projects/iss/src/components/controls/mobile/flags/ro.svg +5 -0
  234. package/projects/iss/src/components/controls/mobile/flags/rs.svg +1143 -0
  235. package/projects/iss/src/components/controls/mobile/flags/ru.svg +5 -0
  236. package/projects/iss/src/components/controls/mobile/flags/rw.svg +17 -0
  237. package/projects/iss/src/components/controls/mobile/flags/sa.svg +23 -0
  238. package/projects/iss/src/components/controls/mobile/flags/sb.svg +30 -0
  239. package/projects/iss/src/components/controls/mobile/flags/sc.svg +7 -0
  240. package/projects/iss/src/components/controls/mobile/flags/sd.svg +6 -0
  241. package/projects/iss/src/components/controls/mobile/flags/se.svg +5 -0
  242. package/projects/iss/src/components/controls/mobile/flags/sg.svg +15 -0
  243. package/projects/iss/src/components/controls/mobile/flags/sh.svg +15 -0
  244. package/projects/iss/src/components/controls/mobile/flags/si.svg +30 -0
  245. package/projects/iss/src/components/controls/mobile/flags/sj.svg +11 -0
  246. package/projects/iss/src/components/controls/mobile/flags/sk.svg +21 -0
  247. package/projects/iss/src/components/controls/mobile/flags/sl.svg +5 -0
  248. package/projects/iss/src/components/controls/mobile/flags/sm.svg +847 -0
  249. package/projects/iss/src/components/controls/mobile/flags/sn.svg +15 -0
  250. package/projects/iss/src/components/controls/mobile/flags/so.svg +13 -0
  251. package/projects/iss/src/components/controls/mobile/flags/sr.svg +6 -0
  252. package/projects/iss/src/components/controls/mobile/flags/ss.svg +8 -0
  253. package/projects/iss/src/components/controls/mobile/flags/st.svg +16 -0
  254. package/projects/iss/src/components/controls/mobile/flags/stc-icons.css +1 -0
  255. package/projects/iss/src/components/controls/mobile/flags/sv.svg +3368 -0
  256. package/projects/iss/src/components/controls/mobile/flags/sx.svg +172 -0
  257. package/projects/iss/src/components/controls/mobile/flags/sy.svg +6 -0
  258. package/projects/iss/src/components/controls/mobile/flags/sz.svg +54 -0
  259. package/projects/iss/src/components/controls/mobile/flags/tc.svg +88 -0
  260. package/projects/iss/src/components/controls/mobile/flags/td.svg +5 -0
  261. package/projects/iss/src/components/controls/mobile/flags/tf.svg +18 -0
  262. package/projects/iss/src/components/controls/mobile/flags/tg.svg +15 -0
  263. package/projects/iss/src/components/controls/mobile/flags/th.svg +5 -0
  264. package/projects/iss/src/components/controls/mobile/flags/tj.svg +32 -0
  265. package/projects/iss/src/components/controls/mobile/flags/tk.svg +25 -0
  266. package/projects/iss/src/components/controls/mobile/flags/tl.svg +6 -0
  267. package/projects/iss/src/components/controls/mobile/flags/tm.svg +349 -0
  268. package/projects/iss/src/components/controls/mobile/flags/tn.svg +9 -0
  269. package/projects/iss/src/components/controls/mobile/flags/to.svg +8 -0
  270. package/projects/iss/src/components/controls/mobile/flags/tr.svg +6 -0
  271. package/projects/iss/src/components/controls/mobile/flags/tt.svg +5 -0
  272. package/projects/iss/src/components/controls/mobile/flags/tv.svg +18 -0
  273. package/projects/iss/src/components/controls/mobile/flags/tw.svg +12 -0
  274. package/projects/iss/src/components/controls/mobile/flags/tz.svg +13 -0
  275. package/projects/iss/src/components/controls/mobile/flags/ua.svg +4 -0
  276. package/projects/iss/src/components/controls/mobile/flags/ug.svg +46 -0
  277. package/projects/iss/src/components/controls/mobile/flags/um.svg +25 -0
  278. package/projects/iss/src/components/controls/mobile/flags/us.svg +25 -0
  279. package/projects/iss/src/components/controls/mobile/flags/uy.svg +138 -0
  280. package/projects/iss/src/components/controls/mobile/flags/uz.svg +30 -0
  281. package/projects/iss/src/components/controls/mobile/flags/va.svg +277 -0
  282. package/projects/iss/src/components/controls/mobile/flags/vc.svg +9 -0
  283. package/projects/iss/src/components/controls/mobile/flags/ve.svg +28 -0
  284. package/projects/iss/src/components/controls/mobile/flags/vg.svg +96 -0
  285. package/projects/iss/src/components/controls/mobile/flags/vi.svg +311 -0
  286. package/projects/iss/src/components/controls/mobile/flags/vn.svg +12 -0
  287. package/projects/iss/src/components/controls/mobile/flags/vu.svg +20 -0
  288. package/projects/iss/src/components/controls/mobile/flags/wf.svg +7 -0
  289. package/projects/iss/src/components/controls/mobile/flags/ws.svg +14 -0
  290. package/projects/iss/src/components/controls/mobile/flags/xk.svg +11 -0
  291. package/projects/iss/src/components/controls/mobile/flags/ye.svg +5 -0
  292. package/projects/iss/src/components/controls/mobile/flags/yt.svg +5 -0
  293. package/projects/iss/src/components/controls/mobile/flags/za.svg +17 -0
  294. package/projects/iss/src/components/controls/mobile/flags/zm.svg +20 -0
  295. package/projects/iss/src/components/controls/mobile/flags/zw.svg +130 -0
  296. package/projects/iss/src/components/controls/mobile/mobile.control.ts +222 -0
  297. package/projects/iss/src/components/controls/mobile/mobile.viewer.ts +11 -0
  298. package/projects/iss/src/components/controls/mobile/mobile.wrapper.ts +32 -0
  299. package/projects/iss/src/components/controls/mobile/phone.service.ts +96 -0
  300. package/projects/iss/src/components/controls/note/note.wrapper.ts +25 -0
  301. package/projects/iss/src/components/controls/plate/plate-letter.pipe.ts +14 -0
  302. package/projects/iss/src/components/controls/plate/plate-number.wrapper.ts +36 -0
  303. package/projects/iss/src/components/controls/plate/plate.control.ts +481 -0
  304. package/projects/iss/src/components/controls/plate/plate.viewer.ts +289 -0
  305. package/projects/iss/src/components/controls/radio/radio.control.ts +48 -0
  306. package/projects/iss/src/components/controls/radio/radio.viewer.ts +14 -0
  307. package/projects/iss/src/components/controls/radio/radio.wrapper.ts +38 -0
  308. package/projects/iss/src/components/controls/select/select.control.ts +261 -0
  309. package/projects/iss/src/components/controls/select/select.viewer.ts +14 -0
  310. package/projects/iss/src/components/controls/select/select.wrapper.ts +41 -0
  311. package/projects/iss/src/components/controls/slide-toggle/slide-toggle.control.ts +24 -0
  312. package/projects/iss/src/components/controls/slide-toggle/slide-toggle.viewer.ts +14 -0
  313. package/projects/iss/src/components/controls/slide-toggle/slide-toggle.wrapper.ts +31 -0
  314. package/projects/iss/src/components/controls/table/field.viewer.ts +23 -0
  315. package/projects/iss/src/components/controls/table/table.wrapper.ts +233 -0
  316. package/projects/iss/src/components/controls/textarea/textarea.control.ts +54 -0
  317. package/projects/iss/src/components/controls/textarea/textarea.viewer.ts +11 -0
  318. package/projects/iss/src/components/controls/textarea/textarea.wrapper.ts +34 -0
  319. package/projects/iss/src/components/controls/time-picker/time-picker.control.ts +86 -0
  320. package/projects/iss/src/components/controls/time-picker/time-picker.viewer.ts +10 -0
  321. package/projects/iss/src/components/controls/time-picker/time-picker.wrapper.ts +31 -0
  322. package/projects/iss/src/components/controls/toggle-button/toggle-button.control.ts +105 -0
  323. package/projects/iss/src/components/controls/toggle-button/toggle-button.viewer.ts +15 -0
  324. package/projects/iss/src/components/controls/toggle-button/toggle-button.wrapper.ts +40 -0
  325. package/projects/iss/src/components/controls/user-picker/employee.service.ts +73 -0
  326. package/projects/iss/src/components/controls/user-picker/user-picker.wrapper.ts +128 -0
  327. package/projects/iss/src/components/outlet/field-data-injector.pipe.ts +20 -0
  328. package/projects/iss/src/components/outlet/outlet.ts +152 -0
  329. package/projects/iss/src/components/shared/hints.component.ts +38 -0
  330. package/projects/iss/src/components/shared/validation-message.component.ts +36 -0
  331. package/projects/iss/src/events/event-handler.service.ts +47 -0
  332. package/projects/iss/src/events/load/after-fetch.service.ts +29 -0
  333. package/projects/iss/src/events/load/load-event.service.ts +26 -0
  334. package/projects/iss/src/events/load/load-options-event.service.ts +51 -0
  335. package/projects/iss/src/events/load/load-value-event.service.ts +50 -0
  336. package/projects/iss/src/events/load/replace-api-keys.service.ts +55 -0
  337. package/projects/iss/src/events/set-value/get-value-to-set.service.ts +29 -0
  338. package/projects/iss/src/events/set-value/set-value-event.service.ts +33 -0
  339. package/projects/iss/src/events/show/show-event.service.ts +11 -0
  340. package/projects/iss/src/events/triggers/action-trigger-manager.service.ts +51 -0
  341. package/projects/iss/src/events/triggers/action-trigger.service.ts +30 -0
  342. package/projects/iss/src/events/triggers/trigger-based-on-json-value.service.ts +19 -0
  343. package/projects/iss/src/public-api.ts +102 -0
  344. package/projects/iss/src/shared/classes/field-action-config.ts +56 -0
  345. package/projects/iss/src/shared/classes/field-action.ts +28 -0
  346. package/projects/iss/src/shared/classes/field-async-validation.ts +7 -0
  347. package/projects/iss/src/shared/classes/field-config.ts +113 -0
  348. package/projects/iss/src/shared/classes/field-option.ts +9 -0
  349. package/projects/iss/src/shared/classes/field-validation.ts +15 -0
  350. package/projects/iss/src/shared/classes/form-field.ts +94 -0
  351. package/projects/iss/src/shared/constants/countries.const.ts +2051 -0
  352. package/projects/iss/src/shared/constants/date.const.ts +18 -0
  353. package/projects/iss/src/shared/constants/plate-letters.const.ts +21 -0
  354. package/projects/iss/src/shared/constants/provider.const.ts +7 -0
  355. package/projects/iss/src/shared/constants/regex.const.ts +1 -0
  356. package/projects/iss/src/shared/constants/validation.const.ts +115 -0
  357. package/projects/iss/src/shared/indexes/components.index.ts +27 -0
  358. package/projects/iss/src/shared/indexes/services.index.ts +11 -0
  359. package/projects/iss/src/shared/indexes/validators.index.ts +21 -0
  360. package/projects/iss/src/shared/interfaces/action.interface.ts +7 -0
  361. package/projects/iss/src/shared/interfaces/attachment.interface.ts +7 -0
  362. package/projects/iss/src/shared/interfaces/country.interface.ts +11 -0
  363. package/projects/iss/src/shared/interfaces/date-range.interface.ts +5 -0
  364. package/projects/iss/src/shared/interfaces/datetime.interface.ts +4 -0
  365. package/projects/iss/src/shared/interfaces/dto.interface.ts +12 -0
  366. package/projects/iss/src/shared/interfaces/field.interface.ts +27 -0
  367. package/projects/iss/src/shared/interfaces/file.interface.ts +9 -0
  368. package/projects/iss/src/shared/interfaces/hint.interface.ts +8 -0
  369. package/projects/iss/src/shared/interfaces/i18n.interface.ts +4 -0
  370. package/projects/iss/src/shared/interfaces/import.interface.ts +3 -0
  371. package/projects/iss/src/shared/interfaces/mobile.interface.ts +12 -0
  372. package/projects/iss/src/shared/interfaces/option.interface.ts +4 -0
  373. package/projects/iss/src/shared/interfaces/outlet.interface.ts +8 -0
  374. package/projects/iss/src/shared/interfaces/plate-letter.interface.ts +7 -0
  375. package/projects/iss/src/shared/interfaces/validation.interface.ts +5 -0
  376. package/projects/iss/src/shared/pipes/arabic-number.pipe.ts +14 -0
  377. package/projects/iss/src/shared/pipes/select-status.pipe.ts +10 -0
  378. package/projects/iss/src/shared/pipes/translate.pipe.ts +20 -0
  379. package/projects/iss/src/shared/services/form-engine.service.ts +121 -0
  380. package/projects/iss/src/shared/services/loader.service.ts +51 -0
  381. package/projects/iss/src/shared/tokens/api-response-mapper.token.ts +4 -0
  382. package/projects/iss/src/shared/tokens/attachment.token.ts +6 -0
  383. package/projects/iss/src/shared/tokens/field.token.ts +4 -0
  384. package/projects/iss/src/shared/tokens/host.token.ts +3 -0
  385. package/projects/iss/src/shared/tokens/language.token.ts +3 -0
  386. package/projects/iss/src/shared/tokens/url.token.ts +3 -0
  387. package/projects/iss/src/shared/types/iso2.type.ts +244 -0
  388. package/projects/iss/src/shared/types/validation.type.ts +3 -0
  389. package/projects/iss/src/shared/utilities/array-from.util.ts +7 -0
  390. package/projects/iss/src/shared/utilities/format-file-size.util.ts +9 -0
  391. package/projects/iss/src/shared/utilities/get-property-by-path.util.ts +30 -0
  392. package/projects/iss/src/shared/utilities/http.util.service.ts +19 -0
  393. package/projects/iss/src/shared/utilities/is-valid-api.util.ts +8 -0
  394. package/projects/iss/src/shared/utilities/replace-placeholder.util.ts +12 -0
  395. package/projects/iss/src/validators/core.validator.ts +39 -0
  396. package/projects/iss/src/validators/file.validator.ts +100 -0
  397. package/projects/iss/src/validators/time.validator.ts +31 -0
  398. package/projects/iss/tsconfig.lib.json +13 -0
  399. package/projects/iss/tsconfig.lib.prod.json +9 -0
  400. package/projects/iss/tsconfig.spec.json +13 -0
  401. package/projects/iss/upgrade.scss +68 -0
  402. package/projects/playground/.eslintrc.json +37 -0
  403. package/projects/playground/public/favicon.ico +0 -0
  404. package/projects/playground/public/flags/ad.svg +282 -0
  405. package/projects/playground/public/flags/ae.svg +6 -0
  406. package/projects/playground/public/flags/af.svg +9 -0
  407. package/projects/playground/public/flags/ag.svg +15 -0
  408. package/projects/playground/public/flags/ai.svg +35 -0
  409. package/projects/playground/public/flags/al.svg +7 -0
  410. package/projects/playground/public/flags/am.svg +5 -0
  411. package/projects/playground/public/flags/ao.svg +19 -0
  412. package/projects/playground/public/flags/aq.svg +45 -0
  413. package/projects/playground/public/flags/ar.svg +66 -0
  414. package/projects/playground/public/flags/as.svg +225 -0
  415. package/projects/playground/public/flags/at.svg +4 -0
  416. package/projects/playground/public/flags/au.svg +32 -0
  417. package/projects/playground/public/flags/aw.svg +11 -0
  418. package/projects/playground/public/flags/ax.svg +11 -0
  419. package/projects/playground/public/flags/az.svg +11 -0
  420. package/projects/playground/public/flags/ba.svg +18 -0
  421. package/projects/playground/public/flags/bb.svg +11 -0
  422. package/projects/playground/public/flags/bd.svg +4 -0
  423. package/projects/playground/public/flags/be.svg +5 -0
  424. package/projects/playground/public/flags/bf.svg +14 -0
  425. package/projects/playground/public/flags/bg.svg +5 -0
  426. package/projects/playground/public/flags/bh.svg +4 -0
  427. package/projects/playground/public/flags/bi.svg +26 -0
  428. package/projects/playground/public/flags/bj.svg +5 -0
  429. package/projects/playground/public/flags/bl.svg +5 -0
  430. package/projects/playground/public/flags/bm.svg +374 -0
  431. package/projects/playground/public/flags/bn.svg +70 -0
  432. package/projects/playground/public/flags/bo.svg +3625 -0
  433. package/projects/playground/public/flags/bq.svg +5 -0
  434. package/projects/playground/public/flags/br.svg +92 -0
  435. package/projects/playground/public/flags/bs.svg +5 -0
  436. package/projects/playground/public/flags/bt.svg +487 -0
  437. package/projects/playground/public/flags/bv.svg +11 -0
  438. package/projects/playground/public/flags/bw.svg +5 -0
  439. package/projects/playground/public/flags/by.svg +15 -0
  440. package/projects/playground/public/flags/bz.svg +629 -0
  441. package/projects/playground/public/flags/ca.svg +7 -0
  442. package/projects/playground/public/flags/cc.svg +33 -0
  443. package/projects/playground/public/flags/cd.svg +5 -0
  444. package/projects/playground/public/flags/cf.svg +7 -0
  445. package/projects/playground/public/flags/cg.svg +5 -0
  446. package/projects/playground/public/flags/ch.svg +4 -0
  447. package/projects/playground/public/flags/ci.svg +5 -0
  448. package/projects/playground/public/flags/ck.svg +29 -0
  449. package/projects/playground/public/flags/cl.svg +14 -0
  450. package/projects/playground/public/flags/cm.svg +15 -0
  451. package/projects/playground/public/flags/cn.svg +11 -0
  452. package/projects/playground/public/flags/co.svg +5 -0
  453. package/projects/playground/public/flags/cr.svg +1332 -0
  454. package/projects/playground/public/flags/cu.svg +6 -0
  455. package/projects/playground/public/flags/cv.svg +24 -0
  456. package/projects/playground/public/flags/cw.svg +16 -0
  457. package/projects/playground/public/flags/cx.svg +24 -0
  458. package/projects/playground/public/flags/cy.svg +13 -0
  459. package/projects/playground/public/flags/cz.svg +5 -0
  460. package/projects/playground/public/flags/de.svg +5 -0
  461. package/projects/playground/public/flags/dj.svg +6 -0
  462. package/projects/playground/public/flags/dk.svg +5 -0
  463. package/projects/playground/public/flags/dm.svg +198 -0
  464. package/projects/playground/public/flags/do.svg +238 -0
  465. package/projects/playground/public/flags/dz.svg +5 -0
  466. package/projects/playground/public/flags/ec.svg +1292 -0
  467. package/projects/playground/public/flags/ee.svg +5 -0
  468. package/projects/playground/public/flags/eg.svg +125 -0
  469. package/projects/playground/public/flags/eh.svg +12 -0
  470. package/projects/playground/public/flags/er.svg +9 -0
  471. package/projects/playground/public/flags/es.svg +445 -0
  472. package/projects/playground/public/flags/et.svg +16 -0
  473. package/projects/playground/public/flags/eu.svg +28 -0
  474. package/projects/playground/public/flags/fi.svg +5 -0
  475. package/projects/playground/public/flags/fj.svg +203 -0
  476. package/projects/playground/public/flags/fk.svg +922 -0
  477. package/projects/playground/public/flags/flags.png +0 -0
  478. package/projects/playground/public/flags/flags@2x.png +0 -0
  479. package/projects/playground/public/flags/fm.svg +16 -0
  480. package/projects/playground/public/flags/fo.svg +11 -0
  481. package/projects/playground/public/flags/fonts.css +271 -0
  482. package/projects/playground/public/flags/fr.svg +5 -0
  483. package/projects/playground/public/flags/ga.svg +5 -0
  484. package/projects/playground/public/flags/gb-eng.svg +7 -0
  485. package/projects/playground/public/flags/gb-nir.svg +15 -0
  486. package/projects/playground/public/flags/gb-sct.svg +11 -0
  487. package/projects/playground/public/flags/gb-wls.svg +16 -0
  488. package/projects/playground/public/flags/gb.svg +15 -0
  489. package/projects/playground/public/flags/gd.svg +11 -0
  490. package/projects/playground/public/flags/ge.svg +17 -0
  491. package/projects/playground/public/flags/gf.svg +5 -0
  492. package/projects/playground/public/flags/gg.svg +8 -0
  493. package/projects/playground/public/flags/gh.svg +6 -0
  494. package/projects/playground/public/flags/gi.svg +69 -0
  495. package/projects/playground/public/flags/gl.svg +4 -0
  496. package/projects/playground/public/flags/gm.svg +7 -0
  497. package/projects/playground/public/flags/gn.svg +5 -0
  498. package/projects/playground/public/flags/gp.svg +5 -0
  499. package/projects/playground/public/flags/gq.svg +88 -0
  500. package/projects/playground/public/flags/gr.svg +4 -0
  501. package/projects/playground/public/flags/gs.svg +693 -0
  502. package/projects/playground/public/flags/gt.svg +317 -0
  503. package/projects/playground/public/flags/gu.svg +58 -0
  504. package/projects/playground/public/flags/gw.svg +13 -0
  505. package/projects/playground/public/flags/gy.svg +7 -0
  506. package/projects/playground/public/flags/hk.svg +17 -0
  507. package/projects/playground/public/flags/hm.svg +32 -0
  508. package/projects/playground/public/flags/hn.svg +10 -0
  509. package/projects/playground/public/flags/hr.svg +282 -0
  510. package/projects/playground/public/flags/ht.svg +1470 -0
  511. package/projects/playground/public/flags/hu.svg +5 -0
  512. package/projects/playground/public/flags/id.svg +4 -0
  513. package/projects/playground/public/flags/ie.svg +5 -0
  514. package/projects/playground/public/flags/il.svg +5 -0
  515. package/projects/playground/public/flags/im.svg +33 -0
  516. package/projects/playground/public/flags/in.svg +25 -0
  517. package/projects/playground/public/flags/io.svg +895 -0
  518. package/projects/playground/public/flags/iq.svg +12 -0
  519. package/projects/playground/public/flags/ir.svg +31 -0
  520. package/projects/playground/public/flags/is.svg +5 -0
  521. package/projects/playground/public/flags/it.svg +5 -0
  522. package/projects/playground/public/flags/je.svg +40 -0
  523. package/projects/playground/public/flags/jm.svg +9 -0
  524. package/projects/playground/public/flags/jo.svg +10 -0
  525. package/projects/playground/public/flags/jp.svg +4 -0
  526. package/projects/playground/public/flags/ke.svg +28 -0
  527. package/projects/playground/public/flags/kg.svg +7 -0
  528. package/projects/playground/public/flags/kh.svg +133 -0
  529. package/projects/playground/public/flags/ki.svg +54 -0
  530. package/projects/playground/public/flags/km.svg +13 -0
  531. package/projects/playground/public/flags/kn.svg +24 -0
  532. package/projects/playground/public/flags/kp.svg +16 -0
  533. package/projects/playground/public/flags/kr.svg +16 -0
  534. package/projects/playground/public/flags/kw.svg +6 -0
  535. package/projects/playground/public/flags/ky.svg +153 -0
  536. package/projects/playground/public/flags/kz.svg +49 -0
  537. package/projects/playground/public/flags/la.svg +5 -0
  538. package/projects/playground/public/flags/lb.svg +8 -0
  539. package/projects/playground/public/flags/lc.svg +6 -0
  540. package/projects/playground/public/flags/li.svg +79 -0
  541. package/projects/playground/public/flags/lk.svg +50 -0
  542. package/projects/playground/public/flags/lr.svg +15 -0
  543. package/projects/playground/public/flags/ls.svg +32 -0
  544. package/projects/playground/public/flags/lt.svg +5 -0
  545. package/projects/playground/public/flags/lu.svg +5 -0
  546. package/projects/playground/public/flags/lv.svg +4 -0
  547. package/projects/playground/public/flags/ly.svg +8 -0
  548. package/projects/playground/public/flags/ma.svg +4 -0
  549. package/projects/playground/public/flags/mc.svg +4 -0
  550. package/projects/playground/public/flags/md.svg +102 -0
  551. package/projects/playground/public/flags/me.svg +240 -0
  552. package/projects/playground/public/flags/mf.svg +5 -0
  553. package/projects/playground/public/flags/mg.svg +5 -0
  554. package/projects/playground/public/flags/mh.svg +18 -0
  555. package/projects/playground/public/flags/mk.svg +6 -0
  556. package/projects/playground/public/flags/ml.svg +5 -0
  557. package/projects/playground/public/flags/mm.svg +12 -0
  558. package/projects/playground/public/flags/mn.svg +12 -0
  559. package/projects/playground/public/flags/mo.svg +13 -0
  560. package/projects/playground/public/flags/mp.svg +2919 -0
  561. package/projects/playground/public/flags/mq.svg +5 -0
  562. package/projects/playground/public/flags/mr.svg +5 -0
  563. package/projects/playground/public/flags/ms.svg +59 -0
  564. package/projects/playground/public/flags/mt.svg +52 -0
  565. package/projects/playground/public/flags/mu.svg +6 -0
  566. package/projects/playground/public/flags/mv.svg +8 -0
  567. package/projects/playground/public/flags/mw.svg +24 -0
  568. package/projects/playground/public/flags/mx.svg +1129 -0
  569. package/projects/playground/public/flags/my.svg +12 -0
  570. package/projects/playground/public/flags/mz.svg +50 -0
  571. package/projects/playground/public/flags/na.svg +17 -0
  572. package/projects/playground/public/flags/nc.svg +5 -0
  573. package/projects/playground/public/flags/ne.svg +6 -0
  574. package/projects/playground/public/flags/nf.svg +8 -0
  575. package/projects/playground/public/flags/ng.svg +4 -0
  576. package/projects/playground/public/flags/ni.svg +281 -0
  577. package/projects/playground/public/flags/nl.svg +5 -0
  578. package/projects/playground/public/flags/no.svg +11 -0
  579. package/projects/playground/public/flags/np.svg +33 -0
  580. package/projects/playground/public/flags/nr.svg +8 -0
  581. package/projects/playground/public/flags/nu.svg +23 -0
  582. package/projects/playground/public/flags/nz.svg +37 -0
  583. package/projects/playground/public/flags/om.svg +307 -0
  584. package/projects/playground/public/flags/pa.svg +15 -0
  585. package/projects/playground/public/flags/pe.svg +767 -0
  586. package/projects/playground/public/flags/pf.svg +38 -0
  587. package/projects/playground/public/flags/pg.svg +16 -0
  588. package/projects/playground/public/flags/ph.svg +28 -0
  589. package/projects/playground/public/flags/pk.svg +7 -0
  590. package/projects/playground/public/flags/pl.svg +4 -0
  591. package/projects/playground/public/flags/pm.svg +5 -0
  592. package/projects/playground/public/flags/pn.svg +131 -0
  593. package/projects/playground/public/flags/pr.svg +6 -0
  594. package/projects/playground/public/flags/ps.svg +6 -0
  595. package/projects/playground/public/flags/pt.svg +79 -0
  596. package/projects/playground/public/flags/pw.svg +4 -0
  597. package/projects/playground/public/flags/py.svg +192 -0
  598. package/projects/playground/public/flags/qa.svg +7 -0
  599. package/projects/playground/public/flags/re.svg +5 -0
  600. package/projects/playground/public/flags/ro.svg +5 -0
  601. package/projects/playground/public/flags/rs.svg +1143 -0
  602. package/projects/playground/public/flags/ru.svg +5 -0
  603. package/projects/playground/public/flags/rw.svg +17 -0
  604. package/projects/playground/public/flags/sa.svg +23 -0
  605. package/projects/playground/public/flags/sb.svg +30 -0
  606. package/projects/playground/public/flags/sc.svg +7 -0
  607. package/projects/playground/public/flags/sd.svg +6 -0
  608. package/projects/playground/public/flags/se.svg +5 -0
  609. package/projects/playground/public/flags/sg.svg +15 -0
  610. package/projects/playground/public/flags/sh.svg +15 -0
  611. package/projects/playground/public/flags/si.svg +30 -0
  612. package/projects/playground/public/flags/sj.svg +11 -0
  613. package/projects/playground/public/flags/sk.svg +21 -0
  614. package/projects/playground/public/flags/sl.svg +5 -0
  615. package/projects/playground/public/flags/sm.svg +847 -0
  616. package/projects/playground/public/flags/sn.svg +15 -0
  617. package/projects/playground/public/flags/so.svg +13 -0
  618. package/projects/playground/public/flags/sr.svg +6 -0
  619. package/projects/playground/public/flags/ss.svg +8 -0
  620. package/projects/playground/public/flags/st.svg +16 -0
  621. package/projects/playground/public/flags/stc-icons.css +1 -0
  622. package/projects/playground/public/flags/sv.svg +3368 -0
  623. package/projects/playground/public/flags/sx.svg +172 -0
  624. package/projects/playground/public/flags/sy.svg +6 -0
  625. package/projects/playground/public/flags/sz.svg +54 -0
  626. package/projects/playground/public/flags/tc.svg +88 -0
  627. package/projects/playground/public/flags/td.svg +5 -0
  628. package/projects/playground/public/flags/tf.svg +18 -0
  629. package/projects/playground/public/flags/tg.svg +15 -0
  630. package/projects/playground/public/flags/th.svg +5 -0
  631. package/projects/playground/public/flags/tj.svg +32 -0
  632. package/projects/playground/public/flags/tk.svg +25 -0
  633. package/projects/playground/public/flags/tl.svg +6 -0
  634. package/projects/playground/public/flags/tm.svg +349 -0
  635. package/projects/playground/public/flags/tn.svg +9 -0
  636. package/projects/playground/public/flags/to.svg +8 -0
  637. package/projects/playground/public/flags/tr.svg +6 -0
  638. package/projects/playground/public/flags/tt.svg +5 -0
  639. package/projects/playground/public/flags/tv.svg +18 -0
  640. package/projects/playground/public/flags/tw.svg +12 -0
  641. package/projects/playground/public/flags/tz.svg +13 -0
  642. package/projects/playground/public/flags/ua.svg +4 -0
  643. package/projects/playground/public/flags/ug.svg +46 -0
  644. package/projects/playground/public/flags/um.svg +25 -0
  645. package/projects/playground/public/flags/us.svg +25 -0
  646. package/projects/playground/public/flags/uy.svg +138 -0
  647. package/projects/playground/public/flags/uz.svg +30 -0
  648. package/projects/playground/public/flags/va.svg +277 -0
  649. package/projects/playground/public/flags/vc.svg +9 -0
  650. package/projects/playground/public/flags/ve.svg +28 -0
  651. package/projects/playground/public/flags/vg.svg +96 -0
  652. package/projects/playground/public/flags/vi.svg +311 -0
  653. package/projects/playground/public/flags/vn.svg +12 -0
  654. package/projects/playground/public/flags/vu.svg +20 -0
  655. package/projects/playground/public/flags/wf.svg +7 -0
  656. package/projects/playground/public/flags/ws.svg +14 -0
  657. package/projects/playground/public/flags/xk.svg +11 -0
  658. package/projects/playground/public/flags/ye.svg +5 -0
  659. package/projects/playground/public/flags/yt.svg +5 -0
  660. package/projects/playground/public/flags/za.svg +17 -0
  661. package/projects/playground/public/flags/zm.svg +20 -0
  662. package/projects/playground/public/flags/zw.svg +130 -0
  663. package/projects/playground/src/app/app.component.ts +119 -0
  664. package/projects/playground/src/app/app.config.ts +51 -0
  665. package/projects/playground/src/app/app.routes.ts +41 -0
  666. package/projects/playground/src/app/login.service.ts +21 -0
  667. package/projects/playground/src/components/attachment-wrapper.component.ts +45 -0
  668. package/projects/playground/src/components/attachment.component.ts +35 -0
  669. package/projects/playground/src/components/checkbox-wrapper.component.ts +43 -0
  670. package/projects/playground/src/components/chips-wrapper.component.ts +37 -0
  671. package/projects/playground/src/components/ctrl-array-wrapper.component.ts +76 -0
  672. package/projects/playground/src/components/date-picker-container.component.ts +22 -0
  673. package/projects/playground/src/components/date-picker-wrapper.component.ts +41 -0
  674. package/projects/playground/src/components/date-range-picker-container.component.ts +24 -0
  675. package/projects/playground/src/components/date-range-picker-wrapper.component.ts +41 -0
  676. package/projects/playground/src/components/datetime-container.component.ts +25 -0
  677. package/projects/playground/src/components/datetime-picker-wrapper.component.ts +62 -0
  678. package/projects/playground/src/components/input-container.component.ts +35 -0
  679. package/projects/playground/src/components/input-wrapper.component.ts +41 -0
  680. package/projects/playground/src/components/mobile-container.component.ts +23 -0
  681. package/projects/playground/src/components/mobile-wrapper.component.ts +36 -0
  682. package/projects/playground/src/components/note-wrapper.component.ts +37 -0
  683. package/projects/playground/src/components/outlet-container.component.ts +144 -0
  684. package/projects/playground/src/components/plate-container.component.ts +22 -0
  685. package/projects/playground/src/components/plate-wrapper.component.ts +39 -0
  686. package/projects/playground/src/components/radio-wrapper.component.ts +45 -0
  687. package/projects/playground/src/components/select-container.component.ts +31 -0
  688. package/projects/playground/src/components/select-wrapper.component.ts +48 -0
  689. package/projects/playground/src/components/ships-container.component.ts +23 -0
  690. package/projects/playground/src/components/slide-toggle-wrapper.component.ts +40 -0
  691. package/projects/playground/src/components/textarea-container.component.ts +23 -0
  692. package/projects/playground/src/components/textarea-wrapper.component.ts +54 -0
  693. package/projects/playground/src/components/time-picker-container.component.ts +23 -0
  694. package/projects/playground/src/components/time-picker-wrapper.component.ts +43 -0
  695. package/projects/playground/src/components/toggle-button-wrapper.component.ts +49 -0
  696. package/projects/playground/src/components/user-picker-wrapper.component.ts +37 -0
  697. package/projects/playground/src/eServices/create-request.component.ts +28 -0
  698. package/projects/playground/src/eServices/e-service.component.ts +112 -0
  699. package/projects/playground/src/eServices/view-request.component.ts +13 -0
  700. package/projects/playground/src/index.html +13 -0
  701. package/projects/playground/src/interceptors/header.interceptor.ts +71 -0
  702. package/projects/playground/src/main.ts +8 -0
  703. package/projects/playground/src/services/ss.service.ts +62 -0
  704. package/projects/playground/src/styles.scss +33 -0
  705. package/projects/playground/src/validators/customValidator.validator.ts +10 -0
  706. package/projects/playground/tsconfig.app.json +15 -0
  707. package/tsconfig.json +31 -0
  708. package/components/autocomplete/autocomplete.component.d.ts +0 -6
  709. package/components/base-ctrl.d.ts +0 -31
  710. package/components/checkbox/checkbox.component.d.ts +0 -16
  711. package/components/chips/chips.component.d.ts +0 -14
  712. package/components/ctrl-array/ctrl-array.component.d.ts +0 -6
  713. package/components/date-picker/date-adapter.d.ts +0 -37
  714. package/components/date-picker/date-picker.component.d.ts +0 -15
  715. package/components/date-range-picker/date-range-picker.component.d.ts +0 -19
  716. package/components/datetime-picker/datetime-picker.component.d.ts +0 -14
  717. package/components/datetime-range-picker/datetime-range-picker.component.d.ts +0 -6
  718. package/components/file-picker/file-picker.component.d.ts +0 -17
  719. package/components/hints/hints.component.d.ts +0 -9
  720. package/components/input/input.component.d.ts +0 -19
  721. package/components/mobile/COUNTRIES.d.ts +0 -2
  722. package/components/mobile/mobile.component.d.ts +0 -26
  723. package/components/mobile/phone.service.d.ts +0 -17
  724. package/components/note/note.component.d.ts +0 -6
  725. package/components/plate/PLATE_LETTERS.d.ts +0 -8
  726. package/components/plate/plate.component.d.ts +0 -15
  727. package/components/radio/radio.component.d.ts +0 -11
  728. package/components/select/select.component.d.ts +0 -22
  729. package/components/slide-toggle/slide-toggle.component.d.ts +0 -7
  730. package/components/textarea/textarea.component.d.ts +0 -6
  731. package/components/time-picker/time-picker.component.d.ts +0 -19
  732. package/components/toggle-button/toggle-button.component.d.ts +0 -16
  733. package/directives/droppable.directive.d.ts +0 -10
  734. package/esm2022/components/autocomplete/autocomplete.component.mjs +0 -17
  735. package/esm2022/components/base-ctrl.mjs +0 -93
  736. package/esm2022/components/checkbox/checkbox.component.mjs +0 -73
  737. package/esm2022/components/chips/chips.component.mjs +0 -77
  738. package/esm2022/components/ctrl-array/ctrl-array.component.mjs +0 -17
  739. package/esm2022/components/date-picker/date-adapter.mjs +0 -183
  740. package/esm2022/components/date-picker/date-picker.component.mjs +0 -55
  741. package/esm2022/components/date-range-picker/date-range-picker.component.mjs +0 -101
  742. package/esm2022/components/datetime-picker/datetime-picker.component.mjs +0 -79
  743. package/esm2022/components/datetime-range-picker/datetime-range-picker.component.mjs +0 -17
  744. package/esm2022/components/file-picker/file-picker.component.mjs +0 -121
  745. package/esm2022/components/hints/hints.component.mjs +0 -66
  746. package/esm2022/components/input/input.component.mjs +0 -57
  747. package/esm2022/components/mobile/COUNTRIES.mjs +0 -2041
  748. package/esm2022/components/mobile/mobile.component.mjs +0 -141
  749. package/esm2022/components/mobile/phone.service.mjs +0 -99
  750. package/esm2022/components/note/note.component.mjs +0 -17
  751. package/esm2022/components/plate/PLATE_LETTERS.mjs +0 -20
  752. package/esm2022/components/plate/plate.component.mjs +0 -101
  753. package/esm2022/components/radio/radio.component.mjs +0 -40
  754. package/esm2022/components/select/select.component.mjs +0 -154
  755. package/esm2022/components/slide-toggle/slide-toggle.component.mjs +0 -23
  756. package/esm2022/components/textarea/textarea.component.mjs +0 -29
  757. package/esm2022/components/time-picker/time-picker.component.mjs +0 -169
  758. package/esm2022/components/toggle-button/toggle-button.component.mjs +0 -87
  759. package/esm2022/directives/droppable.directive.mjs +0 -39
  760. package/esm2022/interfaces/country.interface.mjs +0 -2
  761. package/esm2022/interfaces/date-range-emission-object.mjs +0 -2
  762. package/esm2022/interfaces/hint-alignment.type.mjs +0 -2
  763. package/esm2022/interfaces/hint.interface.mjs +0 -2
  764. package/esm2022/interfaces/iso2.interface.mjs +0 -2
  765. package/esm2022/interfaces/mobile.interface.mjs +0 -2
  766. package/esm2022/interfaces/option.interface.mjs +0 -2
  767. package/esm2022/interfaces/time.interface.mjs +0 -2
  768. package/esm2022/iss-ctrl.mjs +0 -5
  769. package/esm2022/pipes/arabic-number.pipe.mjs +0 -23
  770. package/esm2022/pipes/plate-letter.pipe.mjs +0 -22
  771. package/esm2022/pipes/select-status.pipe.mjs +0 -18
  772. package/esm2022/public-api.mjs +0 -20
  773. package/fesm2022/iss-ctrl.mjs +0 -3822
  774. package/fesm2022/iss-ctrl.mjs.map +0 -1
  775. package/index.d.ts +0 -5
  776. package/interfaces/country.interface.d.ts +0 -10
  777. package/interfaces/date-range-emission-object.d.ts +0 -5
  778. package/interfaces/hint-alignment.type.d.ts +0 -1
  779. package/interfaces/hint.interface.d.ts +0 -7
  780. package/interfaces/iso2.interface.d.ts +0 -1
  781. package/interfaces/mobile.interface.d.ts +0 -11
  782. package/interfaces/option.interface.d.ts +0 -5
  783. package/interfaces/time.interface.d.ts +0 -5
  784. package/pipes/arabic-number.pipe.d.ts +0 -7
  785. package/pipes/plate-letter.pipe.d.ts +0 -7
  786. package/pipes/select-status.pipe.d.ts +0 -8
  787. package/public-api.d.ts +0 -19
  788. package/src/components/mobile/flags/ad.svg +0 -154
  789. package/src/components/mobile/flags/ae.svg +0 -1
  790. package/src/components/mobile/flags/af.svg +0 -1
  791. package/src/components/mobile/flags/ag.svg +0 -1
  792. package/src/components/mobile/flags/ai.svg +0 -1
  793. package/src/components/mobile/flags/al.svg +0 -1
  794. package/src/components/mobile/flags/am.svg +0 -1
  795. package/src/components/mobile/flags/ao.svg +0 -1
  796. package/src/components/mobile/flags/aq.svg +0 -1
  797. package/src/components/mobile/flags/ar.svg +0 -1
  798. package/src/components/mobile/flags/as.svg +0 -1
  799. package/src/components/mobile/flags/at.svg +0 -1
  800. package/src/components/mobile/flags/au.svg +0 -1
  801. package/src/components/mobile/flags/aw.svg +0 -1
  802. package/src/components/mobile/flags/ax.svg +0 -1
  803. package/src/components/mobile/flags/az.svg +0 -1
  804. package/src/components/mobile/flags/ba.svg +0 -1
  805. package/src/components/mobile/flags/bb.svg +0 -7
  806. package/src/components/mobile/flags/bd.svg +0 -1
  807. package/src/components/mobile/flags/be.svg +0 -1
  808. package/src/components/mobile/flags/bf.svg +0 -1
  809. package/src/components/mobile/flags/bg.svg +0 -1
  810. package/src/components/mobile/flags/bh.svg +0 -1
  811. package/src/components/mobile/flags/bi.svg +0 -26
  812. package/src/components/mobile/flags/bj.svg +0 -1
  813. package/src/components/mobile/flags/bl.svg +0 -1
  814. package/src/components/mobile/flags/bm.svg +0 -1
  815. package/src/components/mobile/flags/bn.svg +0 -58
  816. package/src/components/mobile/flags/bo.svg +0 -1
  817. package/src/components/mobile/flags/bq.svg +0 -1
  818. package/src/components/mobile/flags/br.svg +0 -1
  819. package/src/components/mobile/flags/bs.svg +0 -1
  820. package/src/components/mobile/flags/bt.svg +0 -466
  821. package/src/components/mobile/flags/bv.svg +0 -1
  822. package/src/components/mobile/flags/bw.svg +0 -1
  823. package/src/components/mobile/flags/by.svg +0 -1
  824. package/src/components/mobile/flags/bz.svg +0 -1
  825. package/src/components/mobile/flags/ca.svg +0 -1
  826. package/src/components/mobile/flags/cc.svg +0 -19
  827. package/src/components/mobile/flags/cd.svg +0 -1
  828. package/src/components/mobile/flags/cf.svg +0 -1
  829. package/src/components/mobile/flags/cg.svg +0 -5
  830. package/src/components/mobile/flags/ch.svg +0 -1
  831. package/src/components/mobile/flags/ci.svg +0 -1
  832. package/src/components/mobile/flags/ck.svg +0 -1
  833. package/src/components/mobile/flags/cl.svg +0 -14
  834. package/src/components/mobile/flags/cm.svg +0 -15
  835. package/src/components/mobile/flags/cn.svg +0 -1
  836. package/src/components/mobile/flags/co.svg +0 -5
  837. package/src/components/mobile/flags/cr.svg +0 -1
  838. package/src/components/mobile/flags/cu.svg +0 -6
  839. package/src/components/mobile/flags/cv.svg +0 -24
  840. package/src/components/mobile/flags/cw.svg +0 -16
  841. package/src/components/mobile/flags/cx.svg +0 -15
  842. package/src/components/mobile/flags/cy.svg +0 -1
  843. package/src/components/mobile/flags/cz.svg +0 -5
  844. package/src/components/mobile/flags/de.svg +0 -1
  845. package/src/components/mobile/flags/dj.svg +0 -1
  846. package/src/components/mobile/flags/dk.svg +0 -5
  847. package/src/components/mobile/flags/dm.svg +0 -1
  848. package/src/components/mobile/flags/do.svg +0 -1
  849. package/src/components/mobile/flags/dz.svg +0 -5
  850. package/src/components/mobile/flags/ec.svg +0 -519
  851. package/src/components/mobile/flags/ee.svg +0 -1
  852. package/src/components/mobile/flags/eg.svg +0 -78
  853. package/src/components/mobile/flags/eh.svg +0 -9
  854. package/src/components/mobile/flags/er.svg +0 -6
  855. package/src/components/mobile/flags/es.svg +0 -1
  856. package/src/components/mobile/flags/et.svg +0 -1
  857. package/src/components/mobile/flags/eu.svg +0 -1
  858. package/src/components/mobile/flags/fi.svg +0 -5
  859. package/src/components/mobile/flags/fj.svg +0 -1
  860. package/src/components/mobile/flags/fk.svg +0 -1
  861. package/src/components/mobile/flags/fm.svg +0 -16
  862. package/src/components/mobile/flags/fo.svg +0 -11
  863. package/src/components/mobile/flags/fr.svg +0 -1
  864. package/src/components/mobile/flags/ga.svg +0 -5
  865. package/src/components/mobile/flags/gb-eng.svg +0 -7
  866. package/src/components/mobile/flags/gb-nir.svg +0 -1
  867. package/src/components/mobile/flags/gb-sct.svg +0 -1
  868. package/src/components/mobile/flags/gb-wls.svg +0 -9
  869. package/src/components/mobile/flags/gb.svg +0 -1
  870. package/src/components/mobile/flags/gd.svg +0 -1
  871. package/src/components/mobile/flags/ge.svg +0 -1
  872. package/src/components/mobile/flags/gf.svg +0 -1
  873. package/src/components/mobile/flags/gg.svg +0 -8
  874. package/src/components/mobile/flags/gh.svg +0 -6
  875. package/src/components/mobile/flags/gi.svg +0 -54
  876. package/src/components/mobile/flags/gl.svg +0 -4
  877. package/src/components/mobile/flags/gm.svg +0 -7
  878. package/src/components/mobile/flags/gn.svg +0 -5
  879. package/src/components/mobile/flags/gp.svg +0 -1
  880. package/src/components/mobile/flags/gq.svg +0 -75
  881. package/src/components/mobile/flags/gr.svg +0 -1
  882. package/src/components/mobile/flags/gs.svg +0 -1
  883. package/src/components/mobile/flags/gt.svg +0 -214
  884. package/src/components/mobile/flags/gu.svg +0 -1
  885. package/src/components/mobile/flags/gw.svg +0 -13
  886. package/src/components/mobile/flags/gy.svg +0 -7
  887. package/src/components/mobile/flags/hk.svg +0 -1
  888. package/src/components/mobile/flags/hm.svg +0 -1
  889. package/src/components/mobile/flags/hn.svg +0 -1
  890. package/src/components/mobile/flags/hr.svg +0 -1
  891. package/src/components/mobile/flags/ht.svg +0 -1
  892. package/src/components/mobile/flags/hu.svg +0 -1
  893. package/src/components/mobile/flags/id.svg +0 -1
  894. package/src/components/mobile/flags/ie.svg +0 -1
  895. package/src/components/mobile/flags/il.svg +0 -1
  896. package/src/components/mobile/flags/im.svg +0 -1
  897. package/src/components/mobile/flags/in.svg +0 -1
  898. package/src/components/mobile/flags/io.svg +0 -1
  899. package/src/components/mobile/flags/iq.svg +0 -1
  900. package/src/components/mobile/flags/ir.svg +0 -31
  901. package/src/components/mobile/flags/is.svg +0 -1
  902. package/src/components/mobile/flags/it.svg +0 -1
  903. package/src/components/mobile/flags/je.svg +0 -1
  904. package/src/components/mobile/flags/jm.svg +0 -1
  905. package/src/components/mobile/flags/jo.svg +0 -7
  906. package/src/components/mobile/flags/jp.svg +0 -4
  907. package/src/components/mobile/flags/ke.svg +0 -23
  908. package/src/components/mobile/flags/kg.svg +0 -1
  909. package/src/components/mobile/flags/kh.svg +0 -116
  910. package/src/components/mobile/flags/ki.svg +0 -1
  911. package/src/components/mobile/flags/km.svg +0 -13
  912. package/src/components/mobile/flags/kn.svg +0 -1
  913. package/src/components/mobile/flags/kp.svg +0 -16
  914. package/src/components/mobile/flags/kr.svg +0 -1
  915. package/src/components/mobile/flags/kw.svg +0 -6
  916. package/src/components/mobile/flags/ky.svg +0 -1
  917. package/src/components/mobile/flags/kz.svg +0 -37
  918. package/src/components/mobile/flags/la.svg +0 -1
  919. package/src/components/mobile/flags/lb.svg +0 -5
  920. package/src/components/mobile/flags/lc.svg +0 -6
  921. package/src/components/mobile/flags/li.svg +0 -56
  922. package/src/components/mobile/flags/lk.svg +0 -1
  923. package/src/components/mobile/flags/lr.svg +0 -15
  924. package/src/components/mobile/flags/ls.svg +0 -23
  925. package/src/components/mobile/flags/lt.svg +0 -1
  926. package/src/components/mobile/flags/lu.svg +0 -1
  927. package/src/components/mobile/flags/lv.svg +0 -1
  928. package/src/components/mobile/flags/ly.svg +0 -8
  929. package/src/components/mobile/flags/ma.svg +0 -1
  930. package/src/components/mobile/flags/mc.svg +0 -1
  931. package/src/components/mobile/flags/md.svg +0 -1
  932. package/src/components/mobile/flags/me.svg +0 -93
  933. package/src/components/mobile/flags/mf.svg +0 -1
  934. package/src/components/mobile/flags/mg.svg +0 -1
  935. package/src/components/mobile/flags/mh.svg +0 -1
  936. package/src/components/mobile/flags/mk.svg +0 -1
  937. package/src/components/mobile/flags/ml.svg +0 -5
  938. package/src/components/mobile/flags/mm.svg +0 -12
  939. package/src/components/mobile/flags/mn.svg +0 -1
  940. package/src/components/mobile/flags/mo.svg +0 -10
  941. package/src/components/mobile/flags/mp.svg +0 -1
  942. package/src/components/mobile/flags/mq.svg +0 -1
  943. package/src/components/mobile/flags/mr.svg +0 -1
  944. package/src/components/mobile/flags/ms.svg +0 -1
  945. package/src/components/mobile/flags/mt.svg +0 -1
  946. package/src/components/mobile/flags/mu.svg +0 -1
  947. package/src/components/mobile/flags/mv.svg +0 -1
  948. package/src/components/mobile/flags/mw.svg +0 -24
  949. package/src/components/mobile/flags/mx.svg +0 -1
  950. package/src/components/mobile/flags/my.svg +0 -1
  951. package/src/components/mobile/flags/mz.svg +0 -13
  952. package/src/components/mobile/flags/na.svg +0 -1
  953. package/src/components/mobile/flags/nc.svg +0 -1
  954. package/src/components/mobile/flags/ne.svg +0 -6
  955. package/src/components/mobile/flags/nf.svg +0 -5
  956. package/src/components/mobile/flags/ng.svg +0 -4
  957. package/src/components/mobile/flags/ni.svg +0 -161
  958. package/src/components/mobile/flags/nl.svg +0 -1
  959. package/src/components/mobile/flags/no.svg +0 -1
  960. package/src/components/mobile/flags/np.svg +0 -33
  961. package/src/components/mobile/flags/nr.svg +0 -1
  962. package/src/components/mobile/flags/nu.svg +0 -1
  963. package/src/components/mobile/flags/nz.svg +0 -1
  964. package/src/components/mobile/flags/om.svg +0 -1
  965. package/src/components/mobile/flags/pa.svg +0 -1
  966. package/src/components/mobile/flags/pe.svg +0 -320
  967. package/src/components/mobile/flags/pf.svg +0 -1
  968. package/src/components/mobile/flags/pg.svg +0 -13
  969. package/src/components/mobile/flags/ph.svg +0 -1
  970. package/src/components/mobile/flags/pk.svg +0 -1
  971. package/src/components/mobile/flags/pl.svg +0 -1
  972. package/src/components/mobile/flags/pm.svg +0 -1
  973. package/src/components/mobile/flags/pn.svg +0 -1
  974. package/src/components/mobile/flags/pr.svg +0 -1
  975. package/src/components/mobile/flags/ps.svg +0 -1
  976. package/src/components/mobile/flags/pt.svg +0 -1
  977. package/src/components/mobile/flags/pw.svg +0 -1
  978. package/src/components/mobile/flags/py.svg +0 -1
  979. package/src/components/mobile/flags/qa.svg +0 -1
  980. package/src/components/mobile/flags/re.svg +0 -1
  981. package/src/components/mobile/flags/ro.svg +0 -1
  982. package/src/components/mobile/flags/rs.svg +0 -1
  983. package/src/components/mobile/flags/ru.svg +0 -1
  984. package/src/components/mobile/flags/rw.svg +0 -13
  985. package/src/components/mobile/flags/sa.svg +0 -1
  986. package/src/components/mobile/flags/sb.svg +0 -1
  987. package/src/components/mobile/flags/sc.svg +0 -7
  988. package/src/components/mobile/flags/sd.svg +0 -6
  989. package/src/components/mobile/flags/se.svg +0 -5
  990. package/src/components/mobile/flags/sg.svg +0 -11
  991. package/src/components/mobile/flags/sh.svg +0 -1
  992. package/src/components/mobile/flags/si.svg +0 -1
  993. package/src/components/mobile/flags/sj.svg +0 -1
  994. package/src/components/mobile/flags/sk.svg +0 -1
  995. package/src/components/mobile/flags/sl.svg +0 -1
  996. package/src/components/mobile/flags/sm.svg +0 -1
  997. package/src/components/mobile/flags/sn.svg +0 -1
  998. package/src/components/mobile/flags/so.svg +0 -1
  999. package/src/components/mobile/flags/sr.svg +0 -1
  1000. package/src/components/mobile/flags/ss.svg +0 -1
  1001. package/src/components/mobile/flags/st.svg +0 -1
  1002. package/src/components/mobile/flags/sv.svg +0 -1
  1003. package/src/components/mobile/flags/sx.svg +0 -1
  1004. package/src/components/mobile/flags/sy.svg +0 -1
  1005. package/src/components/mobile/flags/sz.svg +0 -1
  1006. package/src/components/mobile/flags/tc.svg +0 -1
  1007. package/src/components/mobile/flags/td.svg +0 -1
  1008. package/src/components/mobile/flags/tf.svg +0 -1
  1009. package/src/components/mobile/flags/tg.svg +0 -1
  1010. package/src/components/mobile/flags/th.svg +0 -1
  1011. package/src/components/mobile/flags/tj.svg +0 -1
  1012. package/src/components/mobile/flags/tk.svg +0 -1
  1013. package/src/components/mobile/flags/tl.svg +0 -1
  1014. package/src/components/mobile/flags/tm.svg +0 -1
  1015. package/src/components/mobile/flags/tn.svg +0 -9
  1016. package/src/components/mobile/flags/to.svg +0 -1
  1017. package/src/components/mobile/flags/tr.svg +0 -1
  1018. package/src/components/mobile/flags/tt.svg +0 -5
  1019. package/src/components/mobile/flags/tv.svg +0 -1
  1020. package/src/components/mobile/flags/tw.svg +0 -1
  1021. package/src/components/mobile/flags/tz.svg +0 -1
  1022. package/src/components/mobile/flags/ua.svg +0 -1
  1023. package/src/components/mobile/flags/ug.svg +0 -1
  1024. package/src/components/mobile/flags/um.svg +0 -1
  1025. package/src/components/mobile/flags/us.svg +0 -1
  1026. package/src/components/mobile/flags/uy.svg +0 -1
  1027. package/src/components/mobile/flags/uz.svg +0 -1
  1028. package/src/components/mobile/flags/va.svg +0 -1
  1029. package/src/components/mobile/flags/vc.svg +0 -1
  1030. package/src/components/mobile/flags/ve.svg +0 -1
  1031. package/src/components/mobile/flags/vg.svg +0 -1
  1032. package/src/components/mobile/flags/vi.svg +0 -1
  1033. package/src/components/mobile/flags/vn.svg +0 -1
  1034. package/src/components/mobile/flags/vu.svg +0 -1
  1035. package/src/components/mobile/flags/wf.svg +0 -1
  1036. package/src/components/mobile/flags/ws.svg +0 -1
  1037. package/src/components/mobile/flags/xk.svg +0 -1
  1038. package/src/components/mobile/flags/ye.svg +0 -1
  1039. package/src/components/mobile/flags/yt.svg +0 -1
  1040. package/src/components/mobile/flags/za.svg +0 -1
  1041. package/src/components/mobile/flags/zm.svg +0 -1
  1042. package/src/components/mobile/flags/zw.svg +0 -1
@@ -1,3822 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, signal, output, Component, CUSTOM_ELEMENTS_SCHEMA, Pipe, effect, Injectable, Optional, Inject, inject, Directive, HostListener, ChangeDetectionStrategy, computed } from '@angular/core';
3
- import * as i1$2 from '@angular/forms';
4
- import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, NG_VALIDATORS, FormGroup, FormsModule, FormArray } from '@angular/forms';
5
- import * as i1 from '@angular/material/checkbox';
6
- import { MatCheckboxModule } from '@angular/material/checkbox';
7
- import * as i1$1 from '@angular/material/form-field';
8
- import { MatFormField, MatFormFieldModule, MatSuffix, MatHint, MatPrefix } from '@angular/material/form-field';
9
- import * as i6 from '@angular/material/chips';
10
- import { MatChipGrid, MatChipRow, MatChipInput, MatChipRemove, MatChipsModule } from '@angular/material/chips';
11
- import * as i2 from '@angular/material/input';
12
- import { MatInput, MatInputModule } from '@angular/material/input';
13
- import { toSignal } from '@angular/core/rxjs-interop';
14
- import * as i3 from '@angular/material/core';
15
- import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
16
- import * as i2$1 from '@angular/material/datepicker';
17
- import { MatDatepickerModule, MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from '@angular/material/datepicker';
18
- import { MatIconModule } from '@angular/material/icon';
19
- import { getYear, getMonth, getDate, getDay, getDaysInMonth, parseISO, parse, format, addYears, addMonths, addDays, formatISO, isDate, isValid, isAfter, isBefore } from 'date-fns';
20
- import { DatePipe, NgClass, NgOptimizedImage, NgTemplateOutlet, NgStyle } from '@angular/common';
21
- import { enGB } from 'date-fns/locale';
22
- import { Subscription } from 'rxjs';
23
- import * as i1$5 from '@angular/material/button-toggle';
24
- import { MatButtonToggleGroup, MatButtonToggle, MatButtonToggleModule } from '@angular/material/button-toggle';
25
- import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
26
- import { MatTooltip } from '@angular/material/tooltip';
27
- import { PhoneNumberUtil, PhoneNumberFormat } from 'google-libphonenumber';
28
- import { MatSelect, MatOption } from '@angular/material/select';
29
- import * as i1$3 from '@angular/material/radio';
30
- import { MatRadioModule } from '@angular/material/radio';
31
- import { CdkVirtualForOf, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll } from '@angular/cdk/scrolling';
32
- import * as i2$2 from '@angular/material/autocomplete';
33
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
34
- import * as i1$4 from '@angular/material/slide-toggle';
35
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
36
-
37
- class BaseCtrl {
38
- constructor() {
39
- /*ctrlContainer: ControlContainer = inject(ControlContainer);*/
40
- this.formControlName = input("");
41
- this.min = input(null);
42
- this.max = input(null);
43
- this.disabled = signal(false);
44
- this.multiple = input(false, {
45
- transform: (v) => this.#transformToBoolean(v),
46
- });
47
- this.placeholder = input("");
48
- this.hints = input([]);
49
- this.className = input(null);
50
- this.onChange = output();
51
- this.touched = signal(false);
52
- this.ctrl = new FormControl(null);
53
- this.onTouch = () => { };
54
- this.onPropagateValue = (_) => { };
55
- }
56
- /*get hostCtrl(): AbstractControl | null | undefined {
57
- return this.ctrlContainer.control?.get(this.formControlName());
58
- }*/
59
- registerOnChange(fn) {
60
- this.onPropagateValue = fn;
61
- }
62
- registerOnTouched(fn) {
63
- this.onTouch = fn;
64
- }
65
- setDisabledState(isDisabled) {
66
- this.disabled.set(isDisabled);
67
- if (isDisabled) {
68
- this.ctrl.disable();
69
- }
70
- else {
71
- this.ctrl.enable();
72
- }
73
- }
74
- writeValue(value) {
75
- this.ctrl.setValue(value);
76
- }
77
- markAsTouched() {
78
- this.touched.set(true);
79
- this.onTouch();
80
- }
81
- validate(control) {
82
- return this.ctrl.errors;
83
- }
84
- emitValue(value) {
85
- let emissionValue = this.ctrl.getRawValue();
86
- if (value !== undefined) {
87
- emissionValue = value;
88
- }
89
- this.onPropagateValue(emissionValue);
90
- this.emitOnChangeEvent(emissionValue);
91
- }
92
- propagateValue(value) {
93
- let emissionValue = this.ctrl.getRawValue();
94
- if (value !== undefined) {
95
- emissionValue = value;
96
- }
97
- this.onPropagateValue(emissionValue);
98
- }
99
- emitOnChangeEvent($event) {
100
- let emissionValue = this.ctrl.getRawValue();
101
- if ($event !== undefined) {
102
- emissionValue = $event;
103
- }
104
- this.onChange.emit(emissionValue);
105
- }
106
- #transformToBoolean(v) {
107
- if (typeof v === "string") {
108
- if (v === "") {
109
- return true;
110
- }
111
- return v === "true";
112
- }
113
- return v;
114
- }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BaseCtrl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: BaseCtrl, isStandalone: true, selector: "ng-component", inputs: { formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, ngImport: i0, template: ``, isInline: true }); }
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BaseCtrl, decorators: [{
119
- type: Component,
120
- args: [{
121
- standalone: true,
122
- template: ``,
123
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
124
- }]
125
- }] });
126
-
127
- class AutocompleteControl extends BaseCtrl {
128
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: AutocompleteControl, isStandalone: true, selector: "iss-ctrl-autocomplete", providers: [
130
- { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteControl, multi: true }
131
- ], usesInheritance: true, ngImport: i0, template: "<p>autocomplete works!</p>\r\n", styles: [""] }); }
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AutocompleteControl, decorators: [{
134
- type: Component,
135
- args: [{ selector: "iss-ctrl-autocomplete", standalone: true, imports: [], providers: [
136
- { provide: NG_VALUE_ACCESSOR, useExisting: AutocompleteControl, multi: true }
137
- ], template: "<p>autocomplete works!</p>\r\n" }]
138
- }] });
139
-
140
- class SelectStatusPipe {
141
- transform(option, ...args) {
142
- const selectedOptions = args[0];
143
- return selectedOptions.has(option.value);
144
- }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectStatusPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
146
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: SelectStatusPipe, isStandalone: true, name: "selectStatus" }); }
147
- }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectStatusPipe, decorators: [{
149
- type: Pipe,
150
- args: [{
151
- name: "selectStatus",
152
- standalone: true
153
- }]
154
- }] });
155
-
156
- class CheckboxControl extends BaseCtrl {
157
- constructor() {
158
- super(...arguments);
159
- this.options = input.required();
160
- this.selectedOptions = signal(new Map());
161
- }
162
- writeValue(value) {
163
- this.#reset();
164
- if (value === null || value === undefined) {
165
- return;
166
- }
167
- const values = value.split(",").map((val) => val.trim());
168
- let selectedOptions = this.options().filter((option) => values.includes(option.value));
169
- this.addToSelectedOptionsMap(this.#selectedOptionsMapFactory(selectedOptions));
170
- this.ctrl.setValue(selectedOptions);
171
- }
172
- addToSelectedOptionsMap(option) {
173
- if (option) {
174
- this.selectedOptions = signal(option);
175
- }
176
- }
177
- onCheckboxChange(checked, value) {
178
- const selectedOption = this.options().find(option => option.value == value);
179
- this.selectedOptions.update((prev) => {
180
- const options = prev;
181
- if (checked)
182
- options.set(selectedOption?.value, selectedOption);
183
- else
184
- options.delete(selectedOption?.value);
185
- return options;
186
- });
187
- this.getEmissionValue(this.selectedOptions());
188
- }
189
- stringifySelectedOptions() {
190
- if (!this.selectedOptions()?.size) {
191
- return null;
192
- }
193
- return Array.from(this.selectedOptions(), ([value]) => value).join();
194
- }
195
- getEmissionValue(options) {
196
- this.addToSelectedOptionsMap(options);
197
- this.emitValue(this.stringifySelectedOptions());
198
- }
199
- #selectedOptionsMapFactory(selectedOptions) {
200
- let selectedOptionsMap = new Map();
201
- for (let option of selectedOptions) {
202
- selectedOptionsMap.set(option.value, option);
203
- }
204
- return selectedOptionsMap;
205
- }
206
- #reset() {
207
- this.selectedOptions().clear();
208
- this.ctrl.setValue(null);
209
- }
210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: CheckboxControl, isStandalone: true, selector: "iss-ctrl-checkbox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
212
- { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxControl, multi: true },
213
- ], usesInheritance: true, ngImport: i0, template: "<ul class=\"list-unstyled\">\r\n @for (option of options(); track option.value; ) {\r\n <li class=\"mb-2\">\r\n <mat-checkbox\r\n [checked]=\"option | selectStatus: selectedOptions()\"\r\n (change)=\"onCheckboxChange($event.checked, option.value)\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n </li>\r\n }\r\n</ul>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: SelectStatusPipe, name: "selectStatus" }] }); }
214
- }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CheckboxControl, decorators: [{
216
- type: Component,
217
- args: [{ selector: "iss-ctrl-checkbox", standalone: true, imports: [ReactiveFormsModule, MatCheckboxModule, SelectStatusPipe], providers: [
218
- { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxControl, multi: true },
219
- ], template: "<ul class=\"list-unstyled\">\r\n @for (option of options(); track option.value; ) {\r\n <li class=\"mb-2\">\r\n <mat-checkbox\r\n [checked]=\"option | selectStatus: selectedOptions()\"\r\n (change)=\"onCheckboxChange($event.checked, option.value)\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n </li>\r\n }\r\n</ul>\r\n" }]
220
- }] });
221
-
222
- class ChipsControl extends BaseCtrl {
223
- constructor() {
224
- super(...arguments);
225
- this.keywords = signal([]);
226
- this.#ctrlChanges = toSignal(this.ctrl.valueChanges);
227
- this.#effect = effect(() => {
228
- if (this.#ctrlChanges()) {
229
- this.emitValue(this.#stringifyValues());
230
- }
231
- });
232
- }
233
- #ctrlChanges;
234
- #effect;
235
- writeValue(value) {
236
- if (typeof value === "string") {
237
- this.keywords.set(this.#parseValues(value));
238
- }
239
- if (value === undefined || value === null) {
240
- this.keywords.set([]);
241
- }
242
- }
243
- remove(keyword) {
244
- this.keywords.update((keywords) => {
245
- const index = keywords.indexOf(keyword);
246
- if (index < 0) {
247
- return keywords;
248
- }
249
- keywords.splice(index, 1);
250
- return [...keywords];
251
- });
252
- this.emitValue(this.#stringifyValues());
253
- }
254
- add(event) {
255
- const value = (event.value || "").trim();
256
- if (value) {
257
- this.keywords.update((keywords) => [...keywords, value]);
258
- }
259
- event.chipInput.clear();
260
- this.emitValue(this.#stringifyValues());
261
- }
262
- ngOnDestroy() {
263
- this.#effect.destroy();
264
- }
265
- #stringifyValues() {
266
- return this.keywords().map((s) => s.trim()).join();
267
- }
268
- #parseValues(values) {
269
- return values.split(",").map((c) => c.trim());
270
- }
271
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChipsControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
272
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ChipsControl, isStandalone: true, selector: "iss-ctrl-chips", providers: [
273
- { provide: NG_VALUE_ACCESSOR, useExisting: ChipsControl, multi: true }
274
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field>\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder()\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n />\r\n</mat-form-field>\r\n<mat-chip-grid #chipGrid>\r\n @for (keyword of keywords(); track keyword) {\r\n <mat-chip-row (removed)=\"remove(keyword)\">\r\n {{ keyword }}\r\n <button matChipRemove>\r\n <ds-icon icon=\"trash\" class=\"fc-red\"></ds-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n</mat-chip-grid>\r\n", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }] }); }
275
- }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ChipsControl, decorators: [{
277
- type: Component,
278
- args: [{ selector: "iss-ctrl-chips", standalone: true, imports: [
279
- MatFormField,
280
- MatChipGrid,
281
- MatChipRow,
282
- ReactiveFormsModule,
283
- MatChipInput,
284
- MatInput,
285
- MatChipRemove
286
- ], providers: [
287
- { provide: NG_VALUE_ACCESSOR, useExisting: ChipsControl, multi: true }
288
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field>\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder()\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n />\r\n</mat-form-field>\r\n<mat-chip-grid #chipGrid>\r\n @for (keyword of keywords(); track keyword) {\r\n <mat-chip-row (removed)=\"remove(keyword)\">\r\n {{ keyword }}\r\n <button matChipRemove>\r\n <ds-icon icon=\"trash\" class=\"fc-red\"></ds-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n</mat-chip-grid>\r\n" }]
289
- }] });
290
-
291
- const WEEK_STARTS_ON = 0;
292
- const DATE_FORMAT_ADAPTER = {
293
- parse: {
294
- dateInput: "dd/MM/yyyy"
295
- },
296
- display: {
297
- dateInput: "dd/MM/yyyy",
298
- monthYearLabel: "LLLL y",
299
- dateA11yLabel: "dd/MM/yyyy",
300
- monthYearA11yLabel: "MMMM y"
301
- }
302
- };
303
- /** Creates an array and fills it with values. */
304
- function range(length, valueFunction) {
305
- const valuesArray = Array(length);
306
- for (let i = 0; i < length; i++) {
307
- valuesArray[i] = valueFunction(i);
308
- }
309
- return valuesArray;
310
- }
311
- // date-fns doesn't have a way to read/print month names or days of the week directly,
312
- // so we get them by formatting a date with a format that produces the desired month/day.
313
- const MONTH_FORMATS = {
314
- long: "LLLL",
315
- short: "LLL",
316
- narrow: "LLLLL",
317
- };
318
- const DAY_OF_WEEK_FORMATS = {
319
- long: "EEEE",
320
- short: "EEE",
321
- narrow: "EEEEE",
322
- };
323
- class ISSDateAdapter extends DateAdapter {
324
- constructor(matDateLocale) {
325
- super();
326
- this.setLocale(matDateLocale);
327
- }
328
- getYear(date) {
329
- return getYear(date);
330
- }
331
- getMonth(date) {
332
- return getMonth(date);
333
- }
334
- getDate(date) {
335
- return getDate(date);
336
- }
337
- getDayOfWeek(date) {
338
- return getDay(date);
339
- }
340
- getMonthNames(style) {
341
- const pattern = MONTH_FORMATS[style];
342
- return range(12, i => this.format(new Date(2017, i, 1), pattern));
343
- }
344
- getDateNames() {
345
- const dtf = typeof Intl !== "undefined"
346
- ? new Intl.DateTimeFormat(this.locale.code, {
347
- day: "numeric",
348
- timeZone: "utc",
349
- })
350
- : null;
351
- return range(31, i => {
352
- if (dtf) {
353
- // date-fns doesn't appear to support this functionality.
354
- // Fall back to `Intl` on supported browsers.
355
- const date = new Date();
356
- date.setUTCFullYear(2017, 0, i + 1);
357
- date.setUTCHours(0, 0, 0, 0);
358
- return dtf.format(date).replace(/[\u200e\u200f]/g, "");
359
- }
360
- return i + "";
361
- });
362
- }
363
- getDayOfWeekNames(style) {
364
- const pattern = DAY_OF_WEEK_FORMATS[style];
365
- return range(7, i => this.format(new Date(2017, 0, i + 1), pattern));
366
- }
367
- getYearName(date) {
368
- return this.format(date, "y");
369
- }
370
- getFirstDayOfWeek() {
371
- return WEEK_STARTS_ON;
372
- }
373
- getNumDaysInMonth(date) {
374
- return getDaysInMonth(date);
375
- }
376
- clone(date) {
377
- return new Date(date.getTime());
378
- }
379
- createDate(year, month, date) {
380
- const result = new Date();
381
- result.setFullYear(year, month, date);
382
- result.setHours(0, 0, 0, 0);
383
- return result;
384
- }
385
- today() {
386
- return new Date();
387
- }
388
- parse(value, parseFormat) {
389
- if (typeof value === "string" && value.length > 0) {
390
- const iso8601Date = parseISO(value);
391
- if (this.isValid(iso8601Date)) {
392
- return iso8601Date;
393
- }
394
- const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];
395
- if (!parseFormat.length) {
396
- throw Error("Formats array must not be empty.");
397
- }
398
- for (const currentFormat of formats) {
399
- const fromFormat = parse(value, currentFormat, new Date(), { locale: this.locale });
400
- if (this.isValid(fromFormat)) {
401
- return fromFormat;
402
- }
403
- }
404
- return this.invalid();
405
- }
406
- else if (typeof value === "number") {
407
- return new Date(value);
408
- }
409
- else if (value instanceof Date) {
410
- return this.clone(value);
411
- }
412
- return null;
413
- }
414
- format(date, displayFormat) {
415
- if (!this.isValid(date)) {
416
- throw Error("DateFnsAdapter: Cannot format invalid date.");
417
- }
418
- return format(date, displayFormat, { locale: this.locale });
419
- }
420
- addCalendarYears(date, years) {
421
- return addYears(date, years);
422
- }
423
- addCalendarMonths(date, months) {
424
- return addMonths(date, months);
425
- }
426
- addCalendarDays(date, days) {
427
- return addDays(date, days);
428
- }
429
- toIso8601(date) {
430
- return formatISO(date, { representation: "date" });
431
- }
432
- /**
433
- * Returns the given value if given a valid Date or null. Deserializes valid ISO 8601 strings
434
- * (https://www.ietf.org/rfc/rfc3339.txt) into valid Dates and empty string into null. Returns an
435
- * invalid date for all other values.
436
- */
437
- deserialize(value) {
438
- if (typeof value === "string") {
439
- if (!value) {
440
- return null;
441
- }
442
- const date = parseISO(value);
443
- if (this.isValid(date)) {
444
- return date;
445
- }
446
- }
447
- return super.deserialize(value);
448
- }
449
- isDateInstance(obj) {
450
- return isDate(obj);
451
- }
452
- isValid(date) {
453
- return isValid(date);
454
- }
455
- invalid() {
456
- return new Date(NaN);
457
- }
458
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ISSDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
459
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ISSDateAdapter }); }
460
- }
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ISSDateAdapter, decorators: [{
462
- type: Injectable
463
- }], ctorParameters: () => [{ type: undefined, decorators: [{
464
- type: Optional
465
- }, {
466
- type: Inject,
467
- args: [MAT_DATE_LOCALE]
468
- }] }] });
469
-
470
- class DatePickerControl extends BaseCtrl {
471
- constructor() {
472
- super(...arguments);
473
- this.disabledDays = input([]);
474
- this.minDate = input(null);
475
- this.maxDate = input(null);
476
- this.#datePipe = inject(DatePipe);
477
- this.calendarDaysFilter = (d) => {
478
- const day = (d || new Date()).getDay();
479
- return !(this.disabledDays().includes(day));
480
- };
481
- }
482
- #datePipe;
483
- emit($event) {
484
- const selectedDateString = this.#datePipe.transform($event.value, "yyyy-MM-ddTHH:mm:ss") + "Z";
485
- this.emitValue(selectedDateString);
486
- }
487
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
488
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: DatePickerControl, isStandalone: true, selector: "iss-ctrl-date-picker", inputs: { disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
489
- DatePipe,
490
- { provide: DateAdapter, useClass: ISSDateAdapter },
491
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
492
- { provide: MAT_DATE_LOCALE, useValue: enGB },
493
- { provide: NG_VALUE_ACCESSOR, useExisting: DatePickerControl, multi: true },
494
- { provide: NG_VALIDATORS, useExisting: DatePickerControl, multi: true },
495
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field>\r\n <input\r\n class=\"cursor-pointer\"\r\n matInput\r\n readonly\r\n [matDatepicker]=\"picker\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n [formControl]=\"ctrl\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [placeholder]=\"'dd/mm/yyyy'\"\r\n [matDatepickerFilter]=\"calendarDaysFilter\"\r\n (dateChange)=\"emit($event)\"\r\n />\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field>\r\n", styles: ["::ng-deep tr:has(>.mat-calendar-body-label[colspan=\"7\"]){opacity:0!important;display:none}::ng-deep .mat-datepicker-content .mat-calendar{height:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
496
- }
497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerControl, decorators: [{
498
- type: Component,
499
- args: [{ selector: "iss-ctrl-date-picker", standalone: true, imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule, MatIconModule, ReactiveFormsModule], providers: [
500
- DatePipe,
501
- { provide: DateAdapter, useClass: ISSDateAdapter },
502
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
503
- { provide: MAT_DATE_LOCALE, useValue: enGB },
504
- { provide: NG_VALUE_ACCESSOR, useExisting: DatePickerControl, multi: true },
505
- { provide: NG_VALIDATORS, useExisting: DatePickerControl, multi: true },
506
- ], template: "<mat-form-field>\r\n <input\r\n class=\"cursor-pointer\"\r\n matInput\r\n readonly\r\n [matDatepicker]=\"picker\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n [formControl]=\"ctrl\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [placeholder]=\"'dd/mm/yyyy'\"\r\n [matDatepickerFilter]=\"calendarDaysFilter\"\r\n (dateChange)=\"emit($event)\"\r\n />\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</mat-form-field>\r\n", styles: ["::ng-deep tr:has(>.mat-calendar-body-label[colspan=\"7\"]){opacity:0!important;display:none}::ng-deep .mat-datepicker-content .mat-calendar{height:unset!important}\n"] }]
507
- }] });
508
-
509
- class DateRangePickerControl extends BaseCtrl {
510
- constructor() {
511
- super(...arguments);
512
- this.disabledDays = input([]);
513
- this.minDate = input(null);
514
- this.maxDate = input(null);
515
- this.onDateRangeObjectChange = output();
516
- this.range = new FormGroup({
517
- start: new FormControl(null),
518
- end: new FormControl(null),
519
- });
520
- this.#datePipe = inject(DatePipe);
521
- this.#sub = new Subscription();
522
- this.calendarDaysFilter = (d) => {
523
- const day = (d || new Date()).getDay();
524
- return !(this.disabledDays().includes(day));
525
- };
526
- }
527
- #datePipe;
528
- #sub;
529
- ngOnInit() {
530
- this.#sub.add(this.range.valueChanges.subscribe((values) => {
531
- if (values.start && values.end) {
532
- this.emitValue(this.#getEmissionValue(values.start, values.end));
533
- this.onDateRangeObjectChange.emit(this.#getEmissionObject(values.start, values.end));
534
- }
535
- }));
536
- }
537
- writeValue(value) {
538
- if (typeof value === "string") {
539
- const valArr = value?.split(",");
540
- const valObj = {
541
- start: valArr[0],
542
- end: valArr[1],
543
- };
544
- this.range.patchValue(valObj, { emitEvent: false });
545
- }
546
- }
547
- ngOnDestroy() {
548
- this.#sub.unsubscribe();
549
- }
550
- #getDuration(startDate, endDate) {
551
- let start = new Date(startDate).getTime();
552
- let end = new Date(endDate).getTime();
553
- return Math.ceil((end - start) / (1000 * 60 * 60 * 24) + 1);
554
- }
555
- #getFormatedDate(date) {
556
- return this.#datePipe.transform(date, "yyyy-MM-ddTHH:mm:ss") + "Z";
557
- }
558
- #getFormatedEndDate(endDate) {
559
- let inputDate = new Date(new Date(endDate).setHours(23, 59, 59));
560
- return this.#getFormatedDate(inputDate);
561
- }
562
- #getEmissionValue(start, end) {
563
- let formatedStart = this.#getFormatedDate(start);
564
- let formatedEnd = this.#getFormatedEndDate(end);
565
- return `${formatedStart},${formatedEnd}`;
566
- }
567
- #getEmissionObject(start, end) {
568
- return {
569
- duration: this.#getDuration(start, end),
570
- start: this.#getFormatedDate(start),
571
- end: this.#getFormatedEndDate(end)
572
- };
573
- }
574
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateRangePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
575
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: DateRangePickerControl, isStandalone: true, selector: "iss-ctrl-date-range-picker", inputs: { disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDateRangeObjectChange: "onDateRangeObjectChange" }, providers: [
576
- DatePipe,
577
- { provide: DateAdapter, useClass: ISSDateAdapter },
578
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
579
- { provide: MAT_DATE_LOCALE, useValue: enGB },
580
- { provide: NG_VALUE_ACCESSOR, useExisting: DateRangePickerControl, multi: true },
581
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field>\r\n <mat-date-range-input\r\n [formGroup]=\"range\"\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [dateFilter]=\"calendarDaysFilter\"\r\n >\r\n <input\r\n matStartDate\r\n formControlName=\"start\"\r\n placeholder=\"dd/mm/yyyy\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n />\r\n <input\r\n matEndDate\r\n formControlName=\"end\"\r\n placeholder=\"dd/mm/yyyy\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
582
- }
583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DateRangePickerControl, decorators: [{
584
- type: Component,
585
- args: [{ selector: "iss-ctrl-date-range-picker", standalone: true, imports: [
586
- MatFormFieldModule, MatDatepickerModule, FormsModule, ReactiveFormsModule,
587
- ], providers: [
588
- DatePipe,
589
- { provide: DateAdapter, useClass: ISSDateAdapter },
590
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
591
- { provide: MAT_DATE_LOCALE, useValue: enGB },
592
- { provide: NG_VALUE_ACCESSOR, useExisting: DateRangePickerControl, multi: true },
593
- ], template: "<mat-form-field>\r\n <mat-date-range-input\r\n [formGroup]=\"range\"\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDate()\"\r\n [max]=\"maxDate()\"\r\n [dateFilter]=\"calendarDaysFilter\"\r\n >\r\n <input\r\n matStartDate\r\n formControlName=\"start\"\r\n placeholder=\"dd/mm/yyyy\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n />\r\n <input\r\n matEndDate\r\n formControlName=\"end\"\r\n placeholder=\"dd/mm/yyyy\"\r\n (click)=\"picker.open(); markAsTouched()\"\r\n />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n" }]
594
- }] });
595
-
596
- class TimePickerControl extends BaseCtrl {
597
- constructor() {
598
- super(...arguments);
599
- this.isOpen = signal(false);
600
- this.timePicker = new FormGroup({
601
- hour: new FormControl(),
602
- minute: new FormControl(),
603
- meridiem: new FormControl(),
604
- });
605
- this.displayValue = signal("");
606
- this.hours = Array.from({ length: 12 }, (_, i) => i + 1);
607
- this.minutes = Array.from({ length: 60 }, (_, i) => i);
608
- this.#emissionValue = signal("");
609
- this.#timeChanges = toSignal(this.timePicker.valueChanges);
610
- this.#effectRef = effect(() => {
611
- this.#emit(this.#timeChanges());
612
- }, { allowSignalWrites: true });
613
- }
614
- #emissionValue;
615
- #timeChanges;
616
- #effectRef;
617
- ngOnDestroy() {
618
- this.#effectRef.destroy();
619
- }
620
- writeValue(value) {
621
- if (value) {
622
- if (value.includes("T")) {
623
- value = this.#extractTime(value);
624
- this.emitValue(value);
625
- }
626
- const timeObject = this.#generateTimeObject(this.#convertTo12H(value));
627
- this.displayValue.set(this.#generateTimeDisplay(timeObject.hour, timeObject.minute, timeObject.meridiem));
628
- this.timePicker.patchValue(timeObject, { emitEvent: false });
629
- }
630
- }
631
- togglePickerMenu() {
632
- this.isOpen.update((isOpen) => !isOpen);
633
- }
634
- close() {
635
- this.isOpen.set(false);
636
- }
637
- validate(control) {
638
- if (this.max() && control.getRawValue()) {
639
- let maxDate = this.#geDateFromString(this.max()?.toString());
640
- let controlValue = this.#geDateFromString(control.getRawValue());
641
- if (isAfter(controlValue, maxDate)) {
642
- return {
643
- afterMaxTime: {
644
- max: this.max(),
645
- actual: control.getRawValue()
646
- }
647
- };
648
- }
649
- }
650
- if (this.min() && control.getRawValue()) {
651
- let minDate = this.#geDateFromString(this.min()?.toString());
652
- let controlValue = this.#geDateFromString(control.getRawValue());
653
- if (isBefore(controlValue, minDate)) {
654
- return {
655
- beforeMinTime: {
656
- max: this.min(),
657
- actual: control.getRawValue()
658
- }
659
- };
660
- }
661
- }
662
- return null;
663
- }
664
- #emit(v) {
665
- if (v && Object.values(v).every((item) => item !== null && item !== undefined)) {
666
- const time24HFormat = this.#convertTo24H(v.hour, v.minute, v.meridiem);
667
- this.displayValue.set(this.#generateTimeDisplay(v.hour, v.minute, v.meridiem));
668
- this.#emissionValue.set(time24HFormat);
669
- this.emitValue(time24HFormat);
670
- }
671
- }
672
- #convertTo24H(h, m, period) {
673
- let hStr = `${h}`;
674
- let mStr = `${m}`;
675
- if (period === "PM") {
676
- hStr = `${h + 12}`;
677
- }
678
- else {
679
- if (h <= 9) {
680
- hStr = `0${hStr}`;
681
- }
682
- }
683
- if (h === 12 && period === "AM") {
684
- hStr = "00";
685
- }
686
- if (h === 12 && period === "PM") {
687
- hStr = `${12}`;
688
- }
689
- if (m <= 9) {
690
- mStr = `0${mStr}`;
691
- }
692
- return `${hStr}:${mStr}`;
693
- }
694
- #convertTo12H(time) {
695
- let datetime = this.#geDateFromString(time);
696
- return format(datetime, "h:m a");
697
- }
698
- #geDateFromString(time) {
699
- if (!time) {
700
- throw new Error(`Input value in wrong format ${time}`);
701
- }
702
- let timeArr = time.split(":");
703
- return new Date(new Date().setHours(+timeArr[0], +timeArr[1]));
704
- }
705
- #generateTimeObject(time) {
706
- const meridiem = time.split(" ")[1];
707
- const [hour, minute] = time.split(" ")[0].split(":");
708
- return {
709
- hour: +hour,
710
- minute: +minute,
711
- meridiem: meridiem
712
- };
713
- }
714
- #generateTimeDisplay(hour, minute, meridiem) {
715
- let h = `${hour}`;
716
- let m = `${minute}`;
717
- if (hour <= 9) {
718
- h = `0${hour}`;
719
- }
720
- if (minute <= 9) {
721
- m = `0${minute}`;
722
- }
723
- return `${h}:${m} ${meridiem}`;
724
- }
725
- #extractTime(value) {
726
- let val = value.split("T");
727
- let timeArr = val[1].split(":");
728
- timeArr.pop();
729
- return timeArr.join(":");
730
- }
731
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TimePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
732
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: TimePickerControl, isStandalone: true, selector: "iss-ctrl-time-picker", providers: [
733
- { provide: NG_VALUE_ACCESSOR, useExisting: TimePickerControl, multi: true },
734
- { provide: NG_VALIDATORS, useExisting: TimePickerControl, multi: true }
735
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"cursor-pointer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"togglePickerMenu()\">\r\n <!--<span *ngIf=\"matPrefix\" matPrefix class=\"sfi {{ iconPrefixName }} font-18\"></span>-->\r\n <input\r\n class=\"cursor-pointer\"\r\n matInput\r\n placeholder=\"--:-- --\"\r\n [value]=\"displayValue()\"\r\n readonly=\"readonly\"\r\n />\r\n <ds-icon icon=\"clock\" class=\"fs-24 fc-black\" matSuffix></ds-icon>\r\n</mat-form-field>\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"close()\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n>\r\n <div class=\"time-picker-wrapper\" [formGroup]=\"timePicker\">\r\n <div class=\"time-picker-title\">\r\n <span class=\"time-label\">HH</span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"time-label\">MM</span>\r\n <span class=\"mx-1\"></span>\r\n </div>\r\n <div class=\"time-picker-body\">\r\n <mat-button-toggle-group formControlName=\"hour\" hideSingleSelectionIndicator class=\"flex-nowrap\">\r\n @for (hour of hours; track hour) {\r\n <mat-button-toggle [value]=\"hour\">\r\n <span class=\"font-14 font-weight-normal\">{{ hour >= 10 ? hour : '0' + hour }}</span>\r\n </mat-button-toggle>\r\n }\r\n </mat-button-toggle-group>\r\n <span class=\"mx-1\"></span>\r\n <mat-button-toggle-group formControlName=\"minute\" hideSingleSelectionIndicator class=\"flex-nowrap\">\r\n @for (minute of minutes; track minute) {\r\n <mat-button-toggle [value]=\"minute\">\r\n <span class=\"font-14 font-weight-normal\">{{ minute >= 10 ? minute : '0' + minute }}</span>\r\n </mat-button-toggle>\r\n }\r\n </mat-button-toggle-group>\r\n <span class=\"mx-1\"></span>\r\n\r\n <mat-button-toggle-group formControlName=\"meridiem\" hideSingleSelectionIndicator>\r\n <mat-button-toggle value=\"AM\">AM</mat-button-toggle>\r\n <mat-button-toggle value=\"PM\">PM</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["input[readonly=true]{color:var(--black)!important}.time-picker-wrapper{background-color:var(--white);border:4px solid var(--light-gray);padding:10px;margin-top:-20px}.time-picker-wrapper .time-picker-title{display:flex}.time-picker-wrapper .time-picker-title .time-label{display:flex;align-items:center;justify-content:center;width:50px;min-width:50px;padding:0;font-size:.95rem;color:var(--dark-gray)}[dir=ltr] .time-picker-wrapper .time-picker-title .time-label{margin-right:4px}[dir=rtl] .time-picker-wrapper .time-picker-title .time-label{margin-left:4px}.time-picker-wrapper .time-picker-body{display:flex}.time-picker-wrapper .time-picker-body .mat-button-toggle-group{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;border:none}.time-picker-wrapper .time-picker-body .mat-button-toggle-group .mat-button-toggle{border:0;width:50px;min-width:50px}.time-picker-wrapper .time-picker-body .mat-button-toggle-group .mat-button-toggle.mat-button-toggle-checked{color:var(--white)!important}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
736
- }
737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TimePickerControl, decorators: [{
738
- type: Component,
739
- args: [{ selector: "iss-ctrl-time-picker", standalone: true, imports: [
740
- MatFormField,
741
- MatInput,
742
- MatSuffix,
743
- MatButtonToggleGroup,
744
- MatButtonToggle,
745
- CdkOverlayOrigin,
746
- CdkConnectedOverlay,
747
- ReactiveFormsModule
748
- ], providers: [
749
- { provide: NG_VALUE_ACCESSOR, useExisting: TimePickerControl, multi: true },
750
- { provide: NG_VALIDATORS, useExisting: TimePickerControl, multi: true }
751
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field class=\"cursor-pointer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"togglePickerMenu()\">\r\n <!--<span *ngIf=\"matPrefix\" matPrefix class=\"sfi {{ iconPrefixName }} font-18\"></span>-->\r\n <input\r\n class=\"cursor-pointer\"\r\n matInput\r\n placeholder=\"--:-- --\"\r\n [value]=\"displayValue()\"\r\n readonly=\"readonly\"\r\n />\r\n <ds-icon icon=\"clock\" class=\"fs-24 fc-black\" matSuffix></ds-icon>\r\n</mat-form-field>\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"close()\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n>\r\n <div class=\"time-picker-wrapper\" [formGroup]=\"timePicker\">\r\n <div class=\"time-picker-title\">\r\n <span class=\"time-label\">HH</span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"time-label\">MM</span>\r\n <span class=\"mx-1\"></span>\r\n </div>\r\n <div class=\"time-picker-body\">\r\n <mat-button-toggle-group formControlName=\"hour\" hideSingleSelectionIndicator class=\"flex-nowrap\">\r\n @for (hour of hours; track hour) {\r\n <mat-button-toggle [value]=\"hour\">\r\n <span class=\"font-14 font-weight-normal\">{{ hour >= 10 ? hour : '0' + hour }}</span>\r\n </mat-button-toggle>\r\n }\r\n </mat-button-toggle-group>\r\n <span class=\"mx-1\"></span>\r\n <mat-button-toggle-group formControlName=\"minute\" hideSingleSelectionIndicator class=\"flex-nowrap\">\r\n @for (minute of minutes; track minute) {\r\n <mat-button-toggle [value]=\"minute\">\r\n <span class=\"font-14 font-weight-normal\">{{ minute >= 10 ? minute : '0' + minute }}</span>\r\n </mat-button-toggle>\r\n }\r\n </mat-button-toggle-group>\r\n <span class=\"mx-1\"></span>\r\n\r\n <mat-button-toggle-group formControlName=\"meridiem\" hideSingleSelectionIndicator>\r\n <mat-button-toggle value=\"AM\">AM</mat-button-toggle>\r\n <mat-button-toggle value=\"PM\">PM</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["input[readonly=true]{color:var(--black)!important}.time-picker-wrapper{background-color:var(--white);border:4px solid var(--light-gray);padding:10px;margin-top:-20px}.time-picker-wrapper .time-picker-title{display:flex}.time-picker-wrapper .time-picker-title .time-label{display:flex;align-items:center;justify-content:center;width:50px;min-width:50px;padding:0;font-size:.95rem;color:var(--dark-gray)}[dir=ltr] .time-picker-wrapper .time-picker-title .time-label{margin-right:4px}[dir=rtl] .time-picker-wrapper .time-picker-title .time-label{margin-left:4px}.time-picker-wrapper .time-picker-body{display:flex}.time-picker-wrapper .time-picker-body .mat-button-toggle-group{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;border:none}.time-picker-wrapper .time-picker-body .mat-button-toggle-group .mat-button-toggle{border:0;width:50px;min-width:50px}.time-picker-wrapper .time-picker-body .mat-button-toggle-group .mat-button-toggle.mat-button-toggle-checked{color:var(--white)!important}\n"] }]
752
- }] });
753
-
754
- class DatetimePickerControl extends BaseCtrl {
755
- constructor() {
756
- super(...arguments);
757
- this.disabledDays = input([]);
758
- this.minDate = input(null);
759
- this.maxDate = input(null);
760
- this.datetimePicker = new FormGroup({
761
- date: new FormControl(),
762
- time: new FormControl(),
763
- });
764
- this.#datePipe = inject(DatePipe);
765
- this.#formChanges = toSignal(this.datetimePicker.valueChanges);
766
- this.#effectRef = effect(() => {
767
- if (this.#formChanges() && this.#formChanges().date && this.#formChanges().time) {
768
- this.emitValue(this.#getEmissionValue(this.#formChanges().date, this.#formChanges().time));
769
- }
770
- });
771
- }
772
- #datePipe;
773
- #formChanges;
774
- #effectRef;
775
- ngOnDestroy() {
776
- this.#effectRef.destroy();
777
- }
778
- #getEmissionValue(date, time) {
779
- const d = new Date(date);
780
- let timeArr = time.split(":");
781
- let datetime = new Date(d.setHours(+timeArr[0], +timeArr[1], 0));
782
- return this.#formatDate(datetime);
783
- }
784
- #formatDate(date) {
785
- return this.#datePipe.transform(date, "yyyy-MM-ddTHH:mm:ss") + "Z";
786
- }
787
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
788
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: DatetimePickerControl, isStandalone: true, selector: "iss-ctrl-datetime-picker", inputs: { disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
789
- DatePipe,
790
- { provide: DateAdapter, useClass: ISSDateAdapter },
791
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
792
- { provide: MAT_DATE_LOCALE, useValue: enGB },
793
- { provide: NG_VALUE_ACCESSOR, useExisting: DatetimePickerControl, multi: true }
794
- ], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"datetimePicker\" class=\"d-flex gap-3\">\r\n <iss-ctrl-date-picker class=\"flex-grow-1\" formControlName=\"date\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" [disabledDays]=\"disabledDays()\"/>\r\n <iss-ctrl-time-picker class=\"flex-grow-1\" formControlName=\"time\" [min]=\"min()\" [max]=\"max()\"/>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TimePickerControl, selector: "iss-ctrl-time-picker" }, { kind: "component", type: DatePickerControl, selector: "iss-ctrl-date-picker", inputs: ["disabledDays", "minDate", "maxDate"] }] }); }
795
- }
796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimePickerControl, decorators: [{
797
- type: Component,
798
- args: [{ selector: "iss-ctrl-datetime-picker", standalone: true, imports: [
799
- FormsModule,
800
- MatDatepicker,
801
- MatDatepickerInput,
802
- MatDatepickerToggle,
803
- MatFormField,
804
- MatInput,
805
- MatSuffix,
806
- ReactiveFormsModule,
807
- TimePickerControl,
808
- DatePickerControl
809
- ], providers: [
810
- DatePipe,
811
- { provide: DateAdapter, useClass: ISSDateAdapter },
812
- { provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
813
- { provide: MAT_DATE_LOCALE, useValue: enGB },
814
- { provide: NG_VALUE_ACCESSOR, useExisting: DatetimePickerControl, multi: true }
815
- ], template: "<form [formGroup]=\"datetimePicker\" class=\"d-flex gap-3\">\r\n <iss-ctrl-date-picker class=\"flex-grow-1\" formControlName=\"date\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" [disabledDays]=\"disabledDays()\"/>\r\n <iss-ctrl-time-picker class=\"flex-grow-1\" formControlName=\"time\" [min]=\"min()\" [max]=\"max()\"/>\r\n</form>\r\n" }]
816
- }] });
817
-
818
- class DatetimeRangePickerControl extends BaseCtrl {
819
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
820
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DatetimeRangePickerControl, isStandalone: true, selector: "iss-ctrl-datetime-range-picker", providers: [
821
- { provide: NG_VALUE_ACCESSOR, useExisting: DatetimeRangePickerControl, multi: true }
822
- ], usesInheritance: true, ngImport: i0, template: "<p>datetime-range-picker works!</p>\r\n", styles: [""] }); }
823
- }
824
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangePickerControl, decorators: [{
825
- type: Component,
826
- args: [{ selector: "iss-ctrl-datetime-range-picker", standalone: true, imports: [], providers: [
827
- { provide: NG_VALUE_ACCESSOR, useExisting: DatetimeRangePickerControl, multi: true }
828
- ], template: "<p>datetime-range-picker works!</p>\r\n" }]
829
- }] });
830
-
831
- class DroppableDirective {
832
- constructor() {
833
- this.onDrop = output();
834
- }
835
- onDragOver(evt) {
836
- evt.preventDefault();
837
- evt.stopPropagation();
838
- }
839
- onDragLeave(evt) {
840
- evt.preventDefault();
841
- evt.stopPropagation();
842
- }
843
- onDropped(evt) {
844
- evt.preventDefault();
845
- evt.stopPropagation();
846
- this.onDrop.emit(evt.dataTransfer.files);
847
- }
848
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DroppableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
849
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: DroppableDirective, isStandalone: true, selector: "[droppable]", outputs: { onDrop: "onDrop" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDropped($event)" } }, ngImport: i0 }); }
850
- }
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DroppableDirective, decorators: [{
852
- type: Directive,
853
- args: [{
854
- selector: "[droppable]",
855
- standalone: true,
856
- }]
857
- }], propDecorators: { onDragOver: [{
858
- type: HostListener,
859
- args: ["dragover", ["$event"]]
860
- }], onDragLeave: [{
861
- type: HostListener,
862
- args: ["dragleave", ["$event"]]
863
- }], onDropped: [{
864
- type: HostListener,
865
- args: ["drop", ["$event"]]
866
- }] } });
867
-
868
- class HintsComponent {
869
- constructor() {
870
- this.hints = input([]);
871
- this.touched = input(false);
872
- }
873
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HintsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
874
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HintsComponent, isStandalone: true, selector: "iss-ctrl-hints", inputs: { hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
875
- @if (hints().length) {
876
- <div class="d-flex align-items-center flex-wrap gap-2 mb-3">
877
- @for (hint of hints(); track $index) {
878
- @if (hint) {
879
- <mat-hint [align]="hint.align" class="d-flex align-items-center gap-1 fs-12">
880
- @if (hint.valid === undefined) {
881
- <ds-icon icon="info" class="fs-24 fc-dark-gray"></ds-icon>
882
- <span class="fc-dark-gray text-break">{{ hint.label }}</span>
883
- } @else {
884
- <ds-icon
885
- icon="{{ touched() ? (hint.valid ? 'check-circle-f' : 'close-circle') : 'check-circle-o' }}"
886
- class="fs-24 {{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }}"
887
- >
888
- </ds-icon>
889
- <span class="{{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }} text-break">{{ hint.label }}</span>
890
- }
891
- </mat-hint>
892
- }
893
- }
894
- </div>
895
- }
896
- `, isInline: true, dependencies: [{ kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }] }); }
897
- }
898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HintsComponent, decorators: [{
899
- type: Component,
900
- args: [{
901
- selector: "iss-ctrl-hints",
902
- standalone: true,
903
- imports: [MatHint,],
904
- template: `
905
- @if (hints().length) {
906
- <div class="d-flex align-items-center flex-wrap gap-2 mb-3">
907
- @for (hint of hints(); track $index) {
908
- @if (hint) {
909
- <mat-hint [align]="hint.align" class="d-flex align-items-center gap-1 fs-12">
910
- @if (hint.valid === undefined) {
911
- <ds-icon icon="info" class="fs-24 fc-dark-gray"></ds-icon>
912
- <span class="fc-dark-gray text-break">{{ hint.label }}</span>
913
- } @else {
914
- <ds-icon
915
- icon="{{ touched() ? (hint.valid ? 'check-circle-f' : 'close-circle') : 'check-circle-o' }}"
916
- class="fs-24 {{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }}"
917
- >
918
- </ds-icon>
919
- <span class="{{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }} text-break">{{ hint.label }}</span>
920
- }
921
- </mat-hint>
922
- }
923
- }
924
- </div>
925
- }
926
- `,
927
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
928
- }]
929
- }] });
930
-
931
- class FilePickerControl extends BaseCtrl {
932
- constructor() {
933
- super(...arguments);
934
- this.accept = input();
935
- this.showDownloadButton = input(true);
936
- this.showDeleteButton = input(true);
937
- this.attachments = signal([]);
938
- this.#effectRef = effect(() => {
939
- if (this.attachments().length) {
940
- this.emitValue(this.#formDataFactory(this.attachments()));
941
- }
942
- });
943
- }
944
- #effectRef;
945
- ngOnDestroy() {
946
- this.#effectRef.destroy();
947
- }
948
- writeValue(val) {
949
- this.#reset();
950
- if (val) {
951
- this.attachments.set([...this.attachments(), ...this.#convertFormDataToFiles(val)]);
952
- }
953
- }
954
- onDownload($event) {
955
- const fileUrl = this.#createObjectUrl($event.detail.value);
956
- const anchorElement = this.#createAnchorElement(fileUrl, $event.detail.value.name);
957
- this.#useAnchorElementThenDispose(anchorElement, fileUrl);
958
- }
959
- onDelete(index) {
960
- const fileHtmlElement = document.getElementById("file");
961
- if (fileHtmlElement) {
962
- fileHtmlElement.value = "";
963
- }
964
- this.attachments.update((files) => {
965
- return files.filter((_, i) => i !== index);
966
- });
967
- }
968
- captureFile($event) {
969
- if (!$event) {
970
- return;
971
- }
972
- if (!$event.length) {
973
- return;
974
- }
975
- this.markAsTouched();
976
- const files = Array.from($event);
977
- this.#updateAttachments(files);
978
- }
979
- #createObjectUrl(file) {
980
- const blob = new Blob([file], {
981
- type: "application/octet-stream",
982
- });
983
- return window.URL.createObjectURL(blob);
984
- }
985
- #updateAttachments(selectedFiles) {
986
- if (!this.multiple()) {
987
- this.attachments.set([]);
988
- this.attachments()[0] = selectedFiles[0];
989
- return;
990
- }
991
- this.attachments.update((files) => {
992
- files = [...files, ...selectedFiles];
993
- return files;
994
- });
995
- }
996
- #formDataFactory(files) {
997
- const fd = new FormData();
998
- for (let i = 0; i < files.length; i++) {
999
- fd.append("file", files[i]);
1000
- }
1001
- return fd;
1002
- }
1003
- #reset() {
1004
- this.attachments.set([]);
1005
- }
1006
- #convertFormDataToFiles(val) {
1007
- let files = [];
1008
- for (let pair of val.entries()) {
1009
- if (pair[1] instanceof File) {
1010
- files.push(pair[1]);
1011
- }
1012
- }
1013
- return files;
1014
- }
1015
- #createAnchorElement(fileUrl, fileName) {
1016
- let a = document.createElement("a");
1017
- a.setAttribute("style", "display: none");
1018
- a.href = fileUrl;
1019
- a.download = fileName;
1020
- return a;
1021
- }
1022
- #useAnchorElementThenDispose(a, fileUrl) {
1023
- a.click();
1024
- window.URL.revokeObjectURL(fileUrl);
1025
- a.remove();
1026
- }
1027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilePickerControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1028
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FilePickerControl, isStandalone: true, selector: "iss-ctrl-file-picker", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, showDownloadButton: { classPropertyName: "showDownloadButton", publicName: "showDownloadButton", isSignal: true, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1029
- { provide: NG_VALUE_ACCESSOR, useExisting: FilePickerControl, multi: true }
1030
- ], usesInheritance: true, ngImport: i0, template: "<ds-file-picker (click)=\"inputFile.click(); markAsTouched()\" droppable (onDrop)=\"captureFile($event)\">\r\n <input\r\n id=\"file\"\r\n type=\"file\"\r\n #inputFile\r\n [style.display]=\"'none'\"\r\n [formControl]=\"ctrl\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n (change)=\"captureFile($any($event.target).files)\"\r\n />\r\n</ds-file-picker>\r\n\r\n<iss-ctrl-hints [hints]=\"hints()\" [touched]=\"touched()\"/>\r\n@if (attachments().length) {\r\n <section class=\"files-list\">\r\n @for (file of attachments(); track $index) {\r\n <div class=\"file-item-container\">\r\n @if (file) {\r\n <ds-attachments\r\n [matTooltip]=\"file.name\"\r\n [file]=\"file\"\r\n [showDownload]=\"showDownloadButton()\"\r\n [showActions]=\"showDeleteButton()\"\r\n (downloadEvent)=\"onDownload($event)\"\r\n (deleteEvent)=\"onDelete($index)\"\r\n >\r\n </ds-attachments>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}.insideTableStyle{width:272px}.files-list{--file-item-width: 270px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: DroppableDirective, selector: "[droppable]", outputs: ["onDrop"] }, { kind: "component", type: HintsComponent, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }] }); }
1031
- }
1032
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilePickerControl, decorators: [{
1033
- type: Component,
1034
- args: [{ selector: "iss-ctrl-file-picker", standalone: true, imports: [
1035
- ReactiveFormsModule,
1036
- MatTooltip,
1037
- DroppableDirective,
1038
- HintsComponent,
1039
- ], providers: [
1040
- { provide: NG_VALUE_ACCESSOR, useExisting: FilePickerControl, multi: true }
1041
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ds-file-picker (click)=\"inputFile.click(); markAsTouched()\" droppable (onDrop)=\"captureFile($event)\">\r\n <input\r\n id=\"file\"\r\n type=\"file\"\r\n #inputFile\r\n [style.display]=\"'none'\"\r\n [formControl]=\"ctrl\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n (change)=\"captureFile($any($event.target).files)\"\r\n />\r\n</ds-file-picker>\r\n\r\n<iss-ctrl-hints [hints]=\"hints()\" [touched]=\"touched()\"/>\r\n@if (attachments().length) {\r\n <section class=\"files-list\">\r\n @for (file of attachments(); track $index) {\r\n <div class=\"file-item-container\">\r\n @if (file) {\r\n <ds-attachments\r\n [matTooltip]=\"file.name\"\r\n [file]=\"file\"\r\n [showDownload]=\"showDownloadButton()\"\r\n [showActions]=\"showDeleteButton()\"\r\n (downloadEvent)=\"onDownload($event)\"\r\n (deleteEvent)=\"onDelete($index)\"\r\n >\r\n </ds-attachments>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}.insideTableStyle{width:272px}.files-list{--file-item-width: 270px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"] }]
1042
- }] });
1043
-
1044
- class InputControl extends BaseCtrl {
1045
- constructor() {
1046
- super(...arguments);
1047
- this.type = input("text");
1048
- this.prefixIcon = input("");
1049
- this.prefixText = input("");
1050
- this.suffixIcon = input("");
1051
- this.suffixText = input("");
1052
- this.onPrefixClick = output();
1053
- this.onSuffixClick = output();
1054
- this.#ctrlChanges = toSignal(this.ctrl.valueChanges);
1055
- this.#effect = effect(() => {
1056
- if (this.#ctrlChanges()) {
1057
- this.emitValue(this.#ctrlChanges());
1058
- }
1059
- });
1060
- }
1061
- #ctrlChanges;
1062
- #effect;
1063
- emitSuffixClick() {
1064
- this.onSuffixClick.emit(this.ctrl.getRawValue());
1065
- }
1066
- emitPrefixClick() {
1067
- this.onPrefixClick.emit(this.ctrl.getRawValue());
1068
- }
1069
- ngOnDestroy() {
1070
- this.#effect.destroy();
1071
- }
1072
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1073
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputControl, isStandalone: true, selector: "iss-ctrl-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, prefixText: { classPropertyName: "prefixText", publicName: "prefixText", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixText: { classPropertyName: "suffixText", publicName: "suffixText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPrefixClick: "onPrefixClick", onSuffixClick: "onSuffixClick" }, providers: [
1074
- { provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
1075
- { provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
1076
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\">\r\n <ng-content select=\"[issPrefix]\"></ng-content>\r\n <div (click)=\"emitPrefixClick()\" class=\"cursor-pointer\">\r\n @if (prefixText()) {\r\n <span matTextPrefix>{{ prefixText() }}</span>\r\n }\r\n @if (prefixIcon()) {\r\n <ds-icon matPrefix icon=\"{{prefixIcon()}}\"></ds-icon>\r\n }\r\n </div>\r\n <input\r\n matInput\r\n (blur)=\"markAsTouched()\"\r\n (input)=\"emitOnChangeEvent()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n [placeholder]=\"placeholder()\"\r\n [type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n />\r\n <ng-content select=\"[issSuffix]\"></ng-content>\r\n <div (click)=\"emitSuffixClick()\" class=\"cursor-pointer\">\r\n @if (suffixText()) {\r\n <span matTextSuffix>{{ suffixText() }}</span>\r\n }\r\n @if (suffixIcon()) {\r\n <ds-icon matSuffix icon=\"{{suffixIcon()}}\"></ds-icon>\r\n }\r\n </div>\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: HintsComponent, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1077
- }
1078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputControl, decorators: [{
1079
- type: Component,
1080
- args: [{ selector: "iss-ctrl-input", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1081
- ReactiveFormsModule,
1082
- MatFormFieldModule,
1083
- HintsComponent,
1084
- MatInput
1085
- ], providers: [
1086
- { provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
1087
- { provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
1088
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field appearance=\"outline\">\r\n <ng-content select=\"[issPrefix]\"></ng-content>\r\n <div (click)=\"emitPrefixClick()\" class=\"cursor-pointer\">\r\n @if (prefixText()) {\r\n <span matTextPrefix>{{ prefixText() }}</span>\r\n }\r\n @if (prefixIcon()) {\r\n <ds-icon matPrefix icon=\"{{prefixIcon()}}\"></ds-icon>\r\n }\r\n </div>\r\n <input\r\n matInput\r\n (blur)=\"markAsTouched()\"\r\n (input)=\"emitOnChangeEvent()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n [placeholder]=\"placeholder()\"\r\n [type]=\"type()\"\r\n [disabled]=\"disabled()\"\r\n />\r\n <ng-content select=\"[issSuffix]\"></ng-content>\r\n <div (click)=\"emitSuffixClick()\" class=\"cursor-pointer\">\r\n @if (suffixText()) {\r\n <span matTextSuffix>{{ suffixText() }}</span>\r\n }\r\n @if (suffixIcon()) {\r\n <ds-icon matSuffix icon=\"{{suffixIcon()}}\"></ds-icon>\r\n }\r\n </div>\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n" }]
1089
- }] });
1090
-
1091
- const COUNTRIES = [
1092
- {
1093
- "name": "Afghanistan (افغانستان)",
1094
- "code": "af",
1095
- "dailCode": "93",
1096
- "priority": 0,
1097
- "order": 0,
1098
- "placeholder": "701234567"
1099
- },
1100
- {
1101
- "name": "Albania (Shqipëri)",
1102
- "code": "al",
1103
- "dailCode": "355",
1104
- "priority": 0,
1105
- "order": 0,
1106
- "placeholder": "672123456"
1107
- },
1108
- {
1109
- "name": "Algeria (الجزائر)",
1110
- "code": "dz",
1111
- "dailCode": "213",
1112
- "priority": 0,
1113
- "order": 0,
1114
- "placeholder": "551234567"
1115
- },
1116
- {
1117
- "name": "American Samoa",
1118
- "code": "as",
1119
- "dailCode": "1",
1120
- "priority": 1,
1121
- "order": 0,
1122
- "areaCodes": [
1123
- "684"
1124
- ],
1125
- "placeholder": "6847331234"
1126
- },
1127
- {
1128
- "name": "Andorra",
1129
- "code": "ad",
1130
- "dailCode": "376",
1131
- "priority": 0,
1132
- "order": 0,
1133
- "placeholder": "312345"
1134
- },
1135
- {
1136
- "name": "Angola",
1137
- "code": "ao",
1138
- "dailCode": "244",
1139
- "priority": 0,
1140
- "order": 0,
1141
- "placeholder": "923123456"
1142
- },
1143
- {
1144
- "name": "Anguilla",
1145
- "code": "ai",
1146
- "dailCode": "1",
1147
- "priority": 1,
1148
- "order": 0,
1149
- "areaCodes": [
1150
- "264"
1151
- ],
1152
- "placeholder": "2642351234"
1153
- },
1154
- {
1155
- "name": "Antigua and Barbuda",
1156
- "code": "ag",
1157
- "dailCode": "1",
1158
- "priority": 1,
1159
- "order": 0,
1160
- "areaCodes": [
1161
- "268"
1162
- ],
1163
- "placeholder": "2684641234"
1164
- },
1165
- {
1166
- "name": "Argentina",
1167
- "code": "ar",
1168
- "dailCode": "54",
1169
- "priority": 0,
1170
- "order": 0,
1171
- "placeholder": "91123456789"
1172
- },
1173
- {
1174
- "name": "Armenia (Հայաստան)",
1175
- "code": "am",
1176
- "dailCode": "374",
1177
- "priority": 0,
1178
- "order": 0,
1179
- "placeholder": "77123456"
1180
- },
1181
- {
1182
- "name": "Aruba",
1183
- "code": "aw",
1184
- "dailCode": "297",
1185
- "priority": 0,
1186
- "order": 0,
1187
- "placeholder": "5601234"
1188
- },
1189
- {
1190
- "name": "Australia",
1191
- "code": "au",
1192
- "dailCode": "61",
1193
- "priority": 0,
1194
- "order": 0,
1195
- "placeholder": "412345678"
1196
- },
1197
- {
1198
- "name": "Austria (Österreich)",
1199
- "code": "at",
1200
- "dailCode": "43",
1201
- "priority": 0,
1202
- "order": 0,
1203
- "placeholder": "664123456"
1204
- },
1205
- {
1206
- "name": "Azerbaijan (Azərbaycan)",
1207
- "code": "az",
1208
- "dailCode": "994",
1209
- "priority": 0,
1210
- "order": 0,
1211
- "placeholder": "401234567"
1212
- },
1213
- {
1214
- "name": "Bahamas",
1215
- "code": "bs",
1216
- "dailCode": "1",
1217
- "priority": 1,
1218
- "order": 0,
1219
- "areaCodes": [
1220
- "242"
1221
- ],
1222
- "placeholder": "2423591234"
1223
- },
1224
- {
1225
- "name": "Bahrain (البحرين)",
1226
- "code": "bh",
1227
- "dailCode": "973",
1228
- "priority": 0,
1229
- "order": 0,
1230
- "placeholder": "36001234"
1231
- },
1232
- {
1233
- "name": "Bangladesh (বাংলাদেশ)",
1234
- "code": "bd",
1235
- "dailCode": "880",
1236
- "priority": 0,
1237
- "order": 0,
1238
- "placeholder": "1812345678"
1239
- },
1240
- {
1241
- "name": "Barbados",
1242
- "code": "bb",
1243
- "dailCode": "1",
1244
- "priority": 1,
1245
- "order": 0,
1246
- "areaCodes": [
1247
- "246"
1248
- ],
1249
- "placeholder": "2462501234"
1250
- },
1251
- {
1252
- "name": "Belarus (Беларусь)",
1253
- "code": "by",
1254
- "dailCode": "375",
1255
- "priority": 0,
1256
- "order": 0,
1257
- "placeholder": "294911911"
1258
- },
1259
- {
1260
- "name": "Belgium (België)",
1261
- "code": "be",
1262
- "dailCode": "32",
1263
- "priority": 0,
1264
- "order": 0,
1265
- "placeholder": "470123456"
1266
- },
1267
- {
1268
- "name": "Belize",
1269
- "code": "bz",
1270
- "dailCode": "501",
1271
- "priority": 0,
1272
- "order": 0,
1273
- "placeholder": "6221234"
1274
- },
1275
- {
1276
- "name": "Benin (Bénin)",
1277
- "code": "bj",
1278
- "dailCode": "229",
1279
- "priority": 0,
1280
- "order": 0,
1281
- "placeholder": "90011234"
1282
- },
1283
- {
1284
- "name": "Bermuda",
1285
- "code": "bm",
1286
- "dailCode": "1",
1287
- "priority": 1,
1288
- "order": 0,
1289
- "areaCodes": [
1290
- "441"
1291
- ],
1292
- "placeholder": "4413701234"
1293
- },
1294
- {
1295
- "name": "Bhutan (འབྲུག)",
1296
- "code": "bt",
1297
- "dailCode": "975",
1298
- "priority": 0,
1299
- "order": 0,
1300
- "placeholder": "17123456"
1301
- },
1302
- {
1303
- "name": "Bolivia",
1304
- "code": "bo",
1305
- "dailCode": "591",
1306
- "priority": 0,
1307
- "order": 0,
1308
- "placeholder": "71234567"
1309
- },
1310
- {
1311
- "name": "Bosnia and Herzegovina (Босна и Херцеговина)",
1312
- "code": "ba",
1313
- "dailCode": "387",
1314
- "priority": 0,
1315
- "order": 0,
1316
- "placeholder": "61123456"
1317
- },
1318
- {
1319
- "name": "Botswana",
1320
- "code": "bw",
1321
- "dailCode": "267",
1322
- "priority": 0,
1323
- "order": 0,
1324
- "placeholder": "71123456"
1325
- },
1326
- {
1327
- "name": "Brazil (Brasil)",
1328
- "code": "br",
1329
- "dailCode": "55",
1330
- "priority": 0,
1331
- "order": 0,
1332
- "placeholder": "11961234567"
1333
- },
1334
- {
1335
- "name": "British Indian Ocean Territory",
1336
- "code": "io",
1337
- "dailCode": "246",
1338
- "priority": 0,
1339
- "order": 0,
1340
- "placeholder": "3801234"
1341
- },
1342
- {
1343
- "name": "British Virgin Islands",
1344
- "code": "vg",
1345
- "dailCode": "1",
1346
- "priority": 1,
1347
- "order": 0,
1348
- "areaCodes": [
1349
- "284"
1350
- ],
1351
- "placeholder": "2843001234"
1352
- },
1353
- {
1354
- "name": "Brunei",
1355
- "code": "bn",
1356
- "dailCode": "673",
1357
- "priority": 0,
1358
- "order": 0,
1359
- "placeholder": "7123456"
1360
- },
1361
- {
1362
- "name": "Bulgaria (България)",
1363
- "code": "bg",
1364
- "dailCode": "359",
1365
- "priority": 0,
1366
- "order": 0,
1367
- "placeholder": "43012345"
1368
- },
1369
- {
1370
- "name": "Burkina Faso",
1371
- "code": "bf",
1372
- "dailCode": "226",
1373
- "priority": 0,
1374
- "order": 0,
1375
- "placeholder": "70123456"
1376
- },
1377
- {
1378
- "name": "Burundi (Uburundi)",
1379
- "code": "bi",
1380
- "dailCode": "257",
1381
- "priority": 0,
1382
- "order": 0,
1383
- "placeholder": "79561234"
1384
- },
1385
- {
1386
- "name": "Cambodia (កម្ពុជា)",
1387
- "code": "kh",
1388
- "dailCode": "855",
1389
- "priority": 0,
1390
- "order": 0,
1391
- "placeholder": "91234567"
1392
- },
1393
- {
1394
- "name": "Cameroon (Cameroun)",
1395
- "code": "cm",
1396
- "dailCode": "237",
1397
- "priority": 0,
1398
- "order": 0,
1399
- "placeholder": "671234567"
1400
- },
1401
- {
1402
- "name": "Canada",
1403
- "code": "ca",
1404
- "dailCode": "1",
1405
- "priority": 1,
1406
- "order": 0,
1407
- "areaCodes": [
1408
- "204",
1409
- "226",
1410
- "236",
1411
- "249",
1412
- "250",
1413
- "289",
1414
- "306",
1415
- "343",
1416
- "365",
1417
- "387",
1418
- "403",
1419
- "416",
1420
- "418",
1421
- "431",
1422
- "437",
1423
- "438",
1424
- "450",
1425
- "506",
1426
- "514",
1427
- "519",
1428
- "548",
1429
- "579",
1430
- "581",
1431
- "587",
1432
- "604",
1433
- "613",
1434
- "639",
1435
- "647",
1436
- "672",
1437
- "705",
1438
- "709",
1439
- "742",
1440
- "778",
1441
- "780",
1442
- "782",
1443
- "807",
1444
- "819",
1445
- "825",
1446
- "867",
1447
- "873",
1448
- "902",
1449
- "905"
1450
- ],
1451
- "placeholder": "5062345678"
1452
- },
1453
- {
1454
- "name": "Cape Verde (Kabu Verdi)",
1455
- "code": "cv",
1456
- "dailCode": "238",
1457
- "priority": 0,
1458
- "order": 0,
1459
- "placeholder": "9911234"
1460
- },
1461
- {
1462
- "name": "Caribbean Netherlands",
1463
- "code": "bq",
1464
- "dailCode": "599",
1465
- "priority": 1,
1466
- "order": 0,
1467
- "placeholder": "3181234"
1468
- },
1469
- {
1470
- "name": "Cayman Islands",
1471
- "code": "ky",
1472
- "dailCode": "1",
1473
- "priority": 1,
1474
- "order": 0,
1475
- "areaCodes": [
1476
- "345"
1477
- ],
1478
- "placeholder": "3453231234"
1479
- },
1480
- {
1481
- "name": "Central African Republic (République centrafricaine)",
1482
- "code": "cf",
1483
- "dailCode": "236",
1484
- "priority": 0,
1485
- "order": 0,
1486
- "placeholder": "70012345"
1487
- },
1488
- {
1489
- "name": "Chad (Tchad)",
1490
- "code": "td",
1491
- "dailCode": "235",
1492
- "priority": 0,
1493
- "order": 0,
1494
- "placeholder": "63012345"
1495
- },
1496
- {
1497
- "name": "Chile",
1498
- "code": "cl",
1499
- "dailCode": "56",
1500
- "priority": 0,
1501
- "order": 0,
1502
- "placeholder": "221234567"
1503
- },
1504
- {
1505
- "name": "China (中国)",
1506
- "code": "cn",
1507
- "dailCode": "86",
1508
- "priority": 0,
1509
- "order": 0,
1510
- "placeholder": "13123456789"
1511
- },
1512
- {
1513
- "name": "Christmas Island",
1514
- "code": "cx",
1515
- "dailCode": "61",
1516
- "priority": 2,
1517
- "order": 0,
1518
- "placeholder": "412345678"
1519
- },
1520
- {
1521
- "name": "Cocos (Keeling) Islands",
1522
- "code": "cc",
1523
- "dailCode": "61",
1524
- "priority": 1,
1525
- "order": 0,
1526
- "placeholder": "412345678"
1527
- },
1528
- {
1529
- "name": "Colombia",
1530
- "code": "co",
1531
- "dailCode": "57",
1532
- "priority": 0,
1533
- "order": 0,
1534
- "placeholder": "3211234567"
1535
- },
1536
- {
1537
- "name": "Comoros (جزر القمر)",
1538
- "code": "km",
1539
- "dailCode": "269",
1540
- "priority": 0,
1541
- "order": 0,
1542
- "placeholder": "3212345"
1543
- },
1544
- {
1545
- "name": "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",
1546
- "code": "cd",
1547
- "dailCode": "243",
1548
- "priority": 0,
1549
- "order": 0,
1550
- "placeholder": "991234567"
1551
- },
1552
- {
1553
- "name": "Congo (Republic) (Congo-Brazzaville)",
1554
- "code": "cg",
1555
- "dailCode": "242",
1556
- "priority": 0,
1557
- "order": 0,
1558
- "placeholder": "061234567"
1559
- },
1560
- {
1561
- "name": "Cook Islands",
1562
- "code": "ck",
1563
- "dailCode": "682",
1564
- "priority": 0,
1565
- "order": 0,
1566
- "placeholder": "71234"
1567
- },
1568
- {
1569
- "name": "Costa Rica",
1570
- "code": "cr",
1571
- "dailCode": "506",
1572
- "priority": 0,
1573
- "order": 0,
1574
- "placeholder": "83123456"
1575
- },
1576
- {
1577
- "name": "Côte d’Ivoire",
1578
- "code": "ci",
1579
- "dailCode": "225",
1580
- "priority": 0,
1581
- "order": 0,
1582
- "placeholder": "0123456789"
1583
- },
1584
- {
1585
- "name": "Croatia (Hrvatska)",
1586
- "code": "hr",
1587
- "dailCode": "385",
1588
- "priority": 0,
1589
- "order": 0,
1590
- "placeholder": "921234567"
1591
- },
1592
- {
1593
- "name": "Cuba",
1594
- "code": "cu",
1595
- "dailCode": "53",
1596
- "priority": 0,
1597
- "order": 0,
1598
- "placeholder": "51234567"
1599
- },
1600
- {
1601
- "name": "Curaçao",
1602
- "code": "cw",
1603
- "dailCode": "599",
1604
- "priority": 0,
1605
- "order": 0,
1606
- "placeholder": "95181234"
1607
- },
1608
- {
1609
- "name": "Cyprus (Κύπρος)",
1610
- "code": "cy",
1611
- "dailCode": "357",
1612
- "priority": 0,
1613
- "order": 0,
1614
- "placeholder": "96123456"
1615
- },
1616
- {
1617
- "name": "Czech Republic (Česká republika)",
1618
- "code": "cz",
1619
- "dailCode": "420",
1620
- "priority": 0,
1621
- "order": 0,
1622
- "placeholder": "601123456"
1623
- },
1624
- {
1625
- "name": "Denmark (Danmark)",
1626
- "code": "dk",
1627
- "dailCode": "45",
1628
- "priority": 0,
1629
- "order": 0,
1630
- "placeholder": "34412345"
1631
- },
1632
- {
1633
- "name": "Djibouti",
1634
- "code": "dj",
1635
- "dailCode": "253",
1636
- "priority": 0,
1637
- "order": 0,
1638
- "placeholder": "77831001"
1639
- },
1640
- {
1641
- "name": "Dominica",
1642
- "code": "dm",
1643
- "dailCode": "1767",
1644
- "priority": 0,
1645
- "order": 0,
1646
- "placeholder": "7672251234"
1647
- },
1648
- {
1649
- "name": "Dominican Republic (República Dominicana)",
1650
- "code": "do",
1651
- "dailCode": "1",
1652
- "priority": 2,
1653
- "order": 0,
1654
- "areaCodes": [
1655
- "809",
1656
- "829",
1657
- "849"
1658
- ],
1659
- "placeholder": "8092345678"
1660
- },
1661
- {
1662
- "name": "Ecuador",
1663
- "code": "ec",
1664
- "dailCode": "593",
1665
- "priority": 0,
1666
- "order": 0,
1667
- "placeholder": "991234567"
1668
- },
1669
- {
1670
- "name": "Egypt (مصر)",
1671
- "code": "eg",
1672
- "dailCode": "20",
1673
- "priority": 0,
1674
- "order": 0,
1675
- "placeholder": "1001234567"
1676
- },
1677
- {
1678
- "name": "El Salvador",
1679
- "code": "sv",
1680
- "dailCode": "503",
1681
- "priority": 0,
1682
- "order": 0,
1683
- "placeholder": "70123456"
1684
- },
1685
- {
1686
- "name": "Equatorial Guinea (Guinea Ecuatorial)",
1687
- "code": "gq",
1688
- "dailCode": "240",
1689
- "priority": 0,
1690
- "order": 0,
1691
- "placeholder": "222123456"
1692
- },
1693
- {
1694
- "name": "Eritrea",
1695
- "code": "er",
1696
- "dailCode": "291",
1697
- "priority": 0,
1698
- "order": 0,
1699
- "placeholder": "7123456"
1700
- },
1701
- {
1702
- "name": "Estonia (Eesti)",
1703
- "code": "ee",
1704
- "dailCode": "372",
1705
- "priority": 0,
1706
- "order": 0,
1707
- "placeholder": "51234567"
1708
- },
1709
- {
1710
- "name": "Ethiopia",
1711
- "code": "et",
1712
- "dailCode": "251",
1713
- "priority": 0,
1714
- "order": 0,
1715
- "placeholder": "911234567"
1716
- },
1717
- {
1718
- "name": "Falkland Islands (Islas Malvinas)",
1719
- "code": "fk",
1720
- "dailCode": "500",
1721
- "priority": 0,
1722
- "order": 0,
1723
- "placeholder": "51234"
1724
- },
1725
- {
1726
- "name": "Faroe Islands (Føroyar)",
1727
- "code": "fo",
1728
- "dailCode": "298",
1729
- "priority": 0,
1730
- "order": 0,
1731
- "placeholder": "211234"
1732
- },
1733
- {
1734
- "name": "Fiji",
1735
- "code": "fj",
1736
- "dailCode": "679",
1737
- "priority": 0,
1738
- "order": 0,
1739
- "placeholder": "7012345"
1740
- },
1741
- {
1742
- "name": "Finland (Suomi)",
1743
- "code": "fi",
1744
- "dailCode": "358",
1745
- "priority": 0,
1746
- "order": 0,
1747
- "placeholder": "412345678"
1748
- },
1749
- {
1750
- "name": "France",
1751
- "code": "fr",
1752
- "dailCode": "33",
1753
- "priority": 0,
1754
- "order": 0,
1755
- "placeholder": "612345678"
1756
- },
1757
- {
1758
- "name": "French Guiana (Guyane française)",
1759
- "code": "gf",
1760
- "dailCode": "594",
1761
- "priority": 0,
1762
- "order": 0,
1763
- "placeholder": "694201234"
1764
- },
1765
- {
1766
- "name": "French Polynesia (Polynésie française)",
1767
- "code": "pf",
1768
- "dailCode": "689",
1769
- "priority": 0,
1770
- "order": 0,
1771
- "placeholder": "87123456"
1772
- },
1773
- {
1774
- "name": "Gabon",
1775
- "code": "ga",
1776
- "dailCode": "241",
1777
- "priority": 0,
1778
- "order": 0,
1779
- "placeholder": "06031234"
1780
- },
1781
- {
1782
- "name": "Gambia",
1783
- "code": "gm",
1784
- "dailCode": "220",
1785
- "priority": 0,
1786
- "order": 0,
1787
- "placeholder": "3012345"
1788
- },
1789
- {
1790
- "name": "Georgia (საქართველო)",
1791
- "code": "ge",
1792
- "dailCode": "995",
1793
- "priority": 0,
1794
- "order": 0,
1795
- "placeholder": "555123456"
1796
- },
1797
- {
1798
- "name": "Germany (Deutschland)",
1799
- "code": "de",
1800
- "dailCode": "49",
1801
- "priority": 0,
1802
- "order": 0,
1803
- "placeholder": "15123456789"
1804
- },
1805
- {
1806
- "name": "Ghana (Gaana)",
1807
- "code": "gh",
1808
- "dailCode": "233",
1809
- "priority": 0,
1810
- "order": 0,
1811
- "placeholder": "231234567"
1812
- },
1813
- {
1814
- "name": "Gibraltar",
1815
- "code": "gi",
1816
- "dailCode": "350",
1817
- "priority": 0,
1818
- "order": 0,
1819
- "placeholder": "57123456"
1820
- },
1821
- {
1822
- "name": "Greece (Ελλάδα)",
1823
- "code": "gr",
1824
- "dailCode": "30",
1825
- "priority": 0,
1826
- "order": 0,
1827
- "placeholder": "6912345678"
1828
- },
1829
- {
1830
- "name": "Greenland (Kalaallit Nunaat)",
1831
- "code": "gl",
1832
- "dailCode": "299",
1833
- "priority": 0,
1834
- "order": 0,
1835
- "placeholder": "221234"
1836
- },
1837
- {
1838
- "name": "Grenada",
1839
- "code": "gd",
1840
- "dailCode": "1473",
1841
- "priority": 0,
1842
- "order": 0,
1843
- "placeholder": "4734031234"
1844
- },
1845
- {
1846
- "name": "Guadeloupe",
1847
- "code": "gp",
1848
- "dailCode": "590",
1849
- "priority": 0,
1850
- "order": 0,
1851
- "placeholder": "690001234"
1852
- },
1853
- {
1854
- "name": "Guam",
1855
- "code": "gu",
1856
- "dailCode": "1",
1857
- "priority": 1,
1858
- "order": 0,
1859
- "areaCodes": [
1860
- "671"
1861
- ],
1862
- "placeholder": "6713001234"
1863
- },
1864
- {
1865
- "name": "Guatemala",
1866
- "code": "gt",
1867
- "dailCode": "502",
1868
- "priority": 0,
1869
- "order": 0,
1870
- "placeholder": "51234567"
1871
- },
1872
- {
1873
- "name": "Guernsey",
1874
- "code": "gg",
1875
- "dailCode": "44",
1876
- "priority": 1,
1877
- "order": 0,
1878
- "areaCodes": [
1879
- "1481"
1880
- ],
1881
- "placeholder": "7781123456"
1882
- },
1883
- {
1884
- "name": "Guinea (Guinée)",
1885
- "code": "gn",
1886
- "dailCode": "224",
1887
- "priority": 0,
1888
- "order": 0,
1889
- "placeholder": "601123456"
1890
- },
1891
- {
1892
- "name": "Guinea-Bissau (Guiné Bissau)",
1893
- "code": "gw",
1894
- "dailCode": "245",
1895
- "priority": 0,
1896
- "order": 0,
1897
- "placeholder": "955012345"
1898
- },
1899
- {
1900
- "name": "Guyana",
1901
- "code": "gy",
1902
- "dailCode": "592",
1903
- "priority": 0,
1904
- "order": 0,
1905
- "placeholder": "6091234"
1906
- },
1907
- {
1908
- "name": "Haiti",
1909
- "code": "ht",
1910
- "dailCode": "509",
1911
- "priority": 0,
1912
- "order": 0,
1913
- "placeholder": "34101234"
1914
- },
1915
- {
1916
- "name": "Honduras",
1917
- "code": "hn",
1918
- "dailCode": "504",
1919
- "priority": 0,
1920
- "order": 0,
1921
- "placeholder": "91234567"
1922
- },
1923
- {
1924
- "name": "Hong Kong (香港)",
1925
- "code": "hk",
1926
- "dailCode": "852",
1927
- "priority": 0,
1928
- "order": 0,
1929
- "placeholder": "51234567"
1930
- },
1931
- {
1932
- "name": "Hungary (Magyarország)",
1933
- "code": "hu",
1934
- "dailCode": "36",
1935
- "priority": 0,
1936
- "order": 0,
1937
- "placeholder": "201234567"
1938
- },
1939
- {
1940
- "name": "Iceland (Ísland)",
1941
- "code": "is",
1942
- "dailCode": "354",
1943
- "priority": 0,
1944
- "order": 0,
1945
- "placeholder": "6111234"
1946
- },
1947
- {
1948
- "name": "India (भारत)",
1949
- "code": "in",
1950
- "dailCode": "91",
1951
- "priority": 0,
1952
- "order": 0,
1953
- "placeholder": "8123456789"
1954
- },
1955
- {
1956
- "name": "Indonesia",
1957
- "code": "id",
1958
- "dailCode": "62",
1959
- "priority": 0,
1960
- "order": 0,
1961
- "placeholder": "812345678"
1962
- },
1963
- {
1964
- "name": "Iran (ايران)",
1965
- "code": "ir",
1966
- "dailCode": "98",
1967
- "priority": 0,
1968
- "order": 0,
1969
- "placeholder": "9123456789"
1970
- },
1971
- {
1972
- "name": "Iraq (العراق)",
1973
- "code": "iq",
1974
- "dailCode": "964",
1975
- "priority": 0,
1976
- "order": 0,
1977
- "placeholder": "7912345678"
1978
- },
1979
- {
1980
- "name": "Ireland",
1981
- "code": "ie",
1982
- "dailCode": "353",
1983
- "priority": 0,
1984
- "order": 0,
1985
- "placeholder": "850123456"
1986
- },
1987
- {
1988
- "name": "Isle of Man",
1989
- "code": "im",
1990
- "dailCode": "44",
1991
- "priority": 2,
1992
- "order": 0,
1993
- "areaCodes": [
1994
- "1624"
1995
- ],
1996
- "placeholder": "7924123456"
1997
- },
1998
- {
1999
- "name": "Italy (Italia)",
2000
- "code": "it",
2001
- "dailCode": "39",
2002
- "priority": 0,
2003
- "order": 0,
2004
- "placeholder": "3123456789"
2005
- },
2006
- {
2007
- "name": "Jamaica",
2008
- "code": "jm",
2009
- "dailCode": "1",
2010
- "priority": 1,
2011
- "order": 0,
2012
- "areaCodes": [
2013
- "876"
2014
- ],
2015
- "placeholder": "8762101234"
2016
- },
2017
- {
2018
- "name": "Japan (日本)",
2019
- "code": "jp",
2020
- "dailCode": "81",
2021
- "priority": 0,
2022
- "order": 0,
2023
- "placeholder": "9012345678"
2024
- },
2025
- {
2026
- "name": "Jersey",
2027
- "code": "je",
2028
- "dailCode": "44",
2029
- "priority": 3,
2030
- "order": 0,
2031
- "areaCodes": [
2032
- "1534"
2033
- ],
2034
- "placeholder": "7797712345"
2035
- },
2036
- {
2037
- "name": "Jordan (الأردن)",
2038
- "code": "jo",
2039
- "dailCode": "962",
2040
- "priority": 0,
2041
- "order": 0,
2042
- "placeholder": "790123456"
2043
- },
2044
- {
2045
- "name": "Kazakhstan (Казахстан)",
2046
- "code": "kz",
2047
- "dailCode": "7",
2048
- "priority": 1,
2049
- "order": 0,
2050
- "placeholder": "7710009998"
2051
- },
2052
- {
2053
- "name": "Kenya",
2054
- "code": "ke",
2055
- "dailCode": "254",
2056
- "priority": 0,
2057
- "order": 0,
2058
- "placeholder": "712123456"
2059
- },
2060
- {
2061
- "name": "Kiribati",
2062
- "code": "ki",
2063
- "dailCode": "686",
2064
- "priority": 0,
2065
- "order": 0,
2066
- "placeholder": "72001234"
2067
- },
2068
- {
2069
- "name": "Kosovo",
2070
- "code": "xk",
2071
- "dailCode": "383",
2072
- "priority": 0,
2073
- "order": 0,
2074
- "placeholder": "43201234"
2075
- },
2076
- {
2077
- "name": "Kuwait (الكويت)",
2078
- "code": "kw",
2079
- "dailCode": "965",
2080
- "priority": 0,
2081
- "order": 0,
2082
- "placeholder": "50012345"
2083
- },
2084
- {
2085
- "name": "Kyrgyzstan (Кыргызстан)",
2086
- "code": "kg",
2087
- "dailCode": "996",
2088
- "priority": 0,
2089
- "order": 0,
2090
- "placeholder": "700123456"
2091
- },
2092
- {
2093
- "name": "Laos (ລາວ)",
2094
- "code": "la",
2095
- "dailCode": "856",
2096
- "priority": 0,
2097
- "order": 0,
2098
- "placeholder": "2023123456"
2099
- },
2100
- {
2101
- "name": "Latvia (Latvija)",
2102
- "code": "lv",
2103
- "dailCode": "371",
2104
- "priority": 0,
2105
- "order": 0,
2106
- "placeholder": "21234567"
2107
- },
2108
- {
2109
- "name": "Lebanon (لبنان)",
2110
- "code": "lb",
2111
- "dailCode": "961",
2112
- "priority": 0,
2113
- "order": 0,
2114
- "placeholder": "71123456"
2115
- },
2116
- {
2117
- "name": "Lesotho",
2118
- "code": "ls",
2119
- "dailCode": "266",
2120
- "priority": 0,
2121
- "order": 0,
2122
- "placeholder": "50123456"
2123
- },
2124
- {
2125
- "name": "Liberia",
2126
- "code": "lr",
2127
- "dailCode": "231",
2128
- "priority": 0,
2129
- "order": 0,
2130
- "placeholder": "770123456"
2131
- },
2132
- {
2133
- "name": "Libya (ليبيا)",
2134
- "code": "ly",
2135
- "dailCode": "218",
2136
- "priority": 0,
2137
- "order": 0,
2138
- "placeholder": "912345678"
2139
- },
2140
- {
2141
- "name": "Liechtenstein",
2142
- "code": "li",
2143
- "dailCode": "423",
2144
- "priority": 0,
2145
- "order": 0,
2146
- "placeholder": "660234567"
2147
- },
2148
- {
2149
- "name": "Lithuania (Lietuva)",
2150
- "code": "lt",
2151
- "dailCode": "370",
2152
- "priority": 0,
2153
- "order": 0,
2154
- "placeholder": "61234567"
2155
- },
2156
- {
2157
- "name": "Luxembourg",
2158
- "code": "lu",
2159
- "dailCode": "352",
2160
- "priority": 0,
2161
- "order": 0,
2162
- "placeholder": "628123456"
2163
- },
2164
- {
2165
- "name": "Macau (澳門)",
2166
- "code": "mo",
2167
- "dailCode": "853",
2168
- "priority": 0,
2169
- "order": 0,
2170
- "placeholder": "66123456"
2171
- },
2172
- {
2173
- "name": "Macedonia (FYROM) (Македонија)",
2174
- "code": "mk",
2175
- "dailCode": "389",
2176
- "priority": 0,
2177
- "order": 0,
2178
- "placeholder": "72345678"
2179
- },
2180
- {
2181
- "name": "Madagascar (Madagasikara)",
2182
- "code": "mg",
2183
- "dailCode": "261",
2184
- "priority": 0,
2185
- "order": 0,
2186
- "placeholder": "321234567"
2187
- },
2188
- {
2189
- "name": "Malawi",
2190
- "code": "mw",
2191
- "dailCode": "265",
2192
- "priority": 0,
2193
- "order": 0,
2194
- "placeholder": "991234567"
2195
- },
2196
- {
2197
- "name": "Malaysia",
2198
- "code": "my",
2199
- "dailCode": "60",
2200
- "priority": 0,
2201
- "order": 0,
2202
- "placeholder": "123456789"
2203
- },
2204
- {
2205
- "name": "Maldives",
2206
- "code": "mv",
2207
- "dailCode": "960",
2208
- "priority": 0,
2209
- "order": 0,
2210
- "placeholder": "7712345"
2211
- },
2212
- {
2213
- "name": "Mali",
2214
- "code": "ml",
2215
- "dailCode": "223",
2216
- "priority": 0,
2217
- "order": 0,
2218
- "placeholder": "65012345"
2219
- },
2220
- {
2221
- "name": "Malta",
2222
- "code": "mt",
2223
- "dailCode": "356",
2224
- "priority": 0,
2225
- "order": 0,
2226
- "placeholder": "96961234"
2227
- },
2228
- {
2229
- "name": "Marshall Islands",
2230
- "code": "mh",
2231
- "dailCode": "692",
2232
- "priority": 0,
2233
- "order": 0,
2234
- "placeholder": "2351234"
2235
- },
2236
- {
2237
- "name": "Martinique",
2238
- "code": "mq",
2239
- "dailCode": "596",
2240
- "priority": 0,
2241
- "order": 0,
2242
- "placeholder": "696201234"
2243
- },
2244
- {
2245
- "name": "Mauritania (موريتانيا)",
2246
- "code": "mr",
2247
- "dailCode": "222",
2248
- "priority": 0,
2249
- "order": 0,
2250
- "placeholder": "22123456"
2251
- },
2252
- {
2253
- "name": "Mauritius (Moris)",
2254
- "code": "mu",
2255
- "dailCode": "230",
2256
- "priority": 0,
2257
- "order": 0,
2258
- "placeholder": "52512345"
2259
- },
2260
- {
2261
- "name": "Mayotte",
2262
- "code": "yt",
2263
- "dailCode": "262",
2264
- "priority": 1,
2265
- "order": 0,
2266
- "placeholder": "639012345"
2267
- },
2268
- {
2269
- "name": "Mexico (México)",
2270
- "code": "mx",
2271
- "dailCode": "52",
2272
- "priority": 0,
2273
- "order": 0,
2274
- "placeholder": "2221234567"
2275
- },
2276
- {
2277
- "name": "Micronesia",
2278
- "code": "fm",
2279
- "dailCode": "691",
2280
- "priority": 0,
2281
- "order": 0,
2282
- "placeholder": "3501234"
2283
- },
2284
- {
2285
- "name": "Moldova (Republica Moldova)",
2286
- "code": "md",
2287
- "dailCode": "373",
2288
- "priority": 0,
2289
- "order": 0,
2290
- "placeholder": "62112345"
2291
- },
2292
- {
2293
- "name": "Monaco",
2294
- "code": "mc",
2295
- "dailCode": "377",
2296
- "priority": 0,
2297
- "order": 0,
2298
- "placeholder": "612345678"
2299
- },
2300
- {
2301
- "name": "Mongolia (Монгол)",
2302
- "code": "mn",
2303
- "dailCode": "976",
2304
- "priority": 0,
2305
- "order": 0,
2306
- "placeholder": "88123456"
2307
- },
2308
- {
2309
- "name": "Montenegro (Crna Gora)",
2310
- "code": "me",
2311
- "dailCode": "382",
2312
- "priority": 0,
2313
- "order": 0,
2314
- "placeholder": "67622901"
2315
- },
2316
- {
2317
- "name": "Montserrat",
2318
- "code": "ms",
2319
- "dailCode": "1",
2320
- "priority": 1,
2321
- "order": 0,
2322
- "areaCodes": [
2323
- "664"
2324
- ],
2325
- "placeholder": "6644923456"
2326
- },
2327
- {
2328
- "name": "Morocco (المغرب)",
2329
- "code": "ma",
2330
- "dailCode": "212",
2331
- "priority": 0,
2332
- "order": 0,
2333
- "placeholder": "650123456"
2334
- },
2335
- {
2336
- "name": "Mozambique (Moçambique)",
2337
- "code": "mz",
2338
- "dailCode": "258",
2339
- "priority": 0,
2340
- "order": 0,
2341
- "placeholder": "821234567"
2342
- },
2343
- {
2344
- "name": "Myanmar (Burma) (မြန်မာ)",
2345
- "code": "mm",
2346
- "dailCode": "95",
2347
- "priority": 0,
2348
- "order": 0,
2349
- "placeholder": "92123456"
2350
- },
2351
- {
2352
- "name": "Namibia (Namibië)",
2353
- "code": "na",
2354
- "dailCode": "264",
2355
- "priority": 0,
2356
- "order": 0,
2357
- "placeholder": "811234567"
2358
- },
2359
- {
2360
- "name": "Nauru",
2361
- "code": "nr",
2362
- "dailCode": "674",
2363
- "priority": 0,
2364
- "order": 0,
2365
- "placeholder": "5551234"
2366
- },
2367
- {
2368
- "name": "Nepal (नेपाल)",
2369
- "code": "np",
2370
- "dailCode": "977",
2371
- "priority": 0,
2372
- "order": 0,
2373
- "placeholder": "9841234567"
2374
- },
2375
- {
2376
- "name": "Netherlands (Nederland)",
2377
- "code": "nl",
2378
- "dailCode": "31",
2379
- "priority": 0,
2380
- "order": 0,
2381
- "placeholder": "612345678"
2382
- },
2383
- {
2384
- "name": "New Caledonia (Nouvelle-Calédonie)",
2385
- "code": "nc",
2386
- "dailCode": "687",
2387
- "priority": 0,
2388
- "order": 0,
2389
- "placeholder": "751234"
2390
- },
2391
- {
2392
- "name": "New Zealand",
2393
- "code": "nz",
2394
- "dailCode": "64",
2395
- "priority": 0,
2396
- "order": 0,
2397
- "placeholder": "211234567"
2398
- },
2399
- {
2400
- "name": "Nicaragua",
2401
- "code": "ni",
2402
- "dailCode": "505",
2403
- "priority": 0,
2404
- "order": 0,
2405
- "placeholder": "81234567"
2406
- },
2407
- {
2408
- "name": "Niger (Nijar)",
2409
- "code": "ne",
2410
- "dailCode": "227",
2411
- "priority": 0,
2412
- "order": 0,
2413
- "placeholder": "93123456"
2414
- },
2415
- {
2416
- "name": "Nigeria",
2417
- "code": "ng",
2418
- "dailCode": "234",
2419
- "priority": 0,
2420
- "order": 0,
2421
- "placeholder": "8021234567"
2422
- },
2423
- {
2424
- "name": "Niue",
2425
- "code": "nu",
2426
- "dailCode": "683",
2427
- "priority": 0,
2428
- "order": 0,
2429
- "placeholder": "8884012"
2430
- },
2431
- {
2432
- "name": "Norfolk Island",
2433
- "code": "nf",
2434
- "dailCode": "672",
2435
- "priority": 0,
2436
- "order": 0,
2437
- "placeholder": "381234"
2438
- },
2439
- {
2440
- "name": "North Korea (조선 민주주의 인민 공화국)",
2441
- "code": "kp",
2442
- "dailCode": "850",
2443
- "priority": 0,
2444
- "order": 0,
2445
- "placeholder": "1921234567"
2446
- },
2447
- {
2448
- "name": "Northern Mariana Islands",
2449
- "code": "mp",
2450
- "dailCode": "1670",
2451
- "priority": 0,
2452
- "order": 0,
2453
- "placeholder": "6702345678"
2454
- },
2455
- {
2456
- "name": "Norway (Norge)",
2457
- "code": "no",
2458
- "dailCode": "47",
2459
- "priority": 0,
2460
- "order": 0,
2461
- "placeholder": "40612345"
2462
- },
2463
- {
2464
- "name": "Oman (عُمان)",
2465
- "code": "om",
2466
- "dailCode": "968",
2467
- "priority": 0,
2468
- "order": 0,
2469
- "placeholder": "92123456"
2470
- },
2471
- {
2472
- "name": "Pakistan (پاکستان)",
2473
- "code": "pk",
2474
- "dailCode": "92",
2475
- "priority": 0,
2476
- "order": 0,
2477
- "placeholder": "3012345678"
2478
- },
2479
- {
2480
- "name": "Palau",
2481
- "code": "pw",
2482
- "dailCode": "680",
2483
- "priority": 0,
2484
- "order": 0,
2485
- "placeholder": "6201234"
2486
- },
2487
- {
2488
- "name": "Palestine (فلسطين)",
2489
- "code": "ps",
2490
- "dailCode": "970",
2491
- "priority": 0,
2492
- "order": 0,
2493
- "placeholder": "599123456"
2494
- },
2495
- {
2496
- "name": "Panama (Panamá)",
2497
- "code": "pa",
2498
- "dailCode": "507",
2499
- "priority": 0,
2500
- "order": 0,
2501
- "placeholder": "61234567"
2502
- },
2503
- {
2504
- "name": "Papua New Guinea",
2505
- "code": "pg",
2506
- "dailCode": "675",
2507
- "priority": 0,
2508
- "order": 0,
2509
- "placeholder": "70123456"
2510
- },
2511
- {
2512
- "name": "Paraguay",
2513
- "code": "py",
2514
- "dailCode": "595",
2515
- "priority": 0,
2516
- "order": 0,
2517
- "placeholder": "961456789"
2518
- },
2519
- {
2520
- "name": "Peru (Perú)",
2521
- "code": "pe",
2522
- "dailCode": "51",
2523
- "priority": 0,
2524
- "order": 0,
2525
- "placeholder": "912345678"
2526
- },
2527
- {
2528
- "name": "Philippines",
2529
- "code": "ph",
2530
- "dailCode": "63",
2531
- "priority": 0,
2532
- "order": 0,
2533
- "placeholder": "9051234567"
2534
- },
2535
- {
2536
- "name": "Poland (Polska)",
2537
- "code": "pl",
2538
- "dailCode": "48",
2539
- "priority": 0,
2540
- "order": 0,
2541
- "placeholder": "512345678"
2542
- },
2543
- {
2544
- "name": "Portugal",
2545
- "code": "pt",
2546
- "dailCode": "351",
2547
- "priority": 0,
2548
- "order": 0,
2549
- "placeholder": "912345678"
2550
- },
2551
- {
2552
- "name": "Puerto Rico",
2553
- "code": "pr",
2554
- "dailCode": "1",
2555
- "priority": 3,
2556
- "order": 0,
2557
- "areaCodes": [
2558
- "787",
2559
- "939"
2560
- ],
2561
- "placeholder": "7872345678"
2562
- },
2563
- {
2564
- "name": "Qatar (قطر)",
2565
- "code": "qa",
2566
- "dailCode": "974",
2567
- "priority": 0,
2568
- "order": 0,
2569
- "placeholder": "33123456"
2570
- },
2571
- {
2572
- "name": "Réunion (La Réunion)",
2573
- "code": "re",
2574
- "dailCode": "262",
2575
- "priority": 0,
2576
- "order": 0,
2577
- "placeholder": "692123456"
2578
- },
2579
- {
2580
- "name": "Romania (România)",
2581
- "code": "ro",
2582
- "dailCode": "40",
2583
- "priority": 0,
2584
- "order": 0,
2585
- "placeholder": "712034567"
2586
- },
2587
- {
2588
- "name": "Russia (Россия)",
2589
- "code": "ru",
2590
- "dailCode": "7",
2591
- "priority": 0,
2592
- "order": 0,
2593
- "placeholder": "9123456789"
2594
- },
2595
- {
2596
- "name": "Rwanda",
2597
- "code": "rw",
2598
- "dailCode": "250",
2599
- "priority": 0,
2600
- "order": 0,
2601
- "placeholder": "720123456"
2602
- },
2603
- {
2604
- "name": "Saint Barthélemy (Saint-Barthélemy)",
2605
- "code": "bl",
2606
- "dailCode": "590",
2607
- "priority": 1,
2608
- "order": 0,
2609
- "placeholder": "690001234"
2610
- },
2611
- {
2612
- "name": "Saint Helena",
2613
- "code": "sh",
2614
- "dailCode": "290",
2615
- "priority": 0,
2616
- "order": 0,
2617
- "placeholder": "51234"
2618
- },
2619
- {
2620
- "name": "Saint Kitts and Nevis",
2621
- "code": "kn",
2622
- "dailCode": "1869",
2623
- "priority": 0,
2624
- "order": 0,
2625
- "placeholder": "8697652917"
2626
- },
2627
- {
2628
- "name": "Saint Lucia",
2629
- "code": "lc",
2630
- "dailCode": "1",
2631
- "priority": 1,
2632
- "order": 0,
2633
- "areaCodes": [
2634
- "758"
2635
- ],
2636
- "placeholder": "7582845678"
2637
- },
2638
- {
2639
- "name": "Saint Martin (Saint-Martin (partie française))",
2640
- "code": "mf",
2641
- "dailCode": "590",
2642
- "priority": 2,
2643
- "order": 0,
2644
- "placeholder": "690001234"
2645
- },
2646
- {
2647
- "name": "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",
2648
- "code": "pm",
2649
- "dailCode": "508",
2650
- "priority": 0,
2651
- "order": 0,
2652
- "placeholder": "551234"
2653
- },
2654
- {
2655
- "name": "Saint Vincent and the Grenadines",
2656
- "code": "vc",
2657
- "dailCode": "1",
2658
- "priority": 1,
2659
- "order": 0,
2660
- "areaCodes": [
2661
- "784"
2662
- ],
2663
- "placeholder": "7844301234"
2664
- },
2665
- {
2666
- "name": "Samoa",
2667
- "code": "ws",
2668
- "dailCode": "685",
2669
- "priority": 0,
2670
- "order": 0,
2671
- "placeholder": "7212345"
2672
- },
2673
- {
2674
- "name": "San Marino",
2675
- "code": "sm",
2676
- "dailCode": "378",
2677
- "priority": 0,
2678
- "order": 0,
2679
- "placeholder": "66661212"
2680
- },
2681
- {
2682
- "name": "São Tomé and Príncipe (São Tomé e Príncipe)",
2683
- "code": "st",
2684
- "dailCode": "239",
2685
- "priority": 0,
2686
- "order": 0,
2687
- "placeholder": "9812345"
2688
- },
2689
- {
2690
- "name": "Saudi Arabia (المملكة العربية السعودية)",
2691
- "code": "sa",
2692
- "dailCode": "966",
2693
- "priority": 0,
2694
- "order": 1,
2695
- "placeholder": "512345678"
2696
- },
2697
- {
2698
- "name": "Senegal (Sénégal)",
2699
- "code": "sn",
2700
- "dailCode": "221",
2701
- "priority": 0,
2702
- "order": 0,
2703
- "placeholder": "701234567"
2704
- },
2705
- {
2706
- "name": "Serbia (Србија)",
2707
- "code": "rs",
2708
- "dailCode": "381",
2709
- "priority": 0,
2710
- "order": 0,
2711
- "placeholder": "601234567"
2712
- },
2713
- {
2714
- "name": "Seychelles",
2715
- "code": "sc",
2716
- "dailCode": "248",
2717
- "priority": 0,
2718
- "order": 0,
2719
- "placeholder": "2510123"
2720
- },
2721
- {
2722
- "name": "Sierra Leone",
2723
- "code": "sl",
2724
- "dailCode": "232",
2725
- "priority": 0,
2726
- "order": 0,
2727
- "placeholder": "25123456"
2728
- },
2729
- {
2730
- "name": "Singapore",
2731
- "code": "sg",
2732
- "dailCode": "65",
2733
- "priority": 0,
2734
- "order": 0,
2735
- "placeholder": "81234567"
2736
- },
2737
- {
2738
- "name": "Sint Maarten",
2739
- "code": "sx",
2740
- "dailCode": "1",
2741
- "priority": 1,
2742
- "order": 0,
2743
- "areaCodes": [
2744
- "721"
2745
- ],
2746
- "placeholder": "7215205678"
2747
- },
2748
- {
2749
- "name": "Slovakia (Slovensko)",
2750
- "code": "sk",
2751
- "dailCode": "421",
2752
- "priority": 0,
2753
- "order": 0,
2754
- "placeholder": "912123456"
2755
- },
2756
- {
2757
- "name": "Slovenia (Slovenija)",
2758
- "code": "si",
2759
- "dailCode": "386",
2760
- "priority": 0,
2761
- "order": 0,
2762
- "placeholder": "31234567"
2763
- },
2764
- {
2765
- "name": "Solomon Islands",
2766
- "code": "sb",
2767
- "dailCode": "677",
2768
- "priority": 0,
2769
- "order": 0,
2770
- "placeholder": "7421234"
2771
- },
2772
- {
2773
- "name": "Somalia (Soomaaliya)",
2774
- "code": "so",
2775
- "dailCode": "252",
2776
- "priority": 0,
2777
- "order": 0,
2778
- "placeholder": "71123456"
2779
- },
2780
- {
2781
- "name": "South Africa",
2782
- "code": "za",
2783
- "dailCode": "27",
2784
- "priority": 0,
2785
- "order": 0,
2786
- "placeholder": "711234567"
2787
- },
2788
- {
2789
- "name": "South Korea (대한민국)",
2790
- "code": "kr",
2791
- "dailCode": "82",
2792
- "priority": 0,
2793
- "order": 0,
2794
- "placeholder": "1020000000"
2795
- },
2796
- {
2797
- "name": "South Sudan (جنوب السودان)",
2798
- "code": "ss",
2799
- "dailCode": "211",
2800
- "priority": 0,
2801
- "order": 0,
2802
- "placeholder": "977123456"
2803
- },
2804
- {
2805
- "name": "Spain (España)",
2806
- "code": "es",
2807
- "dailCode": "34",
2808
- "priority": 0,
2809
- "order": 0,
2810
- "placeholder": "612345678"
2811
- },
2812
- {
2813
- "name": "Sri Lanka (ශ්‍රී ලංකාව)",
2814
- "code": "lk",
2815
- "dailCode": "94",
2816
- "priority": 0,
2817
- "order": 0,
2818
- "placeholder": "712345678"
2819
- },
2820
- {
2821
- "name": "Sudan (السودان)",
2822
- "code": "sd",
2823
- "dailCode": "249",
2824
- "priority": 0,
2825
- "order": 0,
2826
- "placeholder": "911231234"
2827
- },
2828
- {
2829
- "name": "Suriname",
2830
- "code": "sr",
2831
- "dailCode": "597",
2832
- "priority": 0,
2833
- "order": 0,
2834
- "placeholder": "7412345"
2835
- },
2836
- {
2837
- "name": "Svalbard and Jan Mayen",
2838
- "code": "sj",
2839
- "dailCode": "47",
2840
- "priority": 1,
2841
- "order": 0,
2842
- "placeholder": "41234567"
2843
- },
2844
- {
2845
- "name": "Swaziland",
2846
- "code": "sz",
2847
- "dailCode": "268",
2848
- "priority": 0,
2849
- "order": 0,
2850
- "placeholder": "76123456"
2851
- },
2852
- {
2853
- "name": "Sweden (Sverige)",
2854
- "code": "se",
2855
- "dailCode": "46",
2856
- "priority": 0,
2857
- "order": 0,
2858
- "placeholder": "701234567"
2859
- },
2860
- {
2861
- "name": "Switzerland (Schweiz)",
2862
- "code": "ch",
2863
- "dailCode": "41",
2864
- "priority": 0,
2865
- "order": 0,
2866
- "placeholder": "781234567"
2867
- },
2868
- {
2869
- "name": "Syria (سوريا)",
2870
- "code": "sy",
2871
- "dailCode": "963",
2872
- "priority": 0,
2873
- "order": 0,
2874
- "placeholder": "944567890"
2875
- },
2876
- {
2877
- "name": "Taiwan (台灣)",
2878
- "code": "tw",
2879
- "dailCode": "886",
2880
- "priority": 0,
2881
- "order": 0,
2882
- "placeholder": "912345678"
2883
- },
2884
- {
2885
- "name": "Tajikistan",
2886
- "code": "tj",
2887
- "dailCode": "992",
2888
- "priority": 0,
2889
- "order": 0,
2890
- "placeholder": "917123456"
2891
- },
2892
- {
2893
- "name": "Tanzania",
2894
- "code": "tz",
2895
- "dailCode": "255",
2896
- "priority": 0,
2897
- "order": 0,
2898
- "placeholder": "621234567"
2899
- },
2900
- {
2901
- "name": "Thailand (ไทย)",
2902
- "code": "th",
2903
- "dailCode": "66",
2904
- "priority": 0,
2905
- "order": 0,
2906
- "placeholder": "812345678"
2907
- },
2908
- {
2909
- "name": "Timor-Leste",
2910
- "code": "tl",
2911
- "dailCode": "670",
2912
- "priority": 0,
2913
- "order": 0,
2914
- "placeholder": "77212345"
2915
- },
2916
- {
2917
- "name": "Togo",
2918
- "code": "tg",
2919
- "dailCode": "228",
2920
- "priority": 0,
2921
- "order": 0,
2922
- "placeholder": "90112345"
2923
- },
2924
- {
2925
- "name": "Tokelau",
2926
- "code": "tk",
2927
- "dailCode": "690",
2928
- "priority": 0,
2929
- "order": 0,
2930
- "placeholder": "7290"
2931
- },
2932
- {
2933
- "name": "Tonga",
2934
- "code": "to",
2935
- "dailCode": "676",
2936
- "priority": 0,
2937
- "order": 0,
2938
- "placeholder": "7715123"
2939
- },
2940
- {
2941
- "name": "Trinidad and Tobago",
2942
- "code": "tt",
2943
- "dailCode": "1",
2944
- "priority": 1,
2945
- "order": 0,
2946
- "areaCodes": [
2947
- "868"
2948
- ],
2949
- "placeholder": "8682911234"
2950
- },
2951
- {
2952
- "name": "Tunisia (تونس)",
2953
- "code": "tn",
2954
- "dailCode": "216",
2955
- "priority": 0,
2956
- "order": 0,
2957
- "placeholder": "20123456"
2958
- },
2959
- {
2960
- "name": "Turkey (Türkiye)",
2961
- "code": "tr",
2962
- "dailCode": "90",
2963
- "priority": 0,
2964
- "order": 0,
2965
- "placeholder": "5012345678"
2966
- },
2967
- {
2968
- "name": "Turkmenistan",
2969
- "code": "tm",
2970
- "dailCode": "993",
2971
- "priority": 0,
2972
- "order": 0,
2973
- "placeholder": "66123456"
2974
- },
2975
- {
2976
- "name": "Turks and Caicos Islands",
2977
- "code": "tc",
2978
- "dailCode": "1649",
2979
- "priority": 0,
2980
- "order": 0,
2981
- "placeholder": "6492311234"
2982
- },
2983
- {
2984
- "name": "Tuvalu",
2985
- "code": "tv",
2986
- "dailCode": "688",
2987
- "priority": 0,
2988
- "order": 0,
2989
- "placeholder": "901234"
2990
- },
2991
- {
2992
- "name": "U.S. Virgin Islands",
2993
- "code": "vi",
2994
- "dailCode": "1",
2995
- "priority": 1,
2996
- "order": 0,
2997
- "areaCodes": [
2998
- "340"
2999
- ],
3000
- "placeholder": "3406421234"
3001
- },
3002
- {
3003
- "name": "Uganda",
3004
- "code": "ug",
3005
- "dailCode": "256",
3006
- "priority": 0,
3007
- "order": 0,
3008
- "placeholder": "712345678"
3009
- },
3010
- {
3011
- "name": "Ukraine (Україна)",
3012
- "code": "ua",
3013
- "dailCode": "380",
3014
- "priority": 0,
3015
- "order": 0,
3016
- "placeholder": "501234567"
3017
- },
3018
- {
3019
- "name": "United Arab Emirates (الإمارات العربية المتحدة)",
3020
- "code": "ae",
3021
- "dailCode": "971",
3022
- "priority": 0,
3023
- "order": 0,
3024
- "placeholder": "501234567"
3025
- },
3026
- {
3027
- "name": "United Kingdom",
3028
- "code": "gb",
3029
- "dailCode": "44",
3030
- "priority": 0,
3031
- "order": 0,
3032
- "placeholder": "7400123456"
3033
- },
3034
- {
3035
- "name": "United States",
3036
- "code": "us",
3037
- "dailCode": "1",
3038
- "priority": 0,
3039
- "order": 0,
3040
- "placeholder": "2015550123"
3041
- },
3042
- {
3043
- "name": "Uruguay",
3044
- "code": "uy",
3045
- "dailCode": "598",
3046
- "priority": 0,
3047
- "order": 0,
3048
- "placeholder": "94231234"
3049
- },
3050
- {
3051
- "name": "Uzbekistan (Oʻzbekiston)",
3052
- "code": "uz",
3053
- "dailCode": "998",
3054
- "priority": 0,
3055
- "order": 0,
3056
- "placeholder": "912345678"
3057
- },
3058
- {
3059
- "name": "Vanuatu",
3060
- "code": "vu",
3061
- "dailCode": "678",
3062
- "priority": 0,
3063
- "order": 0,
3064
- "placeholder": "5912345"
3065
- },
3066
- {
3067
- "name": "Vatican City (Città del Vaticano)",
3068
- "code": "va",
3069
- "dailCode": "39",
3070
- "priority": 1,
3071
- "order": 0,
3072
- "placeholder": "3123456789"
3073
- },
3074
- {
3075
- "name": "Venezuela",
3076
- "code": "ve",
3077
- "dailCode": "58",
3078
- "priority": 0,
3079
- "order": 0,
3080
- "placeholder": "4121234567"
3081
- },
3082
- {
3083
- "name": "Vietnam (Việt Nam)",
3084
- "code": "vn",
3085
- "dailCode": "84",
3086
- "priority": 0,
3087
- "order": 0,
3088
- "placeholder": "912345678"
3089
- },
3090
- {
3091
- "name": "Wallis and Futuna",
3092
- "code": "wf",
3093
- "dailCode": "681",
3094
- "priority": 0,
3095
- "order": 0,
3096
- "placeholder": "821234"
3097
- },
3098
- {
3099
- "name": "Yemen (اليمن)",
3100
- "code": "ye",
3101
- "dailCode": "967",
3102
- "priority": 0,
3103
- "order": 0,
3104
- "placeholder": "712345678"
3105
- },
3106
- {
3107
- "name": "Zambia",
3108
- "code": "zm",
3109
- "dailCode": "260",
3110
- "priority": 0,
3111
- "order": 0,
3112
- "placeholder": "955123456"
3113
- },
3114
- {
3115
- "name": "Zimbabwe",
3116
- "code": "zw",
3117
- "dailCode": "263",
3118
- "priority": 0,
3119
- "order": 0,
3120
- "placeholder": "712345678"
3121
- },
3122
- {
3123
- "name": "Åland Islands",
3124
- "code": "ax",
3125
- "dailCode": "358",
3126
- "priority": 1,
3127
- "order": 0,
3128
- "placeholder": "412345678"
3129
- }
3130
- ];
3131
-
3132
- class PhoneService {
3133
- #phoneUtil = PhoneNumberUtil.getInstance();
3134
- parse(phoneNumber, countryCode) {
3135
- let number = undefined;
3136
- try {
3137
- number = this.#phoneUtil.parse(phoneNumber, countryCode);
3138
- }
3139
- catch (e) { }
3140
- return number;
3141
- }
3142
- getPhoneNumberObject(number) {
3143
- const parsedNumber = this.parse(number);
3144
- if (parsedNumber) {
3145
- const dailCode = this.#getCountryDailCode(parsedNumber);
3146
- const code = this.getCountryIsoCode(dailCode, parsedNumber);
3147
- const nationalNumber = parsedNumber.getNationalNumberOrDefault().toString();
3148
- const internationalNumber = this.format(number, code, PhoneNumberFormat.E164);
3149
- const placeholder = this.getPlaceholder(code);
3150
- const name = this.getCountryByDailCode(dailCode, parsedNumber)?.name ?? "";
3151
- return { dailCode, code, nationalNumber, internationalNumber, placeholder, name, priority: 0, order: 0 };
3152
- }
3153
- return;
3154
- }
3155
- format(phoneNumber, countryCode, numberFormat) {
3156
- const number = this.parse(phoneNumber, countryCode);
3157
- if (number) {
3158
- return this.#phoneUtil.format(number, numberFormat);
3159
- }
3160
- return "";
3161
- }
3162
- validate(number) {
3163
- let isValid;
3164
- try {
3165
- // 1 for mobile. for more https://libphonenumbers.js.org/docs/getNumberType/
3166
- if (this.#phoneUtil.getNumberType(this.#phoneUtil.parseAndKeepRawInput(number)) !== 1) {
3167
- isValid = false;
3168
- }
3169
- else {
3170
- isValid = this.#phoneUtil.isValidNumber(this.#phoneUtil.parseAndKeepRawInput(number));
3171
- }
3172
- }
3173
- catch (e) {
3174
- isValid = false;
3175
- }
3176
- return isValid;
3177
- }
3178
- getPlaceholder(countryCode) {
3179
- // @ts-ignore
3180
- return this.#phoneUtil.getMetadataForRegion(countryCode).values_[3][6];
3181
- }
3182
- getCountryIsoCode(dailCode, number) {
3183
- return this.getCountryByDailCode(dailCode, number)?.code ?? "";
3184
- }
3185
- getCountryByDailCode(dailCode, number) {
3186
- // Will use this to match area code from the first numbers
3187
- const rawNumber = this.#getPhoneNumberValues(number)["2"].toString();
3188
- // List of all countries with dailCode (can be more than one. e.x. US, CA, DO, PR all have +1 dailCode)
3189
- const countries = COUNTRIES.filter((c) => c.dailCode === dailCode?.toString());
3190
- // Main country is the country, which has no areaCodes specified in country-code.ts file.
3191
- const mainCountry = countries.find((c) => c.areaCodes === undefined);
3192
- // Secondary countries are all countries, which have areaCodes specified in country-code.ts file.
3193
- const secondaryCountries = countries.filter((c) => c.areaCodes !== undefined);
3194
- let matchedCountry = mainCountry ? mainCountry : undefined;
3195
- /*
3196
- Iterate over each secondary country and check if nationalNumber starts with any of areaCodes available.
3197
- If no matches found, fallback to the main country.
3198
- */
3199
- secondaryCountries.forEach((country) => {
3200
- if (country && country.areaCodes) {
3201
- country.areaCodes.forEach((areaCode) => {
3202
- if (rawNumber.startsWith(areaCode)) {
3203
- matchedCountry = country;
3204
- }
3205
- });
3206
- }
3207
- });
3208
- return matchedCountry;
3209
- }
3210
- #getCountryDailCode(number) {
3211
- return this.#getPhoneNumberValues(number)?.["1"].toString() ?? "";
3212
- }
3213
- #getPhoneNumberValues(number) {
3214
- // @ts-ignore
3215
- return number?.["values_"];
3216
- }
3217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PhoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3218
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PhoneService, providedIn: "root" }); }
3219
- }
3220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PhoneService, decorators: [{
3221
- type: Injectable,
3222
- args: [{
3223
- providedIn: "root"
3224
- }]
3225
- }] });
3226
-
3227
- const DEFAULT_COUNTRY = {
3228
- name: "Saudi Arabia (المملكة العربية السعودية)",
3229
- code: "sa",
3230
- dailCode: "966",
3231
- priority: 0,
3232
- order: 1000,
3233
- placeholder: "512345678"
3234
- };
3235
- class MobileControl extends BaseCtrl {
3236
- constructor() {
3237
- super(...arguments);
3238
- this.phoneService = inject(PhoneService);
3239
- this.isOpen = signal(false);
3240
- this.selectedCountry = signal(DEFAULT_COUNTRY);
3241
- this.preferredCountries = input(["sa"]);
3242
- this.searchInput = new FormControl("");
3243
- this.filteredCountries = computed(() => this.#searchInCountries());
3244
- this.#ctrlChanges = toSignal(this.ctrl.valueChanges);
3245
- this.#searchQuery = toSignal(this.searchInput.valueChanges);
3246
- }
3247
- #ctrlChanges;
3248
- #searchQuery;
3249
- writeValue(value) {
3250
- if (value) {
3251
- const mobileObject = this.phoneService.getPhoneNumberObject(value);
3252
- if (mobileObject) {
3253
- this.selectedCountry.set(mobileObject);
3254
- this.emitOnChangeEvent(this.selectedCountry());
3255
- }
3256
- this.ctrl.setValue(mobileObject?.nationalNumber);
3257
- }
3258
- }
3259
- emit() {
3260
- if (this.#ctrlChanges()) {
3261
- const numberObject = this.phoneService.getPhoneNumberObject(`+${this.selectedCountry().dailCode}${this.#ctrlChanges()}`);
3262
- if (numberObject) {
3263
- this.selectedCountry.set(numberObject);
3264
- this.propagateValue(`+${numberObject.dailCode}${numberObject.nationalNumber}`);
3265
- this.emitOnChangeEvent(this.selectedCountry());
3266
- }
3267
- }
3268
- else {
3269
- this.propagateValue(null);
3270
- this.emitOnChangeEvent(null);
3271
- }
3272
- }
3273
- validate(control) {
3274
- if (!control.getRawValue()) {
3275
- return null;
3276
- }
3277
- let error = { invalidPhoneNumber: { accepted: this.selectedCountry().placeholder, input: control.getRawValue() } };
3278
- let isValid = this.phoneService.validate(control.getRawValue());
3279
- if (isValid) {
3280
- return null;
3281
- }
3282
- return error;
3283
- }
3284
- onInput(event) {
3285
- const allowedChars = /[0-9+\-()]/;
3286
- const allowedCtrlChars = /[axcv]/; // Allows copy-pasting
3287
- const allowedOtherKeys = [
3288
- "ArrowLeft",
3289
- "ArrowUp",
3290
- "ArrowRight",
3291
- "ArrowDown",
3292
- "Home",
3293
- "End",
3294
- "Insert",
3295
- "Delete",
3296
- "Backspace",
3297
- ];
3298
- if (!allowedChars.test(event.key) && !(event.ctrlKey && allowedCtrlChars.test(event.key)) && !allowedOtherKeys.includes(event.key)) {
3299
- event.preventDefault();
3300
- }
3301
- }
3302
- onSelectCountry(country) {
3303
- this.selectedCountry.set(country);
3304
- this.searchInput.setValue("");
3305
- this.closeCountryCodeMenu();
3306
- this.propagateValue(`+${this.selectedCountry().dailCode}${this.#ctrlChanges()}`);
3307
- this.emitOnChangeEvent(`+${this.selectedCountry().dailCode}${this.#ctrlChanges()}`);
3308
- }
3309
- closeCountryCodeMenu() {
3310
- this.isOpen.set(false);
3311
- }
3312
- toggleCountryCodeMenu() {
3313
- this.isOpen.update((isOpen) => !isOpen);
3314
- }
3315
- #sortCountries() {
3316
- return COUNTRIES.map((country) => {
3317
- if (this.preferredCountries().includes(country.code)) {
3318
- country.order = country.priority + (-1 * (this.preferredCountries().indexOf(country.code) - this.preferredCountries().length)) * 100;
3319
- }
3320
- return country;
3321
- }).sort((a, b) => b.order - a.order);
3322
- }
3323
- #searchInCountries() {
3324
- if (this.#searchQuery()) {
3325
- return this.#sortCountries().filter((country) => {
3326
- return (country.code.toLowerCase().includes(this.#searchQuery())
3327
- || country.name.toLowerCase().includes(this.#searchQuery())
3328
- || country.dailCode.toLowerCase().includes(this.#searchQuery()));
3329
- });
3330
- }
3331
- return this.#sortCountries();
3332
- }
3333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: MobileControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: MobileControl, isStandalone: true, selector: "iss-ctrl-mobile", inputs: { preferredCountries: { classPropertyName: "preferredCountries", publicName: "preferredCountries", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
3335
- { provide: NG_VALUE_ACCESSOR, useExisting: MobileControl, multi: true },
3336
- { provide: NG_VALIDATORS, useExisting: MobileControl, multi: true }
3337
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <div class=\"d-inline-flex align-items-center gap-1 country-flag\" matPrefix (click)=\"toggleCountryCodeMenu()\">\r\n <img ngSrc=\"./flags/{{selectedCountry().code}}.svg\" width=\"20\" height=\"20\" alt=\"\" class=\"country-flag--image\" [priority]=\"true\">\r\n <!--@if (separateDialCode()) {\r\n <div class=\"selected-dial-code\">+{{ selectedCountry.dialCode }}</div>\r\n }-->\r\n <ds-icon icon=\"arrow-down\" class=\"fs-12 fc-dark-gray\"></ds-icon>\r\n </div>\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"off\"\r\n (blur)=\"markAsTouched()\"\r\n (keydown)=\"onInput($event)\"\r\n (input)=\"emit()\"\r\n [formControl]=\"ctrl\"\r\n [disabled]=\"disabled()\"\r\n [placeholder]=\"selectedCountry().placeholder\"\r\n />\r\n</mat-form-field>\r\n\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"closeCountryCodeMenu()\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n>\r\n <div class=\"country-dropdown bc-white box-shadow p-2\">\r\n <div class=\"search-container\">\r\n <mat-form-field>\r\n <input matInput id=\"country-search-box\" [formControl]=\"searchInput\" (click)=\"$event.stopPropagation()\"/>\r\n </mat-form-field>\r\n </div>\r\n <ul class=\"country-list\">\r\n @for (country of filteredCountries(); track $index) {\r\n <li\r\n #countryEl\r\n [ngClass]=\"country.order > 1 ? 'preferredCounty' : ''\"\r\n class=\"d-flex align-items-center gap-2 cursor-pointer p-2\"\r\n (click)=\"onSelectCountry(country)\"\r\n >\r\n @defer (on viewport(countryEl)) {\r\n <img ngSrc=\"./flags/{{country.code}}.svg\" width=\"20\" height=\"20\" alt=\"\" class=\"country-flag--image\">\r\n }\r\n <span class=\"fs-12 fc-black\">{{ country.name }}</span>\r\n <span class=\"fs-12 fc-dark-gray\">+{{ country.dailCode }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</ng-template>\r\n", styles: [".country-flag{border-inline-end:var(--input-border);padding-inline-end:.5rem;margin-inline-end:.5rem;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], deferBlockDependencies: [() => [NgOptimizedImage]] }); }
3338
- }
3339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: MobileControl, decorators: [{
3340
- type: Component,
3341
- args: [{ selector: "iss-ctrl-mobile", standalone: true, imports: [
3342
- ReactiveFormsModule,
3343
- NgClass,
3344
- CdkConnectedOverlay,
3345
- CdkOverlayOrigin,
3346
- MatFormField,
3347
- MatInput,
3348
- MatPrefix,
3349
- NgOptimizedImage
3350
- ], providers: [
3351
- { provide: NG_VALUE_ACCESSOR, useExisting: MobileControl, multi: true },
3352
- { provide: NG_VALIDATORS, useExisting: MobileControl, multi: true }
3353
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <div class=\"d-inline-flex align-items-center gap-1 country-flag\" matPrefix (click)=\"toggleCountryCodeMenu()\">\r\n <img ngSrc=\"./flags/{{selectedCountry().code}}.svg\" width=\"20\" height=\"20\" alt=\"\" class=\"country-flag--image\" [priority]=\"true\">\r\n <!--@if (separateDialCode()) {\r\n <div class=\"selected-dial-code\">+{{ selectedCountry.dialCode }}</div>\r\n }-->\r\n <ds-icon icon=\"arrow-down\" class=\"fs-12 fc-dark-gray\"></ds-icon>\r\n </div>\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"off\"\r\n (blur)=\"markAsTouched()\"\r\n (keydown)=\"onInput($event)\"\r\n (input)=\"emit()\"\r\n [formControl]=\"ctrl\"\r\n [disabled]=\"disabled()\"\r\n [placeholder]=\"selectedCountry().placeholder\"\r\n />\r\n</mat-form-field>\r\n\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"closeCountryCodeMenu()\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n>\r\n <div class=\"country-dropdown bc-white box-shadow p-2\">\r\n <div class=\"search-container\">\r\n <mat-form-field>\r\n <input matInput id=\"country-search-box\" [formControl]=\"searchInput\" (click)=\"$event.stopPropagation()\"/>\r\n </mat-form-field>\r\n </div>\r\n <ul class=\"country-list\">\r\n @for (country of filteredCountries(); track $index) {\r\n <li\r\n #countryEl\r\n [ngClass]=\"country.order > 1 ? 'preferredCounty' : ''\"\r\n class=\"d-flex align-items-center gap-2 cursor-pointer p-2\"\r\n (click)=\"onSelectCountry(country)\"\r\n >\r\n @defer (on viewport(countryEl)) {\r\n <img ngSrc=\"./flags/{{country.code}}.svg\" width=\"20\" height=\"20\" alt=\"\" class=\"country-flag--image\">\r\n }\r\n <span class=\"fs-12 fc-black\">{{ country.name }}</span>\r\n <span class=\"fs-12 fc-dark-gray\">+{{ country.dailCode }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</ng-template>\r\n", styles: [".country-flag{border-inline-end:var(--input-border);padding-inline-end:.5rem;margin-inline-end:.5rem;cursor:pointer}\n"] }]
3354
- }] });
3355
-
3356
- class NoteControl extends BaseCtrl {
3357
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NoteControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NoteControl, isStandalone: true, selector: "iss-ctrl-note", providers: [
3359
- { provide: NG_VALUE_ACCESSOR, useExisting: NoteControl, multi: true }
3360
- ], usesInheritance: true, ngImport: i0, template: "<p>note works!</p>\r\n", styles: [""] }); }
3361
- }
3362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NoteControl, decorators: [{
3363
- type: Component,
3364
- args: [{ selector: "iss-ctrl-note", standalone: true, imports: [], providers: [
3365
- { provide: NG_VALUE_ACCESSOR, useExisting: NoteControl, multi: true }
3366
- ], template: "<p>note works!</p>\r\n" }]
3367
- }] });
3368
-
3369
- class ArabicNumberPipe {
3370
- transform(n, ...args) {
3371
- if (n === null || n === undefined) {
3372
- return "";
3373
- }
3374
- if (isNaN(+n)) {
3375
- return n;
3376
- }
3377
- return new Intl.NumberFormat("ar-SA", {}).format(+n);
3378
- }
3379
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ArabicNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3380
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: ArabicNumberPipe, isStandalone: true, name: "arabicNumber" }); }
3381
- }
3382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ArabicNumberPipe, decorators: [{
3383
- type: Pipe,
3384
- args: [{
3385
- name: "arabicNumber",
3386
- standalone: true
3387
- }]
3388
- }] });
3389
-
3390
- const PLATE_LETTERS = [
3391
- { label: { ar: "أ", en: "A" }, value: "A" },
3392
- { label: { ar: "ب", en: "B" }, value: "B" },
3393
- { label: { ar: "ح", en: "J" }, value: "J" },
3394
- { label: { ar: "د", en: "D" }, value: "D" },
3395
- { label: { ar: "ر", en: "R" }, value: "R" },
3396
- { label: { ar: "س", en: "S" }, value: "S" },
3397
- { label: { ar: "ص", en: "X" }, value: "X" },
3398
- { label: { ar: "ط", en: "T" }, value: "T" },
3399
- { label: { ar: "ع", en: "E" }, value: "E" },
3400
- { label: { ar: "ق", en: "G" }, value: "G" },
3401
- { label: { ar: "ك", en: "K" }, value: "K" },
3402
- { label: { ar: "ل", en: "L" }, value: "L" },
3403
- { label: { ar: "م", en: "Z" }, value: "Z" },
3404
- { label: { ar: "ن", en: "N" }, value: "N" },
3405
- { label: { ar: "هـ", en: "H" }, value: "H" },
3406
- { label: { ar: "و", en: "U" }, value: "U" },
3407
- { label: { ar: "ي", en: "V" }, value: "V" }
3408
- ];
3409
-
3410
- class PlateLetterPipe {
3411
- transform(value, ...args) {
3412
- const letter = PLATE_LETTERS.find(letter => letter.value === value);
3413
- if (letter) {
3414
- return letter.label.ar;
3415
- }
3416
- return value;
3417
- }
3418
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PlateLetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3419
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: PlateLetterPipe, isStandalone: true, name: "plateLetter" }); }
3420
- }
3421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PlateLetterPipe, decorators: [{
3422
- type: Pipe,
3423
- args: [{
3424
- name: "plateLetter",
3425
- standalone: true
3426
- }]
3427
- }] });
3428
-
3429
- class PlateControl extends BaseCtrl {
3430
- constructor() {
3431
- super(...arguments);
3432
- this.plate = new FormGroup({
3433
- numbers: new FormArray([
3434
- new FormControl(null),
3435
- new FormControl(null),
3436
- new FormControl(null),
3437
- new FormControl(null),
3438
- ]),
3439
- letters: new FormArray([
3440
- new FormControl(null),
3441
- new FormControl(null),
3442
- new FormControl(null),
3443
- ]),
3444
- });
3445
- this.#plateChanges = toSignal(this.plate.valueChanges);
3446
- this.#lettersArr = computed(() => this.#plateChanges()["letters"].filter((l) => l));
3447
- this.#letters = computed(() => this.#lettersArr().join(""));
3448
- this.#numbersArr = computed(() => this.#plateChanges()["numbers"].filter((l) => l));
3449
- this.#numbers = computed(() => this.#numbersArr().join(""));
3450
- this.#plateHasValue = computed(() => !!(this.#letters().length && this.#numbers().length));
3451
- this.#effectRef = effect(() => {
3452
- if (this.#plateChanges()) {
3453
- this.propagateValue(this.#getEmissionValue());
3454
- this.emitOnChangeEvent({ letters: this.#lettersArr(), numbers: this.#numbersArr() });
3455
- }
3456
- });
3457
- this.PLATE_LETTERS = PLATE_LETTERS;
3458
- }
3459
- #plateChanges;
3460
- #lettersArr;
3461
- #letters;
3462
- #numbersArr;
3463
- #numbers;
3464
- #plateHasValue;
3465
- #effectRef;
3466
- get letterControls() {
3467
- return this.plate.controls["letters"].controls;
3468
- }
3469
- get numberControls() {
3470
- return this.plate.controls["numbers"].controls;
3471
- }
3472
- writeValue(value) {
3473
- let processedValue = this.#splitPlateValues(value);
3474
- if (processedValue) {
3475
- this.plate.patchValue(processedValue);
3476
- }
3477
- }
3478
- ngOnDestroy() {
3479
- this.#effectRef.destroy();
3480
- }
3481
- #getEmissionValue() {
3482
- if (this.#plateHasValue()) {
3483
- return `${this.#letters()}-${this.#numbers()}`;
3484
- }
3485
- return null;
3486
- }
3487
- #splitPlateValues(value) {
3488
- if (value) {
3489
- let lettersAndNumbers = value.split("-");
3490
- let letters = lettersAndNumbers[0].split("");
3491
- let numbers = lettersAndNumbers[1].split("");
3492
- return { letters, numbers };
3493
- }
3494
- return null;
3495
- }
3496
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PlateControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3497
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: PlateControl, isStandalone: true, selector: "iss-ctrl-plate-number", providers: [
3498
- { provide: NG_VALUE_ACCESSOR, useExisting: PlateControl, multi: true }
3499
- ], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"plate\">\r\n @if (!disabled()) {\r\n <div class=\"row mb-4\">\r\n <ng-container formArrayName=\"numbers\">\r\n @for (item of numberControls; track $index) {\r\n <div class=\"col-sm-3\">\r\n <mat-form-field class=\"mat-form-field-number\">\r\n <input\r\n type=\"number\"\r\n matInput\r\n [formControlName]=\"$index\"\r\n maxlength=\"1\"\r\n placeholder=\"\"\r\n oninput=\"if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n }\r\n </ng-container>\r\n </div>\r\n <div class=\"row mb-4\">\r\n <ng-container formArrayName=\"letters\">\r\n @for (el of letterControls; track $index) {\r\n <div class=\"col-sm-4\">\r\n <mat-form-field class=\"mat-form-field-number\">\r\n <mat-select disableOptionCentering [formControlName]=\"$index\">\r\n @for (option of PLATE_LETTERS; track option.value) {\r\n <mat-option [value]=\"option.value\">{{ option.label.en }} / {{ option.label.ar }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n <div class=\"row mb-4\">\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"plateElement\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #plateElement>\r\n <div class=\"plate d-inline-flex align-items-stretch justify-content-between fs-18\">\r\n <div class=\"d-flex flex-column border-right w-100\">\r\n <div class=\"ARPlate border-bottom d-flex h-50 w-100\">\r\n <div class=\"fc-black border-right w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (numberCtrl of numberControls; track $index) {\r\n <span>{{ numberCtrl.value | arabicNumber }}</span>\r\n }\r\n </div>\r\n <span class=\"fw-medium fc-black w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (letterCtrl of letterControls; track $index) {\r\n <span>{{ letterCtrl.value | plateLetter }}</span>\r\n }\r\n </span>\r\n </div>\r\n <div class=\"ENPlate d-flex h-50 w-100\">\r\n <span class=\"fc-black border-right w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (numberCtrl of numberControls; track $index) {\r\n <span>{{ numberCtrl.value }}</span>\r\n }\r\n </span>\r\n <span class=\"fw-medium fc-black w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (letterCtrl of letterControls; track $index) {\r\n <span>{{ letterCtrl.value }}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 justify-content-center px-2 align-items-center\">\r\n <svg width=\"17\" height=\"19\" viewBox=\"0 0 17 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M10.8072 16.8744C11.4633 16.178 11.3244 15.3914 10.7996 15.3825C10.9872 15.9606 10.5562 16.3344 10.3922 16.5266C9.97894 16.1712 9.55086 15.7761 9.10778 15.3694C11.2695 13.5812 13.6354 11.995 16.7263 11.9452C13.3983 10.7499 10.7417 12.7815 8.4925 14.8084C6.24308 12.7815 3.58672 10.7499 0.257812 11.9452C3.34944 11.995 5.71507 13.581 7.87722 15.3694C7.43329 15.7761 7.00564 16.1712 6.59172 16.5266C6.42902 16.3344 5.99777 15.9606 6.18435 15.3825C5.65992 15.3914 5.52089 16.178 6.17758 16.8744C5.91495 17.0931 5.48962 17.4631 5.15113 17.5518C4.89082 17.6199 4.68185 17.4846 4.63473 17.2026C4.53542 16.6069 3.61271 16.6959 3.72554 17.5372C3.82907 18.3044 4.76066 18.6391 5.55892 18.2837C5.87565 18.1424 6.3107 17.7413 6.66778 17.45C6.83111 17.641 7.26215 18.0145 7.07494 18.5935C7.59979 18.5838 7.7384 17.798 7.08234 17.1005C7.54845 16.7028 8.01625 16.2927 8.4925 15.887C8.96833 16.2925 9.43634 16.7028 9.90288 17.1005C9.24639 17.798 9.385 18.5838 9.91006 18.5935C9.72285 18.0145 10.1539 17.6414 10.3168 17.45C10.6745 17.7413 11.1091 18.1424 11.4263 18.2837C12.2246 18.6391 13.1555 18.3044 13.259 17.5372C13.3719 16.6959 12.4496 16.6069 12.3494 17.2026C12.3023 17.4846 12.094 17.6196 11.8332 17.5518C11.4948 17.4631 11.0696 17.0931 10.8072 16.8744ZM6.72504 5.72093C6.22365 7.04637 6.19597 8.53894 6.9169 10.1805C6.80195 8.47576 7.17594 7.06771 7.8713 6.0066L8.01815 7.46832H7.84679L8.01815 9.17958H7.84679L8.01815 10.8904H7.84679L8.01794 12.5991L7.53366 13.0819H8.4925H9.45156L8.96685 12.5991L9.13842 10.8904H8.96685L9.13842 9.17958H8.96685L9.13842 7.46832H8.96685L9.11391 6.0066C9.80906 7.06771 10.1833 8.47682 10.0683 10.1805C10.7886 8.53894 10.7616 7.047 10.2602 5.72093C11.1115 6.72478 11.7701 7.89851 12.0661 9.36572C12.3733 7.50466 11.848 5.98568 10.8852 4.8071C11.8174 5.47943 12.6184 6.33157 13.1785 7.48396C13.048 5.72072 12.1559 4.57742 10.927 3.75824C11.989 4.1054 12.8561 4.68645 13.6343 5.71798C13.1139 3.8884 11.9801 3.15564 10.575 2.74362C11.5332 2.67368 12.4386 2.78165 13.3347 3.33988C12.3621 2.02839 11.0565 1.81055 9.73257 1.95634C10.2893 1.67279 10.9158 1.53101 11.5888 1.63137C10.8302 1.07187 9.81836 1.01651 8.95227 1.48812L8.4925 0.328125L8.0321 1.48749C7.1658 1.01651 6.15476 1.07166 5.39623 1.63137C6.06877 1.53122 6.69483 1.67279 7.25179 1.95634C5.92826 1.81055 4.62311 2.0286 3.6499 3.33988C4.54662 2.78165 5.45137 2.67368 6.41001 2.74362C5.00534 3.15564 3.87112 3.8884 3.35113 5.71798C4.12868 4.68666 4.99625 4.1054 6.05842 3.75824C4.8287 4.57721 3.93704 5.72072 3.80625 7.48396C4.36618 6.33157 5.16782 5.47943 6.09962 4.8071C5.13676 5.98568 4.61149 7.50466 4.91871 9.36572C5.21494 7.89851 5.87354 6.72478 6.72504 5.72093Z\"\r\n fill=\"#1D252D\"\r\n />\r\n </svg>\r\n <span class=\"fw-medium fs-12 line-height-1-2\">K<br/>S<br/>A</span>\r\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"4.49162\" cy=\"4.06193\" r=\"3.99162\" fill=\"#1D252D\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".plate{background:#f8f8f8;width:240px;height:110px;border:1px solid #8e9aa0;border-radius:3px;direction:ltr}.plate .border-right{border-right:1px solid #d6d6d4}.plate .border-bottom{border-bottom:1px solid #d6d6d4!important}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: ArabicNumberPipe, name: "arabicNumber" }, { kind: "pipe", type: PlateLetterPipe, name: "plateLetter" }] }); }
3500
- }
3501
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PlateControl, decorators: [{
3502
- type: Component,
3503
- args: [{ selector: "iss-ctrl-plate-number", standalone: true, imports: [
3504
- MatFormField,
3505
- ReactiveFormsModule,
3506
- MatInput,
3507
- MatSelect,
3508
- MatOption,
3509
- NgTemplateOutlet,
3510
- ArabicNumberPipe,
3511
- PlateLetterPipe
3512
- ], providers: [
3513
- { provide: NG_VALUE_ACCESSOR, useExisting: PlateControl, multi: true }
3514
- ], template: "<div [formGroup]=\"plate\">\r\n @if (!disabled()) {\r\n <div class=\"row mb-4\">\r\n <ng-container formArrayName=\"numbers\">\r\n @for (item of numberControls; track $index) {\r\n <div class=\"col-sm-3\">\r\n <mat-form-field class=\"mat-form-field-number\">\r\n <input\r\n type=\"number\"\r\n matInput\r\n [formControlName]=\"$index\"\r\n maxlength=\"1\"\r\n placeholder=\"\"\r\n oninput=\"if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n }\r\n </ng-container>\r\n </div>\r\n <div class=\"row mb-4\">\r\n <ng-container formArrayName=\"letters\">\r\n @for (el of letterControls; track $index) {\r\n <div class=\"col-sm-4\">\r\n <mat-form-field class=\"mat-form-field-number\">\r\n <mat-select disableOptionCentering [formControlName]=\"$index\">\r\n @for (option of PLATE_LETTERS; track option.value) {\r\n <mat-option [value]=\"option.value\">{{ option.label.en }} / {{ option.label.ar }}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n <div class=\"row mb-4\">\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"plateElement\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #plateElement>\r\n <div class=\"plate d-inline-flex align-items-stretch justify-content-between fs-18\">\r\n <div class=\"d-flex flex-column border-right w-100\">\r\n <div class=\"ARPlate border-bottom d-flex h-50 w-100\">\r\n <div class=\"fc-black border-right w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (numberCtrl of numberControls; track $index) {\r\n <span>{{ numberCtrl.value | arabicNumber }}</span>\r\n }\r\n </div>\r\n <span class=\"fw-medium fc-black w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (letterCtrl of letterControls; track $index) {\r\n <span>{{ letterCtrl.value | plateLetter }}</span>\r\n }\r\n </span>\r\n </div>\r\n <div class=\"ENPlate d-flex h-50 w-100\">\r\n <span class=\"fc-black border-right w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (numberCtrl of numberControls; track $index) {\r\n <span>{{ numberCtrl.value }}</span>\r\n }\r\n </span>\r\n <span class=\"fw-medium fc-black w-50 d-flex align-items-center justify-content-center gap-2\">\r\n @for (letterCtrl of letterControls; track $index) {\r\n <span>{{ letterCtrl.value }}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column gap-2 justify-content-center px-2 align-items-center\">\r\n <svg width=\"17\" height=\"19\" viewBox=\"0 0 17 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M10.8072 16.8744C11.4633 16.178 11.3244 15.3914 10.7996 15.3825C10.9872 15.9606 10.5562 16.3344 10.3922 16.5266C9.97894 16.1712 9.55086 15.7761 9.10778 15.3694C11.2695 13.5812 13.6354 11.995 16.7263 11.9452C13.3983 10.7499 10.7417 12.7815 8.4925 14.8084C6.24308 12.7815 3.58672 10.7499 0.257812 11.9452C3.34944 11.995 5.71507 13.581 7.87722 15.3694C7.43329 15.7761 7.00564 16.1712 6.59172 16.5266C6.42902 16.3344 5.99777 15.9606 6.18435 15.3825C5.65992 15.3914 5.52089 16.178 6.17758 16.8744C5.91495 17.0931 5.48962 17.4631 5.15113 17.5518C4.89082 17.6199 4.68185 17.4846 4.63473 17.2026C4.53542 16.6069 3.61271 16.6959 3.72554 17.5372C3.82907 18.3044 4.76066 18.6391 5.55892 18.2837C5.87565 18.1424 6.3107 17.7413 6.66778 17.45C6.83111 17.641 7.26215 18.0145 7.07494 18.5935C7.59979 18.5838 7.7384 17.798 7.08234 17.1005C7.54845 16.7028 8.01625 16.2927 8.4925 15.887C8.96833 16.2925 9.43634 16.7028 9.90288 17.1005C9.24639 17.798 9.385 18.5838 9.91006 18.5935C9.72285 18.0145 10.1539 17.6414 10.3168 17.45C10.6745 17.7413 11.1091 18.1424 11.4263 18.2837C12.2246 18.6391 13.1555 18.3044 13.259 17.5372C13.3719 16.6959 12.4496 16.6069 12.3494 17.2026C12.3023 17.4846 12.094 17.6196 11.8332 17.5518C11.4948 17.4631 11.0696 17.0931 10.8072 16.8744ZM6.72504 5.72093C6.22365 7.04637 6.19597 8.53894 6.9169 10.1805C6.80195 8.47576 7.17594 7.06771 7.8713 6.0066L8.01815 7.46832H7.84679L8.01815 9.17958H7.84679L8.01815 10.8904H7.84679L8.01794 12.5991L7.53366 13.0819H8.4925H9.45156L8.96685 12.5991L9.13842 10.8904H8.96685L9.13842 9.17958H8.96685L9.13842 7.46832H8.96685L9.11391 6.0066C9.80906 7.06771 10.1833 8.47682 10.0683 10.1805C10.7886 8.53894 10.7616 7.047 10.2602 5.72093C11.1115 6.72478 11.7701 7.89851 12.0661 9.36572C12.3733 7.50466 11.848 5.98568 10.8852 4.8071C11.8174 5.47943 12.6184 6.33157 13.1785 7.48396C13.048 5.72072 12.1559 4.57742 10.927 3.75824C11.989 4.1054 12.8561 4.68645 13.6343 5.71798C13.1139 3.8884 11.9801 3.15564 10.575 2.74362C11.5332 2.67368 12.4386 2.78165 13.3347 3.33988C12.3621 2.02839 11.0565 1.81055 9.73257 1.95634C10.2893 1.67279 10.9158 1.53101 11.5888 1.63137C10.8302 1.07187 9.81836 1.01651 8.95227 1.48812L8.4925 0.328125L8.0321 1.48749C7.1658 1.01651 6.15476 1.07166 5.39623 1.63137C6.06877 1.53122 6.69483 1.67279 7.25179 1.95634C5.92826 1.81055 4.62311 2.0286 3.6499 3.33988C4.54662 2.78165 5.45137 2.67368 6.41001 2.74362C5.00534 3.15564 3.87112 3.8884 3.35113 5.71798C4.12868 4.68666 4.99625 4.1054 6.05842 3.75824C4.8287 4.57721 3.93704 5.72072 3.80625 7.48396C4.36618 6.33157 5.16782 5.47943 6.09962 4.8071C5.13676 5.98568 4.61149 7.50466 4.91871 9.36572C5.21494 7.89851 5.87354 6.72478 6.72504 5.72093Z\"\r\n fill=\"#1D252D\"\r\n />\r\n </svg>\r\n <span class=\"fw-medium fs-12 line-height-1-2\">K<br/>S<br/>A</span>\r\n <svg width=\"9\" height=\"9\" viewBox=\"0 0 9 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"4.49162\" cy=\"4.06193\" r=\"3.99162\" fill=\"#1D252D\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".plate{background:#f8f8f8;width:240px;height:110px;border:1px solid #8e9aa0;border-radius:3px;direction:ltr}.plate .border-right{border-right:1px solid #d6d6d4}.plate .border-bottom{border-bottom:1px solid #d6d6d4!important}\n"] }]
3515
- }] });
3516
-
3517
- class RadioControl extends BaseCtrl {
3518
- constructor() {
3519
- super(...arguments);
3520
- this.options = input.required();
3521
- }
3522
- writeValue(value) {
3523
- if (value === null || value === undefined) {
3524
- return;
3525
- }
3526
- const values = value.split(",").map(val => val.trim());
3527
- if (values.length > 1) {
3528
- this.emitValue(null);
3529
- throw new Error("You cannot set multiple values while the control is in single selection mode!");
3530
- }
3531
- this.ctrl.setValue(value);
3532
- }
3533
- onRadioChange(value) {
3534
- this.emitValue(value);
3535
- }
3536
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3537
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: RadioControl, isStandalone: true, selector: "iss-ctrl-radio", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
3538
- { provide: NG_VALUE_ACCESSOR, useExisting: RadioControl, multi: true }
3539
- ], usesInheritance: true, ngImport: i0, template: "<mat-radio-group aria-label=\"Select an option\">\r\n @for (option of options(); track option.value) {\r\n <mat-radio-button\r\n [value]=\"option.value\"\r\n [checked]=\"ctrl.value === option.value\"\r\n (change)=\"onRadioChange(option.value)\"\r\n >{{ option.label }}\r\n </mat-radio-button>\r\n }\r\n</mat-radio-group>\r\n", styles: [".mat-mdc-radio-group{flex-direction:column!important}\n"], dependencies: [{ kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i1$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i1$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
3540
- }
3541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RadioControl, decorators: [{
3542
- type: Component,
3543
- args: [{ selector: "iss-ctrl-radio", standalone: true, imports: [
3544
- MatRadioModule,
3545
- ReactiveFormsModule,
3546
- ], providers: [
3547
- { provide: NG_VALUE_ACCESSOR, useExisting: RadioControl, multi: true }
3548
- ], template: "<mat-radio-group aria-label=\"Select an option\">\r\n @for (option of options(); track option.value) {\r\n <mat-radio-button\r\n [value]=\"option.value\"\r\n [checked]=\"ctrl.value === option.value\"\r\n (change)=\"onRadioChange(option.value)\"\r\n >{{ option.label }}\r\n </mat-radio-button>\r\n }\r\n</mat-radio-group>\r\n", styles: [".mat-mdc-radio-group{flex-direction:column!important}\n"] }]
3549
- }] });
3550
-
3551
- class SelectControl extends BaseCtrl {
3552
- constructor() {
3553
- super(...arguments);
3554
- this.selectedOptions = signal(new Map());
3555
- this.options = input.required();
3556
- this.height = input("150px");
3557
- this.query = toSignal(this.ctrl.valueChanges);
3558
- this.filteredOptions = computed(() => this.#filter(this.query()));
3559
- this.loading = input(false);
3560
- this.allSelected = signal(false);
3561
- this.displayFn = (options) => {
3562
- if (Array.isArray(options) && !this.multiple()) {
3563
- /*const selectedLabel: string[] = options.map((o) => o.label);
3564
- if (this.multiple() && selectedLabel.length > 1) {
3565
- str += ` + ${selectedLabel.length - 1}`;
3566
- }*/
3567
- return options[0].label;
3568
- }
3569
- return "";
3570
- };
3571
- }
3572
- writeValue(value) {
3573
- this.#reset();
3574
- if (value === null || value === undefined) {
3575
- return;
3576
- }
3577
- const values = value.split(",").map(val => val.trim());
3578
- let selectedOptions = this.options().filter((option) => values.includes(option.value));
3579
- if (!this.multiple()) {
3580
- if (selectedOptions.length > 1) {
3581
- this.#emit();
3582
- throw new Error("You cannot set multiple values while the control is in single selection mode!");
3583
- }
3584
- selectedOptions = selectedOptions.splice(-selectedOptions.length, selectedOptions.length - selectedOptions.length + 1);
3585
- }
3586
- for (let i = 0; i < selectedOptions.length; i++) {
3587
- const val = selectedOptions[i];
3588
- this.#addToSelectedOptionsMap(val);
3589
- }
3590
- this.ctrl.setValue(selectedOptions);
3591
- }
3592
- captureValue($event) {
3593
- if ($event?.option.value === "_SELECT_ALL_OPTIONS_") {
3594
- return;
3595
- }
3596
- this.#addToSelectedOptionsMap($event?.option.value);
3597
- this.#emit();
3598
- }
3599
- removeFromSelectedOptionsMap(option) {
3600
- this.selectedOptions().delete(option.value);
3601
- this.filteredOptions = computed(() => this.#filter(this.query()));
3602
- this.allSelected.set(false);
3603
- this.#emit();
3604
- }
3605
- clearSelection() {
3606
- this.#reset();
3607
- this.allSelected.set(false);
3608
- this.#emit();
3609
- }
3610
- toggleAllSelection() {
3611
- if (this.selectedOptions().size === this.options().length) {
3612
- this.#reset();
3613
- this.#emit();
3614
- this.allSelected.set(false);
3615
- return;
3616
- }
3617
- for (let i = 0; i < this.options().length; i++) {
3618
- this.#addToSelectedOptionsMap(this.options()[i]);
3619
- }
3620
- this.allSelected.set(true);
3621
- this.#emit();
3622
- }
3623
- #addToSelectedOptionsMap(option) {
3624
- if (option) {
3625
- const selectedOption = option;
3626
- if (!this.multiple()) {
3627
- this.#reset();
3628
- }
3629
- this.selectedOptions().set(selectedOption.value, selectedOption);
3630
- this.ctrl.setValue(this.#convertSelectedMapToArray());
3631
- }
3632
- }
3633
- #stringifySelectedOptions() {
3634
- const selectedOptionsArr = this.#convertSelectedMapToArray();
3635
- if (selectedOptionsArr) {
3636
- return selectedOptionsArr.map((o) => o.value).join();
3637
- }
3638
- return null;
3639
- }
3640
- #filter(queryString) {
3641
- if (queryString === null || queryString === undefined || typeof queryString !== "string") {
3642
- return JSON.parse(JSON.stringify(this.options()));
3643
- }
3644
- const query = queryString.toLowerCase();
3645
- const filteredOptions = this.options().filter((option) => {
3646
- return (option.value.toLowerCase().includes(query) || option.label.toLowerCase().includes(query));
3647
- });
3648
- return JSON.parse(JSON.stringify(filteredOptions));
3649
- }
3650
- #emit() {
3651
- this.propagateValue(this.#stringifySelectedOptions());
3652
- this.emitOnChangeEvent(this.#convertSelectedMapToArray());
3653
- }
3654
- #reset() {
3655
- this.selectedOptions().clear();
3656
- this.filteredOptions = computed(() => this.#filter(this.query()));
3657
- this.ctrl.setValue(null);
3658
- }
3659
- #convertSelectedMapToArray() {
3660
- const selectedOptionsArr = Array.from(this.selectedOptions(), ([_, option]) => option);
3661
- return selectedOptionsArr.length ? selectedOptionsArr : null;
3662
- }
3663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3664
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectControl, isStandalone: true, selector: "iss-ctrl-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
3665
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectControl, multi: true },
3666
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\r\n <mat-label/>\r\n <input [formControl]=\"ctrl\" [matAutocomplete]=\"auto\" class=\"m-0\" [matChipInputFor]=\"chipGrid\" [placeholder]=\"placeholder()\" matInput/>\r\n @if (selectedOptions().size) {\r\n <span matSuffix class=\"sfi sfi-close fs-18 fc-black cursor-pointer\" (click)=\"clearSelection()\"></span>\r\n } @else {\r\n <span matSuffix class=\"sfi sfi-arrow-down fs-18 fc-black cursor-pointer\"></span>\r\n }\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n autoActiveFirstOption\r\n hideSingleSelectionIndicator\r\n (optionSelected)=\"captureValue($event)\"\r\n >\r\n @if (loading()) {\r\n <mat-option disabled=\"true\">\r\n <ds-icon icon=\"spinner\" class=\"spin fc-coral fs-20\"></ds-icon>\r\n </mat-option>\r\n } @else {\r\n @if (filteredOptions().length) {\r\n @if (multiple()) {\r\n <mat-option (click)=\"toggleAllSelection()\" value=\"_SELECT_ALL_OPTIONS_\">\r\n {{ allSelected() ? \"deselect all\" : \"Select All\" }}\r\n </mat-option>\r\n }\r\n <cdk-virtual-scroll-viewport itemSize=\"5\" [ngStyle]=\"{'height': height()}\">\r\n <mat-option\r\n *cdkVirtualFor=\"let option of filteredOptions()\"\r\n [value]=\"option\"\r\n [ngClass]=\"{'mdc-list-item__selected': option | selectStatus: selectedOptions()}\"\r\n >\r\n {{ option.label }}\r\n </mat-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <mat-option disabled=\"true\">No Result Found</mat-option>\r\n }\r\n }\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n<mat-chip-grid #chipGrid>\r\n @if (multiple()) {\r\n @for (chip of selectedOptions(); track chip[0]) {\r\n <mat-chip-row (removed)=\"removeFromSelectedOptionsMap(chip[1])\">\r\n {{ chip[1].label }}\r\n <button matChipRemove [attr.aria-label]=\"'remove ' + chip[1].label\">\r\n <ds-icon icon=\"trash\" class=\"fc-red\"></ds-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n }\r\n</mat-chip-grid>\r\n", styles: ["::ng-deep .mat-mdc-option.mdc-list-item__selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{--mat-option-selected-state-label-text-color: var(--green);color:var(--green)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i6.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i6.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i6.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i6.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SelectStatusPipe, name: "selectStatus" }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
3667
- }
3668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectControl, decorators: [{
3669
- type: Component,
3670
- args: [{ selector: "iss-ctrl-select", standalone: true, imports: [
3671
- ReactiveFormsModule,
3672
- MatAutocompleteModule,
3673
- MatInputModule,
3674
- MatChipsModule,
3675
- MatIconModule,
3676
- NgClass,
3677
- SelectStatusPipe,
3678
- CdkVirtualForOf,
3679
- CdkVirtualScrollViewport,
3680
- CdkFixedSizeVirtualScroll,
3681
- NgStyle,
3682
- ], providers: [
3683
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectControl, multi: true },
3684
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field floatLabel=\"always\">\r\n <mat-label/>\r\n <input [formControl]=\"ctrl\" [matAutocomplete]=\"auto\" class=\"m-0\" [matChipInputFor]=\"chipGrid\" [placeholder]=\"placeholder()\" matInput/>\r\n @if (selectedOptions().size) {\r\n <span matSuffix class=\"sfi sfi-close fs-18 fc-black cursor-pointer\" (click)=\"clearSelection()\"></span>\r\n } @else {\r\n <span matSuffix class=\"sfi sfi-arrow-down fs-18 fc-black cursor-pointer\"></span>\r\n }\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayFn\"\r\n autoActiveFirstOption\r\n hideSingleSelectionIndicator\r\n (optionSelected)=\"captureValue($event)\"\r\n >\r\n @if (loading()) {\r\n <mat-option disabled=\"true\">\r\n <ds-icon icon=\"spinner\" class=\"spin fc-coral fs-20\"></ds-icon>\r\n </mat-option>\r\n } @else {\r\n @if (filteredOptions().length) {\r\n @if (multiple()) {\r\n <mat-option (click)=\"toggleAllSelection()\" value=\"_SELECT_ALL_OPTIONS_\">\r\n {{ allSelected() ? \"deselect all\" : \"Select All\" }}\r\n </mat-option>\r\n }\r\n <cdk-virtual-scroll-viewport itemSize=\"5\" [ngStyle]=\"{'height': height()}\">\r\n <mat-option\r\n *cdkVirtualFor=\"let option of filteredOptions()\"\r\n [value]=\"option\"\r\n [ngClass]=\"{'mdc-list-item__selected': option | selectStatus: selectedOptions()}\"\r\n >\r\n {{ option.label }}\r\n </mat-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <mat-option disabled=\"true\">No Result Found</mat-option>\r\n }\r\n }\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n<mat-chip-grid #chipGrid>\r\n @if (multiple()) {\r\n @for (chip of selectedOptions(); track chip[0]) {\r\n <mat-chip-row (removed)=\"removeFromSelectedOptionsMap(chip[1])\">\r\n {{ chip[1].label }}\r\n <button matChipRemove [attr.aria-label]=\"'remove ' + chip[1].label\">\r\n <ds-icon icon=\"trash\" class=\"fc-red\"></ds-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n }\r\n</mat-chip-grid>\r\n", styles: ["::ng-deep .mat-mdc-option.mdc-list-item__selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{--mat-option-selected-state-label-text-color: var(--green);color:var(--green)}\n"] }]
3685
- }] });
3686
-
3687
- class SlideToggleControl extends BaseCtrl {
3688
- onSlideToggleChange(checked) {
3689
- this.emitValue(checked);
3690
- }
3691
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SlideToggleControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3692
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: SlideToggleControl, isStandalone: true, selector: "iss-ctrl-slide-toggle", providers: [
3693
- { provide: NG_VALUE_ACCESSOR, useExisting: SlideToggleControl, multi: true }
3694
- ], usesInheritance: true, ngImport: i0, template: "<mat-slide-toggle\r\n class=\"d-block\" [formControl]=\"ctrl\"\r\n (change)=\"onSlideToggleChange($event.checked)\"\r\n></mat-slide-toggle>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
3695
- }
3696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SlideToggleControl, decorators: [{
3697
- type: Component,
3698
- args: [{ selector: "iss-ctrl-slide-toggle", standalone: true, imports: [MatSlideToggleModule, ReactiveFormsModule], providers: [
3699
- { provide: NG_VALUE_ACCESSOR, useExisting: SlideToggleControl, multi: true }
3700
- ], template: "<mat-slide-toggle\r\n class=\"d-block\" [formControl]=\"ctrl\"\r\n (change)=\"onSlideToggleChange($event.checked)\"\r\n></mat-slide-toggle>\r\n" }]
3701
- }] });
3702
-
3703
- class CtrlArrayControl extends BaseCtrl {
3704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtrlArrayControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3705
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CtrlArrayControl, isStandalone: true, selector: "iss-ctrl-ctrl-array", providers: [
3706
- { provide: NG_VALUE_ACCESSOR, useExisting: CtrlArrayControl, multi: true }
3707
- ], usesInheritance: true, ngImport: i0, template: "<p>ctrl-array works!</p>\r\n", styles: [""] }); }
3708
- }
3709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CtrlArrayControl, decorators: [{
3710
- type: Component,
3711
- args: [{ selector: "iss-ctrl-ctrl-array", standalone: true, imports: [], providers: [
3712
- { provide: NG_VALUE_ACCESSOR, useExisting: CtrlArrayControl, multi: true }
3713
- ], template: "<p>ctrl-array works!</p>\r\n" }]
3714
- }] });
3715
-
3716
- class TextareaControl extends BaseCtrl {
3717
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3718
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TextareaControl, isStandalone: true, selector: "iss-ctrl-textarea", providers: [
3719
- { provide: NG_VALUE_ACCESSOR, useExisting: TextareaControl, multi: true },
3720
- { provide: NG_VALIDATORS, useExisting: TextareaControl, multi: true }
3721
- ], usesInheritance: true, ngImport: i0, template: "<mat-form-field>\r\n <textarea\r\n matInput\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n (input)=\"emitValue()\"\r\n [disabled]=\"disabled()\"\r\n ></textarea>\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: HintsComponent, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
3722
- }
3723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaControl, decorators: [{
3724
- type: Component,
3725
- args: [{ selector: "iss-ctrl-textarea", standalone: true, imports: [
3726
- MatFormField,
3727
- MatInput,
3728
- HintsComponent,
3729
- FormsModule,
3730
- ReactiveFormsModule
3731
- ], providers: [
3732
- { provide: NG_VALUE_ACCESSOR, useExisting: TextareaControl, multi: true },
3733
- { provide: NG_VALIDATORS, useExisting: TextareaControl, multi: true }
3734
- ], template: "<mat-form-field>\r\n <textarea\r\n matInput\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n (input)=\"emitValue()\"\r\n [disabled]=\"disabled()\"\r\n ></textarea>\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n" }]
3735
- }] });
3736
-
3737
- class ToggleButtonControl extends BaseCtrl {
3738
- constructor() {
3739
- super(...arguments);
3740
- this.options = input.required();
3741
- this.selectedOptions = signal(new Map());
3742
- }
3743
- writeValue(value) {
3744
- this.#reset();
3745
- if (value === null || value === undefined) {
3746
- return;
3747
- }
3748
- const values = value.split(",").map((val) => val.trim());
3749
- let selectedOptions = this.options().filter((option) => values.includes(option.value));
3750
- if (!this.multiple()) {
3751
- if (selectedOptions.length > 1) {
3752
- this.emitValue(null);
3753
- throw new Error("You cannot set multiple values while the control is in single selection mode!");
3754
- }
3755
- this.ctrl.setValue(values[0]);
3756
- this.addToSelectedOptionsMap(this.#selectedOptionsMapFactory([selectedOptions[0]]));
3757
- return;
3758
- }
3759
- this.addToSelectedOptionsMap(this.#selectedOptionsMapFactory(selectedOptions));
3760
- this.ctrl.setValue(values);
3761
- }
3762
- addToSelectedOptionsMap(option) {
3763
- if (option) {
3764
- this.selectedOptions = signal(option);
3765
- }
3766
- }
3767
- onToggleButtonChange(checked, value) {
3768
- if (!this.multiple()) {
3769
- this.emitValue(value);
3770
- }
3771
- else {
3772
- const option = this.options().find(option => option.value == value);
3773
- this.selectedOptions.update((prev) => {
3774
- const options = prev;
3775
- if (checked)
3776
- options.set(option?.value, option);
3777
- else
3778
- options.delete(option?.value);
3779
- return options;
3780
- });
3781
- this.getEmissionValue(this.selectedOptions());
3782
- }
3783
- }
3784
- stringifySelectedOptions() {
3785
- if (!this.selectedOptions()?.size) {
3786
- return null;
3787
- }
3788
- return Array.from(this.selectedOptions(), ([value]) => value).join();
3789
- }
3790
- getEmissionValue(options) {
3791
- this.addToSelectedOptionsMap(options);
3792
- this.emitValue(this.stringifySelectedOptions());
3793
- }
3794
- #selectedOptionsMapFactory(selectedOptions) {
3795
- let selectedOptionsMap = new Map();
3796
- for (let option of selectedOptions) {
3797
- selectedOptionsMap.set(option.value, option);
3798
- }
3799
- return selectedOptionsMap;
3800
- }
3801
- #reset() {
3802
- this.selectedOptions().clear();
3803
- this.ctrl.setValue(null);
3804
- }
3805
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ToggleButtonControl, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3806
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ToggleButtonControl, isStandalone: true, selector: "iss-ctrl-toggle-button", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
3807
- { provide: NG_VALUE_ACCESSOR, useExisting: ToggleButtonControl, multi: true }
3808
- ], usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group\r\n [formControl]=\"ctrl\"\r\n [multiple]=multiple()\r\n [hideMultipleSelectionIndicator]=\"true\"\r\n [hideSingleSelectionIndicator]=\"true\"\r\n>\r\n @for (option of options(); track option.value) {\r\n <mat-button-toggle\r\n class=\"d-block\"\r\n [value]=\"option.value\"\r\n (change)=\"onToggleButtonChange($event.source.checked,option.value\r\n )\"\r\n >{{ option.label }}\r\n </mat-button-toggle>\r\n }\r\n</mat-button-toggle-group>\r\n", styles: [".mat-button-toggle-group-appearance-standard{border-radius:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
3809
- }
3810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ToggleButtonControl, decorators: [{
3811
- type: Component,
3812
- args: [{ selector: "iss-ctrl-toggle-button", standalone: true, imports: [MatButtonToggleModule, ReactiveFormsModule], providers: [
3813
- { provide: NG_VALUE_ACCESSOR, useExisting: ToggleButtonControl, multi: true }
3814
- ], template: "<mat-button-toggle-group\r\n [formControl]=\"ctrl\"\r\n [multiple]=multiple()\r\n [hideMultipleSelectionIndicator]=\"true\"\r\n [hideSingleSelectionIndicator]=\"true\"\r\n>\r\n @for (option of options(); track option.value) {\r\n <mat-button-toggle\r\n class=\"d-block\"\r\n [value]=\"option.value\"\r\n (change)=\"onToggleButtonChange($event.source.checked,option.value\r\n )\"\r\n >{{ option.label }}\r\n </mat-button-toggle>\r\n }\r\n</mat-button-toggle-group>\r\n", styles: [".mat-button-toggle-group-appearance-standard{border-radius:unset!important}\n"] }]
3815
- }] });
3816
-
3817
- /**
3818
- * Generated bundle index. Do not edit.
3819
- */
3820
-
3821
- export { AutocompleteControl, CheckboxControl, ChipsControl, CtrlArrayControl, DEFAULT_COUNTRY, DatePickerControl, DateRangePickerControl, DatetimePickerControl, DatetimeRangePickerControl, FilePickerControl, InputControl, MobileControl, NoteControl, PlateControl, RadioControl, SelectControl, SlideToggleControl, TextareaControl, TimePickerControl, ToggleButtonControl };
3822
- //# sourceMappingURL=iss-ctrl.mjs.map