gridstack 8.1.0 → 8.1.2

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 (157) hide show
  1. package/README.md +26 -38
  2. package/angular/.editorconfig +16 -0
  3. package/angular/.vscode/extensions.json +4 -0
  4. package/angular/.vscode/launch.json +20 -0
  5. package/angular/.vscode/tasks.json +42 -0
  6. package/{dist/ng → angular}/README.md +170 -154
  7. package/angular/README_build.md +27 -0
  8. package/angular/angular.json +132 -0
  9. package/angular/package.json +40 -0
  10. package/angular/projects/demo/.browserslistrc +16 -0
  11. package/angular/projects/demo/src/app/app.component.css +11 -0
  12. package/angular/projects/demo/src/app/app.component.html +78 -0
  13. package/angular/projects/demo/src/app/app.component.spec.ts +25 -0
  14. package/angular/projects/demo/src/app/app.component.ts +208 -0
  15. package/angular/projects/demo/src/app/app.module.ts +38 -0
  16. package/angular/projects/demo/src/app/dummy.component.ts +29 -0
  17. package/angular/projects/demo/src/app/ngFor.ts +131 -0
  18. package/angular/projects/demo/src/app/ngFor_cmd.ts +106 -0
  19. package/angular/projects/demo/src/app/simple.ts +46 -0
  20. package/angular/projects/demo/src/assets/.gitkeep +0 -0
  21. package/angular/projects/demo/src/environments/environment.prod.ts +3 -0
  22. package/angular/projects/demo/src/environments/environment.ts +16 -0
  23. package/angular/projects/demo/src/favicon.ico +0 -0
  24. package/angular/projects/demo/src/index.html +13 -0
  25. package/angular/projects/demo/src/main.ts +12 -0
  26. package/angular/projects/demo/src/polyfills.ts +53 -0
  27. package/angular/projects/demo/src/styles.css +4 -0
  28. package/angular/projects/demo/src/test.ts +26 -0
  29. package/angular/projects/demo/tsconfig.app.json +15 -0
  30. package/angular/projects/demo/tsconfig.spec.json +18 -0
  31. package/angular/projects/lib/README.md +24 -0
  32. package/angular/projects/lib/ng-package.json +7 -0
  33. package/angular/projects/lib/package.json +11 -0
  34. package/angular/projects/lib/src/lib/gridstack-item.component.ts +70 -0
  35. package/angular/projects/lib/src/lib/gridstack.component.ts +240 -0
  36. package/angular/projects/lib/src/lib/gridstack.module.ts +32 -0
  37. package/angular/projects/lib/src/public-api.ts +7 -0
  38. package/angular/projects/lib/src/test.ts +27 -0
  39. package/angular/projects/lib/tsconfig.lib.json +15 -0
  40. package/angular/projects/lib/tsconfig.lib.prod.json +10 -0
  41. package/angular/projects/lib/tsconfig.spec.json +17 -0
  42. package/dist/angular/README.md +170 -0
  43. package/dist/angular/esm2020/gridstack-angular.mjs +5 -0
  44. package/dist/angular/esm2020/lib/gridstack-item.component.mjs +67 -0
  45. package/dist/angular/esm2020/lib/gridstack.component.mjs +233 -0
  46. package/dist/angular/esm2020/lib/gridstack.module.mjs +39 -0
  47. package/dist/angular/esm2020/public-api.mjs +7 -0
  48. package/dist/angular/fesm2015/gridstack-angular.mjs +346 -0
  49. package/dist/angular/fesm2015/gridstack-angular.mjs.map +1 -0
  50. package/dist/angular/fesm2020/gridstack-angular.mjs +342 -0
  51. package/dist/angular/fesm2020/gridstack-angular.mjs.map +1 -0
  52. package/dist/angular/index.d.ts +5 -0
  53. package/dist/{ng → angular/lib}/gridstack-item.component.d.ts +32 -29
  54. package/dist/{ng → angular/lib}/gridstack.component.d.ts +121 -118
  55. package/dist/angular/lib/gridstack.module.d.ts +10 -0
  56. package/dist/angular/package.json +31 -0
  57. package/dist/angular/public-api.d.ts +3 -0
  58. package/dist/angular/src/gridstack-item.component.ts +70 -0
  59. package/dist/angular/src/gridstack.component.ts +240 -0
  60. package/dist/angular/src/gridstack.module.ts +32 -0
  61. package/dist/dd-base-impl.d.ts +1 -1
  62. package/dist/dd-base-impl.js +1 -1
  63. package/dist/dd-base-impl.js.map +1 -1
  64. package/dist/dd-draggable.d.ts +1 -1
  65. package/dist/dd-draggable.js +1 -1
  66. package/dist/dd-draggable.js.map +1 -1
  67. package/dist/dd-droppable.d.ts +1 -1
  68. package/dist/dd-droppable.js +1 -1
  69. package/dist/dd-droppable.js.map +1 -1
  70. package/dist/dd-element.d.ts +1 -1
  71. package/dist/dd-element.js +1 -1
  72. package/dist/dd-element.js.map +1 -1
  73. package/dist/dd-gridstack.d.ts +1 -1
  74. package/dist/dd-gridstack.js +1 -1
  75. package/dist/dd-gridstack.js.map +1 -1
  76. package/dist/dd-manager.d.ts +1 -1
  77. package/dist/dd-manager.js +1 -1
  78. package/dist/dd-manager.js.map +1 -1
  79. package/dist/dd-resizable-handle.d.ts +1 -1
  80. package/dist/dd-resizable-handle.js +1 -1
  81. package/dist/dd-resizable-handle.js.map +1 -1
  82. package/dist/dd-resizable.d.ts +1 -1
  83. package/dist/dd-resizable.js +1 -1
  84. package/dist/dd-resizable.js.map +1 -1
  85. package/dist/dd-touch.d.ts +1 -1
  86. package/dist/dd-touch.js +1 -1
  87. package/dist/dd-touch.js.map +1 -1
  88. package/dist/es5/dd-base-impl.d.ts +1 -1
  89. package/dist/es5/dd-base-impl.js +1 -1
  90. package/dist/es5/dd-base-impl.js.map +1 -1
  91. package/dist/es5/dd-draggable.d.ts +1 -1
  92. package/dist/es5/dd-draggable.js +1 -1
  93. package/dist/es5/dd-draggable.js.map +1 -1
  94. package/dist/es5/dd-droppable.d.ts +1 -1
  95. package/dist/es5/dd-droppable.js +1 -1
  96. package/dist/es5/dd-droppable.js.map +1 -1
  97. package/dist/es5/dd-element.d.ts +1 -1
  98. package/dist/es5/dd-element.js +1 -1
  99. package/dist/es5/dd-element.js.map +1 -1
  100. package/dist/es5/dd-gridstack.d.ts +1 -1
  101. package/dist/es5/dd-gridstack.js +1 -1
  102. package/dist/es5/dd-gridstack.js.map +1 -1
  103. package/dist/es5/dd-manager.d.ts +1 -1
  104. package/dist/es5/dd-manager.js +1 -1
  105. package/dist/es5/dd-manager.js.map +1 -1
  106. package/dist/es5/dd-resizable-handle.d.ts +1 -1
  107. package/dist/es5/dd-resizable-handle.js +1 -1
  108. package/dist/es5/dd-resizable-handle.js.map +1 -1
  109. package/dist/es5/dd-resizable.d.ts +1 -1
  110. package/dist/es5/dd-resizable.js +1 -1
  111. package/dist/es5/dd-resizable.js.map +1 -1
  112. package/dist/es5/dd-touch.d.ts +1 -1
  113. package/dist/es5/dd-touch.js +1 -1
  114. package/dist/es5/dd-touch.js.map +1 -1
  115. package/dist/es5/gridstack-all.js +1 -1
  116. package/dist/es5/gridstack-all.js.LICENSE.txt +1 -1
  117. package/dist/es5/gridstack-all.js.map +1 -1
  118. package/dist/es5/gridstack-engine.d.ts +1 -1
  119. package/dist/es5/gridstack-engine.js +1 -1
  120. package/dist/es5/gridstack-engine.js.map +1 -1
  121. package/dist/es5/gridstack-poly.js +1 -1
  122. package/dist/es5/gridstack.d.ts +1 -1
  123. package/dist/es5/gridstack.js +9 -10
  124. package/dist/es5/gridstack.js.map +1 -1
  125. package/dist/es5/types.d.ts +1 -1
  126. package/dist/es5/types.js +1 -1
  127. package/dist/es5/types.js.map +1 -1
  128. package/dist/es5/utils.d.ts +1 -1
  129. package/dist/es5/utils.js +1 -1
  130. package/dist/es5/utils.js.map +1 -1
  131. package/dist/gridstack-all.js +1 -1
  132. package/dist/gridstack-all.js.LICENSE.txt +1 -1
  133. package/dist/gridstack-all.js.map +1 -1
  134. package/dist/gridstack-engine.d.ts +1 -1
  135. package/dist/gridstack-engine.js +1 -1
  136. package/dist/gridstack-engine.js.map +1 -1
  137. package/dist/gridstack-extra.css +130 -130
  138. package/dist/gridstack-extra.min.css +1 -1
  139. package/dist/gridstack.css +29 -31
  140. package/dist/gridstack.d.ts +1 -1
  141. package/dist/gridstack.js +9 -10
  142. package/dist/gridstack.js.map +1 -1
  143. package/dist/gridstack.min.css +1 -1
  144. package/dist/src/gridstack-extra.scss +5 -5
  145. package/dist/src/gridstack.scss +7 -10
  146. package/dist/types.d.ts +1 -1
  147. package/dist/types.js +1 -1
  148. package/dist/types.js.map +1 -1
  149. package/dist/utils.d.ts +1 -1
  150. package/dist/utils.js +1 -1
  151. package/dist/utils.js.map +1 -1
  152. package/doc/CHANGES.md +10 -2
  153. package/package.json +3 -3
  154. package/dist/ng/gridstack-item.component.js +0 -65
  155. package/dist/ng/gridstack-item.component.js.map +0 -1
  156. package/dist/ng/gridstack.component.js +0 -245
  157. package/dist/ng/gridstack.component.js.map +0 -1
@@ -1,245 +0,0 @@
1
- /**
2
- * gridstack.component.ts 8.1.0
3
- * Copyright (c) 2022 Alain Dumesny - see GridStack root license
4
- */
5
- var GridstackComponent_1;
6
- import { __decorate } from "tslib";
7
- import { Component, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewContainerRef, reflectComponentType } from '@angular/core';
8
- import { Subject } from 'rxjs';
9
- import { takeUntil } from 'rxjs/operators';
10
- import { GridStack } from 'gridstack';
11
- import { GridstackItemComponent } from './gridstack-item.component';
12
- /**
13
- * HTML Component Wrapper for gridstack, in combination with GridstackItemComponent for the items
14
- */
15
- let GridstackComponent = GridstackComponent_1 = class GridstackComponent {
16
- /** initial options for creation of the grid */
17
- set options(val) { this._options = val; }
18
- /** return the current running options */
19
- get options() { return this._grid?.opts || this._options || {}; }
20
- /** return the native element that contains grid specific fields as well */
21
- get el() { return this.elementRef.nativeElement; }
22
- /** return the GridStack class */
23
- get grid() { return this._grid; }
24
- /**
25
- * stores the selector -> Type mapping, so we can create items dynamically from a string.
26
- * Unfortunately Ng doesn't provide public access to that mapping.
27
- */
28
- static { this.selectorToType = {}; }
29
- /** add a list of ng Component to be mapped to selector */
30
- static addComponentToSelectorType(typeList) {
31
- typeList.forEach(type => GridstackComponent_1.selectorToType[GridstackComponent_1.getSelector(type)] = type);
32
- }
33
- /** return the ng Component selector */
34
- static getSelector(type) {
35
- const mirror = reflectComponentType(type);
36
- return mirror.selector;
37
- }
38
- constructor(
39
- // private readonly zone: NgZone,
40
- // private readonly cd: ChangeDetectorRef,
41
- elementRef) {
42
- this.elementRef = elementRef;
43
- /** individual list of GridStackEvent callbacks handlers as output
44
- * otherwise use this.grid.on('name1 name2 name3', callback) to handle multiple at once
45
- * see https://github.com/gridstack/gridstack.js/blob/master/demo/events.js#L4
46
- *
47
- * Note: camel casing and 'CB' added at the end to prevent @angular-eslint/no-output-native
48
- * eg: 'change' would trigger the raw CustomEvent so use different name.
49
- */
50
- this.addedCB = new EventEmitter();
51
- this.changeCB = new EventEmitter();
52
- this.disableCB = new EventEmitter();
53
- this.dragCB = new EventEmitter();
54
- this.dragStartCB = new EventEmitter();
55
- this.dragStopCB = new EventEmitter();
56
- this.droppedCB = new EventEmitter();
57
- this.enableCB = new EventEmitter();
58
- this.removedCB = new EventEmitter();
59
- this.resizeCB = new EventEmitter();
60
- this.resizeStartCB = new EventEmitter();
61
- this.resizeStopCB = new EventEmitter();
62
- this.ngUnsubscribe = new Subject();
63
- this.el._gridComp = this;
64
- }
65
- ngOnInit() {
66
- // init ourself before any template children are created since we track them below anyway - no need to double create+update widgets
67
- this.loaded = !!this.options?.children?.length;
68
- this._grid = GridStack.init(this._options, this.el);
69
- delete this._options; // GS has it now
70
- this.checkEmpty();
71
- }
72
- /** wait until after all DOM is ready to init gridstack children (after angular ngFor and sub-components run first) */
73
- ngAfterContentInit() {
74
- // track whenever the children list changes and update the layout...
75
- this.gridstackItems?.changes
76
- .pipe(takeUntil(this.ngUnsubscribe))
77
- .subscribe(() => this.updateAll());
78
- // ...and do this once at least unless we loaded children already
79
- if (!this.loaded)
80
- this.updateAll();
81
- this.hookEvents(this.grid);
82
- }
83
- ngOnDestroy() {
84
- this.ngUnsubscribe.next();
85
- this.ngUnsubscribe.complete();
86
- this.grid?.destroy();
87
- delete this._grid;
88
- delete this.el._gridComp;
89
- }
90
- /**
91
- * called when the TEMPLATE list of items changes - get a list of nodes and
92
- * update the layout accordingly (which will take care of adding/removing items changed by Angular)
93
- */
94
- updateAll() {
95
- if (!this.grid)
96
- return;
97
- const layout = [];
98
- this.gridstackItems?.forEach(item => {
99
- layout.push(item.options);
100
- item.clearOptions();
101
- });
102
- this.grid.load(layout); // efficient that does diffs only
103
- }
104
- /** check if the grid is empty, if so show alternative content */
105
- checkEmpty() {
106
- if (!this.grid)
107
- return;
108
- const isEmpty = !this.grid.engine.nodes.length;
109
- if (isEmpty === this.isEmpty)
110
- return;
111
- this.isEmpty = isEmpty;
112
- // this.cd.detectChanges();
113
- }
114
- /** get all known events as easy to use Outputs for convenience */
115
- hookEvents(grid) {
116
- if (!grid)
117
- return;
118
- grid
119
- .on('added', (event, nodes) => { this.checkEmpty(); this.addedCB.emit({ event, nodes }); })
120
- .on('change', (event, nodes) => this.changeCB.emit({ event, nodes }))
121
- .on('disable', (event) => this.disableCB.emit({ event }))
122
- .on('drag', (event, el) => this.dragCB.emit({ event, el }))
123
- .on('dragstart', (event, el) => this.dragStartCB.emit({ event, el }))
124
- .on('dragstop', (event, el) => this.dragStopCB.emit({ event, el }))
125
- .on('dropped', (event, previousNode, newNode) => this.droppedCB.emit({ event, previousNode, newNode }))
126
- .on('enable', (event) => this.enableCB.emit({ event }))
127
- .on('removed', (event, nodes) => { this.checkEmpty(); this.removedCB.emit({ event, nodes }); })
128
- .on('resize', (event, el) => this.resizeCB.emit({ event, el }))
129
- .on('resizestart', (event, el) => this.resizeStartCB.emit({ event, el }))
130
- .on('resizestop', (event, el) => this.resizeStopCB.emit({ event, el }));
131
- }
132
- };
133
- __decorate([
134
- ContentChildren(GridstackItemComponent)
135
- ], GridstackComponent.prototype, "gridstackItems", void 0);
136
- __decorate([
137
- ViewChild('container', { read: ViewContainerRef, static: true })
138
- ], GridstackComponent.prototype, "container", void 0);
139
- __decorate([
140
- Input()
141
- ], GridstackComponent.prototype, "options", null);
142
- __decorate([
143
- Input()
144
- ], GridstackComponent.prototype, "isEmpty", void 0);
145
- __decorate([
146
- Output()
147
- ], GridstackComponent.prototype, "addedCB", void 0);
148
- __decorate([
149
- Output()
150
- ], GridstackComponent.prototype, "changeCB", void 0);
151
- __decorate([
152
- Output()
153
- ], GridstackComponent.prototype, "disableCB", void 0);
154
- __decorate([
155
- Output()
156
- ], GridstackComponent.prototype, "dragCB", void 0);
157
- __decorate([
158
- Output()
159
- ], GridstackComponent.prototype, "dragStartCB", void 0);
160
- __decorate([
161
- Output()
162
- ], GridstackComponent.prototype, "dragStopCB", void 0);
163
- __decorate([
164
- Output()
165
- ], GridstackComponent.prototype, "droppedCB", void 0);
166
- __decorate([
167
- Output()
168
- ], GridstackComponent.prototype, "enableCB", void 0);
169
- __decorate([
170
- Output()
171
- ], GridstackComponent.prototype, "removedCB", void 0);
172
- __decorate([
173
- Output()
174
- ], GridstackComponent.prototype, "resizeCB", void 0);
175
- __decorate([
176
- Output()
177
- ], GridstackComponent.prototype, "resizeStartCB", void 0);
178
- __decorate([
179
- Output()
180
- ], GridstackComponent.prototype, "resizeStopCB", void 0);
181
- GridstackComponent = GridstackComponent_1 = __decorate([
182
- Component({
183
- selector: 'gridstack',
184
- template: `
185
- <!-- content to show when when grid is empty, like instructions on how to add widgets -->
186
- <ng-content select="[empty-content]" *ngIf="isEmpty"></ng-content>
187
- <!-- where dynamic items go -->
188
- <ng-template #container></ng-template>
189
- <!-- where template items go -->
190
- <ng-content></ng-content>
191
- `,
192
- styles: [`
193
- :host { display: block; }
194
- `],
195
- // changeDetection: ChangeDetectionStrategy.OnPush, // IFF you want to optimize and control when ChangeDetection needs to happen...
196
- })
197
- ], GridstackComponent);
198
- export { GridstackComponent };
199
- /**
200
- * can be used when a new item needs to be created, which we do as a Angular component, or deleted (skip)
201
- **/
202
- export function gsCreateNgComponents(host, w, add, isGrid) {
203
- // only care about creating ng components here...
204
- if (!add || !host)
205
- return;
206
- // create the component dynamically - see https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html
207
- if (isGrid) {
208
- let grid;
209
- const gridItemComp = host.parentElement?._gridItemComp;
210
- if (gridItemComp) {
211
- grid = gridItemComp.container?.createComponent(GridstackComponent)?.instance;
212
- }
213
- else {
214
- // TODO: figure out how to create ng component inside regular Div. need to access app injectors...
215
- // const hostElement: Element = host;
216
- // const environmentInjector: EnvironmentInjector;
217
- // grid = createComponent(GridstackComponent, {environmentInjector, hostElement})?.instance;
218
- }
219
- if (grid)
220
- grid.options = w;
221
- return grid?.el;
222
- }
223
- else {
224
- const gridComp = host._gridComp;
225
- const gridItem = gridComp?.container?.createComponent(GridstackItemComponent)?.instance;
226
- // IFF we're not a subGrid, define what type of component to create as child, OR you can do it GridstackItemComponent template, but this is more generic
227
- const selector = w.type;
228
- const type = selector ? GridstackComponent.selectorToType[selector] : undefined;
229
- if (!w.subGridOpts && type) {
230
- gridItem?.container?.createComponent(type);
231
- }
232
- return gridItem?.el;
233
- }
234
- }
235
- /**
236
- * can be used when saving the grid - make sure we save the content from the field (not HTML as we get ng markups)
237
- * and can put the extra info of type, otherwise content
238
- */
239
- export function gsSaveAdditionalNgInfo(n, w) {
240
- if (n.type)
241
- w.type = n.type;
242
- else if (n.content)
243
- w.content = n.content;
244
- }
245
- //# sourceMappingURL=gridstack.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gridstack.component.js","sourceRoot":"","sources":["../../demo/angular/src/app/gridstack.component.ts"],"names":[],"mappings":"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"}