@alisaitteke/seatmap-canvas 2.5.18 → 2.5.19

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 (191) hide show
  1. package/README.md +249 -4
  2. package/dist/cjs/seatmap.canvas.js +2 -16
  3. package/dist/cjs/seatmap.canvas.js.map +1 -1
  4. package/dist/cjs/types/canvas.index.d.ts +5 -0
  5. package/dist/cjs/types/converters/parser.base.d.ts +7 -0
  6. package/dist/cjs/types/converters/pretix/pretix.model.d.ts +75 -0
  7. package/dist/cjs/types/converters/pretix/pretix.parser.d.ts +7 -0
  8. package/dist/cjs/types/enums/parser.enum.d.ts +4 -0
  9. package/dist/cjs/types/examples/react/src/App.d.ts +3 -0
  10. package/dist/cjs/types/examples/react/src/main.d.ts +1 -0
  11. package/dist/cjs/types/examples/react/vite.config.d.ts +2 -0
  12. package/dist/cjs/types/examples/vue/main.d.ts +1 -0
  13. package/dist/cjs/types/examples/vue/vite.config.d.ts +2 -0
  14. package/dist/cjs/types/models/block.model.d.ts +1 -0
  15. package/dist/cjs/types/models/data.model.d.ts +3 -2
  16. package/dist/cjs/types/models/defaults.model.d.ts +2 -0
  17. package/dist/cjs/types/models/styles/seat.style.d.ts +1 -0
  18. package/dist/cjs/types/src/lib/canvas.index.browser.d.ts +2 -0
  19. package/dist/cjs/types/src/lib/canvas.index.d.ts +28 -0
  20. package/dist/cjs/types/src/lib/config.d.ts +3 -0
  21. package/dist/cjs/types/src/lib/converters/parser.base.d.ts +7 -0
  22. package/dist/cjs/types/src/lib/converters/pretix/pretix.model.d.ts +75 -0
  23. package/dist/cjs/types/src/lib/converters/pretix/pretix.parser.d.ts +7 -0
  24. package/dist/cjs/types/src/lib/decorators/dom.d.ts +8 -0
  25. package/dist/cjs/types/src/lib/decorators/index.d.ts +1 -0
  26. package/dist/cjs/types/src/lib/dev.tools.d.ts +6 -0
  27. package/dist/cjs/types/src/lib/enums/global.d.ts +46 -0
  28. package/dist/cjs/types/src/lib/enums/parser.enum.d.ts +4 -0
  29. package/dist/cjs/types/src/lib/models/block.model.d.ts +30 -0
  30. package/dist/cjs/types/src/lib/models/coordinate.model.d.ts +7 -0
  31. package/dist/cjs/types/src/lib/models/data.model.d.ts +27 -0
  32. package/dist/cjs/types/src/lib/models/defaults.model.d.ts +34 -0
  33. package/dist/cjs/types/src/lib/models/global.model.d.ts +18 -0
  34. package/dist/cjs/types/src/lib/models/label.model.d.ts +9 -0
  35. package/dist/cjs/types/src/lib/models/legend.model.d.ts +8 -0
  36. package/dist/cjs/types/src/lib/models/model.base.d.ts +5 -0
  37. package/dist/cjs/types/src/lib/models/seat.model.d.ts +40 -0
  38. package/dist/cjs/types/src/lib/models/styles/block.style.d.ts +7 -0
  39. package/dist/cjs/types/src/lib/models/styles/label.style.d.ts +6 -0
  40. package/dist/cjs/types/src/lib/models/styles/legend.style.d.ts +6 -0
  41. package/dist/cjs/types/src/lib/models/styles/seat.style.d.ts +13 -0
  42. package/dist/cjs/types/src/lib/models/styles/tooltip.style.d.ts +7 -0
  43. package/dist/cjs/types/src/lib/svg/event.manager.d.ts +12 -0
  44. package/dist/cjs/types/src/lib/svg/legend/legend.circle.d.ts +7 -0
  45. package/dist/cjs/types/src/lib/svg/legend/legend.item.d.ts +13 -0
  46. package/dist/cjs/types/src/lib/svg/legend/legend.title.d.ts +7 -0
  47. package/dist/cjs/types/src/lib/svg/legend.d.ts +8 -0
  48. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.bounds.d.ts +12 -0
  49. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.index.d.ts +23 -0
  50. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.info.index.d.ts +11 -0
  51. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.labels.index.d.ts +11 -0
  52. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.mask.d.ts +12 -0
  53. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/block-item.seats.index.d.ts +15 -0
  54. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/bound/bound-item.index.d.ts +12 -0
  55. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/info/title.d.ts +7 -0
  56. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/label/label-item.circle.d.ts +7 -0
  57. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/label/label-item.index.d.ts +13 -0
  58. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/label/label-item.title.d.ts +7 -0
  59. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.check.d.ts +10 -0
  60. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.circle.d.ts +7 -0
  61. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom-area.d.ts +7 -0
  62. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom-check.d.ts +10 -0
  63. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom.d.ts +9 -0
  64. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +30 -0
  65. package/dist/cjs/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.title.d.ts +7 -0
  66. package/dist/cjs/types/src/lib/svg/stage/blocks/blocks.index.d.ts +15 -0
  67. package/dist/cjs/types/src/lib/svg/stage/blocks.search-circle.d.ts +12 -0
  68. package/dist/cjs/types/src/lib/svg/stage/multi-select/rect.d.ts +7 -0
  69. package/dist/cjs/types/src/lib/svg/stage/multi-select.d.ts +13 -0
  70. package/dist/cjs/types/src/lib/svg/stage/search-circle/circle.d.ts +7 -0
  71. package/dist/cjs/types/src/lib/svg/stage/stage.index.d.ts +11 -0
  72. package/dist/cjs/types/src/lib/svg/svg.base.d.ts +35 -0
  73. package/dist/cjs/types/src/lib/svg/svg.index.d.ts +16 -0
  74. package/dist/cjs/types/src/lib/svg/tooltip/rect.d.ts +8 -0
  75. package/dist/cjs/types/src/lib/svg/tooltip/title.d.ts +10 -0
  76. package/dist/cjs/types/src/lib/svg/tooltip.d.ts +15 -0
  77. package/dist/cjs/types/src/lib/svg/zoom-out.bg.d.ts +7 -0
  78. package/dist/cjs/types/src/lib/svg/zoom.manager.d.ts +41 -0
  79. package/dist/cjs/types/src/lib/window.manager.d.ts +9 -0
  80. package/dist/cjs/types/src/react/SeatmapCanvas.d.ts +7 -0
  81. package/dist/cjs/types/src/react/index.d.ts +4 -0
  82. package/dist/cjs/types/src/react/types.d.ts +65 -0
  83. package/dist/cjs/types/src/react/useSeatmap.d.ts +2 -0
  84. package/dist/cjs/types/src/vue/index.d.ts +12 -0
  85. package/dist/cjs/types/src/vue/types.d.ts +42 -0
  86. package/dist/cjs/types/src/vue/useSeatmap.d.ts +19 -0
  87. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.seats.index.d.ts +1 -1
  88. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.custom-area.d.ts +7 -0
  89. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.custom-check.d.ts +10 -0
  90. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.custom.d.ts +9 -0
  91. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +3 -1
  92. package/dist/cjs/types/svg/stage/blocks/blocks.index.d.ts +2 -0
  93. package/dist/cjs/types/svg/svg.base.d.ts +2 -2
  94. package/dist/cjs/types/svg/zoom.manager.d.ts +1 -0
  95. package/dist/dependencies.txt +176 -333
  96. package/dist/esm/seatmap.canvas.js +2 -16
  97. package/dist/esm/seatmap.canvas.js.map +1 -1
  98. package/dist/esm/types/canvas.index.d.ts +5 -0
  99. package/dist/esm/types/converters/parser.base.d.ts +7 -0
  100. package/dist/esm/types/converters/pretix/pretix.model.d.ts +75 -0
  101. package/dist/esm/types/converters/pretix/pretix.parser.d.ts +7 -0
  102. package/dist/esm/types/enums/parser.enum.d.ts +4 -0
  103. package/dist/esm/types/examples/react/src/App.d.ts +3 -0
  104. package/dist/esm/types/examples/react/src/main.d.ts +1 -0
  105. package/dist/esm/types/examples/react/vite.config.d.ts +2 -0
  106. package/dist/esm/types/examples/vue/main.d.ts +1 -0
  107. package/dist/esm/types/examples/vue/vite.config.d.ts +2 -0
  108. package/dist/esm/types/models/block.model.d.ts +1 -0
  109. package/dist/esm/types/models/data.model.d.ts +3 -2
  110. package/dist/esm/types/models/defaults.model.d.ts +2 -0
  111. package/dist/esm/types/models/styles/seat.style.d.ts +1 -0
  112. package/dist/esm/types/src/lib/canvas.index.browser.d.ts +2 -0
  113. package/dist/esm/types/src/lib/canvas.index.d.ts +28 -0
  114. package/dist/esm/types/src/lib/config.d.ts +3 -0
  115. package/dist/esm/types/src/lib/converters/parser.base.d.ts +7 -0
  116. package/dist/esm/types/src/lib/converters/pretix/pretix.model.d.ts +75 -0
  117. package/dist/esm/types/src/lib/converters/pretix/pretix.parser.d.ts +7 -0
  118. package/dist/esm/types/src/lib/decorators/dom.d.ts +8 -0
  119. package/dist/esm/types/src/lib/decorators/index.d.ts +1 -0
  120. package/dist/esm/types/src/lib/dev.tools.d.ts +6 -0
  121. package/dist/esm/types/src/lib/enums/global.d.ts +46 -0
  122. package/dist/esm/types/src/lib/enums/parser.enum.d.ts +4 -0
  123. package/dist/esm/types/src/lib/models/block.model.d.ts +30 -0
  124. package/dist/esm/types/src/lib/models/coordinate.model.d.ts +7 -0
  125. package/dist/esm/types/src/lib/models/data.model.d.ts +27 -0
  126. package/dist/esm/types/src/lib/models/defaults.model.d.ts +34 -0
  127. package/dist/esm/types/src/lib/models/global.model.d.ts +18 -0
  128. package/dist/esm/types/src/lib/models/label.model.d.ts +9 -0
  129. package/dist/esm/types/src/lib/models/legend.model.d.ts +8 -0
  130. package/dist/esm/types/src/lib/models/model.base.d.ts +5 -0
  131. package/dist/esm/types/src/lib/models/seat.model.d.ts +40 -0
  132. package/dist/esm/types/src/lib/models/styles/block.style.d.ts +7 -0
  133. package/dist/esm/types/src/lib/models/styles/label.style.d.ts +6 -0
  134. package/dist/esm/types/src/lib/models/styles/legend.style.d.ts +6 -0
  135. package/dist/esm/types/src/lib/models/styles/seat.style.d.ts +13 -0
  136. package/dist/esm/types/src/lib/models/styles/tooltip.style.d.ts +7 -0
  137. package/dist/esm/types/src/lib/svg/event.manager.d.ts +12 -0
  138. package/dist/esm/types/src/lib/svg/legend/legend.circle.d.ts +7 -0
  139. package/dist/esm/types/src/lib/svg/legend/legend.item.d.ts +13 -0
  140. package/dist/esm/types/src/lib/svg/legend/legend.title.d.ts +7 -0
  141. package/dist/esm/types/src/lib/svg/legend.d.ts +8 -0
  142. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.bounds.d.ts +12 -0
  143. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.index.d.ts +23 -0
  144. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.info.index.d.ts +11 -0
  145. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.labels.index.d.ts +11 -0
  146. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.mask.d.ts +12 -0
  147. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/block-item.seats.index.d.ts +15 -0
  148. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/bound/bound-item.index.d.ts +12 -0
  149. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/info/title.d.ts +7 -0
  150. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/label/label-item.circle.d.ts +7 -0
  151. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/label/label-item.index.d.ts +13 -0
  152. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/label/label-item.title.d.ts +7 -0
  153. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.check.d.ts +10 -0
  154. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.circle.d.ts +7 -0
  155. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom-area.d.ts +7 -0
  156. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom-check.d.ts +10 -0
  157. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.custom.d.ts +9 -0
  158. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +30 -0
  159. package/dist/esm/types/src/lib/svg/stage/blocks/block-item/seat/seat-item.title.d.ts +7 -0
  160. package/dist/esm/types/src/lib/svg/stage/blocks/blocks.index.d.ts +15 -0
  161. package/dist/esm/types/src/lib/svg/stage/blocks.search-circle.d.ts +12 -0
  162. package/dist/esm/types/src/lib/svg/stage/multi-select/rect.d.ts +7 -0
  163. package/dist/esm/types/src/lib/svg/stage/multi-select.d.ts +13 -0
  164. package/dist/esm/types/src/lib/svg/stage/search-circle/circle.d.ts +7 -0
  165. package/dist/esm/types/src/lib/svg/stage/stage.index.d.ts +11 -0
  166. package/dist/esm/types/src/lib/svg/svg.base.d.ts +35 -0
  167. package/dist/esm/types/src/lib/svg/svg.index.d.ts +16 -0
  168. package/dist/esm/types/src/lib/svg/tooltip/rect.d.ts +8 -0
  169. package/dist/esm/types/src/lib/svg/tooltip/title.d.ts +10 -0
  170. package/dist/esm/types/src/lib/svg/tooltip.d.ts +15 -0
  171. package/dist/esm/types/src/lib/svg/zoom-out.bg.d.ts +7 -0
  172. package/dist/esm/types/src/lib/svg/zoom.manager.d.ts +41 -0
  173. package/dist/esm/types/src/lib/window.manager.d.ts +9 -0
  174. package/dist/esm/types/src/react/SeatmapCanvas.d.ts +7 -0
  175. package/dist/esm/types/src/react/index.d.ts +4 -0
  176. package/dist/esm/types/src/react/types.d.ts +65 -0
  177. package/dist/esm/types/src/react/useSeatmap.d.ts +2 -0
  178. package/dist/esm/types/src/vue/index.d.ts +12 -0
  179. package/dist/esm/types/src/vue/types.d.ts +42 -0
  180. package/dist/esm/types/src/vue/useSeatmap.d.ts +19 -0
  181. package/dist/esm/types/svg/stage/blocks/block-item/block-item.seats.index.d.ts +1 -1
  182. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.custom-area.d.ts +7 -0
  183. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.custom-check.d.ts +10 -0
  184. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.custom.d.ts +9 -0
  185. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +3 -1
  186. package/dist/esm/types/svg/stage/blocks/blocks.index.d.ts +2 -0
  187. package/dist/esm/types/svg/svg.base.d.ts +2 -2
  188. package/dist/esm/types/svg/zoom.manager.d.ts +1 -0
  189. package/dist/types.d.ts +5 -0
  190. package/package.json +52 -7
  191. package/CHANGELOG.md +0 -78
package/README.md CHANGED
@@ -14,10 +14,84 @@ Seatmap Canvas is an advanced, open-source library for interactive seat selectio
14
14
  ## Screenshot
15
15
  [![LIVE DEMO](assets/screenshot_1.png)](https://alisaitteke.github.io/seatmap-canvas)
16
16
 
17
- ## Planned
18
- - [x] React & React Native Integration
19
- - [ ] Vue & Nuxt Integration
20
- - [ ] Angular Integration
17
+ ## 🚀 Framework Plugins & Integrations
18
+
19
+ ### 🌐 Web Frameworks
20
+
21
+ <p align="center">
22
+ <a href="src/vue/README.md">
23
+ <img src="https://img.shields.io/badge/Vue.js_3-⚠️_Testing-orange?style=for-the-badge&logo=vue.js&logoColor=white" alt="Vue.js 3"/>
24
+ </a>
25
+ &nbsp;&nbsp;
26
+ <a href="src/react/README.md">
27
+ <img src="https://img.shields.io/badge/React-⚠️_Testing-orange?style=for-the-badge&logo=react&logoColor=white" alt="React"/>
28
+ </a>
29
+ &nbsp;&nbsp;
30
+ <img src="https://img.shields.io/badge/Next.js-Coming_Soon-000000?style=for-the-badge&logo=next.js&logoColor=white&color=gray" alt="Next.js"/>
31
+ &nbsp;&nbsp;
32
+ <img src="https://img.shields.io/badge/Svelte-Coming_Soon-FF3E00?style=for-the-badge&logo=svelte&logoColor=white&color=gray" alt="Svelte"/>
33
+ &nbsp;&nbsp;
34
+ <img src="https://img.shields.io/badge/Angular-Coming_Soon-dd0031?style=for-the-badge&logo=angular&logoColor=white&color=gray" alt="Angular"/>
35
+ &nbsp;&nbsp;
36
+ <img src="https://img.shields.io/badge/Nuxt-Coming_Soon-00dc82?style=for-the-badge&logo=nuxt.js&logoColor=white&color=gray" alt="Nuxt"/>
37
+ &nbsp;&nbsp;
38
+ <img src="https://img.shields.io/badge/Solid.js-Coming_Soon-2c4f7c?style=for-the-badge&logo=solid&logoColor=white&color=gray" alt="Solid.js"/>
39
+ &nbsp;&nbsp;
40
+ <img src="https://img.shields.io/badge/Astro-Coming_Soon-FF5D01?style=for-the-badge&logo=astro&logoColor=white&color=gray" alt="Astro"/>
41
+ </p>
42
+
43
+ ### 📱 Mobile Frameworks
44
+
45
+ <p align="center">
46
+ <img src="https://img.shields.io/badge/React_Native-Coming_Soon-61dafb?style=for-the-badge&logo=react&logoColor=white&color=gray" alt="React Native"/>
47
+ &nbsp;&nbsp;
48
+ <img src="https://img.shields.io/badge/Flutter-Coming_Soon-02569B?style=for-the-badge&logo=flutter&logoColor=white&color=gray" alt="Flutter"/>
49
+ &nbsp;&nbsp;
50
+ <img src="https://img.shields.io/badge/Expo-Coming_Soon-000020?style=for-the-badge&logo=expo&logoColor=white&color=gray" alt="Expo"/>
51
+ &nbsp;&nbsp;
52
+ <img src="https://img.shields.io/badge/Ionic-Coming_Soon-3880FF?style=for-the-badge&logo=ionic&logoColor=white&color=gray" alt="Ionic"/>
53
+ &nbsp;&nbsp;
54
+ <img src="https://img.shields.io/badge/Capacitor-Coming_Soon-119EFF?style=for-the-badge&logo=capacitor&logoColor=white&color=gray" alt="Capacitor"/>
55
+ &nbsp;&nbsp;
56
+ <img src="https://img.shields.io/badge/.NET_MAUI-Coming_Soon-512BD4?style=for-the-badge&logo=.net&logoColor=white&color=gray" alt=".NET MAUI"/>
57
+ </p>
58
+
59
+ ---
60
+
61
+ ### 🌐 Web Framework Integrations
62
+
63
+ <div align="center">
64
+
65
+ | Framework | Status | Package | Documentation | Example |
66
+ |:----------|:------:|:--------|:-------------:|:-------:|
67
+ | **Vanilla JS** | ✅ Available | `@alisaitteke/seatmap-canvas` | [📖 Documentation](#vanilla-javascript) | [🎯 Example](examples/) |
68
+ | **Vue.js 3** | ⚠️ Testing | `@alisaitteke/seatmap-canvas/vue` | [📖 Documentation](src/vue/README.md) | [🎯 Example](examples/vue/) |
69
+ | **React** | ⚠️ Testing | `@alisaitteke/seatmap-canvas/react` | [📖 Documentation](src/react/README.md) | [🎯 Example](examples/react/) |
70
+ | **Next.js** | 🔜 Coming Soon | - | - | - |
71
+ | **Svelte** | 🔜 Coming Soon | - | - | - |
72
+ | **Angular** | 🔜 Coming Soon | - | - | - |
73
+ | **Nuxt** | 🔜 Coming Soon | - | - | - |
74
+ | **Solid.js** | 🔜 Coming Soon | - | - | - |
75
+ | **Astro** | 🔜 Coming Soon | - | - | - |
76
+
77
+ </div>
78
+
79
+ ### 📱 Mobile Framework Integrations
80
+
81
+ <div align="center">
82
+
83
+ | Framework | Platform | Status | Package | Documentation | Example |
84
+ |:----------|:--------:|:------:|:--------|:-------------:|:-------:|
85
+ | **React Native** | iOS • Android | 🔜 Coming Soon | - | - | - |
86
+ | **Flutter** | iOS • Android | 🔜 Coming Soon | - | - | - |
87
+ | **Expo** | iOS • Android | 🔜 Coming Soon | - | - | - |
88
+ | **Ionic** | iOS • Android • Web | 🔜 Coming Soon | - | - | - |
89
+ | **Capacitor** | iOS • Android • Web | 🔜 Coming Soon | - | - | - |
90
+ | **.NET MAUI** | iOS • Android • Windows • macOS | 🔜 Coming Soon | - | - | - |
91
+
92
+ </div>
93
+
94
+ ---
21
95
 
22
96
  [LIVE DEMO](https://alisaitteke.github.io/seatmap-canvas/)
23
97
 
@@ -40,6 +114,95 @@ OR
40
114
  yarn add <a href="https://npm.pkg.github.com/alisaitteke/seatmap-canvas">@alisaitteke/seatmap-canvas</a> --save
41
115
  </pre>
42
116
 
117
+ ## Quick Start
118
+
119
+ ### Vue.js 3
120
+
121
+ ```bash
122
+ npm install @alisaitteke/seatmap-canvas
123
+ ```
124
+
125
+ ```typescript
126
+ // main.ts
127
+ import { createApp } from 'vue';
128
+ import App from './App.vue';
129
+ import SeatmapCanvasPlugin from '@alisaitteke/seatmap-canvas/vue';
130
+ import '@alisaitteke/seatmap-canvas/dist/seatmap.canvas.css';
131
+
132
+ const app = createApp(App);
133
+ app.use(SeatmapCanvasPlugin);
134
+ app.mount('#app');
135
+ ```
136
+
137
+ ```vue
138
+ <!-- Component.vue -->
139
+ <template>
140
+ <SeatmapCanvas
141
+ :options="seatmapOptions"
142
+ :data="blocks"
143
+ @seat-click="onSeatClick"
144
+ />
145
+ </template>
146
+
147
+ <script setup lang="ts">
148
+ const seatmapOptions = {
149
+ legend: true,
150
+ style: {
151
+ seat: {
152
+ hover: '#8fe100',
153
+ selected: '#8fe100',
154
+ }
155
+ }
156
+ };
157
+
158
+ const onSeatClick = (seat) => {
159
+ seat.isSelected() ? seat.unSelect() : seat.select();
160
+ };
161
+ </script>
162
+ ```
163
+
164
+ **[📖 Full Vue.js Documentation](src/vue/README.md)** | **[🎯 Vue.js Examples](examples/vue/)**
165
+
166
+ ### React
167
+
168
+ ```bash
169
+ npm install @alisaitteke/seatmap-canvas react react-dom
170
+ ```
171
+
172
+ ```tsx
173
+ import React from 'react';
174
+ import { SeatmapCanvas } from '@alisaitteke/seatmap-canvas/react';
175
+ import '@alisaitteke/seatmap-canvas/dist/seatmap.canvas.css';
176
+
177
+ function App() {
178
+ const handleSeatClick = (seat) => {
179
+ seat.isSelected() ? seat.unSelect() : seat.select();
180
+ };
181
+
182
+ return (
183
+ <div style={{ width: '100%', height: '600px' }}>
184
+ <SeatmapCanvas
185
+ options={{
186
+ legend: true,
187
+ style: {
188
+ seat: {
189
+ hover: '#8fe100',
190
+ selected: '#8fe100',
191
+ }
192
+ }
193
+ }}
194
+ data={blocks}
195
+ onSeatClick={handleSeatClick}
196
+ />
197
+ </div>
198
+ );
199
+ }
200
+ ```
201
+
202
+ **[📖 Full React Documentation](src/react/README.md)** | **[🎯 React Examples](examples/react/)**
203
+
204
+ ### Vanilla JavaScript
205
+
43
206
 
44
207
 
45
208
 
@@ -166,5 +329,87 @@ seatmap.addEventListener("seat_click", (seat) => {
166
329
  var selectedSeats = seatmap.getSelectedSeats();
167
330
  });
168
331
  ```
332
+
333
+
334
+ #### Complete Example Code
335
+ ```javascript
336
+
337
+ var config = {
338
+ "resizable": true,
339
+ "seat_style": {
340
+ "radius": 12,
341
+ "color": "#6796ff",
342
+ "hover": "#5671ff",
343
+ "not_salable": "#424747",
344
+ "selected": "#56aa45",
345
+ "focus": "#435fa4",
346
+ "focus_out": "#56aa45"
347
+ },
348
+ "block_style": {
349
+ "fill": "#e2e2e2",
350
+ "stroke": "#e2e2e2"
351
+ },
352
+ "label_style": {
353
+ "color": "#000",
354
+ "radius": 12,
355
+ "font-size": "12px",
356
+ "bg": "#ffffff"
357
+ }
358
+ }
359
+
360
+ var seatmap = new SeatmapCanvas(".seats_container",config);
361
+ seatmap.addEventListener("seat_click", (seat) => {
362
+ console.log(seat);
363
+ if (seat.selected) {
364
+ seatmap.seatUnselect(seat);
365
+ } else {
366
+ seatmap.seatSelect(seat);
367
+ }
368
+ });
369
+ var data = {
370
+ "blocks": [
371
+ {
372
+ "id": 1,
373
+ "title": "Test Block 1",
374
+ "color": "#2c2828",
375
+ "labels": [
376
+ {
377
+ "title": "A",
378
+ "x": -30,
379
+ "y": 0
380
+ },
381
+ {
382
+ "title": "B",
383
+ "x": 120,
384
+ "y": 30
385
+ }
386
+ ],
387
+ "seats": [
388
+ {
389
+ "id": 1,
390
+ "x": 0,
391
+ "y": 0,
392
+ "salable": true,
393
+ "note": "note test",
394
+ "title": "49"
395
+ },
396
+ {
397
+ "id": 2,
398
+ "x": 30,
399
+ "y": 0,
400
+ "salable": true,
401
+ "note": "note test",
402
+ "title": "47"
403
+ }
404
+ ]
405
+ }
406
+ ]
407
+ }
408
+
409
+ // SET SEATS DATA
410
+ seatmap.setData(data);
411
+
412
+ ```
413
+
169
414
  ## Contributors
170
415
  Ali Sait Teke <alisaitt@gmail.com>