@schneideress/dashboardframework 0.0.73 → 0.0.74

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 (113) hide show
  1. package/README.md +24 -24
  2. package/bundles/schneideress-dashboardframework.umd.js +7015 -7020
  3. package/bundles/schneideress-dashboardframework.umd.js.map +1 -1
  4. package/bundles/schneideress-dashboardframework.umd.min.js +1 -1
  5. package/bundles/schneideress-dashboardframework.umd.min.js.map +1 -1
  6. package/esm2015/gridster/index.js +18 -18
  7. package/esm2015/gridster/lib/gridster.component.js +700 -700
  8. package/esm2015/gridster/lib/gridster.interface.js +84 -84
  9. package/esm2015/gridster/lib/gridster.module.js +27 -27
  10. package/esm2015/gridster/lib/gridsterCompact.service.js +223 -223
  11. package/esm2015/gridster/lib/gridsterConfig.constant.js +179 -179
  12. package/esm2015/gridster/lib/gridsterConfig.interface.js +219 -219
  13. package/esm2015/gridster/lib/gridsterConfigS.interface.js +161 -161
  14. package/esm2015/gridster/lib/gridsterDraggable.service.js +510 -510
  15. package/esm2015/gridster/lib/gridsterEmptyCell.service.js +317 -317
  16. package/esm2015/gridster/lib/gridsterItem.component.js +213 -213
  17. package/esm2015/gridster/lib/gridsterItem.interface.js +46 -46
  18. package/esm2015/gridster/lib/gridsterItemComponent.interface.js +48 -48
  19. package/esm2015/gridster/lib/gridsterPreview.component.js +66 -66
  20. package/esm2015/gridster/lib/gridsterPush.service.js +467 -467
  21. package/esm2015/gridster/lib/gridsterPushResize.service.js +358 -358
  22. package/esm2015/gridster/lib/gridsterRenderer.service.js +277 -277
  23. package/esm2015/gridster/lib/gridsterResizable.service.js +552 -552
  24. package/esm2015/gridster/lib/gridsterResizeEventType.interface.js +19 -19
  25. package/esm2015/gridster/lib/gridsterScroll.service.js +195 -195
  26. package/esm2015/gridster/lib/gridsterSwap.service.js +134 -134
  27. package/esm2015/gridster/lib/gridsterUtils.service.js +137 -137
  28. package/esm2015/lib/custom.notifier.options.js +46 -46
  29. package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +494 -494
  30. package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +456 -461
  31. package/esm2015/lib/ra.base.dashboard.filter.js +75 -75
  32. package/esm2015/lib/ra.base.dashboard.template.js +71 -71
  33. package/esm2015/lib/ra.dashbard.event.bus.js +85 -85
  34. package/esm2015/lib/ra.dashboard.module.js +49 -49
  35. package/esm2015/lib/ra.dashboard.service.js +144 -144
  36. package/esm2015/lib/ra.event.enum.js +51 -51
  37. package/esm2015/lib/ra.gridster.config.js +67 -67
  38. package/esm2015/public-api.js +16 -16
  39. package/esm2015/schneideress-dashboardframework.js +13 -13
  40. package/esm5/gridster/index.js +18 -18
  41. package/esm5/gridster/lib/gridster.component.js +803 -803
  42. package/esm5/gridster/lib/gridster.interface.js +94 -94
  43. package/esm5/gridster/lib/gridster.module.js +31 -31
  44. package/esm5/gridster/lib/gridsterCompact.service.js +253 -253
  45. package/esm5/gridster/lib/gridsterConfig.constant.js +179 -179
  46. package/esm5/gridster/lib/gridsterConfig.interface.js +219 -219
  47. package/esm5/gridster/lib/gridsterConfigS.interface.js +161 -161
  48. package/esm5/gridster/lib/gridsterDraggable.service.js +549 -549
  49. package/esm5/gridster/lib/gridsterEmptyCell.service.js +358 -358
  50. package/esm5/gridster/lib/gridsterItem.component.js +238 -238
  51. package/esm5/gridster/lib/gridsterItem.interface.js +46 -46
  52. package/esm5/gridster/lib/gridsterItemComponent.interface.js +58 -58
  53. package/esm5/gridster/lib/gridsterPreview.component.js +70 -70
  54. package/esm5/gridster/lib/gridsterPush.service.js +547 -547
  55. package/esm5/gridster/lib/gridsterPushResize.service.js +423 -423
  56. package/esm5/gridster/lib/gridsterRenderer.service.js +323 -323
  57. package/esm5/gridster/lib/gridsterResizable.service.js +629 -629
  58. package/esm5/gridster/lib/gridsterResizeEventType.interface.js +19 -19
  59. package/esm5/gridster/lib/gridsterScroll.service.js +195 -195
  60. package/esm5/gridster/lib/gridsterSwap.service.js +152 -152
  61. package/esm5/gridster/lib/gridsterUtils.service.js +177 -177
  62. package/esm5/lib/custom.notifier.options.js +46 -46
  63. package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +586 -586
  64. package/esm5/lib/ra-widget-container/ra.widget.container.component.js +569 -574
  65. package/esm5/lib/ra.base.dashboard.filter.js +81 -81
  66. package/esm5/lib/ra.base.dashboard.template.js +74 -74
  67. package/esm5/lib/ra.dashbard.event.bus.js +125 -125
  68. package/esm5/lib/ra.dashboard.module.js +53 -53
  69. package/esm5/lib/ra.dashboard.service.js +221 -221
  70. package/esm5/lib/ra.event.enum.js +51 -51
  71. package/esm5/lib/ra.gridster.config.js +67 -67
  72. package/esm5/public-api.js +16 -16
  73. package/esm5/schneideress-dashboardframework.js +13 -13
  74. package/fesm2015/schneideress-dashboardframework.js +6099 -6104
  75. package/fesm2015/schneideress-dashboardframework.js.map +1 -1
  76. package/fesm5/schneideress-dashboardframework.js +6996 -7001
  77. package/fesm5/schneideress-dashboardframework.js.map +1 -1
  78. package/gridster/index.d.ts +11 -11
  79. package/gridster/lib/gridster.component.d.ts +67 -67
  80. package/gridster/lib/gridster.interface.d.ts +46 -46
  81. package/gridster/lib/gridster.module.d.ts +2 -2
  82. package/gridster/lib/gridsterCompact.service.d.ts +15 -15
  83. package/gridster/lib/gridsterConfig.constant.d.ts +2 -2
  84. package/gridster/lib/gridsterConfig.interface.d.ts +133 -133
  85. package/gridster/lib/gridsterConfigS.interface.d.ts +93 -93
  86. package/gridster/lib/gridsterDraggable.service.d.ts +59 -59
  87. package/gridster/lib/gridsterEmptyCell.service.d.ts +29 -29
  88. package/gridster/lib/gridsterItem.component.d.ts +32 -32
  89. package/gridster/lib/gridsterItem.interface.d.ts +21 -21
  90. package/gridster/lib/gridsterItemComponent.interface.d.ts +25 -25
  91. package/gridster/lib/gridsterPreview.component.d.ts +10 -10
  92. package/gridster/lib/gridsterPush.service.d.ts +33 -33
  93. package/gridster/lib/gridsterPushResize.service.d.ts +26 -26
  94. package/gridster/lib/gridsterRenderer.service.d.ts +38 -38
  95. package/gridster/lib/gridsterResizable.service.d.ts +67 -67
  96. package/gridster/lib/gridsterResizeEventType.interface.d.ts +6 -6
  97. package/gridster/lib/gridsterScroll.service.d.ts +4 -4
  98. package/gridster/lib/gridsterSwap.service.d.ts +13 -13
  99. package/gridster/lib/gridsterUtils.service.d.ts +16 -16
  100. package/lib/custom.notifier.options.d.ts +2 -2
  101. package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +64 -64
  102. package/lib/ra-widget-container/ra.widget.container.component.d.ts +63 -63
  103. package/lib/ra.base.dashboard.filter.d.ts +10 -10
  104. package/lib/ra.base.dashboard.template.d.ts +15 -15
  105. package/lib/ra.dashbard.event.bus.d.ts +20 -20
  106. package/lib/ra.dashboard.module.d.ts +2 -2
  107. package/lib/ra.dashboard.service.d.ts +22 -22
  108. package/lib/ra.event.enum.d.ts +42 -42
  109. package/lib/ra.gridster.config.d.ts +2 -2
  110. package/package.json +1 -1
  111. package/public-api.d.ts +8 -8
  112. package/schneideress-dashboardframework.d.ts +9 -9
  113. package/schneideress-dashboardframework.metadata.json +1 -1
@@ -1,238 +1,238 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component, ElementRef, Host, Input, NgZone, Renderer2, ViewEncapsulation } from '@angular/core';
6
- import { GridsterDraggable } from './gridsterDraggable.service';
7
- import { GridsterResizable } from './gridsterResizable.service';
8
- import { GridsterUtils } from './gridsterUtils.service';
9
- import { GridsterComponent } from './gridster.component';
10
- var GridsterItemComponent = /** @class */ (function () {
11
- function GridsterItemComponent(el, gridster, renderer, zone) {
12
- this.renderer = renderer;
13
- this.zone = zone;
14
- this.el = el.nativeElement;
15
- this.$item = {
16
- cols: -1,
17
- rows: -1,
18
- x: -1,
19
- y: -1,
20
- };
21
- this.gridster = gridster;
22
- this.drag = new GridsterDraggable(this, gridster, this.zone);
23
- this.resize = new GridsterResizable(this, gridster, this.zone);
24
- }
25
- /**
26
- * @return {?}
27
- */
28
- GridsterItemComponent.prototype.ngOnInit = /**
29
- * @return {?}
30
- */
31
- function () {
32
- this.updateOptions();
33
- this.gridster.addItem(this);
34
- };
35
- /**
36
- * @return {?}
37
- */
38
- GridsterItemComponent.prototype.updateOptions = /**
39
- * @return {?}
40
- */
41
- function () {
42
- this.$item = GridsterUtils.merge(this.$item, this.item, {
43
- cols: undefined,
44
- rows: undefined,
45
- x: undefined,
46
- y: undefined,
47
- dragEnabled: undefined,
48
- resizeEnabled: undefined,
49
- compactEnabled: undefined,
50
- maxItemRows: undefined,
51
- minItemRows: undefined,
52
- maxItemCols: undefined,
53
- minItemCols: undefined,
54
- maxItemArea: undefined,
55
- minItemArea: undefined,
56
- });
57
- };
58
- /**
59
- * @return {?}
60
- */
61
- GridsterItemComponent.prototype.ngOnDestroy = /**
62
- * @return {?}
63
- */
64
- function () {
65
- this.gridster.removeItem(this);
66
- this.gridster.movingItem = null;
67
- delete this.gridster;
68
- this.drag.destroy();
69
- delete this.drag;
70
- this.resize.destroy();
71
- delete this.resize;
72
- };
73
- /**
74
- * @return {?}
75
- */
76
- GridsterItemComponent.prototype.setSize = /**
77
- * @return {?}
78
- */
79
- function () {
80
- this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');
81
- this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);
82
- this.updateItemSize();
83
- };
84
- /**
85
- * @return {?}
86
- */
87
- GridsterItemComponent.prototype.updateItemSize = /**
88
- * @return {?}
89
- */
90
- function () {
91
- /** @type {?} */
92
- var top = this.$item.y * this.gridster.curRowHeight;
93
- /** @type {?} */
94
- var left = this.$item.x * this.gridster.curColWidth;
95
- /** @type {?} */
96
- var width = this.$item.cols * this.gridster.curColWidth - this.gridster.$options.margin;
97
- /** @type {?} */
98
- var height = this.$item.rows * this.gridster.curRowHeight - this.gridster.$options.margin;
99
- if (!this.init && width > 0 && height > 0) {
100
- this.init = true;
101
- if (this.item.initCallback) {
102
- this.item.initCallback(this.item, this);
103
- }
104
- if (this.gridster.options.itemInitCallback) {
105
- this.item.curRowHeight = this.gridster.curRowHeight;
106
- this.gridster.options.itemInitCallback(this.item, this);
107
- }
108
- if (this.gridster.$options.scrollToNewItems) {
109
- this.el.scrollIntoView(false);
110
- }
111
- }
112
- if (width !== this.width || height !== this.height) {
113
- this.width = width;
114
- this.height = height;
115
- if (this.gridster.options.itemResizeCallback) {
116
- this.gridster.options.itemResizeCallback(this.item, this);
117
- }
118
- }
119
- this.top = top;
120
- this.left = left;
121
- };
122
- /**
123
- * @return {?}
124
- */
125
- GridsterItemComponent.prototype.itemChanged = /**
126
- * @return {?}
127
- */
128
- function () {
129
- if (this.gridster.options.itemChangeCallback) {
130
- this.item.curRowHeight = this.gridster.curRowHeight;
131
- this.gridster.options.itemChangeCallback(this.item, this);
132
- }
133
- };
134
- /**
135
- * @param {?} newValue
136
- * @param {?} oldValue
137
- * @return {?}
138
- */
139
- GridsterItemComponent.prototype.checkItemChanges = /**
140
- * @param {?} newValue
141
- * @param {?} oldValue
142
- * @return {?}
143
- */
144
- function (newValue, oldValue) {
145
- if (newValue.rows === oldValue.rows && newValue.cols === oldValue.cols && newValue.x === oldValue.x && newValue.y === oldValue.y) {
146
- return;
147
- }
148
- if (this.gridster.checkCollision(this.$item)) {
149
- this.$item.x = oldValue.x || 0;
150
- this.$item.y = oldValue.y || 0;
151
- this.$item.cols = oldValue.cols || 1;
152
- this.$item.rows = oldValue.rows || 1;
153
- this.setSize();
154
- }
155
- else {
156
- this.item.cols = this.$item.cols;
157
- this.item.rows = this.$item.rows;
158
- this.item.x = this.$item.x;
159
- this.item.y = this.$item.y;
160
- this.gridster.calculateLayoutDebounce();
161
- this.itemChanged();
162
- }
163
- };
164
- /**
165
- * @return {?}
166
- */
167
- GridsterItemComponent.prototype.canBeDragged = /**
168
- * @return {?}
169
- */
170
- function () {
171
- return !this.gridster.mobile &&
172
- (this.$item.dragEnabled === undefined ? this.gridster.$options.draggable.enabled : this.$item.dragEnabled);
173
- };
174
- /**
175
- * @return {?}
176
- */
177
- GridsterItemComponent.prototype.canBeResized = /**
178
- * @return {?}
179
- */
180
- function () {
181
- return !this.gridster.mobile &&
182
- (this.$item.resizeEnabled === undefined ? this.gridster.$options.resizable.enabled : this.$item.resizeEnabled);
183
- };
184
- GridsterItemComponent.decorators = [
185
- { type: Component, args: [{
186
- selector: 'gridster-item',
187
- template: "<ng-content></ng-content>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.s || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-s\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.e || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-e\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.n || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-n\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.w || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-w\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.se || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-se\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.ne || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-ne\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.sw || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-sw\"></div>\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\n [hidden]=\"!gridster.$options.resizable.handles.nw || !resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-nw\"></div>\n",
188
- encapsulation: ViewEncapsulation.None,
189
- styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
190
- }] }
191
- ];
192
- /** @nocollapse */
193
- GridsterItemComponent.ctorParameters = function () { return [
194
- { type: ElementRef },
195
- { type: GridsterComponent, decorators: [{ type: Host }] },
196
- { type: Renderer2 },
197
- { type: NgZone }
198
- ]; };
199
- GridsterItemComponent.propDecorators = {
200
- item: [{ type: Input }]
201
- };
202
- return GridsterItemComponent;
203
- }());
204
- export { GridsterItemComponent };
205
- if (false) {
206
- /** @type {?} */
207
- GridsterItemComponent.prototype.item;
208
- /** @type {?} */
209
- GridsterItemComponent.prototype.$item;
210
- /** @type {?} */
211
- GridsterItemComponent.prototype.el;
212
- /** @type {?} */
213
- GridsterItemComponent.prototype.gridster;
214
- /** @type {?} */
215
- GridsterItemComponent.prototype.top;
216
- /** @type {?} */
217
- GridsterItemComponent.prototype.left;
218
- /** @type {?} */
219
- GridsterItemComponent.prototype.width;
220
- /** @type {?} */
221
- GridsterItemComponent.prototype.height;
222
- /** @type {?} */
223
- GridsterItemComponent.prototype.drag;
224
- /** @type {?} */
225
- GridsterItemComponent.prototype.resize;
226
- /** @type {?} */
227
- GridsterItemComponent.prototype.notPlaced;
228
- /** @type {?} */
229
- GridsterItemComponent.prototype.init;
230
- /** @type {?} */
231
- GridsterItemComponent.prototype.renderer;
232
- /**
233
- * @type {?}
234
- * @private
235
- */
236
- GridsterItemComponent.prototype.zone;
237
- }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXZEO0lBb0JFLCtCQUFZLEVBQWMsRUFBVSxRQUEyQixFQUFTLFFBQW1CLEVBQVUsSUFBWTtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUMvRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLElBQUksRUFBRSxDQUFDLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcs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O0lBQ3hCLHVDQUEwQjs7SUFDMUIsMENBQW1COztJQUNuQixxQ0FBYzs7SUFFbUQseUNBQTBCOzs7OztJQUFFLHFDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7R3JpZHN0ZXJJdGVtfSBmcm9tICcuL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkc3RlckRyYWdnYWJsZX0gZnJvbSAnLi9ncmlkc3RlckRyYWdnYWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7R3JpZHN0ZXJSZXNpemFibGV9IGZyb20gJy4vZ3JpZHN0ZXJSZXNpemFibGUuc2VydmljZSc7XG5pbXBvcnQge0dyaWRzdGVyVXRpbHN9IGZyb20gJy4vZ3JpZHN0ZXJVdGlscy5zZXJ2aWNlJztcbmltcG9ydCB7R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkc3RlckNvbXBvbmVudH0gZnJvbSAnLi9ncmlkc3Rlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmlkc3Rlci1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWRzdGVySXRlbS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZHN0ZXJJdGVtLmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRzdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Uge1xuICBASW5wdXQoKSBpdGVtOiBHcmlkc3Rlckl0ZW07XG4gICRpdGVtOiBHcmlkc3Rlckl0ZW07XG4gIGVsOiBhbnk7XG4gIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudDtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGRyYWc6IEdyaWRzdGVyRHJhZ2dhYmxlO1xuICByZXNpemU6IEdyaWRzdGVyUmVzaXphYmxlO1xuICBub3RQbGFjZWQ6IGJvb2xlYW47XG4gIGluaXQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIEBIb3N0KCkgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50LCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLmVsID0gZWwubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLiRpdGVtID0ge1xuICAgICAgY29sczogLTEsXG4gICAgICByb3dzOiAtMSxcbiAgICAgIHg6IC0xLFxuICAgICAgeTogLTEsXG4gICAgfTtcbiAgICB0aGlzLmdyaWRzdGVyID0gZ3JpZHN0ZXI7XG4gICAgdGhpcy5kcmFnID0gbmV3IEdyaWRzdGVyRHJhZ2dhYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xuICAgIHRoaXMucmVzaXplID0gbmV3IEdyaWRzdGVyUmVzaXphYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgdGhpcy5ncmlkc3Rlci5hZGRJdGVtKHRoaXMpO1xuICB9XG5cbiAgdXBkYXRlT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLiRpdGVtID0gR3JpZHN0ZXJVdGlscy5tZXJnZSh0aGlzLiRpdGVtLCB0aGlzLml0ZW0sIHtcbiAgICAgIGNvbHM6IHVuZGVmaW5lZCxcbiAgICAgIHJvd3M6IHVuZGVmaW5lZCxcbiAgICAgIHg6IHVuZGVmaW5lZCxcbiAgICAgIHk6IHVuZGVmaW5lZCxcbiAgICAgIGRyYWdFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICByZXNpemVFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBjb21wYWN0RW5hYmxlZDogdW5kZWZpbmVkLFxuICAgICAgbWF4SXRlbVJvd3M6IHVuZGVmaW5lZCxcbiAgICAgIG1pbkl0ZW1Sb3dzOiB1bmRlZmluZWQsXG4gICAgICBtYXhJdGVtQ29sczogdW5kZWZpbmVkLFxuICAgICAgbWluSXRlbUNvbHM6IHVuZGVmaW5lZCxcbiAgICAgIG1heEl0ZW1BcmVhOiB1bmRlZmluZWQsXG4gICAgICBtaW5JdGVtQXJlYTogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7ICAgICAgIFxuICAgIHRoaXMuZ3JpZHN0ZXIucmVtb3ZlSXRlbSh0aGlzKTtcbiAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW09bnVsbDtcbiAgICBkZWxldGUgdGhpcy5ncmlkc3RlcjtcbiAgICB0aGlzLmRyYWcuZGVzdHJveSgpO1xuICAgIGRlbGV0ZSB0aGlzLmRyYWc7XG4gICAgdGhpcy5yZXNpemUuZGVzdHJveSgpO1xuICAgIGRlbGV0ZSB0aGlzLnJlc2l6ZTtcbiAgfVxuXG4gIHNldFNpemUoKTogdm9pZCB7ICAgXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnZGlzcGxheScsIHRoaXMubm90UGxhY2VkID8gJycgOiAnYmxvY2snKTtcbiAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci51cGRhdGVJdGVtKHRoaXMuZWwsIHRoaXMuJGl0ZW0sIHRoaXMucmVuZGVyZXIpO1xuICAgIHRoaXMudXBkYXRlSXRlbVNpemUoKTtcbiAgfVxuXG4gIHVwZGF0ZUl0ZW1TaXplKCkge1xuICAgIGNvbnN0IHRvcCA9IHRoaXMuJGl0ZW0ueSAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLiRpdGVtLnggKiB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoO1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy4kaXRlbS5jb2xzICogdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuJGl0ZW0ucm93cyAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0IC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XG5cbiAgICBpZiAoIXRoaXMuaW5pdCAmJiB3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCkge1xuICAgICAgdGhpcy5pbml0ID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLml0ZW0uaW5pdENhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuaXRlbS5pbml0Q2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjaykge1xuICAgICAgICB0aGlzLml0ZW0uY3VyUm93SGVpZ2h0PXRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xuICAgICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuc2Nyb2xsVG9OZXdJdGVtcykge1xuICAgICAgICB0aGlzLmVsLnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdpZHRoICE9PSB0aGlzLndpZHRoIHx8IGhlaWdodCAhPT0gdGhpcy5oZWlnaHQpIHtcbiAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtUmVzaXplQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1SZXNpemVDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRvcCA9IHRvcDtcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICB9XG5cbiAgaXRlbUNoYW5nZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtQ2hhbmdlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMuaXRlbS5jdXJSb3dIZWlnaHQ9dGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQ7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tJdGVtQ2hhbmdlcyhuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKTogdm9pZCB7XG4gICAgaWYgKG5ld1ZhbHVlLnJvd3MgPT09IG9sZFZhbHVlLnJvd3MgJiYgbmV3VmFsdWUuY29scyA9PT0gb2xkVmFsdWUuY29scyAmJiBuZXdWYWx1ZS54ID09PSBvbGRWYWx1ZS54ICYmIG5ld1ZhbHVlLnkgPT09IG9sZFZhbHVlLnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24odGhpcy4kaXRlbSkpIHtcbiAgICAgIHRoaXMuJGl0ZW0ueCA9IG9sZFZhbHVlLnggfHwgMDtcbiAgICAgIHRoaXMuJGl0ZW0ueSA9IG9sZFZhbHVlLnkgfHwgMDtcbiAgICAgIHRoaXMuJGl0ZW0uY29scyA9IG9sZFZhbHVlLmNvbHMgfHwgMTtcbiAgICAgIHRoaXMuJGl0ZW0ucm93cyA9IG9sZFZhbHVlLnJvd3MgfHwgMTtcbiAgICAgIHRoaXMuc2V0U2l6ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW0uY29scyA9IHRoaXMuJGl0ZW0uY29scztcbiAgICAgIHRoaXMuaXRlbS5yb3dzID0gdGhpcy4kaXRlbS5yb3dzO1xuICAgICAgdGhpcy5pdGVtLnggPSB0aGlzLiRpdGVtLng7XG4gICAgICB0aGlzLml0ZW0ueSA9IHRoaXMuJGl0ZW0ueTtcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuY2FsY3VsYXRlTGF5b3V0RGVib3VuY2UoKTtcbiAgICAgIHRoaXMuaXRlbUNoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBjYW5CZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmdyaWRzdGVyLm1vYmlsZSAmJlxuICAgICAgKHRoaXMuJGl0ZW0uZHJhZ0VuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZHJhZ2dhYmxlLmVuYWJsZWQgOiB0aGlzLiRpdGVtLmRyYWdFbmFibGVkKTtcbiAgfVxuXG4gIGNhbkJlUmVzaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmXG4gICAgICAodGhpcy4kaXRlbS5yZXNpemVFbmFibGVkID09PSB1bmRlZmluZWQgPyB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLnJlc2l6YWJsZS5lbmFibGVkIDogdGhpcy4kaXRlbS5yZXNpemVFbmFibGVkKTtcbiAgfVxuXG59XG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, ElementRef, Host, Input, NgZone, Renderer2, ViewEncapsulation } from '@angular/core';
6
+ import { GridsterDraggable } from './gridsterDraggable.service';
7
+ import { GridsterResizable } from './gridsterResizable.service';
8
+ import { GridsterUtils } from './gridsterUtils.service';
9
+ import { GridsterComponent } from './gridster.component';
10
+ var GridsterItemComponent = /** @class */ (function () {
11
+ function GridsterItemComponent(el, gridster, renderer, zone) {
12
+ this.renderer = renderer;
13
+ this.zone = zone;
14
+ this.el = el.nativeElement;
15
+ this.$item = {
16
+ cols: -1,
17
+ rows: -1,
18
+ x: -1,
19
+ y: -1,
20
+ };
21
+ this.gridster = gridster;
22
+ this.drag = new GridsterDraggable(this, gridster, this.zone);
23
+ this.resize = new GridsterResizable(this, gridster, this.zone);
24
+ }
25
+ /**
26
+ * @return {?}
27
+ */
28
+ GridsterItemComponent.prototype.ngOnInit = /**
29
+ * @return {?}
30
+ */
31
+ function () {
32
+ this.updateOptions();
33
+ this.gridster.addItem(this);
34
+ };
35
+ /**
36
+ * @return {?}
37
+ */
38
+ GridsterItemComponent.prototype.updateOptions = /**
39
+ * @return {?}
40
+ */
41
+ function () {
42
+ this.$item = GridsterUtils.merge(this.$item, this.item, {
43
+ cols: undefined,
44
+ rows: undefined,
45
+ x: undefined,
46
+ y: undefined,
47
+ dragEnabled: undefined,
48
+ resizeEnabled: undefined,
49
+ compactEnabled: undefined,
50
+ maxItemRows: undefined,
51
+ minItemRows: undefined,
52
+ maxItemCols: undefined,
53
+ minItemCols: undefined,
54
+ maxItemArea: undefined,
55
+ minItemArea: undefined,
56
+ });
57
+ };
58
+ /**
59
+ * @return {?}
60
+ */
61
+ GridsterItemComponent.prototype.ngOnDestroy = /**
62
+ * @return {?}
63
+ */
64
+ function () {
65
+ this.gridster.removeItem(this);
66
+ this.gridster.movingItem = null;
67
+ delete this.gridster;
68
+ this.drag.destroy();
69
+ delete this.drag;
70
+ this.resize.destroy();
71
+ delete this.resize;
72
+ };
73
+ /**
74
+ * @return {?}
75
+ */
76
+ GridsterItemComponent.prototype.setSize = /**
77
+ * @return {?}
78
+ */
79
+ function () {
80
+ this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');
81
+ this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);
82
+ this.updateItemSize();
83
+ };
84
+ /**
85
+ * @return {?}
86
+ */
87
+ GridsterItemComponent.prototype.updateItemSize = /**
88
+ * @return {?}
89
+ */
90
+ function () {
91
+ /** @type {?} */
92
+ var top = this.$item.y * this.gridster.curRowHeight;
93
+ /** @type {?} */
94
+ var left = this.$item.x * this.gridster.curColWidth;
95
+ /** @type {?} */
96
+ var width = this.$item.cols * this.gridster.curColWidth - this.gridster.$options.margin;
97
+ /** @type {?} */
98
+ var height = this.$item.rows * this.gridster.curRowHeight - this.gridster.$options.margin;
99
+ if (!this.init && width > 0 && height > 0) {
100
+ this.init = true;
101
+ if (this.item.initCallback) {
102
+ this.item.initCallback(this.item, this);
103
+ }
104
+ if (this.gridster.options.itemInitCallback) {
105
+ this.item.curRowHeight = this.gridster.curRowHeight;
106
+ this.gridster.options.itemInitCallback(this.item, this);
107
+ }
108
+ if (this.gridster.$options.scrollToNewItems) {
109
+ this.el.scrollIntoView(false);
110
+ }
111
+ }
112
+ if (width !== this.width || height !== this.height) {
113
+ this.width = width;
114
+ this.height = height;
115
+ if (this.gridster.options.itemResizeCallback) {
116
+ this.gridster.options.itemResizeCallback(this.item, this);
117
+ }
118
+ }
119
+ this.top = top;
120
+ this.left = left;
121
+ };
122
+ /**
123
+ * @return {?}
124
+ */
125
+ GridsterItemComponent.prototype.itemChanged = /**
126
+ * @return {?}
127
+ */
128
+ function () {
129
+ if (this.gridster.options.itemChangeCallback) {
130
+ this.item.curRowHeight = this.gridster.curRowHeight;
131
+ this.gridster.options.itemChangeCallback(this.item, this);
132
+ }
133
+ };
134
+ /**
135
+ * @param {?} newValue
136
+ * @param {?} oldValue
137
+ * @return {?}
138
+ */
139
+ GridsterItemComponent.prototype.checkItemChanges = /**
140
+ * @param {?} newValue
141
+ * @param {?} oldValue
142
+ * @return {?}
143
+ */
144
+ function (newValue, oldValue) {
145
+ if (newValue.rows === oldValue.rows && newValue.cols === oldValue.cols && newValue.x === oldValue.x && newValue.y === oldValue.y) {
146
+ return;
147
+ }
148
+ if (this.gridster.checkCollision(this.$item)) {
149
+ this.$item.x = oldValue.x || 0;
150
+ this.$item.y = oldValue.y || 0;
151
+ this.$item.cols = oldValue.cols || 1;
152
+ this.$item.rows = oldValue.rows || 1;
153
+ this.setSize();
154
+ }
155
+ else {
156
+ this.item.cols = this.$item.cols;
157
+ this.item.rows = this.$item.rows;
158
+ this.item.x = this.$item.x;
159
+ this.item.y = this.$item.y;
160
+ this.gridster.calculateLayoutDebounce();
161
+ this.itemChanged();
162
+ }
163
+ };
164
+ /**
165
+ * @return {?}
166
+ */
167
+ GridsterItemComponent.prototype.canBeDragged = /**
168
+ * @return {?}
169
+ */
170
+ function () {
171
+ return !this.gridster.mobile &&
172
+ (this.$item.dragEnabled === undefined ? this.gridster.$options.draggable.enabled : this.$item.dragEnabled);
173
+ };
174
+ /**
175
+ * @return {?}
176
+ */
177
+ GridsterItemComponent.prototype.canBeResized = /**
178
+ * @return {?}
179
+ */
180
+ function () {
181
+ return !this.gridster.mobile &&
182
+ (this.$item.resizeEnabled === undefined ? this.gridster.$options.resizable.enabled : this.$item.resizeEnabled);
183
+ };
184
+ GridsterItemComponent.decorators = [
185
+ { type: Component, args: [{
186
+ selector: 'gridster-item',
187
+ template: "<ng-content></ng-content>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.s || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.e || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.n || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.w || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.se || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.ne || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.sw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.nw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"></div>\r\n",
188
+ encapsulation: ViewEncapsulation.None,
189
+ styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
190
+ }] }
191
+ ];
192
+ /** @nocollapse */
193
+ GridsterItemComponent.ctorParameters = function () { return [
194
+ { type: ElementRef },
195
+ { type: GridsterComponent, decorators: [{ type: Host }] },
196
+ { type: Renderer2 },
197
+ { type: NgZone }
198
+ ]; };
199
+ GridsterItemComponent.propDecorators = {
200
+ item: [{ type: Input }]
201
+ };
202
+ return GridsterItemComponent;
203
+ }());
204
+ export { GridsterItemComponent };
205
+ if (false) {
206
+ /** @type {?} */
207
+ GridsterItemComponent.prototype.item;
208
+ /** @type {?} */
209
+ GridsterItemComponent.prototype.$item;
210
+ /** @type {?} */
211
+ GridsterItemComponent.prototype.el;
212
+ /** @type {?} */
213
+ GridsterItemComponent.prototype.gridster;
214
+ /** @type {?} */
215
+ GridsterItemComponent.prototype.top;
216
+ /** @type {?} */
217
+ GridsterItemComponent.prototype.left;
218
+ /** @type {?} */
219
+ GridsterItemComponent.prototype.width;
220
+ /** @type {?} */
221
+ GridsterItemComponent.prototype.height;
222
+ /** @type {?} */
223
+ GridsterItemComponent.prototype.drag;
224
+ /** @type {?} */
225
+ GridsterItemComponent.prototype.resize;
226
+ /** @type {?} */
227
+ GridsterItemComponent.prototype.notPlaced;
228
+ /** @type {?} */
229
+ GridsterItemComponent.prototype.init;
230
+ /** @type {?} */
231
+ GridsterItemComponent.prototype.renderer;
232
+ /**
233
+ * @type {?}
234
+ * @private
235
+ */
236
+ GridsterItemComponent.prototype.zone;
237
+ }
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXZEO0lBb0JFLCtCQUFZLEVBQWMsRUFBVSxRQUEyQixFQUFTLFFBQW1CLEVBQVUsSUFBWTtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUMvRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLElBQUksRUFBRSxDQUFDLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcs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O0lBQ3hCLHVDQUEwQjs7SUFDMUIsMENBQW1COztJQUNuQixxQ0FBYzs7SUFFbUQseUNBQTBCOzs7OztJQUFFLHFDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge0dyaWRzdGVySXRlbX0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHtHcmlkc3RlckRyYWdnYWJsZX0gZnJvbSAnLi9ncmlkc3RlckRyYWdnYWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtHcmlkc3RlclJlc2l6YWJsZX0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtHcmlkc3RlclV0aWxzfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyQ29tcG9uZW50fSBmcm9tICcuL2dyaWRzdGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dyaWRzdGVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkc3Rlckl0ZW0uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZHN0ZXJJdGVtLmNzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRzdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Uge1xyXG4gIEBJbnB1dCgpIGl0ZW06IEdyaWRzdGVySXRlbTtcclxuICAkaXRlbTogR3JpZHN0ZXJJdGVtO1xyXG4gIGVsOiBhbnk7XHJcbiAgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50O1xyXG4gIHRvcDogbnVtYmVyO1xyXG4gIGxlZnQ6IG51bWJlcjtcclxuICB3aWR0aDogbnVtYmVyO1xyXG4gIGhlaWdodDogbnVtYmVyO1xyXG4gIGRyYWc6IEdyaWRzdGVyRHJhZ2dhYmxlO1xyXG4gIHJlc2l6ZTogR3JpZHN0ZXJSZXNpemFibGU7XHJcbiAgbm90UGxhY2VkOiBib29sZWFuO1xyXG4gIGluaXQ6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBASG9zdCgpIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudCwgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgem9uZTogTmdab25lKSB7XHJcbiAgICB0aGlzLmVsID0gZWwubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuJGl0ZW0gPSB7XHJcbiAgICAgIGNvbHM6IC0xLFxyXG4gICAgICByb3dzOiAtMSxcclxuICAgICAgeDogLTEsXHJcbiAgICAgIHk6IC0xLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIgPSBncmlkc3RlcjtcclxuICAgIHRoaXMuZHJhZyA9IG5ldyBHcmlkc3RlckRyYWdnYWJsZSh0aGlzLCBncmlkc3RlciwgdGhpcy56b25lKTtcclxuICAgIHRoaXMucmVzaXplID0gbmV3IEdyaWRzdGVyUmVzaXphYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIuYWRkSXRlbSh0aGlzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLiRpdGVtID0gR3JpZHN0ZXJVdGlscy5tZXJnZSh0aGlzLiRpdGVtLCB0aGlzLml0ZW0sIHtcclxuICAgICAgY29sczogdW5kZWZpbmVkLFxyXG4gICAgICByb3dzOiB1bmRlZmluZWQsXHJcbiAgICAgIHg6IHVuZGVmaW5lZCxcclxuICAgICAgeTogdW5kZWZpbmVkLFxyXG4gICAgICBkcmFnRW5hYmxlZDogdW5kZWZpbmVkLFxyXG4gICAgICByZXNpemVFbmFibGVkOiB1bmRlZmluZWQsXHJcbiAgICAgIGNvbXBhY3RFbmFibGVkOiB1bmRlZmluZWQsXHJcbiAgICAgIG1heEl0ZW1Sb3dzOiB1bmRlZmluZWQsXHJcbiAgICAgIG1pbkl0ZW1Sb3dzOiB1bmRlZmluZWQsXHJcbiAgICAgIG1heEl0ZW1Db2xzOiB1bmRlZmluZWQsXHJcbiAgICAgIG1pbkl0ZW1Db2xzOiB1bmRlZmluZWQsXHJcbiAgICAgIG1heEl0ZW1BcmVhOiB1bmRlZmluZWQsXHJcbiAgICAgIG1pbkl0ZW1BcmVhOiB1bmRlZmluZWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQgeyAgICAgICBcclxuICAgIHRoaXMuZ3JpZHN0ZXIucmVtb3ZlSXRlbSh0aGlzKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbT1udWxsO1xyXG4gICAgZGVsZXRlIHRoaXMuZ3JpZHN0ZXI7XHJcbiAgICB0aGlzLmRyYWcuZGVzdHJveSgpO1xyXG4gICAgZGVsZXRlIHRoaXMuZHJhZztcclxuICAgIHRoaXMucmVzaXplLmRlc3Ryb3koKTtcclxuICAgIGRlbGV0ZSB0aGlzLnJlc2l6ZTtcclxuICB9XHJcblxyXG4gIHNldFNpemUoKTogdm9pZCB7ICAgXHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdkaXNwbGF5JywgdGhpcy5ub3RQbGFjZWQgPyAnJyA6ICdibG9jaycpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5ncmlkUmVuZGVyZXIudXBkYXRlSXRlbSh0aGlzLmVsLCB0aGlzLiRpdGVtLCB0aGlzLnJlbmRlcmVyKTtcclxuICAgIHRoaXMudXBkYXRlSXRlbVNpemUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUl0ZW1TaXplKCkge1xyXG4gICAgY29uc3QgdG9wID0gdGhpcy4kaXRlbS55ICogdGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQ7XHJcbiAgICBjb25zdCBsZWZ0ID0gdGhpcy4kaXRlbS54ICogdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aDtcclxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy4kaXRlbS5jb2xzICogdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy4kaXRlbS5yb3dzICogdGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQgLSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbjtcclxuXHJcbiAgICBpZiAoIXRoaXMuaW5pdCAmJiB3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCkge1xyXG4gICAgICB0aGlzLmluaXQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5pdGVtLmluaXRDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuaXRlbS5pbml0Q2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1Jbml0Q2FsbGJhY2spIHtcclxuICAgICAgICB0aGlzLml0ZW0uY3VyUm93SGVpZ2h0PXRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtSW5pdENhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuc2Nyb2xsVG9OZXdJdGVtcykge1xyXG4gICAgICAgIHRoaXMuZWwuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAod2lkdGggIT09IHRoaXMud2lkdGggfHwgaGVpZ2h0ICE9PSB0aGlzLmhlaWdodCkge1xyXG4gICAgICB0aGlzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1SZXNpemVDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtUmVzaXplQ2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy50b3AgPSB0b3A7XHJcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xyXG4gIH1cclxuXHJcbiAgaXRlbUNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1DaGFuZ2VDYWxsYmFjaykge1xyXG4gICAgICB0aGlzLml0ZW0uY3VyUm93SGVpZ2h0PXRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0l0ZW1DaGFuZ2VzKG5ld1ZhbHVlOiBHcmlkc3Rlckl0ZW0sIG9sZFZhbHVlOiBHcmlkc3Rlckl0ZW0pOiB2b2lkIHtcclxuICAgIGlmIChuZXdWYWx1ZS5yb3dzID09PSBvbGRWYWx1ZS5yb3dzICYmIG5ld1ZhbHVlLmNvbHMgPT09IG9sZFZhbHVlLmNvbHMgJiYgbmV3VmFsdWUueCA9PT0gb2xkVmFsdWUueCAmJiBuZXdWYWx1ZS55ID09PSBvbGRWYWx1ZS55KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLmNoZWNrQ29sbGlzaW9uKHRoaXMuJGl0ZW0pKSB7XHJcbiAgICAgIHRoaXMuJGl0ZW0ueCA9IG9sZFZhbHVlLnggfHwgMDtcclxuICAgICAgdGhpcy4kaXRlbS55ID0gb2xkVmFsdWUueSB8fCAwO1xyXG4gICAgICB0aGlzLiRpdGVtLmNvbHMgPSBvbGRWYWx1ZS5jb2xzIHx8IDE7XHJcbiAgICAgIHRoaXMuJGl0ZW0ucm93cyA9IG9sZFZhbHVlLnJvd3MgfHwgMTtcclxuICAgICAgdGhpcy5zZXRTaXplKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLml0ZW0uY29scyA9IHRoaXMuJGl0ZW0uY29scztcclxuICAgICAgdGhpcy5pdGVtLnJvd3MgPSB0aGlzLiRpdGVtLnJvd3M7XHJcbiAgICAgIHRoaXMuaXRlbS54ID0gdGhpcy4kaXRlbS54O1xyXG4gICAgICB0aGlzLml0ZW0ueSA9IHRoaXMuJGl0ZW0ueTtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5jYWxjdWxhdGVMYXlvdXREZWJvdW5jZSgpO1xyXG4gICAgICB0aGlzLml0ZW1DaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5CZURyYWdnZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmXHJcbiAgICAgICh0aGlzLiRpdGVtLmRyYWdFbmFibGVkID09PSB1bmRlZmluZWQgPyB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRyYWdnYWJsZS5lbmFibGVkIDogdGhpcy4kaXRlbS5kcmFnRW5hYmxlZCk7XHJcbiAgfVxyXG5cclxuICBjYW5CZVJlc2l6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmXHJcbiAgICAgICh0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMucmVzaXphYmxlLmVuYWJsZWQgOiB0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,46 +1,46 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @record
7
- */
8
- export function GridsterItem() { }
9
- if (false) {
10
- /** @type {?} */
11
- GridsterItem.prototype.x;
12
- /** @type {?} */
13
- GridsterItem.prototype.y;
14
- /** @type {?} */
15
- GridsterItem.prototype.rows;
16
- /** @type {?} */
17
- GridsterItem.prototype.cols;
18
- /** @type {?|undefined} */
19
- GridsterItem.prototype.initCallback;
20
- /** @type {?|undefined} */
21
- GridsterItem.prototype.dragEnabled;
22
- /** @type {?|undefined} */
23
- GridsterItem.prototype.resizeEnabled;
24
- /** @type {?|undefined} */
25
- GridsterItem.prototype.compactEnabled;
26
- /** @type {?|undefined} */
27
- GridsterItem.prototype.maxItemRows;
28
- /** @type {?|undefined} */
29
- GridsterItem.prototype.minItemRows;
30
- /** @type {?|undefined} */
31
- GridsterItem.prototype.maxItemCols;
32
- /** @type {?|undefined} */
33
- GridsterItem.prototype.minItemCols;
34
- /** @type {?|undefined} */
35
- GridsterItem.prototype.minItemArea;
36
- /** @type {?|undefined} */
37
- GridsterItem.prototype.maxItemArea;
38
- /** @type {?|undefined} */
39
- GridsterItem.prototype.curRowHeight;
40
- /** @type {?|undefined} */
41
- GridsterItem.prototype.widgetHeight;
42
- /** @type {?|undefined} */
43
- GridsterItem.prototype.widgetInfo;
44
- /* Skipping unhandled member: [propName: string]: any;*/
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLGtDQXdCQzs7O0lBdkJDLHlCQUFVOztJQUNWLHlCQUFVOztJQUNWLDRCQUFhOztJQUNiLDRCQUFhOztJQUNiLG9DQUEyRjs7SUFDM0YsbUNBQXNCOztJQUN0QixxQ0FBd0I7O0lBQ3hCLHNDQUF5Qjs7SUFDekIsbUNBQXFCOztJQUNyQixtQ0FBcUI7O0lBQ3JCLG1DQUFxQjs7SUFDckIsbUNBQXFCOztJQUNyQixtQ0FBcUI7O0lBQ3JCLG1DQUFxQjs7SUFPckIsb0NBQXFCOztJQUNyQixvQ0FBcUI7O0lBQ3JCLGtDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRzdGVySXRlbSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIGNvbHM6IG51bWJlcjtcbiAgaW5pdENhbGxiYWNrPzogKGl0ZW06IEdyaWRzdGVySXRlbSwgaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlKSA9PiB2b2lkO1xuICBkcmFnRW5hYmxlZD86IGJvb2xlYW47XG4gIHJlc2l6ZUVuYWJsZWQ/OiBib29sZWFuO1xuICBjb21wYWN0RW5hYmxlZD86IGJvb2xlYW47XG4gIG1heEl0ZW1Sb3dzPzogbnVtYmVyO1xuICBtaW5JdGVtUm93cz86IG51bWJlcjtcbiAgbWF4SXRlbUNvbHM/OiBudW1iZXI7XG4gIG1pbkl0ZW1Db2xzPzogbnVtYmVyO1xuICBtaW5JdGVtQXJlYT86IG51bWJlcjtcbiAgbWF4SXRlbUFyZWE/OiBudW1iZXI7XG5cbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XG4gIC8vIGluc3RhbmNlSWQ6bnVtYmVyO1xuXG5cbiAgLy9jdXN0b20gZGVmaW5lZFxuICBjdXJSb3dIZWlnaHQ/Om51bWJlcjtcbiAgd2lkZ2V0SGVpZ2h0PzpudW1iZXI7XG4gIHdpZGdldEluZm8/OmFueTtcbn1cbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ */
8
+ export function GridsterItem() { }
9
+ if (false) {
10
+ /** @type {?} */
11
+ GridsterItem.prototype.x;
12
+ /** @type {?} */
13
+ GridsterItem.prototype.y;
14
+ /** @type {?} */
15
+ GridsterItem.prototype.rows;
16
+ /** @type {?} */
17
+ GridsterItem.prototype.cols;
18
+ /** @type {?|undefined} */
19
+ GridsterItem.prototype.initCallback;
20
+ /** @type {?|undefined} */
21
+ GridsterItem.prototype.dragEnabled;
22
+ /** @type {?|undefined} */
23
+ GridsterItem.prototype.resizeEnabled;
24
+ /** @type {?|undefined} */
25
+ GridsterItem.prototype.compactEnabled;
26
+ /** @type {?|undefined} */
27
+ GridsterItem.prototype.maxItemRows;
28
+ /** @type {?|undefined} */
29
+ GridsterItem.prototype.minItemRows;
30
+ /** @type {?|undefined} */
31
+ GridsterItem.prototype.maxItemCols;
32
+ /** @type {?|undefined} */
33
+ GridsterItem.prototype.minItemCols;
34
+ /** @type {?|undefined} */
35
+ GridsterItem.prototype.minItemArea;
36
+ /** @type {?|undefined} */
37
+ GridsterItem.prototype.maxItemArea;
38
+ /** @type {?|undefined} */
39
+ GridsterItem.prototype.curRowHeight;
40
+ /** @type {?|undefined} */
41
+ GridsterItem.prototype.widgetHeight;
42
+ /** @type {?|undefined} */
43
+ GridsterItem.prototype.widgetInfo;
44
+ /* Skipping unhandled member: [propName: string]: any;*/
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBLGtDQXdCQzs7O0lBdkJDLHlCQUFVOztJQUNWLHlCQUFVOztJQUNWLDRCQUFhOztJQUNiLDRCQUFhOztJQUNiLG9DQUEyRjs7SUFDM0YsbUNBQXNCOztJQUN0QixxQ0FBd0I7O0lBQ3hCLHNDQUF5Qjs7SUFDekIsbUNBQXFCOztJQUNyQixtQ0FBcUI7O0lBQ3JCLG1DQUFxQjs7SUFDckIsbUNBQXFCOztJQUNyQixtQ0FBcUI7O0lBQ3JCLG1DQUFxQjs7SUFPckIsb0NBQXFCOztJQUNyQixvQ0FBcUI7O0lBQ3JCLGtDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcmlkc3Rlckl0ZW0ge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgcm93czogbnVtYmVyO1xyXG4gIGNvbHM6IG51bWJlcjtcclxuICBpbml0Q2FsbGJhY2s/OiAoaXRlbTogR3JpZHN0ZXJJdGVtLCBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UpID0+IHZvaWQ7XHJcbiAgZHJhZ0VuYWJsZWQ/OiBib29sZWFuO1xyXG4gIHJlc2l6ZUVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGNvbXBhY3RFbmFibGVkPzogYm9vbGVhbjtcclxuICBtYXhJdGVtUm93cz86IG51bWJlcjtcclxuICBtaW5JdGVtUm93cz86IG51bWJlcjtcclxuICBtYXhJdGVtQ29scz86IG51bWJlcjtcclxuICBtaW5JdGVtQ29scz86IG51bWJlcjtcclxuICBtaW5JdGVtQXJlYT86IG51bWJlcjtcclxuICBtYXhJdGVtQXJlYT86IG51bWJlcjtcclxuXHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgLy8gaW5zdGFuY2VJZDpudW1iZXI7XHJcblxyXG5cclxuICAvL2N1c3RvbSBkZWZpbmVkXHJcbiAgY3VyUm93SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SW5mbz86YW55O1xyXG59XHJcbiJdfQ==