@camp2gether/c2g-ui 0.0.7

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 (56) hide show
  1. package/README.md +95 -0
  2. package/charts/index.d.ts +199 -0
  3. package/fesm2022/camp2gether-c2g-ui-beach-animation-ipi3OoKW.mjs +54156 -0
  4. package/fesm2022/camp2gether-c2g-ui-beach-animation-ipi3OoKW.mjs.map +1 -0
  5. package/fesm2022/camp2gether-c2g-ui-camping-animation-DY6XWXyF.mjs +35807 -0
  6. package/fesm2022/camp2gether-c2g-ui-camping-animation-DY6XWXyF.mjs.map +1 -0
  7. package/fesm2022/camp2gether-c2g-ui-car-animation-DnDp7WfG.mjs +45189 -0
  8. package/fesm2022/camp2gether-c2g-ui-car-animation-DnDp7WfG.mjs.map +1 -0
  9. package/fesm2022/camp2gether-c2g-ui-car-driving-landscape-animation-CawNeMKD.mjs +43833 -0
  10. package/fesm2022/camp2gether-c2g-ui-car-driving-landscape-animation-CawNeMKD.mjs.map +1 -0
  11. package/fesm2022/camp2gether-c2g-ui-cat-love-animation-ewC7fZyY.mjs +30789 -0
  12. package/fesm2022/camp2gether-c2g-ui-cat-love-animation-ewC7fZyY.mjs.map +1 -0
  13. package/fesm2022/camp2gether-c2g-ui-charts.mjs +404 -0
  14. package/fesm2022/camp2gether-c2g-ui-charts.mjs.map +1 -0
  15. package/fesm2022/camp2gether-c2g-ui-checklist-animation-DqUkcLqI.mjs +19868 -0
  16. package/fesm2022/camp2gether-c2g-ui-checklist-animation-DqUkcLqI.mjs.map +1 -0
  17. package/fesm2022/camp2gether-c2g-ui-coffee-time-animation-DQilaE0A.mjs +6816 -0
  18. package/fesm2022/camp2gether-c2g-ui-coffee-time-animation-DQilaE0A.mjs.map +1 -0
  19. package/fesm2022/camp2gether-c2g-ui-error-404-pdjg-EHb.mjs +49742 -0
  20. package/fesm2022/camp2gether-c2g-ui-error-404-pdjg-EHb.mjs.map +1 -0
  21. package/fesm2022/camp2gether-c2g-ui-fishing-animation-DwE3IF-V.mjs +38941 -0
  22. package/fesm2022/camp2gether-c2g-ui-fishing-animation-DwE3IF-V.mjs.map +1 -0
  23. package/fesm2022/camp2gether-c2g-ui-layout.mjs +768 -0
  24. package/fesm2022/camp2gether-c2g-ui-layout.mjs.map +1 -0
  25. package/fesm2022/camp2gether-c2g-ui-maps.mjs +223 -0
  26. package/fesm2022/camp2gether-c2g-ui-maps.mjs.map +1 -0
  27. package/fesm2022/camp2gether-c2g-ui-mountain-search-animation-TebM1gS4.mjs +69245 -0
  28. package/fesm2022/camp2gether-c2g-ui-mountain-search-animation-TebM1gS4.mjs.map +1 -0
  29. package/fesm2022/camp2gether-c2g-ui-planning-animation-D8QSsZk6.mjs +28330 -0
  30. package/fesm2022/camp2gether-c2g-ui-planning-animation-D8QSsZk6.mjs.map +1 -0
  31. package/fesm2022/camp2gether-c2g-ui-presets.mjs +2855 -0
  32. package/fesm2022/camp2gether-c2g-ui-presets.mjs.map +1 -0
  33. package/fesm2022/camp2gether-c2g-ui-share-animation-qgqs-k59.mjs +59129 -0
  34. package/fesm2022/camp2gether-c2g-ui-share-animation-qgqs-k59.mjs.map +1 -0
  35. package/fesm2022/camp2gether-c2g-ui-summer-camp-animation-DPzirVNH.mjs +89317 -0
  36. package/fesm2022/camp2gether-c2g-ui-summer-camp-animation-DPzirVNH.mjs.map +1 -0
  37. package/fesm2022/camp2gether-c2g-ui-theme.mjs +479 -0
  38. package/fesm2022/camp2gether-c2g-ui-theme.mjs.map +1 -0
  39. package/fesm2022/camp2gether-c2g-ui-thinking-animation--X3er_pf.mjs +27929 -0
  40. package/fesm2022/camp2gether-c2g-ui-thinking-animation--X3er_pf.mjs.map +1 -0
  41. package/fesm2022/camp2gether-c2g-ui-walking-avocado-animation-CQMU2C9-.mjs +4064 -0
  42. package/fesm2022/camp2gether-c2g-ui-walking-avocado-animation-CQMU2C9-.mjs.map +1 -0
  43. package/fesm2022/camp2gether-c2g-ui-walking-orange-animation-CTJniCsF.mjs +3113 -0
  44. package/fesm2022/camp2gether-c2g-ui-walking-orange-animation-CTJniCsF.mjs.map +1 -0
  45. package/fesm2022/camp2gether-c2g-ui-weather-partly-cloudy-animation-Cnw3W4cS.mjs +1731 -0
  46. package/fesm2022/camp2gether-c2g-ui-weather-partly-cloudy-animation-Cnw3W4cS.mjs.map +1 -0
  47. package/fesm2022/camp2gether-c2g-ui.mjs +2099 -0
  48. package/fesm2022/camp2gether-c2g-ui.mjs.map +1 -0
  49. package/index.d.ts +578 -0
  50. package/layout/index.d.ts +443 -0
  51. package/maps/index.d.ts +62 -0
  52. package/package.json +51 -0
  53. package/presets/index.d.ts +1437 -0
  54. package/src/lib/styles/design-tokens.css +153 -0
  55. package/src/lib/styles/themes.scss +346 -0
  56. package/theme/index.d.ts +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camp2gether-c2g-ui-cat-love-animation-ewC7fZyY.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,404 @@
1
+ import { provideEchartsCore, NgxEchartsDirective } from 'ngx-echarts';
2
+ import * as echarts from 'echarts';
3
+ import * as i0 from '@angular/core';
4
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
5
+
6
+ const C2G_CHARTS_VERSION = '0.1.0';
7
+
8
+ const C2G_ECHARTS_THEME_NAME = 'c2g';
9
+ const C2G_ECHARTS_THEME = {
10
+ color: [
11
+ '#ff6b35', // primary (c2g-color-primary)
12
+ '#4ecdc4', // secondary (c2g-color-secondary)
13
+ '#ffb347', // tertiary (c2g-color-tertiary)
14
+ '#95e1d3', // success
15
+ '#74c0fc', // info
16
+ '#ff6b6b', // error
17
+ '#ffe570', // accent-light
18
+ '#3ba99f', // secondary-dark
19
+ '#e55623', // primary-dark
20
+ '#7ed8d2', // secondary-light
21
+ ],
22
+ backgroundColor: 'transparent',
23
+ textStyle: {
24
+ fontFamily: '"Quicksand", "Segoe UI", sans-serif',
25
+ color: '#4a423b', // c2g-color-text-secondary
26
+ },
27
+ title: {
28
+ textStyle: {
29
+ color: '#1a1714', // c2g-color-text-primary
30
+ fontFamily: '"Quicksand", "Segoe UI", sans-serif',
31
+ fontWeight: '600',
32
+ },
33
+ subtextStyle: {
34
+ color: '#6b5e52', // c2g-color-text-muted
35
+ },
36
+ },
37
+ line: {
38
+ itemStyle: { borderWidth: 2 },
39
+ lineStyle: { width: 2 },
40
+ symbolSize: 6,
41
+ symbol: 'circle',
42
+ smooth: true,
43
+ },
44
+ bar: {
45
+ itemStyle: {
46
+ barBorderRadius: [4, 4, 0, 0],
47
+ },
48
+ },
49
+ categoryAxis: {
50
+ axisLine: { lineStyle: { color: '#d1c4b5' } }, // c2g-color-outline
51
+ axisTick: { lineStyle: { color: '#d1c4b5' } },
52
+ axisLabel: { color: '#6b5e52' }, // c2g-color-text-muted
53
+ splitLine: { lineStyle: { color: '#e1d9ce' } }, // c2g-color-bg-tertiary
54
+ },
55
+ valueAxis: {
56
+ axisLine: { lineStyle: { color: '#d1c4b5' } },
57
+ axisTick: { lineStyle: { color: '#d1c4b5' } },
58
+ axisLabel: { color: '#6b5e52' },
59
+ splitLine: { lineStyle: { color: '#e1d9ce', type: 'dashed' } },
60
+ },
61
+ tooltip: {
62
+ backgroundColor: 'rgba(255,255,255,0.96)',
63
+ borderColor: '#e1d9ce',
64
+ borderWidth: 1,
65
+ textStyle: { color: '#1a1714' },
66
+ extraCssText: 'border-radius: 0.5rem; box-shadow: 0 4px 16px rgba(0,0,0,0.12);',
67
+ },
68
+ legend: {
69
+ textStyle: { color: '#4a423b' },
70
+ },
71
+ grid: {
72
+ borderColor: '#e1d9ce',
73
+ },
74
+ };
75
+
76
+ echarts.registerTheme(C2G_ECHARTS_THEME_NAME, C2G_ECHARTS_THEME);
77
+ function provideC2gCharts() {
78
+ return provideEchartsCore({ echarts: () => import('echarts') });
79
+ }
80
+
81
+ class BarChartComponent {
82
+ theme = C2G_ECHARTS_THEME_NAME;
83
+ data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
84
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
85
+ height = input('320px', ...(ngDevMode ? [{ debugName: "height" }] : []));
86
+ stacked = input(false, ...(ngDevMode ? [{ debugName: "stacked" }] : []));
87
+ chartOptions = computed(() => {
88
+ const { categories, series, unit } = this.data();
89
+ return {
90
+ title: this.title() ? { text: this.title() } : undefined,
91
+ tooltip: {
92
+ trigger: 'axis',
93
+ axisPointer: { type: 'shadow' },
94
+ valueFormatter: unit ? (v) => `${v} ${unit}` : undefined,
95
+ },
96
+ legend: series.length > 1 ? { bottom: 0 } : undefined,
97
+ grid: { left: '3%', right: '4%', bottom: series.length > 1 ? '12%' : '3%', containLabel: true },
98
+ xAxis: { type: 'category', data: categories },
99
+ yAxis: { type: 'value', axisLabel: { formatter: unit ? `{value} ${unit}` : '{value}' } },
100
+ series: series.map(s => ({
101
+ name: s.name,
102
+ type: 'bar',
103
+ stack: this.stacked() ? 'total' : undefined,
104
+ data: s.data,
105
+ itemStyle: s.color ? { color: s.color } : undefined,
106
+ })),
107
+ };
108
+ }, ...(ngDevMode ? [{ debugName: "chartOptions" }] : []));
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: BarChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.19", type: BarChartComponent, isStandalone: true, selector: "c2g-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
111
+ <div
112
+ echarts
113
+ class="c2g-bar-chart"
114
+ [options]="chartOptions()"
115
+ [theme]="theme"
116
+ [style.height]="height()">
117
+ </div>
118
+ `, isInline: true, styles: [".c2g-bar-chart{width:100%}\n"], dependencies: [{ kind: "directive", type: NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: BarChartComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'c2g-bar-chart', standalone: true, imports: [NgxEchartsDirective], template: `
123
+ <div
124
+ echarts
125
+ class="c2g-bar-chart"
126
+ [options]="chartOptions()"
127
+ [theme]="theme"
128
+ [style.height]="height()">
129
+ </div>
130
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".c2g-bar-chart{width:100%}\n"] }]
131
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], stacked: [{ type: i0.Input, args: [{ isSignal: true, alias: "stacked", required: false }] }] } });
132
+
133
+ class LineChartComponent {
134
+ theme = C2G_ECHARTS_THEME_NAME;
135
+ data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
136
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
137
+ height = input('320px', ...(ngDevMode ? [{ debugName: "height" }] : []));
138
+ chartOptions = computed(() => {
139
+ const { categories, series, yAxis, zoom } = this.data();
140
+ const globalSmooth = this.data().smooth ?? true;
141
+ const globalArea = this.data().area ?? false;
142
+ const bottomPadding = series.length > 1 ? (zoom ? '18%' : '12%') : (zoom ? '12%' : '3%');
143
+ return {
144
+ title: this.title() ? {
145
+ text: this.title(),
146
+ textStyle: { fontSize: 14 }
147
+ } : undefined,
148
+ tooltip: {
149
+ trigger: 'axis',
150
+ backgroundColor: 'transparent',
151
+ borderWidth: 0,
152
+ padding: 0,
153
+ ...(this.data().tooltipWidget
154
+ ? {
155
+ formatter: (params) => {
156
+ const p = Array.isArray(params) ? params : [params];
157
+ const idx = p[0]?.dataIndex ?? 0;
158
+ return this.data().tooltipWidget({
159
+ categoryIndex: idx,
160
+ category: p[0]?.axisValue ?? categories[idx] ?? '',
161
+ seriesValues: p.map((s) => ({
162
+ name: s.seriesName,
163
+ value: s.value,
164
+ color: s.color,
165
+ })),
166
+ });
167
+ },
168
+ }
169
+ : { valueFormatter: yAxis?.unit ? (v) => `${v} ${yAxis.unit}` : undefined }),
170
+ },
171
+ legend: series.length > 1 ? {
172
+ bottom: zoom ? 40 : 0,
173
+ icon: 'roundRect',
174
+ itemWidth: 16,
175
+ itemHeight: 4,
176
+ } : undefined,
177
+ grid: {
178
+ left: '3%',
179
+ right: '4%',
180
+ bottom: bottomPadding,
181
+ top: this.title() ? '15%' : '8%',
182
+ containLabel: true,
183
+ },
184
+ xAxis: {
185
+ type: 'category',
186
+ boundaryGap: false,
187
+ data: categories,
188
+ },
189
+ yAxis: {
190
+ type: 'value',
191
+ name: yAxis?.label ?? '',
192
+ nameTextStyle: { padding: [0, 0, 0, 0] },
193
+ min: yAxis?.min,
194
+ max: yAxis?.max,
195
+ axisLabel: {
196
+ formatter: yAxis?.unit ? `{value} ${yAxis.unit}` : '{value}',
197
+ },
198
+ },
199
+ dataZoom: zoom ? [
200
+ { type: 'inside', start: 0, end: 100 },
201
+ { type: 'slider', start: 0, end: 100, height: 20, bottom: 0 },
202
+ ] : undefined,
203
+ series: series.map(s => ({
204
+ name: s.name,
205
+ type: 'line',
206
+ smooth: s.smooth ?? globalSmooth,
207
+ data: s.data,
208
+ itemStyle: s.color ? { color: s.color } : undefined,
209
+ lineStyle: {
210
+ ...(s.color ? { color: s.color } : {}),
211
+ ...(s.dashed ? { type: 'dashed', opacity: 0.7 } : {}),
212
+ },
213
+ areaStyle: (s.area ?? globalArea) ? { opacity: 0.12 } : undefined,
214
+ })),
215
+ };
216
+ }, ...(ngDevMode ? [{ debugName: "chartOptions" }] : []));
217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: LineChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
218
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.19", type: LineChartComponent, isStandalone: true, selector: "c2g-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
219
+ <div
220
+ echarts
221
+ class="c2g-line-chart"
222
+ [options]="chartOptions()"
223
+ [theme]="theme"
224
+ [style.height]="height()">
225
+ </div>
226
+ `, isInline: true, styles: [".c2g-line-chart{width:100%}\n"], dependencies: [{ kind: "directive", type: NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
227
+ }
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: LineChartComponent, decorators: [{
229
+ type: Component,
230
+ args: [{ selector: 'c2g-line-chart', standalone: true, imports: [NgxEchartsDirective], template: `
231
+ <div
232
+ echarts
233
+ class="c2g-line-chart"
234
+ [options]="chartOptions()"
235
+ [theme]="theme"
236
+ [style.height]="height()">
237
+ </div>
238
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".c2g-line-chart{width:100%}\n"] }]
239
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
240
+
241
+ const DEFAULT_SEGMENTS = [
242
+ { min: 0, max: 40, color: '#4ecdc4' },
243
+ { min: 40, max: 75, color: '#ffb347' },
244
+ { min: 75, max: 100, color: '#e55623' }
245
+ ];
246
+ class GaugeChartComponent {
247
+ data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
248
+ height = input('260px', ...(ngDevMode ? [{ debugName: "height" }] : []));
249
+ theme = C2G_ECHARTS_THEME_NAME;
250
+ chartOptions = computed(() => {
251
+ const d = this.data();
252
+ const min = d.min ?? 0;
253
+ const max = d.max ?? 100;
254
+ const segments = d.segments ?? DEFAULT_SEGMENTS;
255
+ const axisLineColors = segments.map(s => [
256
+ (s.max - min) / (max - min),
257
+ s.color
258
+ ]);
259
+ return {
260
+ series: [{
261
+ type: 'gauge',
262
+ min,
263
+ max,
264
+ startAngle: 200,
265
+ endAngle: -20,
266
+ radius: '90%',
267
+ center: ['50%', '55%'],
268
+ axisLine: {
269
+ lineStyle: {
270
+ width: 18,
271
+ color: axisLineColors
272
+ }
273
+ },
274
+ axisTick: { show: false },
275
+ splitLine: { show: false },
276
+ axisLabel: {
277
+ color: '#6b5e54',
278
+ fontFamily: '"Quicksand","Segoe UI",sans-serif',
279
+ fontSize: 11,
280
+ distance: 24
281
+ },
282
+ pointer: {
283
+ itemStyle: { color: '#ff6b35' },
284
+ length: '65%',
285
+ width: 5
286
+ },
287
+ anchor: {
288
+ show: true,
289
+ size: 14,
290
+ itemStyle: { color: '#ff6b35', borderWidth: 2, borderColor: '#fff' }
291
+ },
292
+ detail: {
293
+ show: d.showDetail !== false,
294
+ valueAnimation: true,
295
+ formatter: (val) => `${val}${d.unit ?? ''}`,
296
+ color: '#2c2520',
297
+ fontFamily: '"Quicksand","Segoe UI",sans-serif',
298
+ fontSize: 28,
299
+ fontWeight: 700,
300
+ offsetCenter: [0, '30%']
301
+ },
302
+ title: {
303
+ show: !!d.label,
304
+ color: '#6b5e54',
305
+ fontFamily: '"Quicksand","Segoe UI",sans-serif',
306
+ fontSize: 13,
307
+ offsetCenter: [0, '60%']
308
+ },
309
+ data: [{ value: d.value, name: d.label ?? '' }]
310
+ }]
311
+ };
312
+ }, ...(ngDevMode ? [{ debugName: "chartOptions" }] : []));
313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: GaugeChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
314
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.19", type: GaugeChartComponent, isStandalone: true, selector: "c2g-gauge-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
315
+ <div
316
+ echarts
317
+ [options]="chartOptions()"
318
+ [theme]="theme"
319
+ class="c2g-gauge-chart"
320
+ [style.height]="'260px'"
321
+ ></div>
322
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
+ }
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: GaugeChartComponent, decorators: [{
325
+ type: Component,
326
+ args: [{ selector: 'c2g-gauge-chart', standalone: true, imports: [NgxEchartsDirective], template: `
327
+ <div
328
+ echarts
329
+ [options]="chartOptions()"
330
+ [theme]="theme"
331
+ class="c2g-gauge-chart"
332
+ [style.height]="'260px'"
333
+ ></div>
334
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
335
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
336
+
337
+ function createWeatherTooltip(config) {
338
+ return (ctx) => {
339
+ const entry = config.entries[ctx.categoryIndex];
340
+ const unit = config.unit ?? '°C';
341
+ const seriesRows = ctx.seriesValues
342
+ .map((s) => `
343
+ <div style="display:flex;align-items:center;gap:6px;margin-top:4px;">
344
+ <span style="
345
+ display:inline-block;width:10px;height:3px;
346
+ border-radius:2px;background:${s.color};flex-shrink:0;">
347
+ </span>
348
+ <span style="font-size:11px;color:var(--c2g-color-text-secondary,#4a423b);flex:1;">
349
+ ${s.name}
350
+ </span>
351
+ <span style="font-size:13px;font-weight:700;color:var(--c2g-color-text-primary,#1a1714);">
352
+ ${s.value} ${unit}
353
+ </span>
354
+ </div>`)
355
+ .join('');
356
+ const extraRows = entry
357
+ ? [
358
+ entry.rain != null
359
+ ? `<div style="display:flex;justify-content:space-between;margin-top:2px;font-size:11px;color:var(--c2g-color-text-muted,#6b5e52);">
360
+ <span>🌧 Regen</span><span>${entry.rain} mm</span>
361
+ </div>`
362
+ : '',
363
+ entry.wind != null
364
+ ? `<div style="display:flex;justify-content:space-between;font-size:11px;color:var(--c2g-color-text-muted,#6b5e52);">
365
+ <span>💨 Wind</span><span>${entry.wind} km/h</span>
366
+ </div>`
367
+ : '',
368
+ ]
369
+ .filter(Boolean)
370
+ .join('')
371
+ : '';
372
+ return `
373
+ <div style="
374
+ background:var(--c2g-color-surface,#fff);
375
+ border:1px solid var(--c2g-color-outline-variant,#e1d9ce);
376
+ border-radius:12px;
377
+ padding:10px 12px;
378
+ min-width:160px;
379
+ box-shadow:0 4px 16px rgba(0,0,0,0.12);
380
+ font-family:var(--c2g-font-family-base,'Quicksand','Segoe UI',sans-serif);
381
+ ">
382
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:6px;">
383
+ ${entry ? `<span style="font-size:1.6rem;line-height:1;">${entry.icon}</span>` : ''}
384
+ <div>
385
+ <div style="font-size:12px;font-weight:600;color:var(--c2g-color-text-primary,#1a1714);">
386
+ ${ctx.category}
387
+ </div>
388
+ ${entry ? `<div style="font-size:11px;color:var(--c2g-color-text-secondary,#4a423b);">${entry.description}</div>` : ''}
389
+ </div>
390
+ </div>
391
+ <div style="border-top:1px solid var(--c2g-color-outline-variant,#e1d9ce);padding-top:6px;">
392
+ ${seriesRows}
393
+ </div>
394
+ ${extraRows ? `<div style="border-top:1px solid var(--c2g-color-outline-variant,#e1d9ce);margin-top:6px;padding-top:4px;">${extraRows}</div>` : ''}
395
+ </div>`;
396
+ };
397
+ }
398
+
399
+ /**
400
+ * Generated bundle index. Do not edit.
401
+ */
402
+
403
+ export { BarChartComponent, C2G_CHARTS_VERSION, C2G_ECHARTS_THEME, C2G_ECHARTS_THEME_NAME, GaugeChartComponent, LineChartComponent, createWeatherTooltip, provideC2gCharts };
404
+ //# sourceMappingURL=camp2gether-c2g-ui-charts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camp2gether-c2g-ui-charts.mjs","sources":["../../../projects/c2g-ui/charts/charts.version.ts","../../../projects/c2g-ui/charts/c2g-echarts-theme.ts","../../../projects/c2g-ui/charts/c2g-charts.providers.ts","../../../projects/c2g-ui/charts/bar-chart/bar-chart.component.ts","../../../projects/c2g-ui/charts/line-chart/line-chart.component.ts","../../../projects/c2g-ui/charts/gauge-chart/gauge-chart.component.ts","../../../projects/c2g-ui/charts/tooltip-widgets/weather-tooltip.ts","../../../projects/c2g-ui/charts/camp2gether-c2g-ui-charts.ts"],"sourcesContent":["export const C2G_CHARTS_VERSION = '0.1.0';\n","import type { EChartsOption } from 'echarts';\n\nexport const C2G_ECHARTS_THEME_NAME = 'c2g';\n\nexport const C2G_ECHARTS_THEME = {\n color: [\n '#ff6b35', // primary (c2g-color-primary)\n '#4ecdc4', // secondary (c2g-color-secondary)\n '#ffb347', // tertiary (c2g-color-tertiary)\n '#95e1d3', // success\n '#74c0fc', // info\n '#ff6b6b', // error\n '#ffe570', // accent-light\n '#3ba99f', // secondary-dark\n '#e55623', // primary-dark\n '#7ed8d2', // secondary-light\n ],\n backgroundColor: 'transparent',\n textStyle: {\n fontFamily: '\"Quicksand\", \"Segoe UI\", sans-serif',\n color: '#4a423b', // c2g-color-text-secondary\n },\n title: {\n textStyle: {\n color: '#1a1714', // c2g-color-text-primary\n fontFamily: '\"Quicksand\", \"Segoe UI\", sans-serif',\n fontWeight: '600',\n },\n subtextStyle: {\n color: '#6b5e52', // c2g-color-text-muted\n },\n },\n line: {\n itemStyle: { borderWidth: 2 },\n lineStyle: { width: 2 },\n symbolSize: 6,\n symbol: 'circle',\n smooth: true,\n },\n bar: {\n itemStyle: {\n barBorderRadius: [4, 4, 0, 0],\n },\n },\n categoryAxis: {\n axisLine: { lineStyle: { color: '#d1c4b5' } }, // c2g-color-outline\n axisTick: { lineStyle: { color: '#d1c4b5' } },\n axisLabel: { color: '#6b5e52' }, // c2g-color-text-muted\n splitLine: { lineStyle: { color: '#e1d9ce' } }, // c2g-color-bg-tertiary\n },\n valueAxis: {\n axisLine: { lineStyle: { color: '#d1c4b5' } },\n axisTick: { lineStyle: { color: '#d1c4b5' } },\n axisLabel: { color: '#6b5e52' },\n splitLine: { lineStyle: { color: '#e1d9ce', type: 'dashed' } },\n },\n tooltip: {\n backgroundColor: 'rgba(255,255,255,0.96)',\n borderColor: '#e1d9ce',\n borderWidth: 1,\n textStyle: { color: '#1a1714' },\n extraCssText: 'border-radius: 0.5rem; box-shadow: 0 4px 16px rgba(0,0,0,0.12);',\n },\n legend: {\n textStyle: { color: '#4a423b' },\n },\n grid: {\n borderColor: '#e1d9ce',\n },\n};\n","import { Provider } from '@angular/core';\nimport { provideEchartsCore } from 'ngx-echarts';\nimport * as echarts from 'echarts';\nimport { C2G_ECHARTS_THEME, C2G_ECHARTS_THEME_NAME } from './c2g-echarts-theme';\n\necharts.registerTheme(C2G_ECHARTS_THEME_NAME, C2G_ECHARTS_THEME);\n\nexport function provideC2gCharts(): Provider[] {\n return provideEchartsCore({ echarts: () => import('echarts') }) as unknown as Provider[];\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgxEchartsDirective } from 'ngx-echarts';\nimport type { EChartsOption } from 'echarts';\nimport { C2gBarChartData } from '../chart.models';\nimport { C2G_ECHARTS_THEME_NAME } from '../c2g-echarts-theme';\n\n@Component({\n selector: 'c2g-bar-chart',\n standalone: true,\n imports: [NgxEchartsDirective],\n template: `\n <div\n echarts\n class=\"c2g-bar-chart\"\n [options]=\"chartOptions()\"\n [theme]=\"theme\"\n [style.height]=\"height()\">\n </div>\n `,\n styles: `\n .c2g-bar-chart {\n width: 100%;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarChartComponent {\n readonly theme = C2G_ECHARTS_THEME_NAME;\n\n readonly data = input.required<C2gBarChartData>();\n readonly title = input('');\n readonly height = input('320px');\n readonly stacked = input(false);\n\n readonly chartOptions = computed((): EChartsOption => {\n const { categories, series, unit } = this.data();\n return {\n title: this.title() ? { text: this.title() } : undefined,\n tooltip: {\n trigger: 'axis',\n axisPointer: { type: 'shadow' },\n valueFormatter: unit ? (v) => `${v} ${unit}` : undefined,\n },\n legend: series.length > 1 ? { bottom: 0 } : undefined,\n grid: { left: '3%', right: '4%', bottom: series.length > 1 ? '12%' : '3%', containLabel: true },\n xAxis: { type: 'category', data: categories },\n yAxis: { type: 'value', axisLabel: { formatter: unit ? `{value} ${unit}` : '{value}' } },\n series: series.map(s => ({\n name: s.name,\n type: 'bar',\n stack: this.stacked() ? 'total' : undefined,\n data: s.data,\n itemStyle: s.color ? { color: s.color } : undefined,\n })),\n };\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgxEchartsDirective } from 'ngx-echarts';\nimport type { EChartsOption } from 'echarts';\nimport { C2gLineChartData } from '../chart.models';\nimport { C2G_ECHARTS_THEME_NAME } from '../c2g-echarts-theme';\n\n@Component({\n selector: 'c2g-line-chart',\n standalone: true,\n imports: [NgxEchartsDirective],\n template: `\n <div\n echarts\n class=\"c2g-line-chart\"\n [options]=\"chartOptions()\"\n [theme]=\"theme\"\n [style.height]=\"height()\">\n </div>\n `,\n styles: `\n .c2g-line-chart { width: 100%; }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LineChartComponent {\n readonly theme = C2G_ECHARTS_THEME_NAME;\n\n readonly data = input.required<C2gLineChartData>();\n readonly title = input('');\n readonly height = input('320px');\n\n readonly chartOptions = computed((): EChartsOption => {\n const { categories, series, yAxis, zoom } = this.data();\n const globalSmooth = this.data().smooth ?? true;\n const globalArea = this.data().area ?? false;\n\n const bottomPadding = series.length > 1 ? (zoom ? '18%' : '12%') : (zoom ? '12%' : '3%');\n\n return {\n title: this.title() ? {\n text: this.title(),\n textStyle: { fontSize: 14 }\n } : undefined,\n\n tooltip: {\n trigger: 'axis',\n backgroundColor: 'transparent',\n borderWidth: 0,\n padding: 0,\n ...(this.data().tooltipWidget\n ? {\n formatter: (params: any) => {\n const p = Array.isArray(params) ? params : [params];\n const idx: number = p[0]?.dataIndex ?? 0;\n return this.data().tooltipWidget!({\n categoryIndex: idx,\n category: p[0]?.axisValue ?? categories[idx] ?? '',\n seriesValues: p.map((s: any) => ({\n name: s.seriesName,\n value: s.value,\n color: s.color,\n })),\n });\n },\n }\n : { valueFormatter: yAxis?.unit ? (v: any) => `${v} ${yAxis.unit}` : undefined }),\n },\n\n legend: series.length > 1 ? {\n bottom: zoom ? 40 : 0,\n icon: 'roundRect',\n itemWidth: 16,\n itemHeight: 4,\n } : undefined,\n\n grid: {\n left: '3%',\n right: '4%',\n bottom: bottomPadding,\n top: this.title() ? '15%' : '8%',\n containLabel: true,\n },\n\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: categories,\n },\n\n yAxis: {\n type: 'value',\n name: yAxis?.label ?? '',\n nameTextStyle: { padding: [0, 0, 0, 0] },\n min: yAxis?.min,\n max: yAxis?.max,\n axisLabel: {\n formatter: yAxis?.unit ? `{value} ${yAxis.unit}` : '{value}',\n },\n },\n\n dataZoom: zoom ? [\n { type: 'inside', start: 0, end: 100 },\n { type: 'slider', start: 0, end: 100, height: 20, bottom: 0 },\n ] : undefined,\n\n series: series.map(s => ({\n name: s.name,\n type: 'line' as const,\n smooth: s.smooth ?? globalSmooth,\n data: s.data,\n itemStyle: s.color ? { color: s.color } : undefined,\n lineStyle: {\n ...(s.color ? { color: s.color } : {}),\n ...(s.dashed ? { type: 'dashed' as const, opacity: 0.7 } : {}),\n },\n areaStyle: (s.area ?? globalArea) ? { opacity: 0.12 } : undefined,\n })),\n };\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgxEchartsDirective } from 'ngx-echarts';\nimport { EChartsOption } from 'echarts';\nimport { C2gGaugeChartData, C2gGaugeSegment } from './gauge-chart.models';\nimport { C2G_ECHARTS_THEME_NAME } from '../c2g-echarts-theme';\n\nconst DEFAULT_SEGMENTS: C2gGaugeSegment[] = [\n { min: 0, max: 40, color: '#4ecdc4' },\n { min: 40, max: 75, color: '#ffb347' },\n { min: 75, max: 100, color: '#e55623' }\n];\n\n@Component({\n selector: 'c2g-gauge-chart',\n standalone: true,\n imports: [NgxEchartsDirective],\n template: `\n <div\n echarts\n [options]=\"chartOptions()\"\n [theme]=\"theme\"\n class=\"c2g-gauge-chart\"\n [style.height]=\"'260px'\"\n ></div>\n `,\n styles: [`:host { display: block; }`],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeChartComponent {\n readonly data = input.required<C2gGaugeChartData>();\n readonly height = input('260px');\n\n readonly theme = C2G_ECHARTS_THEME_NAME;\n\n readonly chartOptions = computed((): EChartsOption => {\n const d = this.data();\n const min = d.min ?? 0;\n const max = d.max ?? 100;\n const segments = d.segments ?? DEFAULT_SEGMENTS;\n\n const axisLineColors: [number, string][] = segments.map(s => [\n (s.max - min) / (max - min),\n s.color\n ]);\n\n return {\n series: [{\n type: 'gauge',\n min,\n max,\n startAngle: 200,\n endAngle: -20,\n radius: '90%',\n center: ['50%', '55%'],\n axisLine: {\n lineStyle: {\n width: 18,\n color: axisLineColors\n }\n },\n axisTick: { show: false },\n splitLine: { show: false },\n axisLabel: {\n color: '#6b5e54',\n fontFamily: '\"Quicksand\",\"Segoe UI\",sans-serif',\n fontSize: 11,\n distance: 24\n },\n pointer: {\n itemStyle: { color: '#ff6b35' },\n length: '65%',\n width: 5\n },\n anchor: {\n show: true,\n size: 14,\n itemStyle: { color: '#ff6b35', borderWidth: 2, borderColor: '#fff' }\n },\n detail: {\n show: d.showDetail !== false,\n valueAnimation: true,\n formatter: (val: number) => `${val}${d.unit ?? ''}`,\n color: '#2c2520',\n fontFamily: '\"Quicksand\",\"Segoe UI\",sans-serif',\n fontSize: 28,\n fontWeight: 700,\n offsetCenter: [0, '30%']\n },\n title: {\n show: !!d.label,\n color: '#6b5e54',\n fontFamily: '\"Quicksand\",\"Segoe UI\",sans-serif',\n fontSize: 13,\n offsetCenter: [0, '60%']\n },\n data: [{ value: d.value, name: d.label ?? '' }]\n }]\n };\n });\n}\n","import { C2gTooltipContext } from '../chart.models';\n\nexport interface WeatherTooltipEntry {\n icon: string;\n description: string;\n rain?: number;\n wind?: number;\n}\n\nexport interface WeatherTooltipConfig {\n entries: WeatherTooltipEntry[];\n unit?: string;\n}\n\nexport function createWeatherTooltip(config: WeatherTooltipConfig) {\n return (ctx: C2gTooltipContext): string => {\n const entry = config.entries[ctx.categoryIndex];\n const unit = config.unit ?? '°C';\n\n const seriesRows = ctx.seriesValues\n .map(\n (s) => `\n <div style=\"display:flex;align-items:center;gap:6px;margin-top:4px;\">\n <span style=\"\n display:inline-block;width:10px;height:3px;\n border-radius:2px;background:${s.color};flex-shrink:0;\">\n </span>\n <span style=\"font-size:11px;color:var(--c2g-color-text-secondary,#4a423b);flex:1;\">\n ${s.name}\n </span>\n <span style=\"font-size:13px;font-weight:700;color:var(--c2g-color-text-primary,#1a1714);\">\n ${s.value} ${unit}\n </span>\n </div>`\n )\n .join('');\n\n const extraRows = entry\n ? [\n entry.rain != null\n ? `<div style=\"display:flex;justify-content:space-between;margin-top:2px;font-size:11px;color:var(--c2g-color-text-muted,#6b5e52);\">\n <span>🌧 Regen</span><span>${entry.rain} mm</span>\n </div>`\n : '',\n entry.wind != null\n ? `<div style=\"display:flex;justify-content:space-between;font-size:11px;color:var(--c2g-color-text-muted,#6b5e52);\">\n <span>💨 Wind</span><span>${entry.wind} km/h</span>\n </div>`\n : '',\n ]\n .filter(Boolean)\n .join('')\n : '';\n\n return `\n <div style=\"\n background:var(--c2g-color-surface,#fff);\n border:1px solid var(--c2g-color-outline-variant,#e1d9ce);\n border-radius:12px;\n padding:10px 12px;\n min-width:160px;\n box-shadow:0 4px 16px rgba(0,0,0,0.12);\n font-family:var(--c2g-font-family-base,'Quicksand','Segoe UI',sans-serif);\n \">\n <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:6px;\">\n ${entry ? `<span style=\"font-size:1.6rem;line-height:1;\">${entry.icon}</span>` : ''}\n <div>\n <div style=\"font-size:12px;font-weight:600;color:var(--c2g-color-text-primary,#1a1714);\">\n ${ctx.category}\n </div>\n ${entry ? `<div style=\"font-size:11px;color:var(--c2g-color-text-secondary,#4a423b);\">${entry.description}</div>` : ''}\n </div>\n </div>\n <div style=\"border-top:1px solid var(--c2g-color-outline-variant,#e1d9ce);padding-top:6px;\">\n ${seriesRows}\n </div>\n ${extraRows ? `<div style=\"border-top:1px solid var(--c2g-color-outline-variant,#e1d9ce);margin-top:6px;padding-top:4px;\">${extraRows}</div>` : ''}\n </div>`;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}