@schneideress/dashboardframework 0.0.78 → 0.0.80

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 +7061 -7033
  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 +19 -18
  7. package/esm2015/gridster/lib/gridster.component.js +701 -700
  8. package/esm2015/gridster/lib/gridster.interface.js +85 -84
  9. package/esm2015/gridster/lib/gridster.module.js +28 -27
  10. package/esm2015/gridster/lib/gridsterCompact.service.js +224 -223
  11. package/esm2015/gridster/lib/gridsterConfig.constant.js +180 -179
  12. package/esm2015/gridster/lib/gridsterConfig.interface.js +220 -219
  13. package/esm2015/gridster/lib/gridsterConfigS.interface.js +162 -161
  14. package/esm2015/gridster/lib/gridsterDraggable.service.js +511 -510
  15. package/esm2015/gridster/lib/gridsterEmptyCell.service.js +318 -317
  16. package/esm2015/gridster/lib/gridsterItem.component.js +214 -213
  17. package/esm2015/gridster/lib/gridsterItem.interface.js +47 -46
  18. package/esm2015/gridster/lib/gridsterItemComponent.interface.js +49 -48
  19. package/esm2015/gridster/lib/gridsterPreview.component.js +67 -66
  20. package/esm2015/gridster/lib/gridsterPush.service.js +468 -467
  21. package/esm2015/gridster/lib/gridsterPushResize.service.js +359 -358
  22. package/esm2015/gridster/lib/gridsterRenderer.service.js +278 -277
  23. package/esm2015/gridster/lib/gridsterResizable.service.js +553 -552
  24. package/esm2015/gridster/lib/gridsterResizeEventType.interface.js +20 -19
  25. package/esm2015/gridster/lib/gridsterScroll.service.js +196 -195
  26. package/esm2015/gridster/lib/gridsterSwap.service.js +135 -134
  27. package/esm2015/gridster/lib/gridsterUtils.service.js +138 -137
  28. package/esm2015/lib/custom.notifier.options.js +47 -46
  29. package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +497 -496
  30. package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +472 -471
  31. package/esm2015/lib/ra.base.dashboard.filter.js +76 -75
  32. package/esm2015/lib/ra.base.dashboard.template.js +72 -71
  33. package/esm2015/lib/ra.dashbard.event.bus.js +86 -85
  34. package/esm2015/lib/ra.dashboard.module.js +52 -51
  35. package/esm2015/lib/ra.dashboard.service.js +145 -144
  36. package/esm2015/lib/ra.event.enum.js +52 -51
  37. package/esm2015/lib/ra.gridster.config.js +68 -67
  38. package/esm2015/public-api.js +17 -16
  39. package/esm2015/schneideress-dashboardframework.js +15 -14
  40. package/esm5/gridster/index.js +19 -18
  41. package/esm5/gridster/lib/gridster.component.js +804 -803
  42. package/esm5/gridster/lib/gridster.interface.js +95 -94
  43. package/esm5/gridster/lib/gridster.module.js +32 -31
  44. package/esm5/gridster/lib/gridsterCompact.service.js +254 -253
  45. package/esm5/gridster/lib/gridsterConfig.constant.js +180 -179
  46. package/esm5/gridster/lib/gridsterConfig.interface.js +220 -219
  47. package/esm5/gridster/lib/gridsterConfigS.interface.js +162 -161
  48. package/esm5/gridster/lib/gridsterDraggable.service.js +550 -549
  49. package/esm5/gridster/lib/gridsterEmptyCell.service.js +359 -358
  50. package/esm5/gridster/lib/gridsterItem.component.js +239 -238
  51. package/esm5/gridster/lib/gridsterItem.interface.js +47 -46
  52. package/esm5/gridster/lib/gridsterItemComponent.interface.js +59 -58
  53. package/esm5/gridster/lib/gridsterPreview.component.js +71 -70
  54. package/esm5/gridster/lib/gridsterPush.service.js +548 -547
  55. package/esm5/gridster/lib/gridsterPushResize.service.js +424 -423
  56. package/esm5/gridster/lib/gridsterRenderer.service.js +324 -323
  57. package/esm5/gridster/lib/gridsterResizable.service.js +630 -629
  58. package/esm5/gridster/lib/gridsterResizeEventType.interface.js +20 -19
  59. package/esm5/gridster/lib/gridsterScroll.service.js +196 -195
  60. package/esm5/gridster/lib/gridsterSwap.service.js +153 -152
  61. package/esm5/gridster/lib/gridsterUtils.service.js +178 -177
  62. package/esm5/lib/custom.notifier.options.js +47 -46
  63. package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +589 -588
  64. package/esm5/lib/ra-widget-container/ra.widget.container.component.js +585 -584
  65. package/esm5/lib/ra.base.dashboard.filter.js +82 -81
  66. package/esm5/lib/ra.base.dashboard.template.js +75 -74
  67. package/esm5/lib/ra.dashbard.event.bus.js +126 -125
  68. package/esm5/lib/ra.dashboard.module.js +56 -55
  69. package/esm5/lib/ra.dashboard.service.js +222 -221
  70. package/esm5/lib/ra.event.enum.js +52 -51
  71. package/esm5/lib/ra.gridster.config.js +68 -67
  72. package/esm5/public-api.js +17 -16
  73. package/esm5/schneideress-dashboardframework.js +15 -14
  74. package/fesm2015/schneideress-dashboardframework.js +6147 -6117
  75. package/fesm2015/schneideress-dashboardframework.js.map +1 -1
  76. package/fesm5/schneideress-dashboardframework.js +7044 -7014
  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,20 @@
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
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: gridster/lib/gridsterResizeEventType.interface.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /**
7
+ * @record
8
+ */
9
+ export function GridsterResizeEventType() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ GridsterResizeEventType.prototype.n;
13
+ /** @type {?} */
14
+ GridsterResizeEventType.prototype.s;
15
+ /** @type {?} */
16
+ GridsterResizeEventType.prototype.w;
17
+ /** @type {?} */
18
+ GridsterResizeEventType.prototype.e;
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNjaG5laWRlcmVzcy9kYXNoYm9hcmRmcmFtZXdvcmsvIiwic291cmNlcyI6WyJncmlkc3Rlci9saWIvZ3JpZHN0ZXJSZXNpemVFdmVudFR5cGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsNkNBS0M7OztJQUpDLG9DQUFXOztJQUNYLG9DQUFXOztJQUNYLG9DQUFXOztJQUNYLG9DQUFXIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHcmlkc3RlclJlc2l6ZUV2ZW50VHlwZSB7XHJcbiAgbjogYm9vbGVhbjtcclxuICBzOiBib29sZWFuO1xyXG4gIHc6IGJvb2xlYW47XHJcbiAgZTogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,195 +1,196 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /** @type {?} */
6
- var scrollSensitivity;
7
- /** @type {?} */
8
- var scrollSpeed;
9
- /** @type {?} */
10
- var intervalDuration = 50;
11
- /** @type {?} */
12
- var gridsterElement;
13
- /** @type {?} */
14
- var resizeEvent;
15
- /** @type {?} */
16
- var resizeEventType;
17
- /** @type {?} */
18
- var intervalE;
19
- /** @type {?} */
20
- var intervalW;
21
- /** @type {?} */
22
- var intervalN;
23
- /** @type {?} */
24
- var 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
- var offsetWidth = gridsterElement.offsetWidth;
46
- /** @type {?} */
47
- var offsetHeight = gridsterElement.offsetHeight;
48
- /** @type {?} */
49
- var offsetLeft = gridsterElement.scrollLeft;
50
- /** @type {?} */
51
- var offsetTop = gridsterElement.scrollTop;
52
- /** @type {?} */
53
- var elemTopOffset = top - offsetTop;
54
- /** @type {?} */
55
- var 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
- var elemRightOffset = offsetLeft + offsetWidth - left - width;
75
- /** @type {?} */
76
- var 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
- var clientY = lastMouse.clientY;
104
- return setInterval((/**
105
- * @return {?}
106
- */
107
- function () {
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
- var clientX = lastMouse.clientX;
125
- return setInterval((/**
126
- * @return {?}
127
- */
128
- function () {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyU2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7SUFHSSxpQkFBeUI7O0lBQ3pCLFdBQW1COztJQUNqQixnQkFBZ0IsR0FBRyxFQUFFOztJQUN2QixlQUFvQjs7SUFDcEIsV0FBZ0M7O0lBQ2hDLGVBQW9EOztJQUNwRCxTQUFpQjs7SUFDakIsU0FBaUI7O0lBQ2pCLFNBQWlCOztJQUNqQixTQUFpQjs7Ozs7Ozs7Ozs7Ozs7QUFFckIsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFDOUYsQ0FBYSxFQUFFLFNBQWMsRUFDN0IscUJBQStCLEVBQUUsTUFBZ0IsRUFBRSxxQkFBK0M7SUFDdkgsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUNyQixlQUFlLEdBQUcscUJBQXFCLENBQUM7O1FBRWxDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVzs7UUFDekMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZOztRQUMzQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFVBQVU7O1FBQ3ZDLFNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUzs7UUFDckMsYUFBYSxHQUFHLEdBQUcsR0FBRyxTQUFTOztRQUMvQixnQkFBZ0IsR0FBRyxZQUFZLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxNQUFNO0lBQ2hFLElBQUksU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFD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QztLQUNmO0FBQ0gsQ0FBQzs7OztBQUVELFNBQVMsT0FBTztJQUNkLElBQUksU0FBUyxFQUFFO1FBQ2IsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pCLFNBQVMsR0FBRyxDQUFDLENBQUM7S0FDZjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyaWRzdGVyUmVzaXplRXZlbnRUeXBlfSBmcm9tICcuL2dyaWRzdGVyUmVzaXplRXZlbnRUeXBlLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XG5cbmxldCBzY3JvbGxTZW5zaXRpdml0eTogbnVtYmVyO1xubGV0IHNjcm9sbFNwZWVkOiBudW1iZXI7XG5jb25zdCBpbnRlcnZhbER1cmF0aW9uID0gNTA7XG5sZXQgZ3JpZHN0ZXJFbGVtZW50OiBhbnk7XG5sZXQgcmVzaXplRXZlbnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5sZXQgcmVzaXplRXZlbnRUeXBlOiBHcmlkc3RlclJlc2l6ZUV2ZW50VHlwZSB8IHVuZGVmaW5lZDtcbmxldCBpbnRlcnZhbEU6IG51bWJlcjtcbmxldCBpbnRlcnZhbFc6IG51bWJlcjtcbmxldCBpbnRlcnZhbE46IG51bWJlcjtcbmxldCBpbnRlcnZhbFM6IG51bWJlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbChncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UsIGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICBlOiBNb3VzZUV2ZW50LCBsYXN0TW91c2U6IGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlSXRlbVBvc2l0aW9uOiBGdW5jdGlvbiwgcmVzaXplPzogYm9vbGVhbiwgcmVzaXplRXZlbnRTY3JvbGxUeXBlPzogR3JpZHN0ZXJSZXNpemVFdmVudFR5cGUpIHtcbiAgc2Nyb2xsU2Vuc2l0aXZpdHkgPSBncmlkc3Rlci4kb3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eTtcbiAgc2Nyb2xsU3BlZWQgPSBncmlkc3Rlci4kb3B0aW9ucy5zY3JvbGxTcGVlZDtcbiAgZ3JpZHN0ZXJFbGVtZW50ID0gZ3JpZHN0ZXIuZWw7XG4gIHJlc2l6ZUV2ZW50ID0gcmVzaXplO1xuICByZXNpemVFdmVudFR5cGUgPSByZXNpemVFdmVudFNjcm9sbFR5cGU7XG5cbiAgY29uc3Qgb2Zmc2V0V2lkdGggPSBncmlkc3RlckVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIGNvbnN0IG9mZnNldEhlaWdodCA9IGdyaWRzdGVyRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gIGNvbnN0IG9mZnNldExlZnQgPSBncmlkc3RlckVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgY29uc3Qgb2Zmc2V0VG9wID0gZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbFRvcDtcbiAgY29uc3QgZWxlbVRvcE9mZnNldCA9IHRvcCAtIG9mZnNldFRvcDtcbiAgY29uc3QgZWxlbUJvdHRvbU9mZnNldCA9IG9mZnNldEhlaWdodCArIG9mZnNldFRvcCAtIHRvcCAtIGhlaWdodDtcbiAgaWYgKGxhc3RNb3VzZS5jbGllbnRZIDwgZS5jbGllbnRZICYmIGVsZW1Cb3R0b21PZmZzZXQgPCBzY3JvbGxTZW5zaXRpdml0eSkge1xuICAgIGNhbmNlbE4oKTtcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLnMpIHx8IGludGVydmFsUykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbnRlcnZhbFMgPSBzdGFydFZlcnRpY2FsKDEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WSA+IGUuY2xpZW50WSAmJiBvZmZzZXRUb3AgPiAwICYmIGVsZW1Ub3BPZmZzZXQgPCBzY3JvbGxTZW5zaXRpdml0eSkge1xuICAgIGNhbmNlbFMoKTtcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLm4pIHx8IGludGVydmFsTikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbnRlcnZhbE4gPSBzdGFydFZlcnRpY2FsKC0xLCBjYWxjdWxhdGVJdGVtUG9zaXRpb24sIGxhc3RNb3VzZSk7XG4gIH0gZWxzZSBpZiAobGFzdE1vdXNlLmNsaWVudFkgIT09IGUuY2xpZW50WSkge1xuICAgIGNhbmNlbFZlcnRpY2FsKCk7XG4gIH1cblxuICBjb25zdCBlbGVtUmlnaHRPZmZzZXQgPSBvZmZzZXRMZWZ0ICsgb2Zmc2V0V2lkdGggLSBsZWZ0IC0gd2lkdGg7XG4gIGNvbnN0IGVsZW1MZWZ0T2Zmc2V0ID0gbGVmdCAtIG9mZnNldExlZnQ7XG4gIGlmIChsYXN0TW91c2UuY2xpZW50WCA8IGUuY2xpZW50WCAmJiBlbGVtUmlnaHRPZmZzZXQgPD0gc2Nyb2xsU2Vuc2l0aXZpdHkpIHtcbiAgICBjYW5jZWxXKCk7XG4gICAgaWYgKChyZXNpemVFdmVudCAmJiByZXNpemVFdmVudFR5cGUgJiYgIXJlc2l6ZUV2ZW50VHlwZS5lKSB8fCBpbnRlcnZhbEUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaW50ZXJ2YWxFID0gc3RhcnRIb3Jpem9udGFsKDEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WCA+IGUuY2xpZW50WCAmJiBvZmZzZXRMZWZ0ID4gMCAmJiBlbGVtTGVmdE9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XG4gICAgY2FuY2VsRSgpO1xuICAgIGlmICgocmVzaXplRXZlbnQgJiYgcmVzaXplRXZlbnRUeXBlICYmICFyZXNpemVFdmVudFR5cGUudykgfHwgaW50ZXJ2YWxXKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGludGVydmFsVyA9IHN0YXJ0SG9yaXpvbnRhbCgtMSwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uLCBsYXN0TW91c2UpO1xuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRYICE9PSBlLmNsaWVudFgpIHtcbiAgICBjYW5jZWxIb3Jpem9udGFsKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RhcnRWZXJ0aWNhbChzaWduOiBudW1iZXIsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbjogRnVuY3Rpb24sIGxhc3RNb3VzZTogYW55KTogYW55IHtcbiAgbGV0IGNsaWVudFkgPSBsYXN0TW91c2UuY2xpZW50WTtcbiAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcbiAgICBpZiAoIWdyaWRzdGVyRWxlbWVudCB8fCBzaWduID09PSAtMSAmJiBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wIC0gc2Nyb2xsU3BlZWQgPCAwKSB7XG4gICAgICBjYW5jZWxWZXJ0aWNhbCgpO1xuICAgIH1cbiAgICBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wICs9IHNpZ24gKiBzY3JvbGxTcGVlZDtcbiAgICBjbGllbnRZICs9IHNpZ24gKiBzY3JvbGxTcGVlZDtcbiAgICBjYWxjdWxhdGVJdGVtUG9zaXRpb24oe2NsaWVudFg6IGxhc3RNb3VzZS5jbGllbnRYLCBjbGllbnRZOiBjbGllbnRZfSk7XG4gIH0sIGludGVydmFsRHVyYXRpb24pO1xufVxuXG5mdW5jdGlvbiBzdGFydEhvcml6b250YWwoc2lnbjogbnVtYmVyLCBjYWxjdWxhdGVJdGVtUG9zaXRpb246IEZ1bmN0aW9uLCBsYXN0TW91c2U6IGFueSk6IGFueSB7XG4gIGxldCBjbGllbnRYID0gbGFzdE1vdXNlLmNsaWVudFg7XG4gIHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgaWYgKCFncmlkc3RlckVsZW1lbnQgfHwgc2lnbiA9PT0gLTEgJiYgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbExlZnQgLSBzY3JvbGxTcGVlZCA8IDApIHtcbiAgICAgIGNhbmNlbEhvcml6b250YWwoKTtcbiAgICB9XG4gICAgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbExlZnQgKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xuICAgIGNsaWVudFggKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xuICAgIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbih7Y2xpZW50WDogY2xpZW50WCwgY2xpZW50WTogbGFzdE1vdXNlLmNsaWVudFl9KTtcbiAgfSwgaW50ZXJ2YWxEdXJhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxTY3JvbGwoKSB7XG4gIGNhbmNlbEhvcml6b250YWwoKTtcbiAgY2FuY2VsVmVydGljYWwoKTtcbiAgZ3JpZHN0ZXJFbGVtZW50ID0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjYW5jZWxIb3Jpem9udGFsKCkge1xuICBjYW5jZWxFKCk7XG4gIGNhbmNlbFcoKTtcbn1cblxuZnVuY3Rpb24gY2FuY2VsVmVydGljYWwoKSB7XG4gIGNhbmNlbE4oKTtcbiAgY2FuY2VsUygpO1xufVxuXG5mdW5jdGlvbiBjYW5jZWxFKCkge1xuICBpZiAoaW50ZXJ2YWxFKSB7XG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEUpO1xuICAgIGludGVydmFsRSA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FuY2VsVygpIHtcbiAgaWYgKGludGVydmFsVykge1xuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxXKTtcbiAgICBpbnRlcnZhbFcgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbmNlbFMoKSB7XG4gIGlmIChpbnRlcnZhbFMpIHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsUyk7XG4gICAgaW50ZXJ2YWxTID0gMDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW5jZWxOKCkge1xuICBpZiAoaW50ZXJ2YWxOKSB7XG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbE4pO1xuICAgIGludGVydmFsTiA9IDA7XG4gIH1cbn1cbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: gridster/lib/gridsterScroll.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ /** @type {?} */
7
+ var scrollSensitivity;
8
+ /** @type {?} */
9
+ var scrollSpeed;
10
+ /** @type {?} */
11
+ var intervalDuration = 50;
12
+ /** @type {?} */
13
+ var gridsterElement;
14
+ /** @type {?} */
15
+ var resizeEvent;
16
+ /** @type {?} */
17
+ var resizeEventType;
18
+ /** @type {?} */
19
+ var intervalE;
20
+ /** @type {?} */
21
+ var intervalW;
22
+ /** @type {?} */
23
+ var intervalN;
24
+ /** @type {?} */
25
+ var intervalS;
26
+ /**
27
+ * @param {?} gridster
28
+ * @param {?} left
29
+ * @param {?} top
30
+ * @param {?} width
31
+ * @param {?} height
32
+ * @param {?} e
33
+ * @param {?} lastMouse
34
+ * @param {?} calculateItemPosition
35
+ * @param {?=} resize
36
+ * @param {?=} resizeEventScrollType
37
+ * @return {?}
38
+ */
39
+ export function scroll(gridster, left, top, width, height, e, lastMouse, calculateItemPosition, resize, resizeEventScrollType) {
40
+ scrollSensitivity = gridster.$options.scrollSensitivity;
41
+ scrollSpeed = gridster.$options.scrollSpeed;
42
+ gridsterElement = gridster.el;
43
+ resizeEvent = resize;
44
+ resizeEventType = resizeEventScrollType;
45
+ /** @type {?} */
46
+ var offsetWidth = gridsterElement.offsetWidth;
47
+ /** @type {?} */
48
+ var offsetHeight = gridsterElement.offsetHeight;
49
+ /** @type {?} */
50
+ var offsetLeft = gridsterElement.scrollLeft;
51
+ /** @type {?} */
52
+ var offsetTop = gridsterElement.scrollTop;
53
+ /** @type {?} */
54
+ var elemTopOffset = top - offsetTop;
55
+ /** @type {?} */
56
+ var elemBottomOffset = offsetHeight + offsetTop - top - height;
57
+ if (lastMouse.clientY < e.clientY && elemBottomOffset < scrollSensitivity) {
58
+ cancelN();
59
+ if ((resizeEvent && resizeEventType && !resizeEventType.s) || intervalS) {
60
+ return;
61
+ }
62
+ intervalS = startVertical(1, calculateItemPosition, lastMouse);
63
+ }
64
+ else if (lastMouse.clientY > e.clientY && offsetTop > 0 && elemTopOffset < scrollSensitivity) {
65
+ cancelS();
66
+ if ((resizeEvent && resizeEventType && !resizeEventType.n) || intervalN) {
67
+ return;
68
+ }
69
+ intervalN = startVertical(-1, calculateItemPosition, lastMouse);
70
+ }
71
+ else if (lastMouse.clientY !== e.clientY) {
72
+ cancelVertical();
73
+ }
74
+ /** @type {?} */
75
+ var elemRightOffset = offsetLeft + offsetWidth - left - width;
76
+ /** @type {?} */
77
+ var elemLeftOffset = left - offsetLeft;
78
+ if (lastMouse.clientX < e.clientX && elemRightOffset <= scrollSensitivity) {
79
+ cancelW();
80
+ if ((resizeEvent && resizeEventType && !resizeEventType.e) || intervalE) {
81
+ return;
82
+ }
83
+ intervalE = startHorizontal(1, calculateItemPosition, lastMouse);
84
+ }
85
+ else if (lastMouse.clientX > e.clientX && offsetLeft > 0 && elemLeftOffset < scrollSensitivity) {
86
+ cancelE();
87
+ if ((resizeEvent && resizeEventType && !resizeEventType.w) || intervalW) {
88
+ return;
89
+ }
90
+ intervalW = startHorizontal(-1, calculateItemPosition, lastMouse);
91
+ }
92
+ else if (lastMouse.clientX !== e.clientX) {
93
+ cancelHorizontal();
94
+ }
95
+ }
96
+ /**
97
+ * @param {?} sign
98
+ * @param {?} calculateItemPosition
99
+ * @param {?} lastMouse
100
+ * @return {?}
101
+ */
102
+ function startVertical(sign, calculateItemPosition, lastMouse) {
103
+ /** @type {?} */
104
+ var clientY = lastMouse.clientY;
105
+ return setInterval((/**
106
+ * @return {?}
107
+ */
108
+ function () {
109
+ if (!gridsterElement || sign === -1 && gridsterElement.scrollTop - scrollSpeed < 0) {
110
+ cancelVertical();
111
+ }
112
+ gridsterElement.scrollTop += sign * scrollSpeed;
113
+ clientY += sign * scrollSpeed;
114
+ calculateItemPosition({ clientX: lastMouse.clientX, clientY: clientY });
115
+ }), intervalDuration);
116
+ }
117
+ /**
118
+ * @param {?} sign
119
+ * @param {?} calculateItemPosition
120
+ * @param {?} lastMouse
121
+ * @return {?}
122
+ */
123
+ function startHorizontal(sign, calculateItemPosition, lastMouse) {
124
+ /** @type {?} */
125
+ var clientX = lastMouse.clientX;
126
+ return setInterval((/**
127
+ * @return {?}
128
+ */
129
+ function () {
130
+ if (!gridsterElement || sign === -1 && gridsterElement.scrollLeft - scrollSpeed < 0) {
131
+ cancelHorizontal();
132
+ }
133
+ gridsterElement.scrollLeft += sign * scrollSpeed;
134
+ clientX += sign * scrollSpeed;
135
+ calculateItemPosition({ clientX: clientX, clientY: lastMouse.clientY });
136
+ }), intervalDuration);
137
+ }
138
+ /**
139
+ * @return {?}
140
+ */
141
+ export function cancelScroll() {
142
+ cancelHorizontal();
143
+ cancelVertical();
144
+ gridsterElement = undefined;
145
+ }
146
+ /**
147
+ * @return {?}
148
+ */
149
+ function cancelHorizontal() {
150
+ cancelE();
151
+ cancelW();
152
+ }
153
+ /**
154
+ * @return {?}
155
+ */
156
+ function cancelVertical() {
157
+ cancelN();
158
+ cancelS();
159
+ }
160
+ /**
161
+ * @return {?}
162
+ */
163
+ function cancelE() {
164
+ if (intervalE) {
165
+ clearInterval(intervalE);
166
+ intervalE = 0;
167
+ }
168
+ }
169
+ /**
170
+ * @return {?}
171
+ */
172
+ function cancelW() {
173
+ if (intervalW) {
174
+ clearInterval(intervalW);
175
+ intervalW = 0;
176
+ }
177
+ }
178
+ /**
179
+ * @return {?}
180
+ */
181
+ function cancelS() {
182
+ if (intervalS) {
183
+ clearInterval(intervalS);
184
+ intervalS = 0;
185
+ }
186
+ }
187
+ /**
188
+ * @return {?}
189
+ */
190
+ function cancelN() {
191
+ if (intervalN) {
192
+ clearInterval(intervalN);
193
+ intervalN = 0;
194
+ }
195
+ }
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyU2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBR0ksaUJBQXlCOztJQUN6QixXQUFtQjs7SUFDakIsZ0JBQWdCLEdBQUcsRUFBRTs7SUFDdkIsZUFBb0I7O0lBQ3BCLFdBQWdDOztJQUNoQyxlQUFvRDs7SUFDcEQsU0FBaUI7O0lBQ2pCLFNBQWlCOztJQUNqQixTQUFpQjs7SUFDakIsU0FBaUI7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLE1BQU0sVUFBVSxNQUFNLENBQUMsUUFBb0MsRUFBRSxJQUFZLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQzlGLENBQWEsRUFBRSxTQUFjLEVBQzdCLHFCQUErQixFQUFFLE1BQWdCLEVBQUUscUJBQStDO0lBQ3ZILGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDeEQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQzVDLGVBQWUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzlCLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDckIsZUFBZSxHQUFHLHFCQUFxQixDQUFDOztRQUVsQyxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVc7O1FBQ3pDLFlBQVksR0FBRyxlQUFlLENBQUMsWUFBWTs7UUFDM0MsVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVOztRQUN2QyxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVM7O1FBQ3JDLGFBQWEsR0FBRyxHQUFHLEdBQUcsU0FBUzs7UUFDL0IsZ0JBQWdCLEdBQUcsWUFBWSxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsTUFBTTtJQUNoRSxJQUFJLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FB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QUM7S0FDZjtBQUNILENBQUM7Ozs7QUFFRCxTQUFTLE9BQU87SUFDZCxJQUFJLFNBQVMsRUFBRTtRQUNiLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixTQUFTLEdBQUcsQ0FBQyxDQUFDO0tBQ2Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHcmlkc3RlclJlc2l6ZUV2ZW50VHlwZX0gZnJvbSAnLi9ncmlkc3RlclJlc2l6ZUV2ZW50VHlwZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XHJcblxyXG5sZXQgc2Nyb2xsU2Vuc2l0aXZpdHk6IG51bWJlcjtcclxubGV0IHNjcm9sbFNwZWVkOiBudW1iZXI7XHJcbmNvbnN0IGludGVydmFsRHVyYXRpb24gPSA1MDtcclxubGV0IGdyaWRzdGVyRWxlbWVudDogYW55O1xyXG5sZXQgcmVzaXplRXZlbnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbmxldCByZXNpemVFdmVudFR5cGU6IEdyaWRzdGVyUmVzaXplRXZlbnRUeXBlIHwgdW5kZWZpbmVkO1xyXG5sZXQgaW50ZXJ2YWxFOiBudW1iZXI7XHJcbmxldCBpbnRlcnZhbFc6IG51bWJlcjtcclxubGV0IGludGVydmFsTjogbnVtYmVyO1xyXG5sZXQgaW50ZXJ2YWxTOiBudW1iZXI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsKGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSwgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZTogTW91c2VFdmVudCwgbGFzdE1vdXNlOiBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlSXRlbVBvc2l0aW9uOiBGdW5jdGlvbiwgcmVzaXplPzogYm9vbGVhbiwgcmVzaXplRXZlbnRTY3JvbGxUeXBlPzogR3JpZHN0ZXJSZXNpemVFdmVudFR5cGUpIHtcclxuICBzY3JvbGxTZW5zaXRpdml0eSA9IGdyaWRzdGVyLiRvcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5O1xyXG4gIHNjcm9sbFNwZWVkID0gZ3JpZHN0ZXIuJG9wdGlvbnMuc2Nyb2xsU3BlZWQ7XHJcbiAgZ3JpZHN0ZXJFbGVtZW50ID0gZ3JpZHN0ZXIuZWw7XHJcbiAgcmVzaXplRXZlbnQgPSByZXNpemU7XHJcbiAgcmVzaXplRXZlbnRUeXBlID0gcmVzaXplRXZlbnRTY3JvbGxUeXBlO1xyXG5cclxuICBjb25zdCBvZmZzZXRXaWR0aCA9IGdyaWRzdGVyRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBncmlkc3RlckVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gIGNvbnN0IG9mZnNldExlZnQgPSBncmlkc3RlckVsZW1lbnQuc2Nyb2xsTGVmdDtcclxuICBjb25zdCBvZmZzZXRUb3AgPSBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gIGNvbnN0IGVsZW1Ub3BPZmZzZXQgPSB0b3AgLSBvZmZzZXRUb3A7XHJcbiAgY29uc3QgZWxlbUJvdHRvbU9mZnNldCA9IG9mZnNldEhlaWdodCArIG9mZnNldFRvcCAtIHRvcCAtIGhlaWdodDtcclxuICBpZiAobGFzdE1vdXNlLmNsaWVudFkgPCBlLmNsaWVudFkgJiYgZWxlbUJvdHRvbU9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XHJcbiAgICBjYW5jZWxOKCk7XHJcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLnMpIHx8IGludGVydmFsUykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpbnRlcnZhbFMgPSBzdGFydFZlcnRpY2FsKDEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcclxuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRZID4gZS5jbGllbnRZICYmIG9mZnNldFRvcCA+IDAgJiYgZWxlbVRvcE9mZnNldCA8IHNjcm9sbFNlbnNpdGl2aXR5KSB7XHJcbiAgICBjYW5jZWxTKCk7XHJcbiAgICBpZiAoKHJlc2l6ZUV2ZW50ICYmIHJlc2l6ZUV2ZW50VHlwZSAmJiAhcmVzaXplRXZlbnRUeXBlLm4pIHx8IGludGVydmFsTikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpbnRlcnZhbE4gPSBzdGFydFZlcnRpY2FsKC0xLCBjYWxjdWxhdGVJdGVtUG9zaXRpb24sIGxhc3RNb3VzZSk7XHJcbiAgfSBlbHNlIGlmIChsYXN0TW91c2UuY2xpZW50WSAhPT0gZS5jbGllbnRZKSB7XHJcbiAgICBjYW5jZWxWZXJ0aWNhbCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZWxlbVJpZ2h0T2Zmc2V0ID0gb2Zmc2V0TGVmdCArIG9mZnNldFdpZHRoIC0gbGVmdCAtIHdpZHRoO1xyXG4gIGNvbnN0IGVsZW1MZWZ0T2Zmc2V0ID0gbGVmdCAtIG9mZnNldExlZnQ7XHJcbiAgaWYgKGxhc3RNb3VzZS5jbGllbnRYIDwgZS5jbGllbnRYICYmIGVsZW1SaWdodE9mZnNldCA8PSBzY3JvbGxTZW5zaXRpdml0eSkge1xyXG4gICAgY2FuY2VsVygpO1xyXG4gICAgaWYgKChyZXNpemVFdmVudCAmJiByZXNpemVFdmVudFR5cGUgJiYgIXJlc2l6ZUV2ZW50VHlwZS5lKSB8fCBpbnRlcnZhbEUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaW50ZXJ2YWxFID0gc3RhcnRIb3Jpem9udGFsKDEsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbiwgbGFzdE1vdXNlKTtcclxuICB9IGVsc2UgaWYgKGxhc3RNb3VzZS5jbGllbnRYID4gZS5jbGllbnRYICYmIG9mZnNldExlZnQgPiAwICYmIGVsZW1MZWZ0T2Zmc2V0IDwgc2Nyb2xsU2Vuc2l0aXZpdHkpIHtcclxuICAgIGNhbmNlbEUoKTtcclxuICAgIGlmICgocmVzaXplRXZlbnQgJiYgcmVzaXplRXZlbnRUeXBlICYmICFyZXNpemVFdmVudFR5cGUudykgfHwgaW50ZXJ2YWxXKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGludGVydmFsVyA9IHN0YXJ0SG9yaXpvbnRhbCgtMSwgY2FsY3VsYXRlSXRlbVBvc2l0aW9uLCBsYXN0TW91c2UpO1xyXG4gIH0gZWxzZSBpZiAobGFzdE1vdXNlLmNsaWVudFggIT09IGUuY2xpZW50WCkge1xyXG4gICAgY2FuY2VsSG9yaXpvbnRhbCgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc3RhcnRWZXJ0aWNhbChzaWduOiBudW1iZXIsIGNhbGN1bGF0ZUl0ZW1Qb3NpdGlvbjogRnVuY3Rpb24sIGxhc3RNb3VzZTogYW55KTogYW55IHtcclxuICBsZXQgY2xpZW50WSA9IGxhc3RNb3VzZS5jbGllbnRZO1xyXG4gIHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICBpZiAoIWdyaWRzdGVyRWxlbWVudCB8fCBzaWduID09PSAtMSAmJiBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wIC0gc2Nyb2xsU3BlZWQgPCAwKSB7XHJcbiAgICAgIGNhbmNlbFZlcnRpY2FsKCk7XHJcbiAgICB9XHJcbiAgICBncmlkc3RlckVsZW1lbnQuc2Nyb2xsVG9wICs9IHNpZ24gKiBzY3JvbGxTcGVlZDtcclxuICAgIGNsaWVudFkgKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xyXG4gICAgY2FsY3VsYXRlSXRlbVBvc2l0aW9uKHtjbGllbnRYOiBsYXN0TW91c2UuY2xpZW50WCwgY2xpZW50WTogY2xpZW50WX0pO1xyXG4gIH0sIGludGVydmFsRHVyYXRpb24pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzdGFydEhvcml6b250YWwoc2lnbjogbnVtYmVyLCBjYWxjdWxhdGVJdGVtUG9zaXRpb246IEZ1bmN0aW9uLCBsYXN0TW91c2U6IGFueSk6IGFueSB7XHJcbiAgbGV0IGNsaWVudFggPSBsYXN0TW91c2UuY2xpZW50WDtcclxuICByZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgaWYgKCFncmlkc3RlckVsZW1lbnQgfHwgc2lnbiA9PT0gLTEgJiYgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbExlZnQgLSBzY3JvbGxTcGVlZCA8IDApIHtcclxuICAgICAgY2FuY2VsSG9yaXpvbnRhbCgpO1xyXG4gICAgfVxyXG4gICAgZ3JpZHN0ZXJFbGVtZW50LnNjcm9sbExlZnQgKz0gc2lnbiAqIHNjcm9sbFNwZWVkO1xyXG4gICAgY2xpZW50WCArPSBzaWduICogc2Nyb2xsU3BlZWQ7XHJcbiAgICBjYWxjdWxhdGVJdGVtUG9zaXRpb24oe2NsaWVudFg6IGNsaWVudFgsIGNsaWVudFk6IGxhc3RNb3VzZS5jbGllbnRZfSk7XHJcbiAgfSwgaW50ZXJ2YWxEdXJhdGlvbik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxTY3JvbGwoKSB7XHJcbiAgY2FuY2VsSG9yaXpvbnRhbCgpO1xyXG4gIGNhbmNlbFZlcnRpY2FsKCk7XHJcbiAgZ3JpZHN0ZXJFbGVtZW50ID0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW5jZWxIb3Jpem9udGFsKCkge1xyXG4gIGNhbmNlbEUoKTtcclxuICBjYW5jZWxXKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbmNlbFZlcnRpY2FsKCkge1xyXG4gIGNhbmNlbE4oKTtcclxuICBjYW5jZWxTKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbmNlbEUoKSB7XHJcbiAgaWYgKGludGVydmFsRSkge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEUpO1xyXG4gICAgaW50ZXJ2YWxFID0gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbmNlbFcoKSB7XHJcbiAgaWYgKGludGVydmFsVykge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFcpO1xyXG4gICAgaW50ZXJ2YWxXID0gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbmNlbFMoKSB7XHJcbiAgaWYgKGludGVydmFsUykge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbFMpO1xyXG4gICAgaW50ZXJ2YWxTID0gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbmNlbE4oKSB7XHJcbiAgaWYgKGludGVydmFsTikge1xyXG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbE4pO1xyXG4gICAgaW50ZXJ2YWxOID0gMDtcclxuICB9XHJcbn1cclxuIl19