@schneideress/dashboardframework 0.0.77 → 0.0.78

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 +7128 -6078
  3. package/bundles/schneideress-dashboardframework.umd.js.map +1 -1
  4. package/bundles/schneideress-dashboardframework.umd.min.js +15 -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 +496 -496
  30. package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +471 -471
  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 +51 -51
  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 +588 -588
  64. package/esm5/lib/ra-widget-container/ra.widget.container.component.js +584 -584
  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 +55 -55
  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 +6121 -5181
  75. package/fesm2015/schneideress-dashboardframework.js.map +1 -1
  76. package/fesm5/schneideress-dashboardframework.js +7019 -6079
  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 +64 -64
  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,19 +1,19 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @record
7
- */
8
- export function GridsterResizeEventType() { }
9
- if (false) {
10
- /** @type {?} */
11
- GridsterResizeEventType.prototype.n;
12
- /** @type {?} */
13
- GridsterResizeEventType.prototype.s;
14
- /** @type {?} */
15
- GridsterResizeEventType.prototype.w;
16
- /** @type {?} */
17
- GridsterResizeEventType.prototype.e;
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNjaG5laWRlcmVzcy9kYXNoYm9hcmRmcmFtZXdvcmsvIiwic291cmNlcyI6WyJncmlkc3Rlci9saWIvZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSw2Q0FLQzs7O0lBSkMsb0NBQVc7O0lBQ1gsb0NBQVc7O0lBQ1gsb0NBQVc7O0lBQ1gsb0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEdyaWRzdGVyUmVzaXplRXZlbnRUeXBlIHtcclxuICBuOiBib29sZWFuO1xyXG4gIHM6IGJvb2xlYW47XHJcbiAgdzogYm9vbGVhbjtcclxuICBlOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
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 GridsterResizeEventType() { }
9
+ if (false) {
10
+ /** @type {?} */
11
+ GridsterResizeEventType.prototype.n;
12
+ /** @type {?} */
13
+ GridsterResizeEventType.prototype.s;
14
+ /** @type {?} */
15
+ GridsterResizeEventType.prototype.w;
16
+ /** @type {?} */
17
+ GridsterResizeEventType.prototype.e;
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNjaG5laWRlcmVzcy9kYXNoYm9hcmRmcmFtZXdvcmsvIiwic291cmNlcyI6WyJncmlkc3Rlci9saWIvZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSw2Q0FLQzs7O0lBSkMsb0NBQVc7O0lBQ1gsb0NBQVc7O0lBQ1gsb0NBQVc7O0lBQ1gsb0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEdyaWRzdGVyUmVzaXplRXZlbnRUeXBlIHtcbiAgbjogYm9vbGVhbjtcbiAgczogYm9vbGVhbjtcbiAgdzogYm9vbGVhbjtcbiAgZTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,195 +1,195 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /** @type {?} */
6
- let scrollSensitivity;
7
- /** @type {?} */
8
- let scrollSpeed;
9
- /** @type {?} */
10
- const intervalDuration = 50;
11
- /** @type {?} */
12
- let gridsterElement;
13
- /** @type {?} */
14
- let resizeEvent;
15
- /** @type {?} */
16
- let resizeEventType;
17
- /** @type {?} */
18
- let intervalE;
19
- /** @type {?} */
20
- let intervalW;
21
- /** @type {?} */
22
- let intervalN;
23
- /** @type {?} */
24
- let intervalS;
25
- /**
26
- * @param {?} gridster
27
- * @param {?} left
28
- * @param {?} top
29
- * @param {?} width
30
- * @param {?} height
31
- * @param {?} e
32
- * @param {?} lastMouse
33
- * @param {?} calculateItemPosition
34
- * @param {?=} resize
35
- * @param {?=} resizeEventScrollType
36
- * @return {?}
37
- */
38
- export function scroll(gridster, left, top, width, height, e, lastMouse, calculateItemPosition, resize, resizeEventScrollType) {
39
- scrollSensitivity = gridster.$options.scrollSensitivity;
40
- scrollSpeed = gridster.$options.scrollSpeed;
41
- gridsterElement = gridster.el;
42
- resizeEvent = resize;
43
- resizeEventType = resizeEventScrollType;
44
- /** @type {?} */
45
- const offsetWidth = gridsterElement.offsetWidth;
46
- /** @type {?} */
47
- const offsetHeight = gridsterElement.offsetHeight;
48
- /** @type {?} */
49
- const offsetLeft = gridsterElement.scrollLeft;
50
- /** @type {?} */
51
- const offsetTop = gridsterElement.scrollTop;
52
- /** @type {?} */
53
- const elemTopOffset = top - offsetTop;
54
- /** @type {?} */
55
- const elemBottomOffset = offsetHeight + offsetTop - top - height;
56
- if (lastMouse.clientY < e.clientY && elemBottomOffset < scrollSensitivity) {
57
- cancelN();
58
- if ((resizeEvent && resizeEventType && !resizeEventType.s) || intervalS) {
59
- return;
60
- }
61
- intervalS = startVertical(1, calculateItemPosition, lastMouse);
62
- }
63
- else if (lastMouse.clientY > e.clientY && offsetTop > 0 && elemTopOffset < scrollSensitivity) {
64
- cancelS();
65
- if ((resizeEvent && resizeEventType && !resizeEventType.n) || intervalN) {
66
- return;
67
- }
68
- intervalN = startVertical(-1, calculateItemPosition, lastMouse);
69
- }
70
- else if (lastMouse.clientY !== e.clientY) {
71
- cancelVertical();
72
- }
73
- /** @type {?} */
74
- const elemRightOffset = offsetLeft + offsetWidth - left - width;
75
- /** @type {?} */
76
- const elemLeftOffset = left - offsetLeft;
77
- if (lastMouse.clientX < e.clientX && elemRightOffset <= scrollSensitivity) {
78
- cancelW();
79
- if ((resizeEvent && resizeEventType && !resizeEventType.e) || intervalE) {
80
- return;
81
- }
82
- intervalE = startHorizontal(1, calculateItemPosition, lastMouse);
83
- }
84
- else if (lastMouse.clientX > e.clientX && offsetLeft > 0 && elemLeftOffset < scrollSensitivity) {
85
- cancelE();
86
- if ((resizeEvent && resizeEventType && !resizeEventType.w) || intervalW) {
87
- return;
88
- }
89
- intervalW = startHorizontal(-1, calculateItemPosition, lastMouse);
90
- }
91
- else if (lastMouse.clientX !== e.clientX) {
92
- cancelHorizontal();
93
- }
94
- }
95
- /**
96
- * @param {?} sign
97
- * @param {?} calculateItemPosition
98
- * @param {?} lastMouse
99
- * @return {?}
100
- */
101
- function startVertical(sign, calculateItemPosition, lastMouse) {
102
- /** @type {?} */
103
- let clientY = lastMouse.clientY;
104
- return setInterval((/**
105
- * @return {?}
106
- */
107
- () => {
108
- if (!gridsterElement || sign === -1 && gridsterElement.scrollTop - scrollSpeed < 0) {
109
- cancelVertical();
110
- }
111
- gridsterElement.scrollTop += sign * scrollSpeed;
112
- clientY += sign * scrollSpeed;
113
- calculateItemPosition({ clientX: lastMouse.clientX, clientY: clientY });
114
- }), intervalDuration);
115
- }
116
- /**
117
- * @param {?} sign
118
- * @param {?} calculateItemPosition
119
- * @param {?} lastMouse
120
- * @return {?}
121
- */
122
- function startHorizontal(sign, calculateItemPosition, lastMouse) {
123
- /** @type {?} */
124
- let clientX = lastMouse.clientX;
125
- return setInterval((/**
126
- * @return {?}
127
- */
128
- () => {
129
- if (!gridsterElement || sign === -1 && gridsterElement.scrollLeft - scrollSpeed < 0) {
130
- cancelHorizontal();
131
- }
132
- gridsterElement.scrollLeft += sign * scrollSpeed;
133
- clientX += sign * scrollSpeed;
134
- calculateItemPosition({ clientX: clientX, clientY: lastMouse.clientY });
135
- }), intervalDuration);
136
- }
137
- /**
138
- * @return {?}
139
- */
140
- export function cancelScroll() {
141
- cancelHorizontal();
142
- cancelVertical();
143
- gridsterElement = undefined;
144
- }
145
- /**
146
- * @return {?}
147
- */
148
- function cancelHorizontal() {
149
- cancelE();
150
- cancelW();
151
- }
152
- /**
153
- * @return {?}
154
- */
155
- function cancelVertical() {
156
- cancelN();
157
- cancelS();
158
- }
159
- /**
160
- * @return {?}
161
- */
162
- function cancelE() {
163
- if (intervalE) {
164
- clearInterval(intervalE);
165
- intervalE = 0;
166
- }
167
- }
168
- /**
169
- * @return {?}
170
- */
171
- function cancelW() {
172
- if (intervalW) {
173
- clearInterval(intervalW);
174
- intervalW = 0;
175
- }
176
- }
177
- /**
178
- * @return {?}
179
- */
180
- function cancelS() {
181
- if (intervalS) {
182
- clearInterval(intervalS);
183
- intervalS = 0;
184
- }
185
- }
186
- /**
187
- * @return {?}
188
- */
189
- function cancelN() {
190
- if (intervalN) {
191
- clearInterval(intervalN);
192
- intervalN = 0;
193
- }
194
- }
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyU2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7SUFHSSxpQkFBeUI7O0lBQ3pCLFdBQW1COztNQUNqQixnQkFBZ0IsR0FBRyxFQUFFOztJQUN2QixlQUFvQjs7SUFDcEIsV0FBZ0M7O0lBQ2hDLGVBQW9EOztJQUNwRCxTQUFpQjs7SUFDakIsU0FBaUI7O0lBQ2pCLFNBQWlCOztJQUNqQixTQUFpQjs7Ozs7Ozs7Ozs7Ozs7QUFFckIsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFDOUYsQ0FBYSxFQUFFLFNBQWMsRUFDN0IscUJBQStCLEVBQUUsTUFBZ0IsRUFBRSxxQkFBK0M7SUFDdkgsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUNyQixlQUFlLEdBQUcscUJBQXFCLENBQUM7O1VBRWxDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVzs7VUFDekMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZOztVQUMzQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFVBQVU7O1VBQ3ZDLFNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUzs7VUFDckMsYUFBYSxHQUFHLEdBQUcsR0FBRyxTQUFTOztVQUMvQixnQkFBZ0IsR0FBRyxZQUFZLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxNQUFNO0lBQ2hFLElBQUksU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFD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QixTQUFTLEdBQUcsQ0FBQyxDQUFDO0tBQ2Y7QUFDSCxDQUFDOzs7O0FBRUQsU0FBUyxPQUFPO0lBQ2QsSUFBSSxTQUFTLEVBQUU7UUFDYixhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekIsU0FBUyxHQUFHLENBQUMsQ0FBQztLQUNmO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZHN0ZXJSZXNpemVFdmVudFR5cGV9IGZyb20gJy4vZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZX0gZnJvbSAnLi9ncmlkc3Rlci5pbnRlcmZhY2UnO1xyXG5cclxubGV0IHNjcm9sbFNlbnNpdGl2aXR5OiBudW1iZXI7XHJcbmxldCBzY3JvbGxTcGVlZDogbnVtYmVyO1xyXG5jb25zdCBpbnRlcnZhbER1cmF0aW9uID0gNTA7XHJcbmxldCBncmlkc3RlckVsZW1lbnQ6IGFueTtcclxubGV0IHJlc2l6ZUV2ZW50OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5sZXQgcmVzaXplRXZlbnRUeXBlOiBHcmlkc3RlclJlc2l6ZUV2ZW50VHlwZSB8IHVuZGVmaW5lZDtcclxubGV0IGludGVydmFsRTogbnVtYmVyO1xyXG5sZXQgaW50ZXJ2YWxXOiBudW1iZXI7XHJcbmxldCBpbnRlcnZhbE46IG51bWJlcjtcclxubGV0IGludGVydmFsUzogbnVtYmVyO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbChncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UsIGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGU6IE1vdXNlRXZlbnQsIGxhc3RNb3VzZTogYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbjogRnVuY3Rpb24sIHJlc2l6ZT86IGJvb2xlYW4sIHJlc2l6ZUV2ZW50U2Nyb2xsVHlwZT86IEdyaWRzdGVyUmVzaXplRXZlbnRUeXBlKSB7XHJcbiAgc2Nyb2xsU2Vuc2l0aXZpdHkgPSBncmlkc3Rlci4kb3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eTtcclxuICBzY3JvbGxTcGVlZCA9IGdyaWRzdGVyLiRvcHRpb25zLnNjcm9sbFNwZWVkO1xyXG4gIGdyaWRzdGVyRWxlbWVudCA9IGdyaWRzdGVyLmVsO1xyXG4gIHJlc2l6ZUV2ZW50ID0gcmVzaXplO1xyXG4gIHJlc2l6ZUV2ZW50VHlwZSA9IHJlc2l6ZUV2ZW50U2Nyb2xsVHlwZTtcclxuXHJcbiAgY29uc3Qgb2Zmc2V0V2lkdGggPSBncmlkc3RlckVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gZ3JpZHN0ZXJFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICBjb25zdCBvZmZzZXRMZWZ0ID0gZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbExlZnQ7XHJcbiAgY29uc3Qgb2Zmc2V0VG9wID0gZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbFRvcDtcclxuICBjb25zdCBlbGVtVG9wT2Zmc2V0ID0gdG9wIC0gb2Zmc2V0VG9wO1xyXG4gIGNvbnN0IGVsZW1Cb3R0b21PZmZzZXQgPSBvZmZzZXRIZWlnaHQgKyBvZmZzZXRUb3AgLSB0b3AgLSBoZWlnaHQ7XHJcbiAgaWYgKGxhc3RNb3VzZS5jbGllbnRZIDwgZS5jbGllbnRZICYmIGVsZW1Cb3R0b21PZmZzZXQgPCBzY3JvbGxTZW5zaXRpdml0eSkge1xyXG4gICAgY2FuY2VsTigpO1xyXG4gICAgaWYgKChyZXNpemVFdmVudCAmJiByZXNpemVFdmVudFR5cGUgJiYgIXJlc2l6ZUV2ZW50VHlwZS5zKSB8fCBpbnRlcnZhbFMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaW50ZXJ2YWxTID0gc3RhcnRWZXJ0aWNhbCgxLCBjYWxjdWxhdGVJdGVtUG9zaXRpb24sIGxhc3RNb3VzZSk7XHJcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WSA+IGUuY2xpZW50WSAmJiBvZmZzZXRUb3AgPiAwICYmIGVsZW1Ub3BPZmZzZXQgPCBzY3JvbGxTZW5zaXRpdml0eSkge1xyXG4gICAgY2FuY2VsUygpO1xyXG4gICAgaWYgKChyZXNpemVFdmVudCAmJiByZXNpemVFdmVudFR5cGUgJiYgIXJlc2l6ZUV2ZW50VHlwZS5uKSB8fCBpbnRlcnZhbE4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaW50ZXJ2YWxOID0gc3RhcnRWZXJ0aWNhbCgtMSwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uLCBsYXN0TW91c2UpO1xyXG4gIH0gZWxzZSBpZiAobGFzdE1vdXNlLmNsaWVudFkgIT09IGUuY2xpZW50WSkge1xyXG4gICAgY2FuY2VsVmVydGljYWwoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVsZW1SaWdodE9mZnNldCA9IG9mZnNldExlZnQgKyBvZmZzZXRXaWR0aCAtIGxlZnQgLSB3aWR0aDtcclxuICBjb25zdCBlbGVtTGVmdE9mZnNldCA9IGxlZnQgLSBvZmZzZXRMZWZ0O1xyXG4gIGlmIChsYXN0TW91c2UuY2xpZW50WCA8IGUuY2xpZW50WCAmJiBlbGVtUmlnaHRPZmZzZXQgPD0gc2Nyb2xsU2Vuc2l0aXZpdHkpIHtcclxuICAgIGNhbmNlbFcoKTtcclxuICAgIGlmICgocmVzaXplRXZlbnQgJiYgcmVzaXplRXZlbnRUeXBlICYmICFyZXNpemVFdmVudFR5cGUuZSkgfHwgaW50ZXJ2YWxFKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGludGVydmFsRSA9IHN0YXJ0SG9yaXpvbnRhbCgxLCBjYWxjdWxhdGVJdGVtUG9zaXRpb24sIGxhc3RNb3VzZSk7XHJcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WCA+IGUuY2xpZW50WCAmJiBvZmZzZXRMZWZ0ID4gMCAmJiBlbGVtTGVmdE9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XHJcbiAgICBjYW5jZWxFKCk7XHJcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLncpIHx8IGludGVydmFsVykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpbnRlcnZhbFcgPSBzdGFydEhvcml6b250YWwoLTEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcclxuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRYICE9PSBlLmNsaWVudFgpIHtcclxuICAgIGNhbmNlbEhvcml6b250YWwoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHN0YXJ0VmVydGljYWwoc2lnbjogbnVtYmVyLCBjYWxjdWxhdGVJdGVtUG9zaXRpb246IEZ1bmN0aW9uLCBsYXN0TW91c2U6IGFueSk6IGFueSB7XHJcbiAgbGV0IGNsaWVudFkgPSBsYXN0TW91c2UuY2xpZW50WTtcclxuICByZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgaWYgKCFncmlkc3RlckVsZW1lbnQgfHwgc2lnbiA9PT0gLTEgJiYgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbFRvcCAtIHNjcm9sbFNwZWVkIDwgMCkge1xyXG4gICAgICBjYW5jZWxWZXJ0aWNhbCgpO1xyXG4gICAgfVxyXG4gICAgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbFRvcCArPSBzaWduICogc2Nyb2xsU3BlZWQ7XHJcbiAgICBjbGllbnRZICs9IHNpZ24gKiBzY3JvbGxTcGVlZDtcclxuICAgIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbih7Y2xpZW50WDogbGFzdE1vdXNlLmNsaWVudFgsIGNsaWVudFk6IGNsaWVudFl9KTtcclxuICB9LCBpbnRlcnZhbER1cmF0aW9uKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc3RhcnRIb3Jpem9udGFsKHNpZ246IG51bWJlciwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uOiBGdW5jdGlvbiwgbGFzdE1vdXNlOiBhbnkpOiBhbnkge1xyXG4gIGxldCBjbGllbnRYID0gbGFzdE1vdXNlLmNsaWVudFg7XHJcbiAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcclxuICAgIGlmICghZ3JpZHN0ZXJFbGVtZW50IHx8IHNpZ24gPT09IC0xICYmIGdyaWRzdGVyRWxlbWVudC5zY3JvbGxMZWZ0IC0gc2Nyb2xsU3BlZWQgPCAwKSB7XHJcbiAgICAgIGNhbmNlbEhvcml6b250YWwoKTtcclxuICAgIH1cclxuICAgIGdyaWRzdGVyRWxlbWVudC5zY3JvbGxMZWZ0ICs9IHNpZ24gKiBzY3JvbGxTcGVlZDtcclxuICAgIGNsaWVudFggKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xyXG4gICAgY2FsY3VsYXRlSXRlbVBvc2l0aW9uKHtjbGllbnRYOiBjbGllbnRYLCBjbGllbnRZOiBsYXN0TW91c2UuY2xpZW50WX0pO1xyXG4gIH0sIGludGVydmFsRHVyYXRpb24pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FuY2VsU2Nyb2xsKCkge1xyXG4gIGNhbmNlbEhvcml6b250YWwoKTtcclxuICBjYW5jZWxWZXJ0aWNhbCgpO1xyXG4gIGdyaWRzdGVyRWxlbWVudCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FuY2VsSG9yaXpvbnRhbCgpIHtcclxuICBjYW5jZWxFKCk7XHJcbiAgY2FuY2VsVygpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxWZXJ0aWNhbCgpIHtcclxuICBjYW5jZWxOKCk7XHJcbiAgY2FuY2VsUygpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxFKCkge1xyXG4gIGlmIChpbnRlcnZhbEUpIHtcclxuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxFKTtcclxuICAgIGludGVydmFsRSA9IDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxXKCkge1xyXG4gIGlmIChpbnRlcnZhbFcpIHtcclxuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxXKTtcclxuICAgIGludGVydmFsVyA9IDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxTKCkge1xyXG4gIGlmIChpbnRlcnZhbFMpIHtcclxuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxTKTtcclxuICAgIGludGVydmFsUyA9IDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxOKCkge1xyXG4gIGlmIChpbnRlcnZhbE4pIHtcclxuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxOKTtcclxuICAgIGludGVydmFsTiA9IDA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /** @type {?} */
6
+ let scrollSensitivity;
7
+ /** @type {?} */
8
+ let scrollSpeed;
9
+ /** @type {?} */
10
+ const intervalDuration = 50;
11
+ /** @type {?} */
12
+ let gridsterElement;
13
+ /** @type {?} */
14
+ let resizeEvent;
15
+ /** @type {?} */
16
+ let resizeEventType;
17
+ /** @type {?} */
18
+ let intervalE;
19
+ /** @type {?} */
20
+ let intervalW;
21
+ /** @type {?} */
22
+ let intervalN;
23
+ /** @type {?} */
24
+ let intervalS;
25
+ /**
26
+ * @param {?} gridster
27
+ * @param {?} left
28
+ * @param {?} top
29
+ * @param {?} width
30
+ * @param {?} height
31
+ * @param {?} e
32
+ * @param {?} lastMouse
33
+ * @param {?} calculateItemPosition
34
+ * @param {?=} resize
35
+ * @param {?=} resizeEventScrollType
36
+ * @return {?}
37
+ */
38
+ export function scroll(gridster, left, top, width, height, e, lastMouse, calculateItemPosition, resize, resizeEventScrollType) {
39
+ scrollSensitivity = gridster.$options.scrollSensitivity;
40
+ scrollSpeed = gridster.$options.scrollSpeed;
41
+ gridsterElement = gridster.el;
42
+ resizeEvent = resize;
43
+ resizeEventType = resizeEventScrollType;
44
+ /** @type {?} */
45
+ const offsetWidth = gridsterElement.offsetWidth;
46
+ /** @type {?} */
47
+ const offsetHeight = gridsterElement.offsetHeight;
48
+ /** @type {?} */
49
+ const offsetLeft = gridsterElement.scrollLeft;
50
+ /** @type {?} */
51
+ const offsetTop = gridsterElement.scrollTop;
52
+ /** @type {?} */
53
+ const elemTopOffset = top - offsetTop;
54
+ /** @type {?} */
55
+ const elemBottomOffset = offsetHeight + offsetTop - top - height;
56
+ if (lastMouse.clientY < e.clientY && elemBottomOffset < scrollSensitivity) {
57
+ cancelN();
58
+ if ((resizeEvent && resizeEventType && !resizeEventType.s) || intervalS) {
59
+ return;
60
+ }
61
+ intervalS = startVertical(1, calculateItemPosition, lastMouse);
62
+ }
63
+ else if (lastMouse.clientY > e.clientY && offsetTop > 0 && elemTopOffset < scrollSensitivity) {
64
+ cancelS();
65
+ if ((resizeEvent && resizeEventType && !resizeEventType.n) || intervalN) {
66
+ return;
67
+ }
68
+ intervalN = startVertical(-1, calculateItemPosition, lastMouse);
69
+ }
70
+ else if (lastMouse.clientY !== e.clientY) {
71
+ cancelVertical();
72
+ }
73
+ /** @type {?} */
74
+ const elemRightOffset = offsetLeft + offsetWidth - left - width;
75
+ /** @type {?} */
76
+ const elemLeftOffset = left - offsetLeft;
77
+ if (lastMouse.clientX < e.clientX && elemRightOffset <= scrollSensitivity) {
78
+ cancelW();
79
+ if ((resizeEvent && resizeEventType && !resizeEventType.e) || intervalE) {
80
+ return;
81
+ }
82
+ intervalE = startHorizontal(1, calculateItemPosition, lastMouse);
83
+ }
84
+ else if (lastMouse.clientX > e.clientX && offsetLeft > 0 && elemLeftOffset < scrollSensitivity) {
85
+ cancelE();
86
+ if ((resizeEvent && resizeEventType && !resizeEventType.w) || intervalW) {
87
+ return;
88
+ }
89
+ intervalW = startHorizontal(-1, calculateItemPosition, lastMouse);
90
+ }
91
+ else if (lastMouse.clientX !== e.clientX) {
92
+ cancelHorizontal();
93
+ }
94
+ }
95
+ /**
96
+ * @param {?} sign
97
+ * @param {?} calculateItemPosition
98
+ * @param {?} lastMouse
99
+ * @return {?}
100
+ */
101
+ function startVertical(sign, calculateItemPosition, lastMouse) {
102
+ /** @type {?} */
103
+ let clientY = lastMouse.clientY;
104
+ return setInterval((/**
105
+ * @return {?}
106
+ */
107
+ () => {
108
+ if (!gridsterElement || sign === -1 && gridsterElement.scrollTop - scrollSpeed < 0) {
109
+ cancelVertical();
110
+ }
111
+ gridsterElement.scrollTop += sign * scrollSpeed;
112
+ clientY += sign * scrollSpeed;
113
+ calculateItemPosition({ clientX: lastMouse.clientX, clientY: clientY });
114
+ }), intervalDuration);
115
+ }
116
+ /**
117
+ * @param {?} sign
118
+ * @param {?} calculateItemPosition
119
+ * @param {?} lastMouse
120
+ * @return {?}
121
+ */
122
+ function startHorizontal(sign, calculateItemPosition, lastMouse) {
123
+ /** @type {?} */
124
+ let clientX = lastMouse.clientX;
125
+ return setInterval((/**
126
+ * @return {?}
127
+ */
128
+ () => {
129
+ if (!gridsterElement || sign === -1 && gridsterElement.scrollLeft - scrollSpeed < 0) {
130
+ cancelHorizontal();
131
+ }
132
+ gridsterElement.scrollLeft += sign * scrollSpeed;
133
+ clientX += sign * scrollSpeed;
134
+ calculateItemPosition({ clientX: clientX, clientY: lastMouse.clientY });
135
+ }), intervalDuration);
136
+ }
137
+ /**
138
+ * @return {?}
139
+ */
140
+ export function cancelScroll() {
141
+ cancelHorizontal();
142
+ cancelVertical();
143
+ gridsterElement = undefined;
144
+ }
145
+ /**
146
+ * @return {?}
147
+ */
148
+ function cancelHorizontal() {
149
+ cancelE();
150
+ cancelW();
151
+ }
152
+ /**
153
+ * @return {?}
154
+ */
155
+ function cancelVertical() {
156
+ cancelN();
157
+ cancelS();
158
+ }
159
+ /**
160
+ * @return {?}
161
+ */
162
+ function cancelE() {
163
+ if (intervalE) {
164
+ clearInterval(intervalE);
165
+ intervalE = 0;
166
+ }
167
+ }
168
+ /**
169
+ * @return {?}
170
+ */
171
+ function cancelW() {
172
+ if (intervalW) {
173
+ clearInterval(intervalW);
174
+ intervalW = 0;
175
+ }
176
+ }
177
+ /**
178
+ * @return {?}
179
+ */
180
+ function cancelS() {
181
+ if (intervalS) {
182
+ clearInterval(intervalS);
183
+ intervalS = 0;
184
+ }
185
+ }
186
+ /**
187
+ * @return {?}
188
+ */
189
+ function cancelN() {
190
+ if (intervalN) {
191
+ clearInterval(intervalN);
192
+ intervalN = 0;
193
+ }
194
+ }
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyU2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7SUFHSSxpQkFBeUI7O0lBQ3pCLFdBQW1COztNQUNqQixnQkFBZ0IsR0FBRyxFQUFFOztJQUN2QixlQUFvQjs7SUFDcEIsV0FBZ0M7O0lBQ2hDLGVBQW9EOztJQUNwRCxTQUFpQjs7SUFDakIsU0FBaUI7O0lBQ2pCLFNBQWlCOztJQUNqQixTQUFpQjs7Ozs7Ozs7Ozs7Ozs7QUFFckIsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFDOUYsQ0FBYSxFQUFFLFNBQWMsRUFDN0IscUJBQStCLEVBQUUsTUFBZ0IsRUFBRSxxQkFBK0M7SUFDdkgsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUNyQixlQUFlLEdBQUcscUJBQXFCLENBQUM7O1VBRWxDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVzs7VUFDekMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZOztVQUMzQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFVBQVU7O1VBQ3ZDLFNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUzs7VUFDckMsYUFBYSxHQUFHLEdBQUcsR0FBRyxTQUFTOztVQUMvQixnQkFBZ0IsR0FBRyxZQUFZLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxNQUFNO0lBQ2hFLElBQUksU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFD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QixTQUFTLEdBQUcsQ0FBQyxDQUFDO0tBQ2Y7QUFDSCxDQUFDOzs7O0FBRUQsU0FBUyxPQUFPO0lBQ2QsSUFBSSxTQUFTLEVBQUU7UUFDYixhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekIsU0FBUyxHQUFHLENBQUMsQ0FBQztLQUNmO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZHN0ZXJSZXNpemVFdmVudFR5cGV9IGZyb20gJy4vZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlJztcbmltcG9ydCB7R3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2V9IGZyb20gJy4vZ3JpZHN0ZXIuaW50ZXJmYWNlJztcblxubGV0IHNjcm9sbFNlbnNpdGl2aXR5OiBudW1iZXI7XG5sZXQgc2Nyb2xsU3BlZWQ6IG51bWJlcjtcbmNvbnN0IGludGVydmFsRHVyYXRpb24gPSA1MDtcbmxldCBncmlkc3RlckVsZW1lbnQ6IGFueTtcbmxldCByZXNpemVFdmVudDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbmxldCByZXNpemVFdmVudFR5cGU6IEdyaWRzdGVyUmVzaXplRXZlbnRUeXBlIHwgdW5kZWZpbmVkO1xubGV0IGludGVydmFsRTogbnVtYmVyO1xubGV0IGludGVydmFsVzogbnVtYmVyO1xubGV0IGludGVydmFsTjogbnVtYmVyO1xubGV0IGludGVydmFsUzogbnVtYmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsKGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSwgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgIGU6IE1vdXNlRXZlbnQsIGxhc3RNb3VzZTogYW55LFxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVJdGVtUG9zaXRpb246IEZ1bmN0aW9uLCByZXNpemU/OiBib29sZWFuLCByZXNpemVFdmVudFNjcm9sbFR5cGU/OiBHcmlkc3RlclJlc2l6ZUV2ZW50VHlwZSkge1xuICBzY3JvbGxTZW5zaXRpdml0eSA9IGdyaWRzdGVyLiRvcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5O1xuICBzY3JvbGxTcGVlZCA9IGdyaWRzdGVyLiRvcHRpb25zLnNjcm9sbFNwZWVkO1xuICBncmlkc3RlckVsZW1lbnQgPSBncmlkc3Rlci5lbDtcbiAgcmVzaXplRXZlbnQgPSByZXNpemU7XG4gIHJlc2l6ZUV2ZW50VHlwZSA9IHJlc2l6ZUV2ZW50U2Nyb2xsVHlwZTtcblxuICBjb25zdCBvZmZzZXRXaWR0aCA9IGdyaWRzdGVyRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gZ3JpZHN0ZXJFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgY29uc3Qgb2Zmc2V0TGVmdCA9IGdyaWRzdGVyRWxlbWVudC5zY3JvbGxMZWZ0O1xuICBjb25zdCBvZmZzZXRUb3AgPSBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wO1xuICBjb25zdCBlbGVtVG9wT2Zmc2V0ID0gdG9wIC0gb2Zmc2V0VG9wO1xuICBjb25zdCBlbGVtQm90dG9tT2Zmc2V0ID0gb2Zmc2V0SGVpZ2h0ICsgb2Zmc2V0VG9wIC0gdG9wIC0gaGVpZ2h0O1xuICBpZiAobGFzdE1vdXNlLmNsaWVudFkgPCBlLmNsaWVudFkgJiYgZWxlbUJvdHRvbU9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XG4gICAgY2FuY2VsTigpO1xuICAgIGlmICgocmVzaXplRXZlbnQgJiYgcmVzaXplRXZlbnRUeXBlICYmICFyZXNpemVFdmVudFR5cGUucykgfHwgaW50ZXJ2YWxTKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGludGVydmFsUyA9IHN0YXJ0VmVydGljYWwoMSwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uLCBsYXN0TW91c2UpO1xuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRZID4gZS5jbGllbnRZICYmIG9mZnNldFRvcCA+IDAgJiYgZWxlbVRvcE9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XG4gICAgY2FuY2VsUygpO1xuICAgIGlmICgocmVzaXplRXZlbnQgJiYgcmVzaXplRXZlbnRUeXBlICYmICFyZXNpemVFdmVudFR5cGUubikgfHwgaW50ZXJ2YWxOKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGludGVydmFsTiA9IHN0YXJ0VmVydGljYWwoLTEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WSAhPT0gZS5jbGllbnRZKSB7XG4gICAgY2FuY2VsVmVydGljYWwoKTtcbiAgfVxuXG4gIGNvbnN0IGVsZW1SaWdodE9mZnNldCA9IG9mZnNldExlZnQgKyBvZmZzZXRXaWR0aCAtIGxlZnQgLSB3aWR0aDtcbiAgY29uc3QgZWxlbUxlZnRPZmZzZXQgPSBsZWZ0IC0gb2Zmc2V0TGVmdDtcbiAgaWYgKGxhc3RNb3VzZS5jbGllbnRYIDwgZS5jbGllbnRYICYmIGVsZW1SaWdodE9mZnNldCA8PSBzY3JvbGxTZW5zaXRpdml0eSkge1xuICAgIGNhbmNlbFcoKTtcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLmUpIHx8IGludGVydmFsRSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbnRlcnZhbEUgPSBzdGFydEhvcml6b250YWwoMSwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uLCBsYXN0TW91c2UpO1xuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRYID4gZS5jbGllbnRYICYmIG9mZnNldExlZnQgPiAwICYmIGVsZW1MZWZ0T2Zmc2V0IDwgc2Nyb2xsU2Vuc2l0aXZpdHkpIHtcbiAgICBjYW5jZWxFKCk7XG4gICAgaWYgKChyZXNpemVFdmVudCAmJiByZXNpemVFdmVudFR5cGUgJiYgIXJlc2l6ZUV2ZW50VHlwZS53KSB8fCBpbnRlcnZhbFcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaW50ZXJ2YWxXID0gc3RhcnRIb3Jpem9udGFsKC0xLCBjYWxjdWxhdGVJdGVtUG9zaXRpb24sIGxhc3RNb3VzZSk7XG4gIH0gZWxzZSBpZiAobGFzdE1vdXNlLmNsaWVudFggIT09IGUuY2xpZW50WCkge1xuICAgIGNhbmNlbEhvcml6b250YWwoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdGFydFZlcnRpY2FsKHNpZ246IG51bWJlciwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uOiBGdW5jdGlvbiwgbGFzdE1vdXNlOiBhbnkpOiBhbnkge1xuICBsZXQgY2xpZW50WSA9IGxhc3RNb3VzZS5jbGllbnRZO1xuICByZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgIGlmICghZ3JpZHN0ZXJFbGVtZW50IHx8IHNpZ24gPT09IC0xICYmIGdyaWRzdGVyRWxlbWVudC5zY3JvbGxUb3AgLSBzY3JvbGxTcGVlZCA8IDApIHtcbiAgICAgIGNhbmNlbFZlcnRpY2FsKCk7XG4gICAgfVxuICAgIGdyaWRzdGVyRWxlbWVudC5zY3JvbGxUb3AgKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xuICAgIGNsaWVudFkgKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xuICAgIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbih7Y2xpZW50WDogbGFzdE1vdXNlLmNsaWVudFgsIGNsaWVudFk6IGNsaWVudFl9KTtcbiAgfSwgaW50ZXJ2YWxEdXJhdGlvbik7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0SG9yaXpvbnRhbChzaWduOiBudW1iZXIsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbjogRnVuY3Rpb24sIGxhc3RNb3VzZTogYW55KTogYW55IHtcbiAgbGV0IGNsaWVudFggPSBsYXN0TW91c2UuY2xpZW50WDtcbiAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcbiAgICBpZiAoIWdyaWRzdGVyRWxlbWVudCB8fCBzaWduID09PSAtMSAmJiBncmlkc3RlckVsZW1lbnQuc2Nyb2xsTGVmdCAtIHNjcm9sbFNwZWVkIDwgMCkge1xuICAgICAgY2FuY2VsSG9yaXpvbnRhbCgpO1xuICAgIH1cbiAgICBncmlkc3RlckVsZW1lbnQuc2Nyb2xsTGVmdCArPSBzaWduICogc2Nyb2xsU3BlZWQ7XG4gICAgY2xpZW50WCArPSBzaWduICogc2Nyb2xsU3BlZWQ7XG4gICAgY2FsY3VsYXRlSXRlbVBvc2l0aW9uKHtjbGllbnRYOiBjbGllbnRYLCBjbGllbnRZOiBsYXN0TW91c2UuY2xpZW50WX0pO1xuICB9LCBpbnRlcnZhbER1cmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbmNlbFNjcm9sbCgpIHtcbiAgY2FuY2VsSG9yaXpvbnRhbCgpO1xuICBjYW5jZWxWZXJ0aWNhbCgpO1xuICBncmlkc3RlckVsZW1lbnQgPSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNhbmNlbEhvcml6b250YWwoKSB7XG4gIGNhbmNlbEUoKTtcbiAgY2FuY2VsVygpO1xufVxuXG5mdW5jdGlvbiBjYW5jZWxWZXJ0aWNhbCgpIHtcbiAgY2FuY2VsTigpO1xuICBjYW5jZWxTKCk7XG59XG5cbmZ1bmN0aW9uIGNhbmNlbEUoKSB7XG4gIGlmIChpbnRlcnZhbEUpIHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsRSk7XG4gICAgaW50ZXJ2YWxFID0gMDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW5jZWxXKCkge1xuICBpZiAoaW50ZXJ2YWxXKSB7XG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFcpO1xuICAgIGludGVydmFsVyA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FuY2VsUygpIHtcbiAgaWYgKGludGVydmFsUykge1xuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxTKTtcbiAgICBpbnRlcnZhbFMgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbmNlbE4oKSB7XG4gIGlmIChpbnRlcnZhbE4pIHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsTik7XG4gICAgaW50ZXJ2YWxOID0gMDtcbiAgfVxufVxuIl19