@alisaitteke/seatmap-canvas 2.3.0 → 2.4.1

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 (194) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE +1 -1
  3. package/README.md +15 -5
  4. package/dist/cjs/seatmap.canvas.css +151 -0
  5. package/dist/cjs/seatmap.canvas.js +40 -0
  6. package/dist/cjs/seatmap.canvas.js.map +1 -0
  7. package/dist/cjs/types/canvas.index.browser.d.ts +2 -0
  8. package/dist/cjs/types/canvas.index.d.ts +23 -0
  9. package/dist/cjs/types/config.d.ts +3 -0
  10. package/dist/cjs/types/decorators/dom.d.ts +8 -0
  11. package/dist/cjs/types/decorators/index.d.ts +1 -0
  12. package/dist/cjs/types/dev.tools.d.ts +6 -0
  13. package/{src/lib/enums/global.ts → dist/cjs/types/enums/global.d.ts} +4 -25
  14. package/dist/cjs/types/models/block.model.d.ts +29 -0
  15. package/dist/cjs/types/models/coordinate.model.d.ts +7 -0
  16. package/dist/cjs/types/models/data.model.d.ts +26 -0
  17. package/dist/cjs/types/models/defaults.model.d.ts +32 -0
  18. package/dist/cjs/types/models/global.model.d.ts +18 -0
  19. package/dist/cjs/types/models/label.model.d.ts +9 -0
  20. package/dist/cjs/types/models/legend.model.d.ts +8 -0
  21. package/dist/cjs/types/models/model.base.d.ts +5 -0
  22. package/dist/cjs/types/models/seat.model.d.ts +40 -0
  23. package/dist/cjs/types/models/styles/block.style.d.ts +7 -0
  24. package/dist/cjs/types/models/styles/label.style.d.ts +6 -0
  25. package/dist/cjs/types/models/styles/legend.style.d.ts +6 -0
  26. package/dist/cjs/types/models/styles/seat.style.d.ts +12 -0
  27. package/dist/cjs/types/models/styles/tooltip.style.d.ts +7 -0
  28. package/dist/cjs/types/svg/event.manager.d.ts +12 -0
  29. package/dist/cjs/types/svg/legend/legend.circle.d.ts +7 -0
  30. package/dist/cjs/types/svg/legend/legend.item.d.ts +13 -0
  31. package/dist/cjs/types/svg/legend/legend.title.d.ts +7 -0
  32. package/dist/cjs/types/svg/legend.d.ts +8 -0
  33. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.bounds.d.ts +12 -0
  34. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.index.d.ts +23 -0
  35. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.info.index.d.ts +11 -0
  36. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.labels.index.d.ts +11 -0
  37. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.mask.d.ts +12 -0
  38. package/dist/cjs/types/svg/stage/blocks/block-item/block-item.seats.index.d.ts +15 -0
  39. package/dist/cjs/types/svg/stage/blocks/block-item/bound/bound-item.index.d.ts +12 -0
  40. package/dist/cjs/types/svg/stage/blocks/block-item/info/title.d.ts +7 -0
  41. package/dist/cjs/types/svg/stage/blocks/block-item/label/label-item.circle.d.ts +7 -0
  42. package/dist/cjs/types/svg/stage/blocks/block-item/label/label-item.index.d.ts +13 -0
  43. package/dist/cjs/types/svg/stage/blocks/block-item/label/label-item.title.d.ts +7 -0
  44. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.check.d.ts +10 -0
  45. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.circle.d.ts +7 -0
  46. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +28 -0
  47. package/dist/cjs/types/svg/stage/blocks/block-item/seat/seat-item.title.d.ts +7 -0
  48. package/dist/cjs/types/svg/stage/blocks/blocks.index.d.ts +13 -0
  49. package/dist/cjs/types/svg/stage/blocks.search-circle.d.ts +12 -0
  50. package/dist/cjs/types/svg/stage/multi-select/rect.d.ts +7 -0
  51. package/dist/cjs/types/svg/stage/multi-select.d.ts +13 -0
  52. package/dist/cjs/types/svg/stage/search-circle/circle.d.ts +7 -0
  53. package/dist/cjs/types/svg/stage/stage.index.d.ts +11 -0
  54. package/dist/cjs/types/svg/svg.base.d.ts +35 -0
  55. package/dist/cjs/types/svg/svg.index.d.ts +16 -0
  56. package/dist/cjs/types/svg/tooltip/rect.d.ts +8 -0
  57. package/dist/cjs/types/svg/tooltip/title.d.ts +10 -0
  58. package/dist/cjs/types/svg/tooltip.d.ts +15 -0
  59. package/dist/cjs/types/svg/zoom-out.bg.d.ts +7 -0
  60. package/dist/cjs/types/svg/zoom.manager.d.ts +41 -0
  61. package/dist/cjs/types/window.manager.d.ts +9 -0
  62. package/dist/dependencies.txt +849 -0
  63. package/dist/esm/seatmap.canvas.css +151 -0
  64. package/dist/esm/seatmap.canvas.js +16 -0
  65. package/dist/esm/seatmap.canvas.js.map +1 -0
  66. package/dist/esm/types/canvas.index.browser.d.ts +2 -0
  67. package/dist/esm/types/canvas.index.d.ts +23 -0
  68. package/dist/esm/types/config.d.ts +3 -0
  69. package/dist/esm/types/decorators/dom.d.ts +8 -0
  70. package/dist/esm/types/decorators/index.d.ts +1 -0
  71. package/dist/esm/types/dev.tools.d.ts +6 -0
  72. package/dist/esm/types/enums/global.d.ts +46 -0
  73. package/dist/esm/types/models/block.model.d.ts +29 -0
  74. package/dist/esm/types/models/coordinate.model.d.ts +7 -0
  75. package/dist/esm/types/models/data.model.d.ts +26 -0
  76. package/dist/esm/types/models/defaults.model.d.ts +32 -0
  77. package/dist/esm/types/models/global.model.d.ts +18 -0
  78. package/dist/esm/types/models/label.model.d.ts +9 -0
  79. package/dist/esm/types/models/legend.model.d.ts +8 -0
  80. package/dist/esm/types/models/model.base.d.ts +5 -0
  81. package/dist/esm/types/models/seat.model.d.ts +40 -0
  82. package/dist/esm/types/models/styles/block.style.d.ts +7 -0
  83. package/dist/esm/types/models/styles/label.style.d.ts +6 -0
  84. package/dist/esm/types/models/styles/legend.style.d.ts +6 -0
  85. package/dist/esm/types/models/styles/seat.style.d.ts +12 -0
  86. package/dist/esm/types/models/styles/tooltip.style.d.ts +7 -0
  87. package/dist/esm/types/svg/event.manager.d.ts +12 -0
  88. package/dist/esm/types/svg/legend/legend.circle.d.ts +7 -0
  89. package/dist/esm/types/svg/legend/legend.item.d.ts +13 -0
  90. package/dist/esm/types/svg/legend/legend.title.d.ts +7 -0
  91. package/dist/esm/types/svg/legend.d.ts +8 -0
  92. package/dist/esm/types/svg/stage/blocks/block-item/block-item.bounds.d.ts +12 -0
  93. package/dist/esm/types/svg/stage/blocks/block-item/block-item.index.d.ts +23 -0
  94. package/dist/esm/types/svg/stage/blocks/block-item/block-item.info.index.d.ts +11 -0
  95. package/dist/esm/types/svg/stage/blocks/block-item/block-item.labels.index.d.ts +11 -0
  96. package/dist/esm/types/svg/stage/blocks/block-item/block-item.mask.d.ts +12 -0
  97. package/dist/esm/types/svg/stage/blocks/block-item/block-item.seats.index.d.ts +15 -0
  98. package/dist/esm/types/svg/stage/blocks/block-item/bound/bound-item.index.d.ts +12 -0
  99. package/dist/esm/types/svg/stage/blocks/block-item/info/title.d.ts +7 -0
  100. package/dist/esm/types/svg/stage/blocks/block-item/label/label-item.circle.d.ts +7 -0
  101. package/dist/esm/types/svg/stage/blocks/block-item/label/label-item.index.d.ts +13 -0
  102. package/dist/esm/types/svg/stage/blocks/block-item/label/label-item.title.d.ts +7 -0
  103. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.check.d.ts +10 -0
  104. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.circle.d.ts +7 -0
  105. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.index.d.ts +28 -0
  106. package/dist/esm/types/svg/stage/blocks/block-item/seat/seat-item.title.d.ts +7 -0
  107. package/dist/esm/types/svg/stage/blocks/blocks.index.d.ts +13 -0
  108. package/dist/esm/types/svg/stage/blocks.search-circle.d.ts +12 -0
  109. package/dist/esm/types/svg/stage/multi-select/rect.d.ts +7 -0
  110. package/dist/esm/types/svg/stage/multi-select.d.ts +13 -0
  111. package/dist/esm/types/svg/stage/search-circle/circle.d.ts +7 -0
  112. package/dist/esm/types/svg/stage/stage.index.d.ts +11 -0
  113. package/dist/esm/types/svg/svg.base.d.ts +35 -0
  114. package/dist/esm/types/svg/svg.index.d.ts +16 -0
  115. package/dist/esm/types/svg/tooltip/rect.d.ts +8 -0
  116. package/dist/esm/types/svg/tooltip/title.d.ts +10 -0
  117. package/dist/esm/types/svg/tooltip.d.ts +15 -0
  118. package/dist/esm/types/svg/zoom-out.bg.d.ts +7 -0
  119. package/dist/esm/types/svg/zoom.manager.d.ts +41 -0
  120. package/dist/esm/types/window.manager.d.ts +9 -0
  121. package/dist/types.d.ts +533 -0
  122. package/package.json +9 -13
  123. package/.eslintrc.json +0 -15
  124. package/.github/FUNDING.yml +0 -4
  125. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  126. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  127. package/.github/workflows/codeql-analysis.yml +0 -29
  128. package/.github/workflows/npm-publish-packages.yml +0 -35
  129. package/.github/workflows/publish.yml +0 -106
  130. package/.github/workflows/webpack.yml +0 -22
  131. package/.opencommitignore +0 -2
  132. package/AUTHORS +0 -3
  133. package/SECURITY.md +0 -21
  134. package/_config.yml +0 -1
  135. package/assets/banner_ui.png +0 -0
  136. package/assets/bn.jpg +0 -0
  137. package/assets/logo.jpg +0 -0
  138. package/assets/logo_small.jpg +0 -0
  139. package/assets/zoom_out.svg +0 -11
  140. package/cog.toml +0 -19
  141. package/dist/cjs/index.js +0 -16
  142. package/examples/index.html +0 -171
  143. package/rollup.config.js +0 -56
  144. package/src/lib/canvas.index.ts +0 -121
  145. package/src/lib/config.ts +0 -11
  146. package/src/lib/decorators/dom.ts +0 -40
  147. package/src/lib/decorators/index.ts +0 -6
  148. package/src/lib/dev.tools.ts +0 -18
  149. package/src/lib/models/block.model.ts +0 -65
  150. package/src/lib/models/coordinate.model.ts +0 -26
  151. package/src/lib/models/data.model.ts +0 -125
  152. package/src/lib/models/defaults.model.ts +0 -131
  153. package/src/lib/models/global.model.ts +0 -24
  154. package/src/lib/models/label.model.ts +0 -25
  155. package/src/lib/models/legend.model.ts +0 -24
  156. package/src/lib/models/model.base.ts +0 -15
  157. package/src/lib/models/seat.model.ts +0 -74
  158. package/src/lib/svg/event.manager.ts +0 -48
  159. package/src/lib/svg/legend/legend.circle.ts +0 -28
  160. package/src/lib/svg/legend/legend.item.ts +0 -53
  161. package/src/lib/svg/legend/legend.title.ts +0 -27
  162. package/src/lib/svg/legend.ts +0 -55
  163. package/src/lib/svg/stage/blocks/block-item/block-item.bounds.ts +0 -51
  164. package/src/lib/svg/stage/blocks/block-item/block-item.index.ts +0 -185
  165. package/src/lib/svg/stage/blocks/block-item/block-item.info.index.ts +0 -39
  166. package/src/lib/svg/stage/blocks/block-item/block-item.labels.index.ts +0 -41
  167. package/src/lib/svg/stage/blocks/block-item/block-item.mask.ts +0 -67
  168. package/src/lib/svg/stage/blocks/block-item/block-item.seats.index.ts +0 -81
  169. package/src/lib/svg/stage/blocks/block-item/bound/bound-item.index.ts +0 -43
  170. package/src/lib/svg/stage/blocks/block-item/info/title.ts +0 -30
  171. package/src/lib/svg/stage/blocks/block-item/label/label-item.circle.ts +0 -27
  172. package/src/lib/svg/stage/blocks/block-item/label/label-item.index.ts +0 -46
  173. package/src/lib/svg/stage/blocks/block-item/label/label-item.title.ts +0 -27
  174. package/src/lib/svg/stage/blocks/block-item/seat/seat-item.check.ts +0 -52
  175. package/src/lib/svg/stage/blocks/block-item/seat/seat-item.circle.ts +0 -30
  176. package/src/lib/svg/stage/blocks/block-item/seat/seat-item.index.ts +0 -159
  177. package/src/lib/svg/stage/blocks/block-item/seat/seat-item.title.ts +0 -27
  178. package/src/lib/svg/stage/blocks/blocks.index.ts +0 -71
  179. package/src/lib/svg/stage/blocks.search-circle.ts +0 -86
  180. package/src/lib/svg/stage/multi-select/rect.ts +0 -36
  181. package/src/lib/svg/stage/multi-select.ts +0 -107
  182. package/src/lib/svg/stage/search-circle/circle.ts +0 -37
  183. package/src/lib/svg/stage/stage.index.ts +0 -41
  184. package/src/lib/svg/svg.base.ts +0 -229
  185. package/src/lib/svg/svg.index.ts +0 -76
  186. package/src/lib/svg/tooltip/rect.ts +0 -66
  187. package/src/lib/svg/tooltip/title.ts +0 -48
  188. package/src/lib/svg/tooltip.ts +0 -93
  189. package/src/lib/svg/zoom-out.bg.ts +0 -35
  190. package/src/lib/svg/zoom.manager.ts +0 -448
  191. package/src/lib/window.manager.ts +0 -40
  192. package/src/scss/lib.scss +0 -10
  193. package/src/scss/style.scss +0 -221
  194. package/tsconfig.json +0 -32
@@ -1,40 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- interface DomInterface {
8
- tag?: string,
9
- class?: string,
10
- event_code?: string,
11
- autoGenerate?: boolean
12
- }
13
-
14
- export function dom(values: DomInterface) {
15
- return function (target: any) {
16
- target.prototype['dom_params'] = {};
17
- if (values.tag) {
18
- target.prototype['dom_params']['tag'] = values.tag
19
- }
20
- if (values.class) {
21
- target.prototype['dom_params']['class'] = values.class
22
- }
23
-
24
- if (values.event_code) {
25
- target.prototype['dom_params']['event_code'] = values.event_code
26
- }else{
27
- if (values.class) {
28
- target.prototype['dom_params']['event_code'] = values.class
29
- }
30
-
31
- }
32
-
33
- if (typeof values.autoGenerate !== "undefined") {
34
- target.prototype['dom_params']['autoGenerate'] = values.autoGenerate;
35
- } else {
36
- target.prototype['dom_params']['autoGenerate'] = true;
37
- }
38
-
39
- }
40
- }
@@ -1,6 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
- export * from "./dom";
@@ -1,18 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
- import {SeatMapCanvas} from "./canvas.index";
7
-
8
- export default class SeatMapDevTools {
9
- constructor(private context: SeatMapCanvas) {
10
- }
11
-
12
- public log(...messages: any[]): this {
13
- console.log(messages);
14
- return this;
15
- }
16
-
17
-
18
- }
@@ -1,65 +0,0 @@
1
- /*
2
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
3
- */
4
-
5
-
6
- import SeatModel from "./seat.model";
7
- import LabelModel from "./label.model";
8
- import ModelBase from "./model.base";
9
-
10
-
11
- export default class BlockModel extends ModelBase {
12
- id: string;
13
- seats: Array<SeatModel>;
14
- labels: Array<LabelModel>;
15
- title: String;
16
- bounds: any;
17
- width: number;
18
- height: number;
19
- x: number;
20
- y: number;
21
- color: string;
22
- border_color: string;
23
- bbox: any;
24
- zoom_bbox: any;
25
- rotate: number;
26
-
27
- constructor(item: any) {
28
- super();
29
- this.id = item.id ? item.id : (Math.random() * 1000).toString();
30
- this.width = item.width || null;
31
- this.height = item.height || null;
32
- this.x = item.x || null;
33
- this.y = item.y || null;
34
- this.bounds = item._bounds || [];
35
- this.color = item.color || "#f1f1f1";
36
- this.border_color = item.border_color || "#f1f1f1";
37
- this.title = item.title;
38
- this.rotate = item.rotate || 0;
39
-
40
- this.labels = item.labels.map((item: any) => {
41
- item.block = this;
42
- return new LabelModel(item);
43
- }) || [];
44
-
45
- this.seats = item.seats.map((item: any) => {
46
- item.block = this;
47
- let seat: SeatModel = new SeatModel(item);
48
- return seat;
49
- }) || [];
50
- }
51
-
52
-
53
- toJson() {
54
- return {
55
- id: this.id,
56
- title: this.title,
57
- x: this.x,
58
- y: this.y,
59
- color: this.color,
60
- width: this.width,
61
- height: this.height
62
-
63
- }
64
- }
65
- }
@@ -1,26 +0,0 @@
1
- /*
2
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
3
- */
4
-
5
-
6
- export class CoordinateModel {
7
-
8
- private x: number;
9
- private y: number;
10
-
11
- constructor(item?: any) {
12
- this.x = item.x || 0;
13
- this.y = item.y || 0;
14
- }
15
-
16
- toArray() {
17
- return [this.x, this.y];
18
- }
19
-
20
-
21
- toJson() {
22
- return {}
23
- }
24
- }
25
-
26
-
@@ -1,125 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- import BlockModel from "./block.model";
8
- import {EventType} from "../enums/global";
9
- import EventManager from "../svg/event.manager";
10
- import {SeatMapCanvas} from "../canvas.index";
11
- import {SeatItem} from "../svg/stage/blocks/block-item/seat/seat-item.index";
12
- import SeatModel from "./seat.model";
13
- import Block from "../svg/stage/blocks/block-item/block-item.index";
14
-
15
- interface BlockQuery {
16
- id?: number | string
17
- }
18
-
19
- export default class DataModel {
20
- blocks: Array<BlockModel>;
21
-
22
-
23
- private eventManager: EventManager;
24
- public addEventListener: any;
25
-
26
- constructor(private _self: SeatMapCanvas) {
27
- this.blocks = [];
28
- this.eventManager = _self.eventManager;
29
- this.addEventListener = _self.eventManager.addEventListener;
30
- }
31
-
32
- public addBlock(block_data: any): this {
33
- this.blocks.push(new BlockModel(block_data));
34
- this.eventManager.dispatch(EventType.ADD_BLOCK, [block_data]);
35
- this.eventManager.dispatch(EventType.UPDATE_BLOCK, this.blocks);
36
- return this;
37
- }
38
-
39
- public addBulkBlock(block_data: Array<BlockModel>): this {
40
- block_data.map((item: any) => {
41
- console.log('item',item)
42
- this.blocks.push(new BlockModel(item));
43
- });
44
- this.eventManager.dispatch(EventType.ADD_BLOCK, [block_data]);
45
- this.eventManager.dispatch(EventType.UPDATE_BLOCK, this.blocks);
46
- return this;
47
- }
48
-
49
- public replaceData(block_data: Array<any>): this {
50
- this.blocks = [];
51
- this.addBulkBlock(block_data);
52
- return this;
53
- }
54
-
55
- public getBlock(id: string | number): BlockModel | null {
56
- const block = this.blocks.find((item: BlockModel) => item.id === id)
57
- if (block) {
58
- return block
59
- } else {
60
- return null
61
- }
62
- }
63
-
64
- public getBlocks(blockId?: string): Array<BlockModel> {
65
- if (blockId) {
66
- const block = this.getBlock(blockId)
67
- if (block) {
68
- return [block];
69
- } else {
70
- return []
71
- }
72
-
73
- }
74
- return this.blocks;
75
- }
76
-
77
- public removeBlock(id: string | number): this {
78
- this.filterBlock({id: id}).map((item: BlockModel, index: number) => {
79
- this.blocks.splice(index, 1);
80
- });
81
- this.eventManager.dispatch(EventType.REMOVE_BLOCK, id);
82
- this.eventManager.dispatch(EventType.UPDATE_BLOCK, this.blocks);
83
- return this;
84
- }
85
-
86
- public getSeat(seatId: string | number, blockId: string | number): SeatModel | null {
87
- let block: BlockModel = this.getBlock(blockId) as BlockModel;
88
- if (block) {
89
- const seat = block.seats.find(seat => seat.id == seatId)
90
- if (seat)
91
- return seat
92
- else {
93
- return null
94
- }
95
- } else {
96
- console.error(new Error('Block not found!'));
97
- new Error('Block not found')
98
- return null;
99
- }
100
-
101
- }
102
-
103
- public getSelectedSeats(blockId?: string): Array<SeatModel> {
104
- let blocks = this.getBlocks(blockId);
105
- let selectedSeats: Array<SeatModel> = [];
106
- blocks.forEach((item: BlockModel) => {
107
- item.seats.forEach(seatItem => {
108
- if (seatItem.selected)
109
- selectedSeats.push(seatItem)
110
- })
111
- });
112
- return selectedSeats;
113
- }
114
-
115
- public filterBlock(query: BlockQuery): Array<BlockModel> {
116
- return this.blocks.filter((item: BlockModel) => item.id === query.id)
117
- }
118
-
119
-
120
- toJson() {
121
- return {
122
- blocks: this.blocks
123
- }
124
- }
125
- }
@@ -1,131 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- // @todo legend show hide function
8
-
9
- export default class DefaultsModel {
10
- min_zoom: number = 0.1;
11
- max_zoom: number = 1.9;
12
- animation_speed: number = 600;
13
- resizable: boolean = false;
14
- container: any = null;
15
- zoom_focus_circle_radius: number = 60;
16
- click_enable_sold_seats: boolean = false;
17
- zoom_out_button: string;
18
- legend_show: boolean = false;
19
- canvas_stageout_control: boolean = true;
20
- seat_style: {
21
- radius: number,
22
- color: string,
23
- not_salable: string,
24
- selected: string,
25
- hover: string,
26
- focus: string,
27
- focus_out: string,
28
- check_color: string,
29
- check_icon: string | null,
30
- check_icon_color: string,
31
- };
32
- block_style: {
33
- fill: string
34
- stroke: string,
35
- border_width: number,
36
- title_color: string,
37
- title_font_size: string
38
- };
39
-
40
- legend_style: {
41
- radius: number,
42
- padding: number,
43
- font_size: number,
44
- font_color: string
45
- };
46
-
47
- label_style: {
48
- color: string
49
- bg: string
50
- font_size: number
51
- radius: number
52
- };
53
-
54
- tooltip_style: {
55
- border_width: string,
56
- width: number,
57
- height: number,
58
- color: string,
59
- bg: string
60
- };
61
-
62
- lang: {
63
- selectable: string,
64
- non_selectable: string,
65
- your_selection: string
66
- };
67
-
68
- constructor(config: any) {
69
-
70
- this.zoom_focus_circle_radius = config.zoom_focus_circle_radius ? config.zoom_focus_circle_radius : this.zoom_focus_circle_radius;
71
- this.click_enable_sold_seats = config.click_enable_sold_seats ? config.click_enable_sold_seats : this.click_enable_sold_seats;
72
- this.max_zoom = config.max_zoom ? config.max_zoom : this.max_zoom;
73
-
74
- this.resizable = config.resizable ? config.resizable : this.resizable;
75
- this.zoom_out_button = config.zoom_out_button ? config.zoom_out_button : ".zoom-out-button";
76
- this.legend_show = config.legend_show == false ? config.legend_show : true;
77
- this.canvas_stageout_control = config.canvas_stageout_control == false ? config.canvas_stageout_control : true;
78
-
79
-
80
- this.seat_style = {
81
- radius: config.seat_style && config.seat_style.radius || 12,
82
- color: config.seat_style && config.seat_style.color || "#77b2ff",
83
- not_salable: config.seat_style && config.seat_style.not_salable || "#ccc9c9",
84
- selected: config.seat_style && config.seat_style.selected || "#51ff48",
85
- hover: config.seat_style && config.seat_style.hover || "#4770ff",
86
- focus: config.seat_style && config.seat_style.focus || "#6293d2",
87
- focus_out: config.seat_style && config.seat_style.focus_out || "#ff001c",
88
- check_color: config.seat_style && config.seat_style.check_color || "#ffffff",
89
- check_icon: null,
90
- check_icon_color: config.seat_style && config.seat_style.check_icon_color || "#ffffff",
91
- };
92
- this.block_style = {
93
- fill: config.block_style && config.block_style.fill || "#ffffff",
94
- stroke: config.block_style && config.block_style.stroke || "#ffffff",
95
- border_width: config.block_style && config.block_style.border_width || 4,
96
- title_color: config.block_style && config.block_style.title_color || "#000000",
97
- title_font_size: config.block_style && config.block_style.title_font_size || 28,
98
- };
99
- this.label_style = {
100
- color: config.label_style && config.label_style.color || "#000000",
101
- bg: config.label_style && config.label_style.bg || "#ffffff",
102
- font_size: config.label_style && config.label_style.font_size || 12,
103
- radius: config.label_style && config.label_style.radius || 12,
104
- };
105
- this.legend_style = {
106
- radius: config.legend_style && config.legend_style.radius || 12,
107
- padding: config.legend_style && config.legend_style.padding || 36,
108
- font_size: config.legend_style && config.legend_style.font_size || 100,
109
- font_color: config.legend_style && config.legend_style.font_color || "#000000",
110
- };
111
- this.tooltip_style = {
112
- border_width: config.tooltip_style && config.tooltip_style.border_width || 1,
113
- width: config.tooltip_style && config.tooltip_style.width || 140,
114
- height: config.tooltip_style && config.tooltip_style.height || 58,
115
- color: config.tooltip_style && config.tooltip_style.color || "#000000",
116
- bg: config.tooltip_style && config.tooltip_style.bg || "#ffffff"
117
- };
118
-
119
- this.lang = {
120
- selectable: config.lang && config.lang.selectable || "Selectable",
121
- non_selectable: config.lang && config.lang.non_selectable || "Non Selectable or Rezerved",
122
- your_selection: config.lang && config.lang.your_selection || "Your Selection",
123
- };
124
-
125
-
126
- }
127
-
128
- getAll(): this {
129
- return this;
130
- }
131
- }
@@ -1,24 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
- import DefaultsModel from "./defaults.model";
7
- import DataModel from "./data.model";
8
- import {SeatMapCanvas} from "../canvas.index";
9
- import ZoomManager from "../svg/zoom.manager";
10
- import EventManager from "../svg/event.manager";
11
- import Svg from "../svg/svg.index";
12
- import WindowManager from "../window.manager";
13
-
14
- export interface GlobalModel {
15
- config: DefaultsModel,
16
- eventManager: EventManager,
17
- windowManager:WindowManager,
18
- data: DataModel,
19
- root: SeatMapCanvas,
20
- zoomManager: ZoomManager,
21
- svg:Svg,
22
- multi_select:boolean,
23
- best_available:boolean
24
- }
@@ -1,25 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
-
8
- import BlockModel from "./block.model";
9
- import ModelBase from "./model.base";
10
-
11
- export default class LabelModel extends ModelBase {
12
- x: number;
13
- y: number;
14
- title: string;
15
-
16
- block: BlockModel;
17
-
18
- constructor(item: any) {
19
- super();
20
- this.x = item.x;
21
- this.y = item.y;
22
- this.title = item.title;
23
- this.block = item.block;
24
- }
25
- }
@@ -1,24 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- import ModelBase from "./model.base";
8
-
9
- export default class LegendModel extends ModelBase {
10
- x: number;
11
- y: number;
12
- title: string;
13
- color: string;
14
-
15
-
16
- constructor(item: any) {
17
- super();
18
- this.x = item.x;
19
- this.y = item.y;
20
- this.title = item.title;
21
- this.color = item.color;
22
- }
23
-
24
- }
@@ -1,15 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
- export default class ModelBase {
7
- child_index: number | null;
8
- item_type: string | null;
9
-
10
-
11
- constructor() {
12
- this.child_index = null;
13
- this.item_type = null
14
- }
15
- }
@@ -1,74 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- import BlockModel from "./block.model";
8
- import ModelBase from "./model.base";
9
- import {SeatItem} from "../svg/stage/blocks/block-item/seat/seat-item.index";
10
-
11
- export default class SeatModel extends ModelBase {
12
- id: any;
13
- x: number;
14
- y: number;
15
- title?: string;
16
- selected: boolean;
17
- color: string;
18
- block: BlockModel;
19
- salable: boolean;
20
- note: string;
21
- tags: Array<string>;
22
- tag_index: any = {};
23
- custom_data: any;
24
- svg: SeatItem | null;
25
-
26
- // public item_type: string = "Seat";
27
-
28
-
29
- constructor(item: any) {
30
- super();
31
- this.id = item.id;
32
- this.x = item.x;
33
- this.y = item.y;
34
- this.title = item.title || null;
35
- this.color = item.color || null;
36
- this.block = item.block;
37
- this.note = item.note || null;
38
- this.salable = item.salable === false ? item.salable : true;
39
- this.selected = item.selected || false;
40
- this.tags = item.tags || [];
41
- this.custom_data = item.custom_data || {};
42
- this.tag_index = {};
43
- this.svg = null
44
- }
45
-
46
- public selectedToggle(): boolean {
47
- this.selected = this.selected !== true;
48
- return this.selected;
49
- }
50
-
51
-
52
- public addTag(tag: string) {
53
- if (!this.tag_index[tag]) {
54
- this.tag_index[tag] = true;
55
- this.tags.push(tag);
56
- }
57
- }
58
-
59
- public removeTags(tag: string) {
60
-
61
- }
62
-
63
- public toJson() {
64
- return {
65
- id: this.id,
66
- x: this.x,
67
- y: this.y,
68
- salable: this.salable,
69
- note: this.note,
70
- color: this.color,
71
- block: this.block.toJson()
72
- }
73
- }
74
- }
@@ -1,48 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
- import {SeatMapCanvas} from "../canvas.index";
7
- import {isArray} from "rxjs/internal/util/isArray";
8
-
9
-
10
- export interface EventObject {
11
- type: string,
12
- fn: any
13
- }
14
-
15
- export default class EventManager {
16
- events: Array<EventObject>;
17
-
18
-
19
- constructor(private _self: SeatMapCanvas) {
20
- this.events = [];
21
- }
22
-
23
- addEventListener(type: string | any, fn: any): this {
24
- if (isArray(type)) {
25
- for (let i = 0; i < type.length; i++) {
26
- this.events.push({
27
- type: type[i],
28
- fn: fn
29
- });
30
- }
31
- } else {
32
- this.events.push({
33
- type: type,
34
- fn: fn
35
- });
36
- }
37
-
38
- return this;
39
- }
40
-
41
- dispatch(type: string, data: any): this {
42
- this.events
43
- .filter((event: EventObject) => event.type === type)
44
- .map((event: EventObject) => event.fn(data));
45
- return this;
46
- }
47
-
48
- }
@@ -1,28 +0,0 @@
1
- /*
2
- * $project.fileName
3
- * https://github.com/alisaitteke/seatmap-canvas Copyright 2023 Ali Sait TEKE
4
- */
5
-
6
-
7
- import {dom} from "../../decorators";
8
- import SvgBase from "./../svg.base";
9
- import LegendItem from "./legend.item";
10
-
11
- @dom({
12
- tag: "circle",
13
- class: "legend-circle",
14
- autoGenerate: false
15
- })
16
- export default class LegendCircle extends SvgBase {
17
-
18
-
19
- constructor(public parent: LegendItem) {
20
- super(parent);
21
- this.attr("r", this.global.config.legend_style.radius);
22
- this.attr("fill", this.parent.legend_data.color);
23
- }
24
-
25
- update() {
26
-
27
- }
28
- }