svelte-flexiboards 0.1.0

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 (44) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/components/flexi-add.svelte +35 -0
  3. package/dist/components/flexi-add.svelte.d.ts +16 -0
  4. package/dist/components/flexi-board.svelte +30 -0
  5. package/dist/components/flexi-board.svelte.d.ts +11 -0
  6. package/dist/components/flexi-delete.svelte +22 -0
  7. package/dist/components/flexi-delete.svelte.d.ts +13 -0
  8. package/dist/components/flexi-grab.svelte +20 -0
  9. package/dist/components/flexi-grab.svelte.d.ts +12 -0
  10. package/dist/components/flexi-grid.svelte +19 -0
  11. package/dist/components/flexi-grid.svelte.d.ts +8 -0
  12. package/dist/components/flexi-layout-loader.svelte +10 -0
  13. package/dist/components/flexi-layout-loader.svelte.d.ts +18 -0
  14. package/dist/components/flexi-resize.svelte +20 -0
  15. package/dist/components/flexi-resize.svelte.d.ts +12 -0
  16. package/dist/components/flexi-target-loader.svelte +10 -0
  17. package/dist/components/flexi-target-loader.svelte.d.ts +18 -0
  18. package/dist/components/flexi-target.svelte +93 -0
  19. package/dist/components/flexi-target.svelte.d.ts +42 -0
  20. package/dist/components/flexi-widget.svelte +37 -0
  21. package/dist/components/flexi-widget.svelte.d.ts +9 -0
  22. package/dist/components/index.d.ts +1 -0
  23. package/dist/components/index.js +1 -0
  24. package/dist/components/rendered-flexi-widget.svelte +44 -0
  25. package/dist/components/rendered-flexi-widget.svelte.d.ts +7 -0
  26. package/dist/index.d.ts +16 -0
  27. package/dist/index.js +10 -0
  28. package/dist/system/grid.svelte.d.ts +146 -0
  29. package/dist/system/grid.svelte.js +815 -0
  30. package/dist/system/index.d.ts +1 -0
  31. package/dist/system/index.js +1 -0
  32. package/dist/system/manage.svelte.d.ts +25 -0
  33. package/dist/system/manage.svelte.js +54 -0
  34. package/dist/system/provider.svelte.d.ts +51 -0
  35. package/dist/system/provider.svelte.js +290 -0
  36. package/dist/system/target.svelte.d.ts +179 -0
  37. package/dist/system/target.svelte.js +397 -0
  38. package/dist/system/types.d.ts +91 -0
  39. package/dist/system/types.js +1 -0
  40. package/dist/system/utils.svelte.d.ts +21 -0
  41. package/dist/system/utils.svelte.js +156 -0
  42. package/dist/system/widget.svelte.d.ts +225 -0
  43. package/dist/system/widget.svelte.js +447 -0
  44. package/package.json +57 -0
@@ -0,0 +1,146 @@
1
+ import type { FlexiWidgetController } from "./widget.svelte.js";
2
+ import type { InternalFlexiTargetController, FlexiTargetConfiguration } from "./target.svelte.js";
3
+ import { GridDimensionTracker } from "./utils.svelte.js";
4
+ type FlexiGridLayout = (FlexiWidgetController | null)[][];
5
+ export type FlowTargetLayout = {
6
+ type: "flow";
7
+ /**
8
+ * Specifies how widgets should be added when no coordinates are specified.
9
+ *
10
+ * - "append" will add a widget after the last widget in the grid.
11
+ * - "prepend" will add a widget before the first widget in the grid.
12
+ */
13
+ placementStrategy: "append" | "prepend";
14
+ /**
15
+ * When set to true, the grid will ignore coordinates provided when adding widgets and instead
16
+ * default to the placement strategy's behaviour.
17
+ */
18
+ disallowInsert?: boolean;
19
+ /**
20
+ * The axis that widgets are placed along.
21
+ *
22
+ * - When set to "row", widgets are added along the columns of a row before wrapping to the next row.
23
+ * - When set to "column", widgets are added along the rows of a column before wrapping to the next column.
24
+ */
25
+ flowAxis: "row" | "column";
26
+ /**
27
+ * Whether the grid should be blocked from automatically expanding when all cell space is used.
28
+ *
29
+ * - When unset and the flow axis is set to "row", the grid will create new rows when the last row is full.
30
+ * - When unset and the flow axis is set to "column", the grid will create new columns when the last column is full.
31
+ * - When set to true, the grid will be at capacity when all cells are used.
32
+ */
33
+ disallowExpansion?: boolean;
34
+ /**
35
+ * The maximum number of rows or columns that can be used depending on what the flow axis is set to.
36
+ *
37
+ * - When flowAxis is set to "row", the grid will not allow more rows than this value.
38
+ * - When flowAxis is set to "column", the grid will not allow more columns than this value.
39
+ */
40
+ maxFlowAxis?: number;
41
+ };
42
+ export type FreeFormTargetLayout = {
43
+ type: "free";
44
+ expandColumns?: boolean;
45
+ expandRows?: boolean;
46
+ minRows?: number;
47
+ minColumns?: number;
48
+ };
49
+ export type MoveOperation = {
50
+ widget: FlexiWidgetController;
51
+ newX: number;
52
+ newY: number;
53
+ oldX: number;
54
+ oldY: number;
55
+ };
56
+ type FreeFormGridSnapshot = {
57
+ layout: FlexiGridLayout;
58
+ bitmaps: number[];
59
+ rows: number;
60
+ columns: number;
61
+ widgets: WidgetSnapshot[];
62
+ };
63
+ type FlowGridSnapshot = {
64
+ widgets: WidgetSnapshot[];
65
+ rows: number;
66
+ columns: number;
67
+ };
68
+ type WidgetSnapshot = {
69
+ widget: FlexiWidgetController;
70
+ x: number;
71
+ y: number;
72
+ width: number;
73
+ height: number;
74
+ };
75
+ export declare abstract class FlexiGrid {
76
+ #private;
77
+ abstract tryPlaceWidget(widget: FlexiWidgetController, cellX?: number, cellY?: number, width?: number, height?: number): boolean;
78
+ abstract removeWidget(widget: FlexiWidgetController): boolean;
79
+ abstract takeSnapshot(): unknown;
80
+ abstract restoreFromSnapshot(snapshot: unknown): void;
81
+ abstract mapRawCellToFinalCell(x: number, y: number): [number, number];
82
+ _target: InternalFlexiTargetController;
83
+ _targetConfig: FlexiTargetConfiguration;
84
+ mouseCellPosition: {
85
+ x: number;
86
+ y: number;
87
+ };
88
+ _dimensionTracker: GridDimensionTracker;
89
+ constructor(target: InternalFlexiTargetController, targetConfig: FlexiTargetConfiguration);
90
+ style: string;
91
+ watchGridElementDimensions(): void;
92
+ /**
93
+ * Clears the grid layout.
94
+ */
95
+ abstract clear(): void;
96
+ onpointermove(event: PointerEvent): void;
97
+ abstract get rows(): number;
98
+ abstract get columns(): number;
99
+ get ref(): HTMLElement | null;
100
+ set ref(ref: HTMLElement | null);
101
+ }
102
+ /**
103
+ * Free-form Flexigrid Layout
104
+ *
105
+ * A grid layout where widgets are explicitly placed in particular cells, and the grid allows for gaps between widgets.
106
+ * A free grid can grow and shrink if required when enabled.
107
+ */
108
+ export declare class FreeFormFlexiGrid extends FlexiGrid {
109
+ #private;
110
+ constructor(target: InternalFlexiTargetController, targetConfig: FlexiTargetConfiguration);
111
+ tryPlaceWidget(widget: FlexiWidgetController, cellX?: number, cellY?: number, width?: number, height?: number): boolean;
112
+ removeWidget(widget: FlexiWidgetController): boolean;
113
+ takeSnapshot(): FreeFormGridSnapshot;
114
+ clear(): void;
115
+ restoreFromSnapshot(snapshot: FreeFormGridSnapshot): void;
116
+ mapRawCellToFinalCell(x: number, y: number): [number, number];
117
+ get layout(): FlexiGridLayout;
118
+ get bitmaps(): number[];
119
+ get rows(): number;
120
+ set rows(value: number);
121
+ get columns(): number;
122
+ }
123
+ /**
124
+ * Flow-based FlexiGrid Layout
125
+ *
126
+ * A grid layout where widgets are placed using a flow strategy. The flow axis determines which axis the widgets are placed along,
127
+ * and the cross axis can be configured to expand when the flow axis is full.
128
+ */
129
+ export declare class FlowFlexiGrid extends FlexiGrid {
130
+ #private;
131
+ constructor(target: InternalFlexiTargetController, targetConfig: FlexiTargetConfiguration);
132
+ tryPlaceWidget(widget: FlexiWidgetController, cellX?: number, cellY?: number, width?: number, height?: number): boolean;
133
+ removeWidget(widget: FlexiWidgetController): boolean;
134
+ clear(): void;
135
+ takeSnapshot(): FlowGridSnapshot;
136
+ restoreFromSnapshot(snapshot: FlowGridSnapshot): void;
137
+ mapRawCellToFinalCell(x: number, y: number): [number, number];
138
+ get rows(): number;
139
+ get columns(): number;
140
+ get widgets(): FlexiWidgetController[];
141
+ }
142
+ export declare function flexigrid(): {
143
+ grid: FlexiGrid;
144
+ };
145
+ export declare function getFlexigridCtx(): FlexiGrid | undefined;
146
+ export {};