carriera-intern 0.0.0 → 1.1.76

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 (600) hide show
  1. package/README.md +63 -59
  2. package/fesm2022/carriera-intern.mjs +11245 -0
  3. package/fesm2022/carriera-intern.mjs.map +1 -0
  4. package/index.d.ts +2557 -0
  5. package/package.json +24 -60
  6. package/{projects/carriera-intern-components/public → public}/assets/icons/Thumb-active.svg +3 -3
  7. package/{projects/carriera-intern-components/public → public}/assets/icons/Thumb.svg +3 -3
  8. package/{projects/carriera-intern-components/public → public}/assets/icons/arrows/cai-arrow-primary-up.svg +3 -3
  9. package/{projects/carriera-intern-components/public → public}/assets/icons/arrows/cai-arrow-secondary-down.svg +3 -3
  10. package/{projects/carriera-intern-components/public → public}/assets/icons/arrows/cai-arrow-secondary-left.svg +3 -3
  11. package/{projects/carriera-intern-components/public → public}/assets/icons/arrows/cai-arrow-secondary-right.svg +3 -3
  12. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_bbt.svg +5 -5
  13. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_bmo_harris.svg +13 -13
  14. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_capital_one.svg +11 -11
  15. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_chase.svg +11 -11
  16. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_chime.svg +10 -10
  17. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_citi.svg +8 -8
  18. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_fifth_third.svg +14 -14
  19. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_green_dot.svg +17 -17
  20. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_mb_financial.svg +5 -5
  21. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_meta.svg +11 -11
  22. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_navi_federal.svg +14 -14
  23. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_of_america.svg +5 -5
  24. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_pnc.svg +10 -10
  25. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_regions.svg +14 -14
  26. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_renasant.svg +14 -14
  27. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_tcf.svg +11 -11
  28. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_truist.svg +3 -3
  29. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_us.svg +4 -4
  30. package/{projects/carriera-intern-components/public → public}/assets/icons/banks/ic_bank_wells_fargo.svg +3 -3
  31. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-color.svg +3 -3
  32. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-drop-zone-focus.svg +48 -48
  33. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-edit.svg +4 -4
  34. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-edit2.svg +3 -3
  35. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-expand.svg +3 -3
  36. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-gps.svg +3 -3
  37. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration-dark.svg +4 -4
  38. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration-drop-zone-cover.svg +34 -34
  39. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration-drop-zone-profile.svg +58 -58
  40. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration-drop-zone-video.svg +41 -41
  41. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration-drop-zone.svg +43 -43
  42. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-illustration.svg +18 -18
  43. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-loader.svg +3 -3
  44. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-search.svg +3 -3
  45. package/{projects/carriera-intern-components/public → public}/assets/icons/cai-violation-hazmat.svg +3 -3
  46. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-contact.svg +3 -3
  47. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-count.svg +3 -3
  48. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-fuel-card.svg +3 -3
  49. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-people.svg +3 -3
  50. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-share.svg +3 -3
  51. package/{projects/carriera-intern-components/public → public}/assets/icons/fuel-contact/cai-user-2.svg +3 -3
  52. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-address.svg +3 -3
  53. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-checkmark.svg +3 -3
  54. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-date.svg +3 -3
  55. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-email.svg +2 -2
  56. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-fax.svg +5 -5
  57. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-label.svg +3 -3
  58. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-money-additional.svg +3 -3
  59. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-money.svg +3 -3
  60. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-phone-extension.svg +3 -3
  61. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-phone.svg +3 -3
  62. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-sort-by.svg +3 -3
  63. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-sort-descending.svg +4 -4
  64. package/{projects/carriera-intern-components/public → public}/assets/icons/general/cai-website.svg +3 -3
  65. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_corrosive_8.svg +6 -6
  66. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_dangerous_when_wet_4.svg +4 -4
  67. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_1.svg +6 -6
  68. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_2.svg +6 -6
  69. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_3.svg +6 -6
  70. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_4.svg +6 -6
  71. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_5.svg +6 -6
  72. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_explosives_1_6.svg +6 -6
  73. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_flammable_3.svg +4 -4
  74. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_flammable_gas_2.svg +4 -4
  75. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_flammable_solid_4.svg +5 -5
  76. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_inhalation_hazzard_2.svg +5 -5
  77. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_inhalation_hazzard_6.svg +5 -5
  78. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_organic_peroxide_5_2.svg +7 -7
  79. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_oxidizer_5_1.svg +6 -6
  80. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_oxygen_non_flam_gas_2.svg +6 -6
  81. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_radioactive_7.svg +5 -5
  82. package/{projects/carriera-intern-components/public → public}/assets/icons/hazardous/ic_spontaneously_combustible_4.svg +5 -5
  83. package/{projects/carriera-intern-components/public → public}/assets/icons/integration/cai-efs.svg +4 -4
  84. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-cancel.svg +3 -3
  85. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-copy.svg +3 -3
  86. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-dislike.svg +3 -3
  87. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-drag.svg +3 -3
  88. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-favorite.svg +3 -3
  89. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-like.svg +3 -3
  90. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-minus.svg +3 -3
  91. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-password-hidden.svg +3 -3
  92. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-password-key.svg +3 -3
  93. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-password-shown.svg +3 -3
  94. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai-plus.svg +3 -3
  95. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai_time.svg +2 -2
  96. package/{projects/carriera-intern-components/public → public}/assets/icons/interaction/cai_x.svg +4 -4
  97. package/{projects/carriera-intern-components/public → public}/assets/icons/load/cai-driver.svg +3 -3
  98. package/{projects/carriera-intern-components/public → public}/assets/icons/load/cai-load.svg +5 -5
  99. package/{projects/carriera-intern-components/public → public}/assets/icons/load/cai-ltl-single.svg +3 -3
  100. package/{projects/carriera-intern-components/public → public}/assets/icons/load/cai-parking.svg +3 -3
  101. package/{projects/carriera-intern-components/public → public}/assets/icons/load/cai-weight.svg +3 -3
  102. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_atro.svg +6 -6
  103. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_beall.svg +7 -7
  104. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_bedard.svg +8 -8
  105. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_butler.svg +7 -7
  106. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_de_lucio.svg +17 -17
  107. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_dorsey.svg +3 -3
  108. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_east.svg +3 -3
  109. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_fontaine.svg +3 -3
  110. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_fruehauf.svg +3 -3
  111. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_gallegos.svg +3 -3
  112. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_great_dane.svg +3 -3
  113. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_heil.svg +6 -6
  114. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_hudson.svg +3 -3
  115. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_hyndai.svg +3 -3
  116. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_kaufman.svg +3 -3
  117. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_mac.svg +3 -3
  118. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_manac.svg +3 -3
  119. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_polar.svg +3 -3
  120. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_ravens.svg +3 -3
  121. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_reitnouer.svg +12 -12
  122. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_strick.svg +3 -3
  123. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_timpte.svg +8 -8
  124. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_trail_king.svg +7 -7
  125. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_transcraft.svg +12 -12
  126. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_tremcar.svg +10 -10
  127. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_tytal.svg +3 -3
  128. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_utility.svg +3 -3
  129. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_vanguard.svg +3 -3
  130. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_vantage.svg +3 -3
  131. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_wabash.svg +3 -3
  132. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_walinga.svg +8 -8
  133. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trailers/ic_trailer_wilson.svg +3 -3
  134. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_chevrolet.svg +3 -3
  135. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_ford.svg +3 -3
  136. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_freightliner.svg +3 -3
  137. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_gmc.svg +3 -3
  138. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_hino.svg +3 -3
  139. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_international.svg +3 -3
  140. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_isuzu.svg +3 -3
  141. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_kenworth.svg +3 -3
  142. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_mack.svg +3 -3
  143. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_peterbilt.svg +3 -3
  144. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_volvo.svg +3 -3
  145. package/{projects/carriera-intern-components/public → public}/assets/icons/makes/trucks/ic_truck_western_star.svg +3 -3
  146. package/{projects/carriera-intern-components/public → public}/assets/icons/menu/cai-delete.svg +4 -4
  147. package/{projects/carriera-intern-components/public → public}/assets/icons/menu/cai-download.svg +3 -3
  148. package/{projects/carriera-intern-components/public → public}/assets/icons/menu/cai-reset.svg +3 -3
  149. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/cai-pm-base.svg +3 -3
  150. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/trailer/cai-pm-general.svg +3 -3
  151. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/trailer/cai-pm-pto-pump.svg +5 -5
  152. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/trailer/cai-repair-reefer.svg +3 -3
  153. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-air-filter.svg +5 -5
  154. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-alignment.svg +5 -5
  155. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-battery.svg +3 -3
  156. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-belts.svg +5 -5
  157. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-brake-chamber.svg +3 -3
  158. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-engine-oil-filter.svg +4 -4
  159. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-engine-tune-up.svg +3 -3
  160. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-radiator.svg +3 -3
  161. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-transmission-fluid.svg +4 -4
  162. package/{projects/carriera-intern-components/public → public}/assets/icons/pm/truck/cai-pm-turbo.svg +3 -3
  163. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-ab.svg +3 -3
  164. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-bc.svg +35 -35
  165. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-mb.svg +3 -3
  166. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-nb.svg +7 -7
  167. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-nl.svg +4 -4
  168. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-ns.svg +6 -6
  169. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-on.svg +7 -7
  170. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-pe.svg +3 -3
  171. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-qc.svg +4 -4
  172. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-sk.svg +3 -3
  173. package/{projects/carriera-intern-components/public → public}/assets/icons/states/ca/cai-ca-yt.svg +3 -3
  174. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ak.svg +14 -14
  175. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-al.svg +3 -3
  176. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ar.svg +3 -3
  177. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-az.svg +3 -3
  178. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ca.svg +3 -3
  179. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-co.svg +3 -3
  180. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ct.svg +3 -3
  181. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-de.svg +3 -3
  182. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-fl.svg +3 -3
  183. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ga.svg +3 -3
  184. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-hi.svg +10 -10
  185. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ia.svg +3 -3
  186. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-id.svg +3 -3
  187. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-il.svg +3 -3
  188. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-in.svg +3 -3
  189. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ks.svg +3 -3
  190. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ky.svg +3 -3
  191. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-la.svg +4 -4
  192. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ma.svg +7 -7
  193. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-md.svg +7 -7
  194. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-me.svg +9 -9
  195. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-mi.svg +11 -11
  196. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-mn.svg +4 -4
  197. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-mo.svg +3 -3
  198. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ms.svg +3 -3
  199. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-mt.svg +3 -3
  200. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nc.svg +3 -3
  201. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nd.svg +3 -3
  202. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ne.svg +3 -3
  203. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nh.svg +3 -3
  204. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nj.svg +5 -5
  205. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nm.svg +3 -3
  206. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-nv.svg +3 -3
  207. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ny.svg +4 -4
  208. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-oh.svg +4 -4
  209. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ok.svg +3 -3
  210. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-or.svg +3 -3
  211. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-pa.svg +3 -3
  212. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ri.svg +8 -8
  213. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-sc.svg +3 -3
  214. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-sd.svg +3 -3
  215. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-tn.svg +3 -3
  216. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-tx.svg +3 -3
  217. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-ut.svg +3 -3
  218. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-va.svg +4 -4
  219. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-vt.svg +7 -7
  220. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-wa.svg +15 -15
  221. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-wi.svg +4 -4
  222. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-wv.svg +3 -3
  223. package/{projects/carriera-intern-components/public → public}/assets/icons/states/us/cai-us-wy.svg +3 -3
  224. package/{projects/carriera-intern-components/public → public}/assets/icons/status/cai-status-warning-lite.svg +3 -3
  225. package/{projects/carriera-intern-components/public → public}/assets/icons/status/cai-status-warning.svg +3 -3
  226. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_bottom-dump.svg +5 -5
  227. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_carhauler-stinger.svg +5 -5
  228. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_carhauler.svg +5 -5
  229. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_chassis.svg +5 -5
  230. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_conestoga.svg +13 -13
  231. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_container.svg +6 -6
  232. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_dryvan.svg +5 -5
  233. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_end-dump.svg +5 -5
  234. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_flatbed.svg +5 -5
  235. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_hopper.svg +6 -6
  236. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_low-boy.svg +6 -6
  237. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_reefer.svg +5 -5
  238. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_side-kit.svg +6 -6
  239. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_step-deck.svg +7 -7
  240. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_tanker-pneumatic.svg +5 -5
  241. package/{projects/carriera-intern-components/public → public}/assets/icons/trailers/ic_trailer_tanker.svg +5 -5
  242. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_box-truck.svg +7 -7
  243. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_car-hauler.svg +7 -7
  244. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_cargo-van.svg +5 -5
  245. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_cement.svg +8 -8
  246. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_dump.svg +8 -8
  247. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_garbage.svg +10 -10
  248. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_reefer.svg +6 -6
  249. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_semi-truck.svg +8 -8
  250. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_semi-wSleeper.svg +8 -8
  251. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_spotter.svg +6 -6
  252. package/{projects/carriera-intern-components/public → public}/assets/icons/trucks/ic_truck_tow-truck.svg +8 -8
  253. package/{projects/carriera-intern-components/public → public}/assets/json/icons.json +985 -985
  254. package/{projects/carriera-intern-components/src → src}/styles/README.md +59 -59
  255. package/{projects/carriera-intern-components/src → src}/styles/_variables.scss +301 -301
  256. package/{projects/carriera-intern-components/src → src}/styles/cropper.scss +39 -39
  257. package/{projects/carriera-intern-components/src → src}/styles/custompickers.scss +827 -827
  258. package/{projects/carriera-intern-components/src → src}/styles/popover.scss +224 -224
  259. package/{projects/carriera-intern-components/src → src}/styles/review_variables.scss +45 -45
  260. package/{projects/carriera-intern-components/src → src}/styles/tooltip.scss +119 -119
  261. package/{projects/carriera-intern-components/src → src}/styles/utility/colors.scss +265 -265
  262. package/{projects/carriera-intern-components/src → src}/styles/utility/utilities.scss +17 -17
  263. package/{projects/carriera-intern-components/src → src}/styles.scss +43 -43
  264. package/.cursor/rules/icons.mdc +0 -7
  265. package/.editorconfig +0 -17
  266. package/.vscode/extensions.json +0 -4
  267. package/.vscode/launch.json +0 -20
  268. package/.vscode/tasks.json +0 -42
  269. package/angular.json +0 -94
  270. package/carriera-intern@0.0.0 +0 -0
  271. package/projects/carriera-intern-components/.storybook/main.ts +0 -12
  272. package/projects/carriera-intern-components/.storybook/preview-head.html +0 -13
  273. package/projects/carriera-intern-components/.storybook/preview.ts +0 -54
  274. package/projects/carriera-intern-components/.storybook/tsconfig.doc.json +0 -10
  275. package/projects/carriera-intern-components/.storybook/tsconfig.json +0 -11
  276. package/projects/carriera-intern-components/.storybook/typings.d.ts +0 -4
  277. package/projects/carriera-intern-components/README.md +0 -63
  278. package/projects/carriera-intern-components/ng-package.json +0 -14
  279. package/projects/carriera-intern-components/package.json +0 -14
  280. package/projects/carriera-intern-components/public/favicon.ico +0 -0
  281. package/projects/carriera-intern-components/src/Changelog.mdx +0 -285
  282. package/projects/carriera-intern-components/src/Icons.mdx +0 -279
  283. package/projects/carriera-intern-components/src/app/app.config.ts +0 -26
  284. package/projects/carriera-intern-components/src/app/components/avatar/avatar.component.html +0 -28
  285. package/projects/carriera-intern-components/src/app/components/avatar/avatar.component.scss +0 -414
  286. package/projects/carriera-intern-components/src/app/components/avatar/avatar.component.spec.ts +0 -23
  287. package/projects/carriera-intern-components/src/app/components/avatar/avatar.component.ts +0 -66
  288. package/projects/carriera-intern-components/src/app/components/avatar/avatar.stories.ts +0 -787
  289. package/projects/carriera-intern-components/src/app/components/avatar/models/avatar.model.ts +0 -52
  290. package/projects/carriera-intern-components/src/app/components/avatar/models/index.ts +0 -1
  291. package/projects/carriera-intern-components/src/app/components/avatar/pipes/avatar-classes.pipe.ts +0 -98
  292. package/projects/carriera-intern-components/src/app/components/avatar/pipes/index.ts +0 -2
  293. package/projects/carriera-intern-components/src/app/components/avatar/pipes/initials.pipe.ts +0 -31
  294. package/projects/carriera-intern-components/src/app/components/content-driven-co/content-driven-co.component.css +0 -0
  295. package/projects/carriera-intern-components/src/app/components/content-driven-co/content-driven-co.component.html +0 -10
  296. package/projects/carriera-intern-components/src/app/components/content-driven-co/content-driven-co.component.spec.ts +0 -23
  297. package/projects/carriera-intern-components/src/app/components/content-driven-co/content-driven-co.component.ts +0 -25
  298. package/projects/carriera-intern-components/src/app/components/content-driven-co/content-driven-co.stories.ts +0 -65
  299. package/projects/carriera-intern-components/src/app/components/copy/copy.component.html +0 -66
  300. package/projects/carriera-intern-components/src/app/components/copy/copy.component.scss +0 -103
  301. package/projects/carriera-intern-components/src/app/components/copy/copy.component.spec.ts +0 -22
  302. package/projects/carriera-intern-components/src/app/components/copy/copy.component.ts +0 -57
  303. package/projects/carriera-intern-components/src/app/components/copy/stories/copy.stories.ts +0 -170
  304. package/projects/carriera-intern-components/src/app/components/counter/counter.component.html +0 -33
  305. package/projects/carriera-intern-components/src/app/components/counter/counter.component.scss +0 -197
  306. package/projects/carriera-intern-components/src/app/components/counter/counter.component.spec.ts +0 -22
  307. package/projects/carriera-intern-components/src/app/components/counter/counter.component.ts +0 -219
  308. package/projects/carriera-intern-components/src/app/components/counter/counter.stories.ts +0 -65
  309. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/dispatch-dropdown.component.html +0 -223
  310. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/dispatch-dropdown.component.scss +0 -792
  311. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/dispatch-dropdown.component.spec.ts +0 -23
  312. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/dispatch-dropdown.component.ts +0 -323
  313. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/dispatch-dropdown.stories.ts +0 -409
  314. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/helpers/dispatch-dropdown.helper.ts +0 -248
  315. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/interfaces/dispatch-dropdown-config.interface.ts +0 -10
  316. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/interfaces/dispatch-dropdown-option.interface.ts +0 -4
  317. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/interfaces/index.ts +0 -2
  318. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/mock/parking-data.json +0 -1550
  319. package/projects/carriera-intern-components/src/app/components/dispatch-dropdown/pipes/dispatch-search-filter.pipe.ts +0 -26
  320. package/projects/carriera-intern-components/src/app/components/dispatch-location/dispatch-location.component.html +0 -76
  321. package/projects/carriera-intern-components/src/app/components/dispatch-location/dispatch-location.component.scss +0 -141
  322. package/projects/carriera-intern-components/src/app/components/dispatch-location/dispatch-location.component.spec.ts +0 -22
  323. package/projects/carriera-intern-components/src/app/components/dispatch-location/dispatch-location.component.ts +0 -268
  324. package/projects/carriera-intern-components/src/app/components/dispatch-location/dispatch-location.stories.ts +0 -184
  325. package/projects/carriera-intern-components/src/app/components/dispatch-location/interfaces/index.ts +0 -1
  326. package/projects/carriera-intern-components/src/app/components/dispatch-location/interfaces/last-status-data.interface.ts +0 -6
  327. package/projects/carriera-intern-components/src/app/components/dispatch-location/pipes/last-status-format.pipe.ts +0 -35
  328. package/projects/carriera-intern-components/src/app/components/document-preview/document-preview.component.html +0 -229
  329. package/projects/carriera-intern-components/src/app/components/document-preview/document-preview.component.scss +0 -1115
  330. package/projects/carriera-intern-components/src/app/components/document-preview/document-preview.component.spec.ts +0 -23
  331. package/projects/carriera-intern-components/src/app/components/document-preview/document-preview.component.ts +0 -277
  332. package/projects/carriera-intern-components/src/app/components/document-preview/document-preview.stories.ts +0 -256
  333. package/projects/carriera-intern-components/src/app/components/document-preview/interfaces/document-tag.interface.ts +0 -4
  334. package/projects/carriera-intern-components/src/app/components/document-preview/interfaces/index.ts +0 -1
  335. package/projects/carriera-intern-components/src/app/components/document-preview/utils/config/button-actions.config.ts +0 -30
  336. package/projects/carriera-intern-components/src/app/components/document-preview/utils/config/index.ts +0 -1
  337. package/projects/carriera-intern-components/src/app/components/drop-zone/drop-zone.component.html +0 -376
  338. package/projects/carriera-intern-components/src/app/components/drop-zone/drop-zone.component.scss +0 -9
  339. package/projects/carriera-intern-components/src/app/components/drop-zone/drop-zone.component.spec.ts +0 -22
  340. package/projects/carriera-intern-components/src/app/components/drop-zone/drop-zone.component.ts +0 -1272
  341. package/projects/carriera-intern-components/src/app/components/drop-zone/drop-zone.stories.ts +0 -1253
  342. package/projects/carriera-intern-components/src/app/components/drop-zone/enums/drop-zone-labels.enum.ts +0 -0
  343. package/projects/carriera-intern-components/src/app/components/drop-zone/enums/drop-zone-variant.enum.ts +0 -7
  344. package/projects/carriera-intern-components/src/app/components/drop-zone/enums/index.ts +0 -1
  345. package/projects/carriera-intern-components/src/app/components/drop-zone/models/app-file.model.ts +0 -28
  346. package/projects/carriera-intern-components/src/app/components/drop-zone/models/file.response.ts +0 -10
  347. package/projects/carriera-intern-components/src/app/components/drop-zone/models/index.ts +0 -2
  348. package/projects/carriera-intern-components/src/app/components/drop-zone/pipes/drag-mode-animation.pipe.ts +0 -40
  349. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/helpers/drop-zone-documents.helper.ts +0 -67
  350. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/helpers/index.ts +0 -1
  351. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-cropper.scss +0 -202
  352. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-documents.scss +0 -166
  353. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-drag-mode.scss +0 -107
  354. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-images.scss +0 -106
  355. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-layout.scss +0 -208
  356. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-states.scss +0 -183
  357. package/projects/carriera-intern-components/src/app/components/drop-zone/utils/styles/drop-zone-variations.scss +0 -189
  358. package/projects/carriera-intern-components/src/app/components/input/directives/helpers/index.ts +0 -1
  359. package/projects/carriera-intern-components/src/app/components/input/directives/helpers/mask.helper.ts +0 -52
  360. package/projects/carriera-intern-components/src/app/components/input/directives/mask.directive.spec.ts +0 -13
  361. package/projects/carriera-intern-components/src/app/components/input/directives/mask.directive.ts +0 -274
  362. package/projects/carriera-intern-components/src/app/components/input/directives/number-format.directive.spec.ts +0 -13
  363. package/projects/carriera-intern-components/src/app/components/input/directives/number-format.directive.ts +0 -442
  364. package/projects/carriera-intern-components/src/app/components/input/directives/password.directive.spec.ts +0 -13
  365. package/projects/carriera-intern-components/src/app/components/input/directives/password.directive.ts +0 -282
  366. package/projects/carriera-intern-components/src/app/components/input/input.component.html +0 -2669
  367. package/projects/carriera-intern-components/src/app/components/input/input.component.scss +0 -3000
  368. package/projects/carriera-intern-components/src/app/components/input/input.component.spec.ts +0 -23
  369. package/projects/carriera-intern-components/src/app/components/input/input.component.ts +0 -1486
  370. package/projects/carriera-intern-components/src/app/components/input/mock/banks.json +0 -249
  371. package/projects/carriera-intern-components/src/app/components/input/mock/basic.json +0 -42
  372. package/projects/carriera-intern-components/src/app/components/input/mock/brokers.json +0 -544
  373. package/projects/carriera-intern-components/src/app/components/input/mock/colors.json +0 -95
  374. package/projects/carriera-intern-components/src/app/components/input/mock/commodities.json +0 -12
  375. package/projects/carriera-intern-components/src/app/components/input/mock/contacts.json +0 -117
  376. package/projects/carriera-intern-components/src/app/components/input/mock/dispatchers.json +0 -83
  377. package/projects/carriera-intern-components/src/app/components/input/mock/dispatches.json +0 -4188
  378. package/projects/carriera-intern-components/src/app/components/input/mock/fuel-list-dropdown.json +0 -968
  379. package/projects/carriera-intern-components/src/app/components/input/mock/fuel-transaction.json +0 -78
  380. package/projects/carriera-intern-components/src/app/components/input/mock/fuelcard.json +0 -472
  381. package/projects/carriera-intern-components/src/app/components/input/mock/hazardous.json +0 -166
  382. package/projects/carriera-intern-components/src/app/components/input/mock/labelColors.json +0 -81
  383. package/projects/carriera-intern-components/src/app/components/input/mock/labels.json +0 -169
  384. package/projects/carriera-intern-components/src/app/components/input/mock/new-load-modal-res.json +0 -1148
  385. package/projects/carriera-intern-components/src/app/components/input/mock/noboard.json +0 -1665
  386. package/projects/carriera-intern-components/src/app/components/input/mock/owner.json +0 -209
  387. package/projects/carriera-intern-components/src/app/components/input/mock/pm.json +0 -112
  388. package/projects/carriera-intern-components/src/app/components/input/mock/shipper.json +0 -1192
  389. package/projects/carriera-intern-components/src/app/components/input/mock/split-driver.json +0 -99
  390. package/projects/carriera-intern-components/src/app/components/input/mock/split-trailer.json +0 -79
  391. package/projects/carriera-intern-components/src/app/components/input/mock/split-truck.json +0 -49
  392. package/projects/carriera-intern-components/src/app/components/input/mock/states.json +0 -605
  393. package/projects/carriera-intern-components/src/app/components/input/mock/toll.json +0 -106
  394. package/projects/carriera-intern-components/src/app/components/input/mock/trailermakes.json +0 -196
  395. package/projects/carriera-intern-components/src/app/components/input/mock/truck_trailer.json +0 -184
  396. package/projects/carriera-intern-components/src/app/components/input/mock/truckmakes.json +0 -76
  397. package/projects/carriera-intern-components/src/app/components/input/models/dropdown.model.ts +0 -376
  398. package/projects/carriera-intern-components/src/app/components/input/models/index.ts +0 -2
  399. package/projects/carriera-intern-components/src/app/components/input/models/input.model.ts +0 -227
  400. package/projects/carriera-intern-components/src/app/components/input/pipes/broker-progress.pipe.ts +0 -36
  401. package/projects/carriera-intern-components/src/app/components/input/pipes/clear-tooltip.pipe.ts +0 -38
  402. package/projects/carriera-intern-components/src/app/components/input/pipes/error-message.pipe.ts +0 -54
  403. package/projects/carriera-intern-components/src/app/components/input/pipes/highlight-search.pipe.ts +0 -42
  404. package/projects/carriera-intern-components/src/app/components/input/pipes/index.ts +0 -6
  405. package/projects/carriera-intern-components/src/app/components/input/pipes/input-class.pipe.ts +0 -109
  406. package/projects/carriera-intern-components/src/app/components/input/pipes/remap-pm-icons.pipe.ts +0 -49
  407. package/projects/carriera-intern-components/src/app/components/input/stories/Documentation.mdx +0 -190
  408. package/projects/carriera-intern-components/src/app/components/input/stories/dropdown-options.ts +0 -80
  409. package/projects/carriera-intern-components/src/app/components/input/stories/dropdown.stories.ts +0 -376
  410. package/projects/carriera-intern-components/src/app/components/input/stories/input-dropdown.stories.ts +0 -405
  411. package/projects/carriera-intern-components/src/app/components/input/stories/input-inverse.stories.ts +0 -232
  412. package/projects/carriera-intern-components/src/app/components/input/stories/input-load.stories.ts +0 -150
  413. package/projects/carriera-intern-components/src/app/components/input/stories/input-placeholder.stories.ts +0 -225
  414. package/projects/carriera-intern-components/src/app/components/input/stories/input-subcontent.stories.ts +0 -264
  415. package/projects/carriera-intern-components/src/app/components/input/stories/input-table.stories.ts +0 -211
  416. package/projects/carriera-intern-components/src/app/components/input/stories/input.stories.ts +0 -1159
  417. package/projects/carriera-intern-components/src/app/components/input/stories/modal.stories.ts +0 -162
  418. package/projects/carriera-intern-components/src/app/components/input/utilities/constants/cast.constants.ts +0 -91
  419. package/projects/carriera-intern-components/src/app/components/input/utilities/constants/index.ts +0 -1
  420. package/projects/carriera-intern-components/src/app/components/input/utilities/helpers/index.ts +0 -2
  421. package/projects/carriera-intern-components/src/app/components/input/utilities/helpers/input.helper.ts +0 -985
  422. package/projects/carriera-intern-components/src/app/components/input/utilities/helpers/keyboard-navigation.helper.ts +0 -402
  423. package/projects/carriera-intern-components/src/app/components/input/utilities/index.ts +0 -2
  424. package/projects/carriera-intern-components/src/app/components/input-address/enums/input-address-layers-string.enum.ts +0 -4
  425. package/projects/carriera-intern-components/src/app/components/input-address/enums/input-address-type-string.enum.ts +0 -7
  426. package/projects/carriera-intern-components/src/app/components/input-address/input-address.component.html +0 -13
  427. package/projects/carriera-intern-components/src/app/components/input-address/input-address.component.scss +0 -0
  428. package/projects/carriera-intern-components/src/app/components/input-address/input-address.component.spec.ts +0 -22
  429. package/projects/carriera-intern-components/src/app/components/input-address/input-address.component.ts +0 -509
  430. package/projects/carriera-intern-components/src/app/components/input-address/models/address-data.model.ts +0 -22
  431. package/projects/carriera-intern-components/src/app/components/input-address/models/address-list.model.ts +0 -6
  432. package/projects/carriera-intern-components/src/app/components/input-address/models/long-lat.model.ts +0 -4
  433. package/projects/carriera-intern-components/src/app/components/input-address/models/sent-address-data.model.ts +0 -25
  434. package/projects/carriera-intern-components/src/app/components/input-address/stories/address.stories.ts +0 -181
  435. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/cai-input-datetime-picker.component.html +0 -180
  436. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/cai-input-datetime-picker.component.scss +0 -862
  437. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/cai-input-datetime-picker.component.ts +0 -1559
  438. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/cai-input-datetime-picker.stories.ts +0 -507
  439. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/cai-custom-datetime-pickers.component.html +0 -134
  440. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/cai-custom-datetime-pickers.component.scss +0 -0
  441. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/cai-custom-datetime-pickers.component.spec.ts +0 -24
  442. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/cai-custom-datetime-pickers.component.ts +0 -331
  443. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-dates-main/cai-custom-datetime-pickers-calendar-dates-main.component.html +0 -190
  444. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-dates-main/cai-custom-datetime-pickers-calendar-dates-main.component.scss +0 -0
  445. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-dates-main/cai-custom-datetime-pickers-calendar-dates-main.component.spec.ts +0 -26
  446. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-dates-main/cai-custom-datetime-pickers-calendar-dates-main.component.ts +0 -234
  447. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-days/cai-custom-datetime-pickers-calendar-days.component.html +0 -23
  448. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-days/cai-custom-datetime-pickers-calendar-days.component.scss +0 -0
  449. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-days/cai-custom-datetime-pickers-calendar-days.component.spec.ts +0 -26
  450. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-days/cai-custom-datetime-pickers-calendar-days.component.ts +0 -60
  451. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-left/cai-custom-datetime-pickers-calendar-left.component.html +0 -27
  452. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-left/cai-custom-datetime-pickers-calendar-left.component.scss +0 -0
  453. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-left/cai-custom-datetime-pickers-calendar-left.component.spec.ts +0 -26
  454. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-calendar-left/cai-custom-datetime-pickers-calendar-left.component.ts +0 -187
  455. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-date-calendars/cai-custom-datetime-pickers-date-calendars.component.html +0 -68
  456. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-date-calendars/cai-custom-datetime-pickers-date-calendars.component.scss +0 -0
  457. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-date-calendars/cai-custom-datetime-pickers-date-calendars.component.spec.ts +0 -26
  458. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/components/cai-custom-datetime-pickers-date-calendars/cai-custom-datetime-pickers-date-calendars.component.ts +0 -163
  459. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/config/cai-input.config.ts +0 -193
  460. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/config/index.ts +0 -1
  461. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-left-string.enum.ts +0 -5
  462. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-list-preview-string.enum.ts +0 -4
  463. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-main-string.enum.ts +0 -5
  464. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-scroll-type-string.enum.ts +0 -4
  465. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-string.enum.ts +0 -6
  466. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/calendar-type-string.enum.ts +0 -3
  467. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/enums/config.enum.ts +0 -7
  468. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/models/scroll-change.model.ts +0 -6
  469. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/models/scroll-type.model.ts +0 -8
  470. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/pipes/calendar-months.pipe.ts +0 -23
  471. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/services/calendar-datetime-picker.service.ts +0 -35
  472. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/strategy/calendar-strategy.ts +0 -120
  473. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/components/cai-custom-datetime-pickers/utils/constants/custom-datetime-pickers.constants.ts +0 -48
  474. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/enums/input-config-name-string.enum.ts +0 -7
  475. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/interfaces/index.ts +0 -1
  476. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/interfaces/input-datetime.interface.ts +0 -11
  477. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/models/index.ts +0 -5
  478. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/models/label-color.model.ts +0 -11
  479. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/pipes/input-clear-class.pipe.ts +0 -105
  480. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/pipes/input-date-time-container-class.pipe.ts +0 -66
  481. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/pipes/input-dropdown-arrow-class.pipe.ts +0 -68
  482. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/pipes/input-placeholder-icon.class.pipe.ts +0 -68
  483. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/pipes/show-clear.pipe.ts +0 -20
  484. package/projects/carriera-intern-components/src/app/components/input-datetime-picker/scss/ca-input.colors.scss +0 -287
  485. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/list-contact-dropdown.component.html +0 -194
  486. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/list-contact-dropdown.component.scss +0 -613
  487. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/list-contact-dropdown.component.spec.ts +0 -22
  488. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/list-contact-dropdown.component.ts +0 -208
  489. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/list-contact-dropdown.stories.ts +0 -52
  490. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/mock/brokerContacts.json +0 -74
  491. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/models/contact.interface.ts +0 -23
  492. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/pipes/contact-count.pipe.ts +0 -14
  493. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/pipes/contacts-height.pipe.ts +0 -34
  494. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/pipes/departments-height.pipe.ts +0 -57
  495. package/projects/carriera-intern-components/src/app/components/list-contact-dropdown/pipes/map-contacts.pipe.ts +0 -51
  496. package/projects/carriera-intern-components/src/app/components/pm/mock/repair-pm.json +0 -2743
  497. package/projects/carriera-intern-components/src/app/components/pm/pm.component.html +0 -82
  498. package/projects/carriera-intern-components/src/app/components/pm/pm.component.scss +0 -260
  499. package/projects/carriera-intern-components/src/app/components/pm/pm.component.spec.ts +0 -23
  500. package/projects/carriera-intern-components/src/app/components/pm/pm.component.ts +0 -207
  501. package/projects/carriera-intern-components/src/app/components/pm/pm.stories.ts +0 -104
  502. package/projects/carriera-intern-components/src/app/components/rating_review/enums/filter-type.enum.ts +0 -7
  503. package/projects/carriera-intern-components/src/app/components/rating_review/enums/review-type.enum.ts +0 -5
  504. package/projects/carriera-intern-components/src/app/components/rating_review/pipes/date-formating.pipe.spec.ts +0 -8
  505. package/projects/carriera-intern-components/src/app/components/rating_review/pipes/date-formating.pipe.ts +0 -42
  506. package/projects/carriera-intern-components/src/app/components/rating_review/rating-review/rating-review/rating-review.component.html +0 -57
  507. package/projects/carriera-intern-components/src/app/components/rating_review/rating-review/rating-review/rating-review.component.scss +0 -94
  508. package/projects/carriera-intern-components/src/app/components/rating_review/rating-review/rating-review/rating-review.component.spec.ts +0 -23
  509. package/projects/carriera-intern-components/src/app/components/rating_review/rating-review/rating-review/rating-review.component.ts +0 -105
  510. package/projects/carriera-intern-components/src/app/components/rating_review/rating-review/rating-review/rating-review.stories.ts +0 -451
  511. package/projects/carriera-intern-components/src/app/components/rating_review/review-modal/review-modal.component.html +0 -236
  512. package/projects/carriera-intern-components/src/app/components/rating_review/review-modal/review-modal.component.scss +0 -564
  513. package/projects/carriera-intern-components/src/app/components/rating_review/review-modal/review-modal.component.ts +0 -360
  514. package/projects/carriera-intern-components/src/app/components/rating_review/single-review/single-review.component.html +0 -321
  515. package/projects/carriera-intern-components/src/app/components/rating_review/single-review/single-review.component.scss +0 -887
  516. package/projects/carriera-intern-components/src/app/components/rating_review/single-review/single-review.component.ts +0 -159
  517. package/projects/carriera-intern-components/src/app/components/selected-location-field/interfaces/index.ts +0 -1
  518. package/projects/carriera-intern-components/src/app/components/selected-location-field/interfaces/selected-business-field.interface.ts +0 -11
  519. package/projects/carriera-intern-components/src/app/components/selected-location-field/selected-business-field.component.html +0 -100
  520. package/projects/carriera-intern-components/src/app/components/selected-location-field/selected-business-field.component.scss +0 -239
  521. package/projects/carriera-intern-components/src/app/components/selected-location-field/selected-business-field.component.spec.ts +0 -22
  522. package/projects/carriera-intern-components/src/app/components/selected-location-field/selected-business-field.component.ts +0 -28
  523. package/projects/carriera-intern-components/src/app/components/selected-location-field/selected-business-field.stories.ts +0 -132
  524. package/projects/carriera-intern-components/src/app/components/signature/signature.component.html +0 -63
  525. package/projects/carriera-intern-components/src/app/components/signature/signature.component.scss +0 -229
  526. package/projects/carriera-intern-components/src/app/components/signature/signature.component.spec.ts +0 -23
  527. package/projects/carriera-intern-components/src/app/components/signature/signature.component.ts +0 -102
  528. package/projects/carriera-intern-components/src/app/components/signature/signature.stories.ts +0 -32
  529. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/enums/index.ts +0 -1
  530. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/enums/scroll-state.enum.ts +0 -6
  531. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/sticky-scrollbar.component.html +0 -29
  532. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/sticky-scrollbar.component.scss +0 -106
  533. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/sticky-scrollbar.component.spec.ts +0 -23
  534. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/sticky-scrollbar.component.ts +0 -458
  535. package/projects/carriera-intern-components/src/app/components/sticky-scrollbar/sticky-scrollbar.stories.ts +0 -343
  536. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/interfaces/index.ts +0 -2
  537. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/interfaces/tab-option-config.interface.ts +0 -4
  538. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/interfaces/tab-option.interface.ts +0 -4
  539. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/pipes/index.ts +0 -1
  540. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/pipes/tab-search-filter.pipe.ts +0 -20
  541. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/tab-option-dropdown.component.html +0 -66
  542. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/tab-option-dropdown.component.scss +0 -441
  543. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/tab-option-dropdown.component.spec.ts +0 -22
  544. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/tab-option-dropdown.component.ts +0 -105
  545. package/projects/carriera-intern-components/src/app/components/tab-option-dropdown/tab-option.stories.ts +0 -93
  546. package/projects/carriera-intern-components/src/app/components/text-area/interfaces/index.ts +0 -1
  547. package/projects/carriera-intern-components/src/app/components/text-area/interfaces/text-area.interface.ts +0 -4
  548. package/projects/carriera-intern-components/src/app/components/text-area/text-area.component.html +0 -29
  549. package/projects/carriera-intern-components/src/app/components/text-area/text-area.component.scss +0 -294
  550. package/projects/carriera-intern-components/src/app/components/text-area/text-area.component.spec.ts +0 -23
  551. package/projects/carriera-intern-components/src/app/components/text-area/text-area.component.ts +0 -213
  552. package/projects/carriera-intern-components/src/app/components/text-area/text-area.stories.ts +0 -90
  553. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interfaces/index.ts +0 -1
  554. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interfaces/interval-dropdown-option.interface.ts +0 -10
  555. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interval-dropdown.component.html +0 -98
  556. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interval-dropdown.component.scss +0 -437
  557. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interval-dropdown.component.spec.ts +0 -22
  558. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interval-dropdown.component.ts +0 -160
  559. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/interval-dropdown.stories.ts +0 -77
  560. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/pipes/dropdown-filter-input-config.pipe.ts +0 -52
  561. package/projects/carriera-intern-components/src/app/components/toolbar-dropdown/utils/helpers/interval-dropdown.helper.ts +0 -193
  562. package/projects/carriera-intern-components/src/app/directives/hover-svg-directives.ts +0 -49
  563. package/projects/carriera-intern-components/src/app/directives/index.ts +0 -3
  564. package/projects/carriera-intern-components/src/app/directives/infinite-scroll.directive.ts +0 -64
  565. package/projects/carriera-intern-components/src/app/directives/intersection-observer.directive.ts +0 -50
  566. package/projects/carriera-intern-components/src/app/enums/alignment.enum.ts +0 -4
  567. package/projects/carriera-intern-components/src/app/enums/general-actions.enum.ts +0 -71
  568. package/projects/carriera-intern-components/src/app/enums/index.ts +0 -3
  569. package/projects/carriera-intern-components/src/app/enums/string-placeholder.enum.ts +0 -3
  570. package/projects/carriera-intern-components/src/app/models/pm.model.ts +0 -11
  571. package/projects/carriera-intern-components/src/app/models/review.model.ts +0 -29
  572. package/projects/carriera-intern-components/src/app/models/truck.model.ts +0 -5
  573. package/projects/carriera-intern-components/src/app/pipes/bytes-to-human-readable.pipe.spec.ts +0 -8
  574. package/projects/carriera-intern-components/src/app/pipes/bytes-to-human-readable.pipe.ts +0 -29
  575. package/projects/carriera-intern-components/src/app/pipes/currency.pipe.spec.ts +0 -8
  576. package/projects/carriera-intern-components/src/app/pipes/currency.pipe.ts +0 -61
  577. package/projects/carriera-intern-components/src/app/pipes/number-format.pipe.spec.ts +0 -8
  578. package/projects/carriera-intern-components/src/app/pipes/number-format.pipe.ts +0 -30
  579. package/projects/carriera-intern-components/src/app/services/document.service.spec.ts +0 -16
  580. package/projects/carriera-intern-components/src/app/services/document.service.ts +0 -168
  581. package/projects/carriera-intern-components/src/app/utils/autofill-validators.ts +0 -32
  582. package/projects/carriera-intern-components/src/app/utils/constants/index.ts +0 -1
  583. package/projects/carriera-intern-components/src/app/utils/constants/input-character-sets.constants.ts +0 -142
  584. package/projects/carriera-intern-components/src/app/utils/index.ts +0 -2
  585. package/projects/carriera-intern-components/src/app/validators/custom-validators.ts +0 -45
  586. package/projects/carriera-intern-components/src/public-api.ts +0 -31
  587. package/projects/carriera-intern-components/tsconfig.lib.json +0 -15
  588. package/projects/carriera-intern-components/tsconfig.lib.prod.json +0 -11
  589. package/projects/carriera-intern-components/tsconfig.spec.json +0 -15
  590. package/tsconfig.json +0 -33
  591. /package/{projects/carriera-intern-components/public → public}/assets/animations/animation-document-update.json +0 -0
  592. /package/{projects/carriera-intern-components/public → public}/assets/animations/animation-image.json +0 -0
  593. /package/{projects/carriera-intern-components/public → public}/assets/animations/animation-logo.json +0 -0
  594. /package/{projects/carriera-intern-components/public → public}/assets/animations/animation-media.json +0 -0
  595. /package/{projects/carriera-intern-components/public → public}/assets/cdl.png +0 -0
  596. /package/{projects/carriera-intern-components/public → public}/assets/exampledoc.png +0 -0
  597. /package/{projects/carriera-intern-components/public → public}/assets/examplelargeview.png +0 -0
  598. /package/{projects/carriera-intern-components/public → public}/assets/invexample.png +0 -0
  599. /package/{projects/carriera-intern-components/public → public}/assets/invoice.png +0 -0
  600. /package/{projects/carriera-intern-components/public → public}/assets/truck.png +0 -0
@@ -1,1272 +0,0 @@
1
- import {
2
- Component,
3
- ElementRef,
4
- signal,
5
- ViewChild,
6
- inject,
7
- computed,
8
- input,
9
- Input,
10
- Output,
11
- EventEmitter,
12
- HostListener,
13
- OnDestroy,
14
- AfterViewChecked,
15
- } from '@angular/core';
16
- import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
17
-
18
- //components
19
- import { SvgIconComponent } from 'angular-svg-icon';
20
- import { ImageCropperComponent } from 'ngx-image-cropper';
21
- import { DocumentPreviewComponent } from '../document-preview/document-preview.component';
22
- import { AvatarComponent } from '../avatar/avatar.component';
23
- import { LottieComponent } from 'ngx-lottie';
24
-
25
- //models
26
- import { AppFile, FileExtension } from './models';
27
- import { Driver } from '../avatar/models';
28
- import { FileResponse } from './models/file.response';
29
-
30
- //modules
31
- import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
32
- import { CommonModule } from '@angular/common';
33
-
34
- //cropper
35
- import {
36
- ImageCroppedEvent,
37
- LoadedImage,
38
- ImageTransform,
39
- base64ToFile,
40
- } from 'ngx-image-cropper';
41
-
42
- //services
43
- import { DocumentService } from '../../services/document.service';
44
-
45
- //forms
46
- import { FormGroup } from '@angular/forms';
47
-
48
- //interfaces
49
- import { DocumentTag } from '../document-preview/interfaces';
50
- import { AnimationItem } from 'lottie-web';
51
-
52
- //enums
53
- import { DropZoneVariant } from './enums';
54
-
55
- //pipes
56
- import { DragModeAnimationPipe } from './pipes/drag-mode-animation.pipe';
57
-
58
- //helpers
59
- import { DropZoneDocumentsHelper } from './utils/helpers';
60
-
61
- /**
62
- * A component that provides a user interface for file uploading via
63
- * drag-and-drop or a file input dialog. It displays previews of the
64
- * selected files in a carousel.
65
- */
66
- @Component({
67
- selector: 'cai-drop-zone',
68
- imports: [
69
- // modules
70
- CommonModule,
71
- NgbTooltipModule,
72
-
73
- // components
74
- SvgIconComponent,
75
- DocumentPreviewComponent,
76
- ImageCropperComponent,
77
- AvatarComponent,
78
- LottieComponent,
79
-
80
- //pipes
81
- DragModeAnimationPipe,
82
- ],
83
- templateUrl: './drop-zone.component.html',
84
- styleUrl: './drop-zone.component.scss',
85
- providers: [],
86
- })
87
- export class DropZoneComponent implements OnDestroy, AfterViewChecked {
88
- // Signals
89
- public zoomValue = signal<number>(5.8);
90
- public smallView = signal<boolean>(false);
91
- public cropHeight = signal<number>(0);
92
- public cropWidth = signal<number>(0);
93
- public showCropper = signal<boolean>(false);
94
- public isCropperReady = signal<boolean>(false);
95
- public deletedDocs = signal<number[]>([]);
96
- public dragMode = signal<boolean>(false);
97
- public onDragover = signal<boolean>(false);
98
- public invalidFileSize = signal<boolean>(false);
99
- public isLoadingSkeleton = signal<boolean>(true);
100
- public skeletonCount = signal(0);
101
- public maxCountReached = signal<boolean>(false);
102
- public carouselIndex = signal(0);
103
-
104
- public driver = signal<Driver>({
105
- id: 0,
106
- firstName: '',
107
- lastName: '',
108
- avatarFile: null,
109
- avatarColor: 'Blue',
110
- });
111
-
112
- public transform: ImageTransform = {
113
- scale: this.zoomValue(),
114
- };
115
-
116
- public imageChangedEvent: Event | null = null;
117
- public croppedImage: SafeUrl | null = '';
118
- public originalImageWidth: number = 0;
119
- public originalImageHeight: number = 0;
120
- private cropperResultFile: File | null = null;
121
- private cropperPreviewUrl: string | null = null;
122
-
123
- private lottieAnimation: AnimationItem | null = null;
124
- public temporaryImageFile: AppFile | null = null;
125
-
126
- public drawerViewportWidth = signal(0);
127
- private drawerRo: ResizeObserver | null = null;
128
- private drawerEl: HTMLElement | null = null;
129
-
130
- // Inputs
131
- public crop = input<boolean>(false);
132
- public size = input<string>();
133
- public rounded = input<boolean>(false);
134
- public deletedFileIds = input<number[]>([]);
135
- public maxCountFiles = input<number>(1);
136
- public isDetailsSlider = input<boolean>(false);
137
- public isDrawerMode = input<boolean>(false);
138
- public isCoverDetails = input<boolean>(false);
139
- public maxFileSize = input<number>(100); //MB
140
- public isDocumentsMode = input<boolean>(false);
141
- public documentsDropZoneOpen = input<boolean>(false);
142
- public searchText = input<string | null>(null);
143
-
144
- @Input()
145
- set files(value: FileResponse[] | null) {
146
- this._files = value ?? [];
147
-
148
- if (!this._files.length) {
149
- this.docs.set([]);
150
- this.isLoadingSkeleton.set(false);
151
- return;
152
- }
153
-
154
- this.populateDocs(this._files);
155
- }
156
-
157
- get files(): FileResponse[] {
158
- return this._files;
159
- }
160
-
161
- //enums
162
- public dropZoneVariant = DropZoneVariant;
163
-
164
- //outputs
165
- @Output() onDeletedFileIds = new EventEmitter<number[]>();
166
- @Output() onDocsChange = new EventEmitter<AppFile[]>();
167
- @Output() onDocumentPreviewClick = new EventEmitter<{ fileId: number }>();
168
- @Output() onDocumentFileNameChange = new EventEmitter<{
169
- fileId?: number;
170
- newFileName: string;
171
- }>();
172
- @Output() onCropPendingChange = new EventEmitter<boolean>();
173
- @Output() onDocumentDropZoneOpenChange = new EventEmitter<boolean>();
174
-
175
- //views
176
- @ViewChild('inputRange') inputRange!: ElementRef<HTMLInputElement>;
177
- @ViewChild('dropZoneContainer') dropZoneContainer!: ElementRef<HTMLElement>;
178
- @ViewChild('docsViewport') docsViewport?: ElementRef<HTMLElement>;
179
-
180
- //variables
181
- public coverUrl: string = '';
182
- public profileUrl: string = '';
183
- public logoUrl: string = '';
184
- public categoryTag: string | null = null;
185
- private _files: FileResponse[] = [];
186
-
187
- // helpers
188
- private DropZoneDocumentsHelper = DropZoneDocumentsHelper;
189
-
190
- /**
191
- * A input that holds an FormGroup object that is used to update the form validity when the crop mode is closed.
192
- */
193
-
194
- public parentForm = input<FormGroup | null>(null);
195
-
196
- /**
197
- * A signal that holds an array of `AppFile` objects representing the files
198
- * that have been selected or dropped by the user.
199
-
200
- */
201
- public variant = input<string>(this.dropZoneVariant.DOCUMENT);
202
-
203
- /**
204
- * Input that holds an array of `DocumentTag` objects representing the tags for the documents.
205
- */
206
- public documentTags = input<DocumentTag[]>([]);
207
-
208
- /**
209
- * Injects the DocumentService for file processing tasks like
210
- * thumbnail generation and PDF page counting.
211
- * @private
212
- */
213
- private documentService = inject(DocumentService);
214
-
215
- /**
216
- * An array of file extensions that should be excluded from the supported list.
217
- * @defaultValue `[]` (an empty array)
218
- * @type {FileExtension[]}
219
- */
220
- excludedFileTypes = input<FileExtension[]>([]);
221
-
222
- /**
223
- * The base array of all file extensions that are generally allowed.
224
- * Supported file types will be derived from this list, after excluding
225
- * any types specified in `excludedFileTypes`.
226
- *
227
- * @defaultValue `['avi', 'mov', 'mp4', 'pdf', 'gif', 'png', 'jpg', 'jpeg']`
228
- * @type {FileExtension[]}
229
- */
230
- fileTypes = input<FileExtension[]>([
231
- 'pdf',
232
- 'png',
233
- 'jpg',
234
- 'jpeg',
235
- 'gif',
236
- 'avi',
237
- 'mov',
238
- 'mp4',
239
- ]);
240
-
241
- constructor(private sanitizer: DomSanitizer) {}
242
-
243
- ngOnInit() {
244
- this.cropDimensions();
245
- }
246
-
247
- ngOnDestroy() {
248
- this.clearCropperPreviewUrl();
249
- this.clearDrawerRo();
250
- }
251
-
252
- ngAfterViewChecked() {
253
- this.setDrawerRo();
254
- }
255
-
256
- private clampDrawerIndex(): void {
257
- const maxStart = Math.max(
258
- 0,
259
- this.docs().length - this.carouselVisibleCount(),
260
- );
261
- if (this.carouselIndex() > maxStart) this.carouselIndex.set(maxStart);
262
- }
263
-
264
- private setDrawerRo(): void {
265
- if (!this.isDrawerMode()) {
266
- this.clearDrawerRo();
267
- this.drawerEl = null;
268
- return;
269
- }
270
- const el = this.docsViewport?.nativeElement;
271
- if (!el) {
272
- this.drawerEl = null;
273
- return;
274
- }
275
- if (el !== this.drawerEl) {
276
- this.drawerEl = el;
277
- this.drawerViewportWidth.set(el.getBoundingClientRect().width);
278
- this.clampDrawerIndex();
279
- this.drawerRo = new ResizeObserver(() => {
280
- this.drawerViewportWidth.set(
281
- this.docsViewport!.nativeElement.getBoundingClientRect().width,
282
- );
283
- this.clampDrawerIndex();
284
- });
285
- this.drawerRo.observe(el);
286
- }
287
- }
288
-
289
- private clearDrawerRo(): void {
290
- if (this.drawerRo && this.drawerEl) {
291
- this.drawerRo.unobserve(this.drawerEl);
292
- this.drawerRo.disconnect();
293
- this.drawerRo = null;
294
- }
295
- }
296
-
297
- emitDocs() {
298
- this.onDocsChange.emit(this.docs());
299
- }
300
-
301
- animationCreated(animation: AnimationItem) {
302
- this.lottieAnimation = animation;
303
- this.lottieAnimation.goToAndStop(0, true);
304
- }
305
-
306
- private playDropAnimation(forward: boolean = true) {
307
- if (!this.lottieAnimation) {
308
- return;
309
- }
310
-
311
- const speed = forward ? 1 : 4;
312
- const endFrame = Math.max(0, this.lottieAnimation.totalFrames ?? 0);
313
- const currentFrame = Math.round(
314
- Math.min(Math.max(this.lottieAnimation.currentFrame ?? 0, 0), endFrame),
315
- );
316
-
317
- this.lottieAnimation.setDirection(forward ? 1 : -1);
318
- this.lottieAnimation.setSpeed(speed);
319
- this.lottieAnimation.goToAndPlay(
320
- forward ? 0 : currentFrame || endFrame,
321
- true,
322
- );
323
- }
324
-
325
- private stopDropAnimation() {
326
- if (!this.lottieAnimation) {
327
- return;
328
- }
329
-
330
- this.lottieAnimation.goToAndStop(0, true);
331
- }
332
-
333
- getTagIds(tags: string[] | null | undefined, generatedByUser: boolean) {
334
- if (!generatedByUser) {
335
- this.categoryTag = tags?.[0] ?? null;
336
- return null;
337
- }
338
-
339
- const tag = this.documentTags().find((tag) => tags?.includes(tag.tagName));
340
- if (!tag) {
341
- this.categoryTag = tags?.[0] ?? null;
342
- return null;
343
- } else {
344
- return this.documentTags()
345
- .filter((tag) => tags?.includes(tag.tagName))
346
- .map((tag) => tag.tagId);
347
- }
348
- }
349
-
350
- async populateDocs(currentFiles: FileResponse[] | AppFile[]) {
351
- if (!currentFiles?.length) {
352
- this.docs.set([]);
353
- this.isLoadingSkeleton.set(false);
354
- return;
355
- }
356
-
357
- this.skeletonCount.set(currentFiles.length);
358
-
359
- const filesToProcess =
360
- this.DropZoneDocumentsHelper.splitExistingAndNewFiles(
361
- currentFiles,
362
- this.docs(),
363
- );
364
-
365
- const newlyProcessed = await Promise.all(
366
- filesToProcess.map(async (fileResp) => {
367
- if ((fileResp as AppFile).imagePreviewUrl) return fileResp as AppFile;
368
-
369
- const fileExtension =
370
- fileResp.fileName?.split('.').pop()?.toLowerCase() || 'pdf';
371
-
372
- let previewUrl = (fileResp as FileResponse)?.url || '';
373
- let pageCount: number | undefined;
374
-
375
- const file = await this.DropZoneDocumentsHelper.fetchFileAsFile(
376
- fileResp as FileResponse,
377
- );
378
-
379
- const supportedBase64 = ['profile', 'cover', 'logo'].includes(
380
- this.variant(),
381
- );
382
-
383
- const base64Url =
384
- supportedBase64 && file
385
- ? await this.DropZoneDocumentsHelper.fileToBase64(file)
386
- : null;
387
-
388
- if (fileExtension === 'pdf' && file) {
389
- try {
390
- const [thumb, pages] = await Promise.all([
391
- this.documentService.generateThumbnail(file),
392
- this.documentService.getPdfPageCount(file),
393
- ]);
394
- previewUrl = thumb;
395
- pageCount = pages;
396
- } catch (error) {
397
- console.error(`Failed ${fileResp.fileName}:`, error);
398
- }
399
- }
400
-
401
- return {
402
- fileName: fileResp.fileName || '',
403
- baseName: fileResp.fileName?.split('.').slice(0, -1).join('.') || '',
404
- fileId: fileResp.fileId || 0,
405
- type: fileExtension as FileExtension,
406
- size: (fileResp as FileResponse).fileSize || 0,
407
- imagePreviewUrl: previewUrl,
408
- file: file,
409
- pageCount: pageCount,
410
- tags: this.getTagIds(
411
- (fileResp as FileResponse).tags || [],
412
- (fileResp as FileResponse).tagGeneratedByUser ?? false,
413
- ),
414
- tagChanged: false,
415
- fileNameChanged: false,
416
- categoryTag: this.categoryTag,
417
- base64Url,
418
- };
419
- }),
420
- );
421
-
422
- const validNewFiles = (newlyProcessed.filter(Boolean) as AppFile[]) || [];
423
-
424
- if (validNewFiles.length > 0) {
425
- const updatedDocs = [...this.docs(), ...validNewFiles];
426
- this.docs.set(updatedDocs);
427
- this.setImagePreviewUrl(updatedDocs[0]?.imagePreviewUrl || '');
428
- }
429
-
430
- if (this.crop()) {
431
- this.submitCrop(true);
432
- }
433
-
434
- console.log('this.docs()', this.docs());
435
- this.isLoadingSkeleton.set(false);
436
- this.deletedDocs.set(this.deletedFileIds() ?? []);
437
- }
438
-
439
- updateRangeBackground(input: HTMLInputElement) {
440
- if (!input) return;
441
- const min = Number(input.min);
442
- const max = Number(input.max);
443
- var value;
444
- value = ((this.zoomValue() - min) / (max - min)) * 100;
445
- input.style.setProperty('--range-progress', `${value}%`);
446
- }
447
-
448
- cropDimensions() {
449
- const variant = this.variant();
450
- const rounded = this.rounded();
451
- let width = 0;
452
- let height = 0;
453
- switch (variant) {
454
- case 'profile':
455
- if (rounded) {
456
- width = 178;
457
- height = 178;
458
- } else {
459
- width = 160;
460
- height = 178;
461
- }
462
- break;
463
- case 'logo':
464
- width = 628;
465
- height = 214;
466
- break;
467
- case 'cover':
468
- width = 267;
469
- height = 178;
470
- break;
471
- }
472
-
473
- this.cropWidth.set(width);
474
- this.cropHeight.set(height);
475
- }
476
-
477
- private setImagePreviewUrl(previewUrl: string) {
478
- if (!previewUrl) return;
479
-
480
- switch (this.variant()) {
481
- case this.dropZoneVariant.PROFILE: {
482
- this.profileUrl = previewUrl;
483
- break;
484
- }
485
- case this.dropZoneVariant.COVER: {
486
- this.coverUrl = previewUrl;
487
- if (this.size() === '480px') {
488
- this.smallView.set(true);
489
- }
490
- break;
491
- }
492
- case this.dropZoneVariant.LOGO: {
493
- this.logoUrl = previewUrl;
494
- break;
495
- }
496
- default:
497
- break;
498
- }
499
- }
500
-
501
- ratioHelper(): number {
502
- const width = this.cropWidth();
503
- const height = this.cropHeight();
504
-
505
- return width && height ? width / height : 1;
506
- }
507
-
508
- onZoomChange(event: Event) {
509
- const input = event.target as HTMLInputElement;
510
- const zoom = Number(input.value);
511
- this.zoomValue.set(zoom);
512
-
513
- this.transform = {
514
- scale: zoom,
515
- };
516
- this.updateRangeBackground(event.target as HTMLInputElement);
517
- }
518
-
519
- fileChangeEvent(event: Event): void {
520
- this.imageChangedEvent = event;
521
- this.isCropperReady.set(false);
522
- const target = event.target as HTMLInputElement;
523
- const file = target.files?.[0];
524
-
525
- this.zoomValue.set(5.8);
526
- this.transform = { scale: this.zoomValue() };
527
-
528
- const fileExtension = file?.name.split('.').pop()?.toLowerCase();
529
- const isSupportedImage =
530
- file &&
531
- file.type.startsWith('image/') &&
532
- fileExtension &&
533
- this.supportedFileTypes().includes(fileExtension as FileExtension);
534
- if (isSupportedImage && this.crop()) {
535
- this.setInvalid();
536
- this.showCropper.set(true);
537
- } else {
538
- this.showCropper.set(false);
539
- }
540
-
541
- this.zoomValue.set(5.8);
542
- }
543
-
544
- imageCropped(event: ImageCroppedEvent) {
545
- if (event.base64) {
546
- const blob = base64ToFile(event.base64);
547
- this.setCropperFile(this.createFileFromBlob(blob));
548
- } else if (event.objectUrl) {
549
- this.setCropperFileFromObjectUrl(event.objectUrl);
550
- }
551
- }
552
-
553
- private setCropperFile(file: File) {
554
- this.cropperResultFile = file;
555
- this.updateCropperPreviewUrl(URL.createObjectURL(file));
556
- }
557
-
558
- private createFileFromBlob(blob: Blob): File {
559
- const name =
560
- this.temporaryImageFile?.fileName ??
561
- this.docs()[this.docs().length - 1]?.fileName ??
562
- 'cropped-image.png';
563
- return new File([blob], name, {
564
- type: blob.type,
565
- lastModified: Date.now(),
566
- });
567
- }
568
-
569
- private async setCropperFileFromObjectUrl(objectUrl: string) {
570
- try {
571
- const response = await fetch(objectUrl);
572
- const blob = await response.blob();
573
- this.setCropperFile(this.createFileFromBlob(blob));
574
- } catch (error) {
575
- console.error('Failed to convert objectUrl to File:', error);
576
- }
577
- }
578
-
579
- private updateCropperPreviewUrl(url: string) {
580
- if (this.cropperPreviewUrl) {
581
- URL.revokeObjectURL(this.cropperPreviewUrl);
582
- }
583
- this.cropperPreviewUrl = url;
584
- this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(url);
585
- }
586
-
587
- private clearCropperPreviewUrl() {
588
- if (this.cropperPreviewUrl) {
589
- URL.revokeObjectURL(this.cropperPreviewUrl);
590
- this.cropperPreviewUrl = null;
591
- this.croppedImage = null;
592
- }
593
- }
594
-
595
- imageLoaded(image: LoadedImage) {}
596
-
597
- cropperReady() {
598
- this.isCropperReady.set(true);
599
- if (this.inputRange?.nativeElement) {
600
- this.updateRangeBackground(this.inputRange.nativeElement);
601
- }
602
- }
603
-
604
- loadImageFailed() {
605
- // show message
606
- }
607
-
608
- onTransformChange(event: ImageTransform) {
609
- const scale = event?.scale as number;
610
- this.zoomValue.set(scale);
611
- }
612
-
613
- cancelCrop() {
614
- this.clearInvalid();
615
- this.isCropperReady.set(false);
616
- this.showCropper.set(false);
617
- this.onCropPendingChange.emit(false);
618
- }
619
-
620
- async submitCrop(initial: boolean = false) {
621
- if (!this.cropperResultFile) {
622
- this.clearInvalid();
623
- this.showCropper.set(false);
624
- this.isCropperReady.set(false);
625
- return;
626
- }
627
-
628
- const previewUrl = URL.createObjectURL(this.cropperResultFile);
629
-
630
- if (this.temporaryImageFile) {
631
- this.temporaryImageFile.file = this.cropperResultFile;
632
- this.temporaryImageFile.imagePreviewUrl = previewUrl;
633
-
634
- if (['profile', 'cover', 'logo'].includes(this.variant())) {
635
- this.temporaryImageFile.base64Url =
636
- await this.DropZoneDocumentsHelper.fileToBase64(
637
- this.cropperResultFile,
638
- );
639
- }
640
-
641
- this.docs.set([this.temporaryImageFile]);
642
- this.setImagePreviewUrl(previewUrl);
643
- this.clearInvalid();
644
- this.showCropper.set(false);
645
- this.isCropperReady.set(false);
646
-
647
- if (!initial) this.emitDocs();
648
- if (previewUrl) {
649
- this.clearCropperPreviewUrl();
650
- }
651
-
652
- this.temporaryImageFile = null;
653
- this.cropperResultFile = null;
654
- this.onCropPendingChange.emit(false);
655
-
656
- return;
657
- }
658
-
659
- const lastIndex = this.docs().length - 1;
660
-
661
- if (lastIndex >= 0) {
662
- const updatedDocs = [...this.docs()];
663
- const lastDoc = { ...updatedDocs[lastIndex] };
664
- lastDoc.imagePreviewUrl = previewUrl;
665
- lastDoc.file = this.cropperResultFile;
666
- updatedDocs[lastIndex] = lastDoc;
667
-
668
- this.docs.set(updatedDocs);
669
- this.clearInvalid();
670
-
671
- this.showCropper.set(false);
672
- }
673
-
674
- this.setImagePreviewUrl(previewUrl);
675
- this.cropDimensions();
676
- if (!initial) this.emitDocs();
677
- this.isCropperReady.set(false);
678
- if (previewUrl) {
679
- this.clearCropperPreviewUrl();
680
- }
681
- this.cropperResultFile = null;
682
- }
683
-
684
- /**
685
- * A computed signal that derives the list of currently supported file extensions.
686
- * It filters the base `fileTypes` array, removing any extensions present
687
- * in the `excludedFileTypes` input.
688
- */
689
- supportedFileTypes = computed(() => {
690
- const excluded = this.excludedFileTypes();
691
- const types = this.fileTypes();
692
-
693
- if (!excluded || excluded.length === 0) {
694
- return types;
695
- }
696
-
697
- return types.filter((type) => !excluded.includes(type));
698
- });
699
-
700
- /**
701
- * A signal that holds an array of `AppFile` objects representing the files
702
- * that have been selected or dropped by the user.
703
- */
704
- docs = signal<AppFile[]>([]);
705
-
706
- /**
707
- * A signal that acts as a boolean flag. It is set to `true` when the user
708
- * attempts to upload a file with an unsupported extension.
709
- */
710
- unsupported = signal(false);
711
-
712
- /**
713
- * Handles the 'change' event from the hidden file input. It extracts the
714
- * selected files and passes them to the `processFiles` method.
715
- * @param event The `Event` object from the file input element.
716
- */
717
- onInput(event: Event) {
718
- const target = event.target as HTMLInputElement;
719
- const files = target.files as FileList;
720
- this.processFiles(files);
721
- }
722
-
723
- onDrop(event: DragEvent) {
724
- event.preventDefault();
725
- this.resetDragState();
726
- const dropZone = this.dropZoneContainer?.nativeElement;
727
- const isInDropArea =
728
- dropZone?.contains(event.target as Node) ||
729
- (this.dragMode() &&
730
- dropZone?.parentElement?.contains(event.target as Node));
731
- if (!isInDropArea || this.unsupported()) return;
732
- const files = event.dataTransfer?.files;
733
- if (files && files.length > 0) {
734
- this.processFiles(files);
735
- }
736
- }
737
-
738
- onDragOver(event: DragEvent) {
739
- event.preventDefault();
740
- if (this.unsupported()) return;
741
- const relatedTarget = event.target as HTMLElement;
742
-
743
- if (this.dropZoneContainer?.nativeElement?.contains(relatedTarget)) {
744
- this.onDragover.set(true);
745
- } else {
746
- this.onDragover.set(false);
747
- }
748
- }
749
-
750
- onDragLeave(event: DragEvent) {
751
- event.preventDefault();
752
-
753
- const relatedTarget = event.relatedTarget as HTMLElement;
754
- if (
755
- !relatedTarget ||
756
- !this.dropZoneContainer?.nativeElement?.contains(relatedTarget)
757
- ) {
758
- this.onDragover.set(false);
759
- this.lottieAnimation?.stop();
760
- this.playDropAnimation(false);
761
- } else {
762
- this.onDragover.set(true);
763
- }
764
- }
765
-
766
- onDragEnter(event: DragEvent) {
767
- const dropZone = this.dropZoneContainer?.nativeElement;
768
- const relatedTarget = event.relatedTarget as Node | null;
769
-
770
- if (
771
- !dropZone ||
772
- this.unsupported() ||
773
- (relatedTarget && dropZone.contains(relatedTarget))
774
- )
775
- return;
776
-
777
- event.preventDefault();
778
- this.dragMode.set(true);
779
- this.onDragover.set(false);
780
- this.playDropAnimation(true);
781
- }
782
-
783
- @HostListener('document:dragenter', ['$event'])
784
- onDocumentDragEnter(event: DragEvent) {
785
- if (
786
- (this.isDocumentsMode() && !this.documentsDropZoneOpen()) ||
787
- this.unsupported() ||
788
- (this.variant() === this.dropZoneVariant.LOGO && this.logoUrl) ||
789
- (this.docs().length === this.maxCountFiles() &&
790
- this.variant() === this.dropZoneVariant.DOCUMENT)
791
- )
792
- return;
793
-
794
- this.dragMode.set(true);
795
- this.onDragover.set(false);
796
- }
797
-
798
- @HostListener('document:dragover', ['$event'])
799
- onDocumentDragOver(event: DragEvent) {
800
- const dropZone = this.dropZoneContainer?.nativeElement;
801
- if (this.dragMode()) {
802
- event.preventDefault();
803
- return;
804
- }
805
- if (
806
- (this.isDocumentsMode() && !this.documentsDropZoneOpen()) ||
807
- dropZone?.contains(event.target as Node) ||
808
- dropZone?.parentElement?.contains(event.target as Node)
809
- )
810
- return;
811
- if (this.unsupported()) return;
812
- event.preventDefault();
813
- event.stopPropagation();
814
- if (event.dataTransfer) {
815
- event.dataTransfer.dropEffect = 'none';
816
- }
817
- }
818
-
819
- @HostListener('document:dragleave', ['$event'])
820
- onWindowDragLeave(event: DragEvent) {
821
- if (this.isDocumentsMode() && !this.documentsDropZoneOpen()) {
822
- return;
823
- }
824
- event.preventDefault();
825
- const relatedTarget = event.relatedTarget as HTMLElement;
826
- if (!relatedTarget) {
827
- this.resetDragState();
828
- }
829
- }
830
-
831
- @HostListener('document:drop', ['$event'])
832
- onDocumentDrop(event: DragEvent) {
833
- if (this.isDocumentsMode() && !this.documentsDropZoneOpen()) {
834
- return;
835
- }
836
- const dropZone = this.dropZoneContainer?.nativeElement;
837
- if (dropZone?.contains(event.target as Node)) {
838
- this.resetDragState();
839
- return;
840
- }
841
-
842
- if (
843
- this.dragMode() &&
844
- dropZone?.parentElement?.contains(event.target as Node)
845
- ) {
846
- this.resetDragState();
847
- return;
848
- }
849
- if (this.dragMode()) {
850
- event.preventDefault();
851
- this.resetDragState();
852
- return;
853
- }
854
- event.preventDefault();
855
- event.stopPropagation();
856
- if (event.dataTransfer) {
857
- event.dataTransfer.dropEffect = 'none';
858
- event.dataTransfer.clearData();
859
- }
860
- this.resetDragState();
861
- }
862
-
863
- /**
864
- * Resets the drag state when drag operation ends.
865
- */
866
- private resetDragState() {
867
- this.dragMode.set(false);
868
- this.onDragover.set(false);
869
- this.stopDropAnimation();
870
- }
871
-
872
- skeletonItems = computed(() => Array.from({ length: this.skeletonCount() }));
873
-
874
- /**
875
- * Asynchronously processes a list of files. For each file, it validates
876
- * the extension against `supportedFileTypes`. If valid, it generates a
877
- * thumbnail, counts pages for PDFs, creates an `AppFile` object, and adds
878
- * it to the `docs` signal. If any file is unsupported, the `unsupported`
879
- * flag is set.
880
- * @param files The `FileList` object to be processed.
881
- */
882
- async processFiles(files: FileList) {
883
- this.unsupported.set(false);
884
- this.invalidFileSize.set(false);
885
- this.inputRef.nativeElement.disabled = false;
886
- this.maxCountReached.set(false);
887
-
888
- const fileArray = Array.from(files);
889
- const maxSizeBytes = this.maxFileSize() * 1024 * 1024;
890
- const supportedTypes = this.supportedFileTypes();
891
- const existingNames = new Set(this.docs().map((d) => d.fileName));
892
-
893
- if (
894
- (this.variant() === this.dropZoneVariant.DOCUMENT ||
895
- this.variant() === this.dropZoneVariant.VIDEO) &&
896
- this.docs().length >= this.maxCountFiles()
897
- ) {
898
- this.inputRef.nativeElement.disabled = true;
899
- this.maxCountReached.set(true);
900
- return;
901
- }
902
-
903
- const toProcess: File[] = [];
904
- let totalDocsCount = this.docs().length;
905
-
906
- for (const file of fileArray) {
907
- const fileExtension = file.name.split('.').pop()?.toLowerCase();
908
-
909
- if (
910
- !fileExtension ||
911
- !supportedTypes.includes(fileExtension as FileExtension)
912
- ) {
913
- this.unsupported.set(true);
914
- continue;
915
- }
916
-
917
- if (file.size > maxSizeBytes) {
918
- this.invalidFileSize.set(true);
919
- return;
920
- }
921
-
922
- if (totalDocsCount >= this.maxCountFiles()) {
923
- break;
924
- }
925
-
926
- if (existingNames.has(file.name)) {
927
- return;
928
- }
929
-
930
- existingNames.add(file.name);
931
- toProcess.push(file);
932
- totalDocsCount++;
933
- }
934
-
935
- if (toProcess.length === 0) {
936
- return;
937
- }
938
-
939
- // Parallel
940
- const processedFiles = await Promise.all(
941
- toProcess.map(async (file) => {
942
- const fileExtension = file.name.split('.').pop()?.toLowerCase() || '';
943
- let pageCount: number | undefined;
944
-
945
- const supportedBase64 = ['profile', 'cover', 'logo'].includes(
946
- this.variant(),
947
- );
948
- const base64Url =
949
- supportedBase64 && file
950
- ? await this.DropZoneDocumentsHelper.fileToBase64(file)
951
- : null;
952
-
953
- try {
954
- const [thumbnail, pages] = await Promise.all([
955
- this.documentService.generateThumbnail(file),
956
- fileExtension === 'pdf'
957
- ? this.documentService.getPdfPageCount(file)
958
- : Promise.resolve(undefined),
959
- ]);
960
- pageCount = pages;
961
-
962
- return {
963
- fileName: file.name,
964
- baseName: file.name.split('.').slice(0, -1).join('.'),
965
- type: fileExtension as FileExtension,
966
- size: file.size,
967
- imagePreviewUrl: thumbnail,
968
- file: file,
969
- pageCount,
970
- tags: [] as number[] | null,
971
- tagChanged: false,
972
- fileNameChanged: false,
973
- categoryTag: null,
974
- base64Url,
975
- } as AppFile;
976
- } catch (error) {
977
- console.error(`Failed processing ${file.name}:`, error);
978
- return null;
979
- }
980
- }),
981
- );
982
-
983
- const valid = processedFiles.filter(Boolean) as AppFile[];
984
-
985
- if (valid.length === 0) return;
986
-
987
- if (['profile', 'cover', 'logo'].includes(this.variant())) {
988
- this.temporaryImageFile = valid[0];
989
- } else {
990
- this.docs.update((docs) => [...docs, ...valid]);
991
- }
992
-
993
- const isSupportedImage =
994
- valid[0].file?.type.startsWith('image/') &&
995
- valid[0].type &&
996
- supportedTypes.includes(valid[0].type as FileExtension);
997
-
998
- if (isSupportedImage && this.crop()) {
999
- const dataTransfer = new DataTransfer();
1000
- dataTransfer.items.add(valid[0].file as File);
1001
- this.inputRef.nativeElement.files = dataTransfer.files;
1002
- const syntheticEvent = {
1003
- target: this.inputRef.nativeElement,
1004
- } as unknown as Event;
1005
-
1006
- this.imageChangedEvent = syntheticEvent;
1007
- this.isCropperReady.set(false);
1008
- this.zoomValue.set(5.8);
1009
- this.transform = { scale: this.zoomValue() };
1010
- this.setInvalid();
1011
- this.showCropper.set(true);
1012
- }
1013
-
1014
- if (!this.crop()) {
1015
- this.emitDocs();
1016
- this.resetInput();
1017
- }
1018
-
1019
- const total = this.docs().length;
1020
-
1021
- if (!this.isDocumentsMode()) {
1022
- const visibleCount = this.carouselVisibleCount();
1023
- const maxStartIndex = Math.max(0, total - visibleCount);
1024
- if (total > visibleCount) {
1025
- this.carouselIndex.set(maxStartIndex);
1026
- } else {
1027
- this.carouselIndex.set(0);
1028
- }
1029
- }
1030
-
1031
- if (
1032
- total === this.maxCountFiles() &&
1033
- this.variant() === this.dropZoneVariant.DOCUMENT
1034
- ) {
1035
- this.inputRef.nativeElement.disabled = true;
1036
- this.maxCountReached.set(true);
1037
- }
1038
- }
1039
-
1040
- /**
1041
- * Handles the download action for a specific file.
1042
- * Note: This is a placeholder and currently only logs the file name.
1043
- * @param fileName The name of the file to be downloaded.
1044
- */
1045
- handleDownload(fileName: string) {
1046
- const fileToDownload = this.docs().find((doc) => doc.fileName === fileName);
1047
-
1048
- if (!fileToDownload || !fileToDownload.file) {
1049
- console.error('File not found or is null');
1050
- return;
1051
- }
1052
-
1053
- const file = fileToDownload.file;
1054
- const url = URL.createObjectURL(file);
1055
-
1056
- const a = document.createElement('a');
1057
- a.href = url;
1058
- a.download = fileToDownload.fileName;
1059
- document.body.appendChild(a);
1060
- a.click();
1061
- document.body.removeChild(a);
1062
-
1063
- URL.revokeObjectURL(url);
1064
- }
1065
-
1066
- /**
1067
- * A ViewChild reference to the native `<input type='file'>` element.
1068
- * Used to programmatically trigger the file selection dialog.
1069
- */
1070
- @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;
1071
-
1072
- /**
1073
- * Resets the component's state after an unsupported file type error
1074
- * by setting the `unsupported` signal to `false`.
1075
- */
1076
- cancel() {
1077
- this.unsupported.set(false);
1078
- this.invalidFileSize.set(false);
1079
- this.resetInput();
1080
- }
1081
-
1082
- /**
1083
- * Programmatically triggers a click on the hidden file input element,
1084
- * which opens the system's file selection dialog.
1085
- */
1086
- handleClickToAdd() {
1087
- this.inputRef.nativeElement.click();
1088
- }
1089
-
1090
- /**
1091
- * Deletes a file from the preview list. It filters the `docs` array to
1092
- * remove the specified file and adjusts the carousel position.
1093
- * @param fileName The name of the file to be deleted.
1094
- */
1095
- handleDelete(fileName: string) {
1096
- this.carouselLeft();
1097
-
1098
- const fileIdToDelete = this.docs().find(
1099
- (doc) => doc.fileName === fileName,
1100
- )?.fileId;
1101
-
1102
- if (fileIdToDelete) {
1103
- this.deletedDocs.set([...this.deletedDocs(), fileIdToDelete]);
1104
-
1105
- this.onDeletedFileIds.emit(this.deletedDocs());
1106
- }
1107
-
1108
- this.docs.set(this.docs().filter((doc) => doc.fileName !== fileName));
1109
- this.emitDocs();
1110
-
1111
- if (this.docs().length === 0) {
1112
- this.unsupported.set(false);
1113
- }
1114
-
1115
- if (this.docs().length < this.maxCountFiles()) {
1116
- this.inputRef.nativeElement.disabled = false;
1117
- this.maxCountReached.set(false);
1118
- }
1119
-
1120
- if (this.variant() === this.dropZoneVariant.COVER) {
1121
- this.coverUrl = '';
1122
- this.smallView.set(false);
1123
- }
1124
- if (this.variant() === this.dropZoneVariant.PROFILE) {
1125
- this.profileUrl = '';
1126
- }
1127
- if (this.variant() === this.dropZoneVariant.LOGO) {
1128
- this.logoUrl = '';
1129
- }
1130
-
1131
- this.inputRef.nativeElement.value = '';
1132
- }
1133
-
1134
- // Carousel logic
1135
-
1136
- /**
1137
- * A computed signal that calculates the CSS `translateX` value for the
1138
- * carousel container. This creates the sliding effect based on the
1139
- * `carouselIndex`.
1140
- */
1141
- carouselTransform = computed(() => {
1142
- if (this.isDocumentsMode()) {
1143
- return 'translateX(0)';
1144
- }
1145
- if (this.isDetailsSlider()) {
1146
- const offset = this.carouselIndex() * -100;
1147
- return `translateX(${offset}%)`;
1148
- }
1149
- if (this.isDrawerMode()) {
1150
- const cardWidthWithGap = 194 + 4; // 194px width + 4px gap
1151
- const containerWidth = this.drawerViewportWidth();
1152
- const contentWidth = this.docs().length * cardWidthWithGap;
1153
-
1154
- if (containerWidth <= 0 || contentWidth <= containerWidth) {
1155
- return 'translateX(0)';
1156
- }
1157
-
1158
- const step = cardWidthWithGap;
1159
- const desiredTranslate = step * this.carouselIndex() * -1;
1160
- const maxTranslate = containerWidth - contentWidth;
1161
-
1162
- const clampedTranslate = Math.max(desiredTranslate, maxTranslate);
1163
- return `translateX(${clampedTranslate}px)`;
1164
- }
1165
- const gap = this.size() === '480px' ? 6 : 8;
1166
- const offset = (148 + gap) * this.carouselIndex() * -1;
1167
- return `translateX(${offset}px)`;
1168
- });
1169
-
1170
- /**
1171
- * Navigates the carousel one step to the left by decrementing the
1172
- * `carouselIndex`. The index will not go below 0.
1173
- */
1174
- carouselLeft() {
1175
- this.carouselIndex.update((i) => Math.max(0, i - 1));
1176
- }
1177
-
1178
- /**
1179
- * Navigates the carousel one step to the right by incrementing the
1180
- * `carouselIndex`. The index will not exceed the maximum possible value
1181
- * based on the number of documents.
1182
- */
1183
- carouselRight() {
1184
- const visibleCount = this.carouselVisibleCount();
1185
- const maxIndex = Math.max(0, this.docs().length - visibleCount);
1186
- this.carouselIndex.update((i) => Math.min(maxIndex, i + 1));
1187
- }
1188
-
1189
- carouselVisibleCount(): number {
1190
- if (this.isDetailsSlider()) return 1;
1191
- if (this.isDrawerMode()) {
1192
- const width = this.drawerViewportWidth();
1193
- return width <= 0 ? 1 : Math.max(1, Math.floor((width + 4) / 198));
1194
- }
1195
- return this.size() === '480px' ? 2 : 3;
1196
- }
1197
-
1198
- isCarouselAtEnd(): boolean {
1199
- const maxIndex = Math.max(
1200
- 0,
1201
- this.docs().length - this.carouselVisibleCount(),
1202
- );
1203
- return this.carouselIndex() >= maxIndex;
1204
- }
1205
-
1206
- handleTagChange(event: { fileName: string; tag: DocumentTag | null }) {
1207
- this.docs().forEach((doc) => {
1208
- if (doc.fileName === event.fileName) {
1209
- doc.tags = event?.tag?.tagId ? [event?.tag?.tagId] : [];
1210
- doc.tagChanged = true;
1211
- }
1212
- });
1213
- this.emitDocs();
1214
- }
1215
-
1216
- handleFileNameChange(event: { fileId?: number; newFileName: string }) {
1217
- this.docs().forEach((doc) => {
1218
- if (doc.fileId === event.fileId) {
1219
- doc.fileName = event.newFileName;
1220
- doc.baseName =
1221
- event.newFileName.split('.').slice(0, -1).join('.') ||
1222
- event.newFileName;
1223
- const file = new File([doc.file as BlobPart], event.newFileName, {
1224
- type: doc.file?.type,
1225
- lastModified: Date.now(),
1226
- });
1227
- doc.file = file;
1228
- doc.fileNameChanged = true;
1229
- }
1230
- });
1231
- this.emitDocs();
1232
- this.onDocumentFileNameChange.emit(event);
1233
- }
1234
-
1235
- setInvalid() {
1236
- this.parentForm()?.setErrors({ childInvalid: true });
1237
- this.onCropPendingChange.emit(true);
1238
- }
1239
-
1240
- resetInput() {
1241
- this.inputRef.nativeElement.value = '';
1242
- }
1243
-
1244
- clearInvalid() {
1245
- const { childInvalid, ...rest } = this.parentForm()?.errors ?? {};
1246
- const next = Object.keys(rest).length ? rest : null;
1247
- this.parentForm()?.setErrors(next);
1248
- this.parentForm()?.updateValueAndValidity({
1249
- emitEvent: true,
1250
- onlySelf: true,
1251
- });
1252
-
1253
- // Clear the input value to allow the same file to be selected again
1254
- if (this.inputRef?.nativeElement) {
1255
- this.resetInput();
1256
- }
1257
- }
1258
-
1259
- handleDocumentPreviewClick(event: { fileId: number }) {
1260
- this.onDocumentPreviewClick.emit({ fileId: event.fileId });
1261
- }
1262
-
1263
- downloadAllFiles(): void {
1264
- this.DropZoneDocumentsHelper.onDownloadAllFiles(this.docs());
1265
- }
1266
-
1267
- onCancel(event: Event) {
1268
- event.preventDefault();
1269
- event.stopPropagation();
1270
- this.onDocumentDropZoneOpenChange.emit(false);
1271
- }
1272
- }