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