@skyux/core 5.0.0-beta.0 → 5.0.0-beta.12

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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/bundles/skyux-core-testing.umd.js +363 -234
  3. package/bundles/skyux-core-testing.umd.js.map +1 -1
  4. package/bundles/skyux-core.umd.js +3196 -2906
  5. package/bundles/skyux-core.umd.js.map +1 -1
  6. package/documentation.json +8549 -0
  7. package/esm2015/modules/adapter-service/adapter.module.js +11 -8
  8. package/esm2015/modules/adapter-service/adapter.service.js +16 -17
  9. package/esm2015/modules/adapter-service/focusable-children-options.js +2 -1
  10. package/esm2015/modules/affix/affix-auto-fit-context.js +1 -1
  11. package/esm2015/modules/affix/affix-config.js +2 -1
  12. package/esm2015/modules/affix/affix-horizontal-alignment.js +2 -1
  13. package/esm2015/modules/affix/affix-offset-change.js +2 -1
  14. package/esm2015/modules/affix/affix-offset.js +2 -1
  15. package/esm2015/modules/affix/affix-placement-change.js +2 -1
  16. package/esm2015/modules/affix/affix-placement.js +2 -1
  17. package/esm2015/modules/affix/affix-utils.js +1 -1
  18. package/esm2015/modules/affix/affix-vertical-alignment.js +2 -1
  19. package/esm2015/modules/affix/affix.directive.js +36 -49
  20. package/esm2015/modules/affix/affix.module.js +22 -17
  21. package/esm2015/modules/affix/affix.service.js +12 -15
  22. package/esm2015/modules/affix/affixer.js +1 -1
  23. package/esm2015/modules/affix/dom-utils.js +1 -1
  24. package/esm2015/modules/dock/dock-dom-adapter.service.js +23 -15
  25. package/esm2015/modules/dock/dock-insert-component-config.js +2 -1
  26. package/esm2015/modules/dock/dock-item-config.js +2 -1
  27. package/esm2015/modules/dock/dock-item-reference.js +2 -1
  28. package/esm2015/modules/dock/dock-item.js +1 -1
  29. package/esm2015/modules/dock/dock-location.js +19 -0
  30. package/esm2015/modules/dock/dock-options.js +2 -0
  31. package/esm2015/modules/dock/dock.component.js +48 -33
  32. package/esm2015/modules/dock/dock.module.js +28 -17
  33. package/esm2015/modules/dock/dock.service.js +44 -16
  34. package/esm2015/modules/dock/sort-by-stack-order.js +1 -1
  35. package/esm2015/modules/dynamic-component/dynamic-component-location.js +15 -3
  36. package/esm2015/modules/dynamic-component/dynamic-component-options.js +2 -1
  37. package/esm2015/modules/dynamic-component/dynamic-component.module.js +11 -8
  38. package/esm2015/modules/dynamic-component/dynamic-component.service.js +24 -20
  39. package/esm2015/modules/format/app-format.js +11 -11
  40. package/esm2015/modules/id/id.directive.js +14 -16
  41. package/esm2015/modules/id/id.module.js +18 -15
  42. package/esm2015/modules/log/log.module.js +11 -8
  43. package/esm2015/modules/log/log.service.js +11 -11
  44. package/esm2015/modules/media-query/media-breakpoints.js +1 -1
  45. package/esm2015/modules/media-query/media-query-listener.js +2 -1
  46. package/esm2015/modules/media-query/media-query.module.js +11 -8
  47. package/esm2015/modules/media-query/media-query.service.js +16 -20
  48. package/esm2015/modules/mutation/mutation-observer-service.js +11 -11
  49. package/esm2015/modules/numeric/numeric-symbol.js +2 -1
  50. package/esm2015/modules/numeric/numeric.module.js +30 -21
  51. package/esm2015/modules/numeric/numeric.options.js +6 -1
  52. package/esm2015/modules/numeric/numeric.pipe.js +14 -16
  53. package/esm2015/modules/numeric/numeric.service.js +34 -32
  54. package/esm2015/modules/overlay/overlay-adapter.service.js +13 -15
  55. package/esm2015/modules/overlay/overlay-config.js +2 -1
  56. package/esm2015/modules/overlay/overlay-context.js +1 -1
  57. package/esm2015/modules/overlay/overlay-instance.js +1 -1
  58. package/esm2015/modules/overlay/overlay.component.js +41 -44
  59. package/esm2015/modules/overlay/overlay.module.js +22 -17
  60. package/esm2015/modules/overlay/overlay.service.js +18 -26
  61. package/esm2015/modules/percent-pipe/percent-pipe.module.js +30 -21
  62. package/esm2015/modules/percent-pipe/percent.pipe.js +15 -15
  63. package/esm2015/modules/shared/number-format/number-format-utility.js +4 -3
  64. package/esm2015/modules/shared/sky-core-resources.module.js +41 -0
  65. package/esm2015/modules/title/set-title-args.js +2 -1
  66. package/esm2015/modules/title/title.service.js +11 -15
  67. package/esm2015/modules/ui-config/ui-config.service.js +11 -11
  68. package/esm2015/modules/viewkeeper/viewkeeper-boundary-info.js +2 -1
  69. package/esm2015/modules/viewkeeper/viewkeeper-fixed-styles.js +2 -1
  70. package/esm2015/modules/viewkeeper/viewkeeper-host-options.js +9 -8
  71. package/esm2015/modules/viewkeeper/viewkeeper-offset.js +2 -1
  72. package/esm2015/modules/viewkeeper/viewkeeper-options.js +2 -1
  73. package/esm2015/modules/viewkeeper/viewkeeper.directive.js +17 -21
  74. package/esm2015/modules/viewkeeper/viewkeeper.js +1 -1
  75. package/esm2015/modules/viewkeeper/viewkeeper.module.js +18 -15
  76. package/esm2015/modules/viewkeeper/viewkeeper.service.js +13 -16
  77. package/esm2015/modules/window/window-ref.js +11 -11
  78. package/esm2015/public-api.js +59 -0
  79. package/esm2015/skyux-core.js +2 -12
  80. package/esm2015/testing/mock-media-query.service.js +9 -8
  81. package/esm2015/testing/mock-ui-config.service.js +9 -8
  82. package/esm2015/testing/public-api.js +3 -0
  83. package/esm2015/testing/skyux-core-testing.js +2 -2
  84. package/fesm2015/skyux-core-testing.js +15 -11
  85. package/fesm2015/skyux-core-testing.js.map +1 -1
  86. package/fesm2015/skyux-core.js +729 -562
  87. package/fesm2015/skyux-core.js.map +1 -1
  88. package/modules/adapter-service/adapter.module.d.ts +4 -0
  89. package/modules/adapter-service/adapter.service.d.ts +3 -0
  90. package/modules/affix/affix.directive.d.ts +3 -0
  91. package/modules/affix/affix.module.d.ts +6 -0
  92. package/modules/affix/affix.service.d.ts +3 -0
  93. package/modules/dock/dock-dom-adapter.service.d.ts +6 -0
  94. package/modules/dock/dock-location.d.ts +17 -0
  95. package/modules/dock/dock-options.d.ts +18 -0
  96. package/modules/dock/dock.component.d.ts +8 -3
  97. package/modules/dock/dock.module.d.ts +6 -0
  98. package/modules/dock/dock.service.d.ts +14 -1
  99. package/modules/dynamic-component/dynamic-component-location.d.ts +14 -2
  100. package/modules/dynamic-component/dynamic-component-options.d.ts +4 -0
  101. package/modules/dynamic-component/dynamic-component.module.d.ts +4 -0
  102. package/modules/dynamic-component/dynamic-component.service.d.ts +3 -0
  103. package/modules/format/app-format.d.ts +3 -0
  104. package/modules/id/id.directive.d.ts +3 -0
  105. package/modules/id/id.module.d.ts +5 -0
  106. package/modules/log/log.module.d.ts +4 -0
  107. package/modules/log/log.service.d.ts +3 -0
  108. package/modules/media-query/media-query.module.d.ts +4 -0
  109. package/modules/media-query/media-query.service.d.ts +3 -0
  110. package/modules/mutation/mutation-observer-service.d.ts +3 -0
  111. package/modules/numeric/numeric.module.d.ts +7 -0
  112. package/modules/numeric/numeric.options.d.ts +5 -0
  113. package/modules/numeric/numeric.pipe.d.ts +3 -0
  114. package/modules/numeric/numeric.service.d.ts +3 -0
  115. package/modules/overlay/overlay-adapter.service.d.ts +3 -0
  116. package/modules/overlay/overlay.component.d.ts +3 -0
  117. package/modules/overlay/overlay.module.d.ts +6 -0
  118. package/modules/overlay/overlay.service.d.ts +3 -0
  119. package/modules/percent-pipe/percent-pipe.module.d.ts +7 -0
  120. package/modules/percent-pipe/percent.pipe.d.ts +3 -0
  121. package/modules/shared/number-format/number-format-utility.d.ts +1 -1
  122. package/modules/shared/sky-core-resources.module.d.ts +14 -0
  123. package/modules/title/title.service.d.ts +3 -0
  124. package/modules/ui-config/ui-config.service.d.ts +3 -0
  125. package/modules/viewkeeper/viewkeeper-host-options.d.ts +3 -0
  126. package/modules/viewkeeper/viewkeeper.directive.d.ts +3 -0
  127. package/modules/viewkeeper/viewkeeper.module.d.ts +5 -0
  128. package/modules/viewkeeper/viewkeeper.service.d.ts +3 -0
  129. package/modules/window/window-ref.d.ts +3 -0
  130. package/package.json +8 -23
  131. package/{public_api.d.ts → public-api.d.ts} +5 -0
  132. package/skyux-core.d.ts +2 -11
  133. package/testing/mock-media-query.service.d.ts +3 -0
  134. package/testing/mock-ui-config.service.d.ts +3 -0
  135. package/testing/package.json +2 -5
  136. package/testing/{public_api.d.ts → public-api.d.ts} +0 -0
  137. package/testing/skyux-core-testing.d.ts +2 -1
  138. package/CHANGELOG.md +0 -280
  139. package/bundles/skyux-core-testing.umd.min.js +0 -16
  140. package/bundles/skyux-core-testing.umd.min.js.map +0 -1
  141. package/bundles/skyux-core.umd.min.js +0 -16
  142. package/bundles/skyux-core.umd.min.js.map +0 -1
  143. package/esm2015/modules/shared/core-resources.module.js +0 -17
  144. package/esm2015/plugin-resources/core-resources-provider.js +0 -16
  145. package/esm2015/public_api.js +0 -36
  146. package/esm2015/testing/public_api.js +0 -3
  147. package/esm5/modules/adapter-service/adapter.module.js +0 -16
  148. package/esm5/modules/adapter-service/adapter.service.js +0 -221
  149. package/esm5/modules/adapter-service/focusable-children-options.js +0 -1
  150. package/esm5/modules/affix/affix-auto-fit-context.js +0 -12
  151. package/esm5/modules/affix/affix-config.js +0 -1
  152. package/esm5/modules/affix/affix-horizontal-alignment.js +0 -1
  153. package/esm5/modules/affix/affix-offset-change.js +0 -1
  154. package/esm5/modules/affix/affix-offset.js +0 -1
  155. package/esm5/modules/affix/affix-placement-change.js +0 -1
  156. package/esm5/modules/affix/affix-placement.js +0 -1
  157. package/esm5/modules/affix/affix-utils.js +0 -23
  158. package/esm5/modules/affix/affix-vertical-alignment.js +0 -1
  159. package/esm5/modules/affix/affix.directive.js +0 -113
  160. package/esm5/modules/affix/affix.module.js +0 -24
  161. package/esm5/modules/affix/affix.service.js +0 -28
  162. package/esm5/modules/affix/affixer.js +0 -368
  163. package/esm5/modules/affix/dom-utils.js +0 -79
  164. package/esm5/modules/dock/dock-dom-adapter.service.js +0 -72
  165. package/esm5/modules/dock/dock-insert-component-config.js +0 -1
  166. package/esm5/modules/dock/dock-item-config.js +0 -1
  167. package/esm5/modules/dock/dock-item-reference.js +0 -1
  168. package/esm5/modules/dock/dock-item.js +0 -35
  169. package/esm5/modules/dock/dock.component.js +0 -87
  170. package/esm5/modules/dock/dock.module.js +0 -24
  171. package/esm5/modules/dock/dock.service.js +0 -69
  172. package/esm5/modules/dock/sort-by-stack-order.js +0 -13
  173. package/esm5/modules/dynamic-component/dynamic-component-location.js +0 -15
  174. package/esm5/modules/dynamic-component/dynamic-component-options.js +0 -1
  175. package/esm5/modules/dynamic-component/dynamic-component.module.js +0 -17
  176. package/esm5/modules/dynamic-component/dynamic-component.service.js +0 -79
  177. package/esm5/modules/format/app-format.js +0 -25
  178. package/esm5/modules/id/id.directive.js +0 -41
  179. package/esm5/modules/id/id.module.js +0 -20
  180. package/esm5/modules/log/log.module.js +0 -16
  181. package/esm5/modules/log/log.service.js +0 -29
  182. package/esm5/modules/media-query/media-breakpoints.js +0 -20
  183. package/esm5/modules/media-query/media-query-listener.js +0 -1
  184. package/esm5/modules/media-query/media-query.module.js +0 -16
  185. package/esm5/modules/media-query/media-query.service.js +0 -128
  186. package/esm5/modules/mutation/mutation-observer-service.js +0 -19
  187. package/esm5/modules/numeric/numeric-symbol.js +0 -1
  188. package/esm5/modules/numeric/numeric.module.js +0 -29
  189. package/esm5/modules/numeric/numeric.options.js +0 -38
  190. package/esm5/modules/numeric/numeric.pipe.js +0 -70
  191. package/esm5/modules/numeric/numeric.service.js +0 -191
  192. package/esm5/modules/overlay/overlay-adapter.service.js +0 -44
  193. package/esm5/modules/overlay/overlay-config.js +0 -1
  194. package/esm5/modules/overlay/overlay-context.js +0 -12
  195. package/esm5/modules/overlay/overlay-instance.js +0 -66
  196. package/esm5/modules/overlay/overlay.component.js +0 -168
  197. package/esm5/modules/overlay/overlay.module.js +0 -24
  198. package/esm5/modules/overlay/overlay.service.js +0 -128
  199. package/esm5/modules/percent-pipe/percent-pipe.module.js +0 -29
  200. package/esm5/modules/percent-pipe/percent.pipe.js +0 -49
  201. package/esm5/modules/shared/core-resources.module.js +0 -20
  202. package/esm5/modules/shared/number-format/number-format-utility.js +0 -75
  203. package/esm5/modules/title/set-title-args.js +0 -1
  204. package/esm5/modules/title/title.service.js +0 -35
  205. package/esm5/modules/ui-config/ui-config.service.js +0 -24
  206. package/esm5/modules/viewkeeper/viewkeeper-boundary-info.js +0 -1
  207. package/esm5/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -1
  208. package/esm5/modules/viewkeeper/viewkeeper-host-options.js +0 -12
  209. package/esm5/modules/viewkeeper/viewkeeper-offset.js +0 -1
  210. package/esm5/modules/viewkeeper/viewkeeper-options.js +0 -1
  211. package/esm5/modules/viewkeeper/viewkeeper.directive.js +0 -134
  212. package/esm5/modules/viewkeeper/viewkeeper.js +0 -219
  213. package/esm5/modules/viewkeeper/viewkeeper.module.js +0 -20
  214. package/esm5/modules/viewkeeper/viewkeeper.service.js +0 -42
  215. package/esm5/modules/window/window-ref.js +0 -37
  216. package/esm5/plugin-resources/core-resources-provider.js +0 -17
  217. package/esm5/public_api.js +0 -36
  218. package/esm5/skyux-core.js +0 -15
  219. package/esm5/testing/mock-media-query.service.js +0 -47
  220. package/esm5/testing/mock-ui-config.service.js +0 -66
  221. package/esm5/testing/public_api.js +0 -3
  222. package/esm5/testing/skyux-core-testing.js +0 -5
  223. package/fesm5/skyux-core-testing.js +0 -114
  224. package/fesm5/skyux-core-testing.js.map +0 -1
  225. package/fesm5/skyux-core.js +0 -2895
  226. package/fesm5/skyux-core.js.map +0 -1
  227. package/modules/shared/core-resources.module.d.ts +0 -2
  228. package/plugin-resources/core-resources-provider.d.ts +0 -5
  229. package/skyux-core.metadata.json +0 -1
  230. package/src/assets/locales/resources_en_US.json +0 -18
  231. package/testing/skyux-core-testing.metadata.json +0 -1
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXRpdGxlLWFyZ3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdGl0bGUvc2V0LXRpdGxlLWFyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5QXBwU2V0VGl0bGVBcmdzIHtcblxuICB0aXRsZVBhcnRzOiBzdHJpbmdbXTtcblxufVxuIl19
@@ -1,35 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Title } from '@angular/platform-browser';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/platform-browser";
6
- /**
7
- * Provides a method for setting a formatted title on the current window.
8
- */
9
- var SkyAppTitleService = /** @class */ (function () {
10
- function SkyAppTitleService(title) {
11
- this.title = title;
12
- }
13
- /**
14
- * Sets the title on the current window.
15
- * @param args An array of title parts. The parts will be concatenated with a hyphen between
16
- * each part.
17
- */
18
- SkyAppTitleService.prototype.setTitle = function (args) {
19
- if (args && args.titleParts) {
20
- this.title.setTitle(args.titleParts.join(' - '));
21
- }
22
- };
23
- SkyAppTitleService.ctorParameters = function () { return [
24
- { type: Title }
25
- ]; };
26
- SkyAppTitleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyAppTitleService_Factory() { return new SkyAppTitleService(i0.ɵɵinject(i1.Title)); }, token: SkyAppTitleService, providedIn: "root" });
27
- SkyAppTitleService = __decorate([
28
- Injectable({
29
- providedIn: 'root'
30
- })
31
- ], SkyAppTitleService);
32
- return SkyAppTitleService;
33
- }());
34
- export { SkyAppTitleService };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsibW9kdWxlcy90aXRsZS90aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxLQUFLLEVBQ04sTUFBTSwyQkFBMkIsQ0FBQzs7O0FBTW5DOztHQUVHO0FBSUg7SUFFRSw0QkFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBSSxDQUFDO0lBRXJDOzs7O09BSUc7SUFDSSxxQ0FBUSxHQUFmLFVBQWdCLElBQXdCO1FBQ3RDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7O2dCQVgwQixLQUFLOzs7SUFGckIsa0JBQWtCO1FBSDlCLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUM7T0FDVyxrQkFBa0IsQ0FlOUI7NkJBakNEO0NBaUNDLEFBZkQsSUFlQztTQWZZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRpdGxlXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQge1xuICBTa3lBcHBTZXRUaXRsZUFyZ3Ncbn0gZnJvbSAnLi9zZXQtdGl0bGUtYXJncyc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIHNldHRpbmcgYSBmb3JtYXR0ZWQgdGl0bGUgb24gdGhlIGN1cnJlbnQgd2luZG93LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBUaXRsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGl0bGU6IFRpdGxlKSB7IH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGl0bGUgb24gdGhlIGN1cnJlbnQgd2luZG93LlxuICAgKiBAcGFyYW0gYXJncyBBbiBhcnJheSBvZiB0aXRsZSBwYXJ0cy4gVGhlIHBhcnRzIHdpbGwgYmUgY29uY2F0ZW5hdGVkIHdpdGggYSBoeXBoZW4gYmV0d2VlblxuICAgKiBlYWNoIHBhcnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGl0bGUoYXJnczogU2t5QXBwU2V0VGl0bGVBcmdzKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MgJiYgYXJncy50aXRsZVBhcnRzKSB7XG4gICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKGFyZ3MudGl0bGVQYXJ0cy5qb2luKCcgLSAnKSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { of as observableOf } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- var SkyUIConfigService = /** @class */ (function () {
6
- function SkyUIConfigService() {
7
- }
8
- SkyUIConfigService.prototype.getConfig = function (key, defaultConfig) {
9
- return observableOf(defaultConfig);
10
- };
11
- /* istanbul ignore next */
12
- SkyUIConfigService.prototype.setConfig = function (key, value) {
13
- return observableOf({});
14
- };
15
- SkyUIConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyUIConfigService_Factory() { return new SkyUIConfigService(); }, token: SkyUIConfigService, providedIn: "root" });
16
- SkyUIConfigService = __decorate([
17
- Injectable({
18
- providedIn: 'root'
19
- })
20
- ], SkyUIConfigService);
21
- return SkyUIConfigService;
22
- }());
23
- export { SkyUIConfigService };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdWktY29uZmlnL3VpLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxFQUFFLElBQUksWUFBWSxFQUNuQixNQUFNLE1BQU0sQ0FBQzs7QUFLZDtJQUFBO0tBZ0JDO0lBZFEsc0NBQVMsR0FBaEIsVUFDRSxHQUFXLEVBQ1gsYUFBbUI7UUFFbkIsT0FBTyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixzQ0FBUyxHQUFoQixVQUNFLEdBQVcsRUFDWCxLQUFVO1FBRVYsT0FBTyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7SUFmVSxrQkFBa0I7UUFIOUIsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztPQUNXLGtCQUFrQixDQWdCOUI7NkJBNUJEO0NBNEJDLEFBaEJELElBZ0JDO1NBaEJZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIG9mIGFzIG9ic2VydmFibGVPZlxufSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2t5VUlDb25maWdTZXJ2aWNlIHtcblxuICBwdWJsaWMgZ2V0Q29uZmlnKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGRlZmF1bHRDb25maWc/OiBhbnlcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKGRlZmF1bHRDb25maWcpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIHNldENvbmZpZyhcbiAgICBrZXk6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVPZih7fSk7XG4gIH1cbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ib3VuZGFyeS1pbmZvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT2Zmc2V0XG59IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8ge1xuICBlbEhlaWdodDogbnVtYmVyO1xuXG4gIHNwYWNlckVsOiBIVE1MRWxlbWVudDtcblxuICBzcGFjZXJJZDogc3RyaW5nO1xuXG4gIGJvdW5kYXJ5Qm90dG9tOiBudW1iZXI7XG5cbiAgYm91bmRhcnlPZmZzZXQ6IFNreVZpZXdrZWVwZXJPZmZzZXQ7XG5cbiAgYm91bmRhcnlFbDogSFRNTEVsZW1lbnQ7XG5cbiAgc2Nyb2xsTGVmdDogbnVtYmVyO1xuXG4gIHNjcm9sbFRvcDogbnVtYmVyO1xufVxuIl19
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1maXhlZC1zdHlsZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWZpeGVkLXN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXMge1xuICBlbEZpeGVkTGVmdDogbnVtYmVyO1xuXG4gIGVsRml4ZWRUb3A6IG51bWJlcjtcblxuICBlbEZpeGVkV2lkdGg6IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- var SkyViewkeeperHostOptions = /** @class */ (function () {
4
- function SkyViewkeeperHostOptions() {
5
- }
6
- SkyViewkeeperHostOptions = __decorate([
7
- Injectable()
8
- ], SkyViewkeeperHostOptions);
9
- return SkyViewkeeperHostOptions;
10
- }());
11
- export { SkyViewkeeperHostOptions };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ob3N0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWhvc3Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQU92QjtJQUFBO0lBWUEsQ0FBQztJQVpZLHdCQUF3QjtRQURwQyxVQUFVLEVBQUU7T0FDQSx3QkFBd0IsQ0FZcEM7SUFBRCwrQkFBQztDQUFBLEFBWkQsSUFZQztTQVpZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJPcHRpb25zXG59IGZyb20gJy4vdmlld2tlZXBlci1vcHRpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXJIb3N0T3B0aW9ucyBpbXBsZW1lbnRzIFNreVZpZXdrZWVwZXJPcHRpb25zIHtcbiAgcHVibGljIGJvdW5kYXJ5RWw/OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgZWw/OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgc2V0V2lkdGg/OiBib29sZWFuO1xuXG4gIHB1YmxpYyB2ZXJ0aWNhbE9mZnNldD86IG51bWJlcjtcblxuICBwdWJsaWMgdmVydGljYWxPZmZzZXRFbD86IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyB2aWV3cG9ydE1hcmdpblRvcD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1vZmZzZXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLW9mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lWaWV3a2VlcGVyT2Zmc2V0IHtcbiAgdG9wOiBudW1iZXI7XG5cbiAgbGVmdDogbnVtYmVyO1xufVxuIl19
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdmlld2tlZXBlciBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IGRlZmluZXMgdGhlIGJvdW5kcyBpbiB3aGljaCB0byBrZWVwIHRoZSBlbGVtZW50IGluIHZpZXcuIFdoZW4gdGhlXG4gICAqIGJvdW5kYXJ5IGVsZW1lbnQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcsIHRoZSB2aWV3a2VlcGVyIGVsZW1lbnQgd2lsbCBiZSBzY3JvbGxlZFxuICAgKiBvdXQgb2Ygdmlldy5cbiAgICovXG4gIGJvdW5kYXJ5RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8ga2VlcCBpbiB2aWV3LlxuICAgKi9cbiAgZWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gc2V0IHRoZSB3aWR0aCBvZiB0aGUgdmlld2tlZXBlciBlbGVtZW50IHRvIHRoZSB3aWR0aCBvZiBpdHNcbiAgICogaG9zdCBlbGVtZW50LiBPdGhlcndpc2UsIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXQgd2lkdGggc3BlY2lmaWVkLFxuICAgKiB0aGUgZWxlbWVudCB3b3VsZCBjb2xsYXBzZSBob3Jpem9udGFsbHkgYXMgYSByZXN1bHQgb2YgZml4aW5nIHRoZSBlbGVtZW50IHRvIHRoZSB0b3BcbiAgICogb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgc2V0V2lkdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNlcnZlZCBzcGFjZSBpbiBwaXhlbHMgYWJvdmUgdGhlIHZpZXdrZWVwZXIgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB1bmRlciB3aGljaCB0aGUgdmlld2tlZXBlciBlbGVtZW50IHNob3VsZCBiZSBmaXhlZC4gVHlwaWNhbGx5IHRoaXMgaXNcbiAgICogYW5vdGhlciB2aWV3a2VlcGVyIGVsZW1lbnQgdGhhdCBpcyBhYm92ZSB0aGUgY3VycmVudCB2aWV3a2VlcGVyIGVsZW1lbnQgaW4gdGhlIHNhbWVcbiAgICogYm91bmRhcnkgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogUmVzZXJ2ZWQgc3BhY2UgaW4gcGl4ZWxzIGF0IHRoZSB0b3Agb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG59XG4iXX0=
@@ -1,134 +0,0 @@
1
- import { __decorate, __read, __spread, __values } from "tslib";
2
- import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';
3
- import { MutationObserverService } from '../mutation/mutation-observer-service';
4
- import { SkyViewkeeperService } from './viewkeeper.service';
5
- var SkyViewkeeperDirective = /** @class */ (function () {
6
- function SkyViewkeeperDirective(el, mutationObserverSvc, viewkeeperSvc) {
7
- this.el = el;
8
- this.mutationObserverSvc = mutationObserverSvc;
9
- this.viewkeeperSvc = viewkeeperSvc;
10
- this.viewkeepers = [];
11
- }
12
- Object.defineProperty(SkyViewkeeperDirective.prototype, "skyViewkeeper", {
13
- get: function () {
14
- return this._skyViewkeeper;
15
- },
16
- set: function (value) {
17
- this._skyViewkeeper = value;
18
- this.detectElements();
19
- },
20
- enumerable: true,
21
- configurable: true
22
- });
23
- SkyViewkeeperDirective.prototype.ngOnInit = function () {
24
- var _this = this;
25
- this.observer = this.mutationObserverSvc.create(function () { return _this.detectElements(); });
26
- this.observer.observe(this.el.nativeElement, {
27
- childList: true,
28
- subtree: true
29
- });
30
- };
31
- SkyViewkeeperDirective.prototype.ngOnDestroy = function () {
32
- this.observer.disconnect();
33
- this.destroyViewkeepers();
34
- };
35
- SkyViewkeeperDirective.prototype.destroyViewkeepers = function () {
36
- var e_1, _a;
37
- try {
38
- for (var _b = __values(this.viewkeepers), _c = _b.next(); !_c.done; _c = _b.next()) {
39
- var viewkeeper = _c.value;
40
- this.viewkeeperSvc.destroy(viewkeeper);
41
- }
42
- }
43
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
44
- finally {
45
- try {
46
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
47
- }
48
- finally { if (e_1) throw e_1.error; }
49
- }
50
- this.viewkeepers = [];
51
- };
52
- SkyViewkeeperDirective.prototype.getViewkeeperEls = function () {
53
- var e_2, _a;
54
- var viewkeeperEls;
55
- if (this.skyViewkeeper) {
56
- viewkeeperEls = [];
57
- try {
58
- for (var _b = __values(this.skyViewkeeper), _c = _b.next(); !_c.done; _c = _b.next()) {
59
- var item = _c.value;
60
- var matchingEls = Array.from(this.el.nativeElement.querySelectorAll(item));
61
- viewkeeperEls = __spread(viewkeeperEls, matchingEls);
62
- }
63
- }
64
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
65
- finally {
66
- try {
67
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
68
- }
69
- finally { if (e_2) throw e_2.error; }
70
- }
71
- }
72
- return viewkeeperEls;
73
- };
74
- SkyViewkeeperDirective.prototype.viewkeeperElsChanged = function (viewkeeperEls) {
75
- if (!viewkeeperEls !== !this.currentViewkeeperEls) {
76
- return true;
77
- }
78
- if (viewkeeperEls && this.currentViewkeeperEls) {
79
- if (viewkeeperEls.length !== this.currentViewkeeperEls.length) {
80
- return true;
81
- }
82
- for (var i = 0, n = viewkeeperEls.length; i < n; i++) {
83
- if (viewkeeperEls[i] !== this.currentViewkeeperEls[i]) {
84
- return true;
85
- }
86
- }
87
- }
88
- return false;
89
- };
90
- SkyViewkeeperDirective.prototype.detectElements = function () {
91
- var e_3, _a;
92
- var viewkeeperEls = this.getViewkeeperEls();
93
- if (this.viewkeeperElsChanged(viewkeeperEls)) {
94
- this.destroyViewkeepers();
95
- var previousViewkeeperEl = void 0;
96
- try {
97
- for (var viewkeeperEls_1 = __values(viewkeeperEls), viewkeeperEls_1_1 = viewkeeperEls_1.next(); !viewkeeperEls_1_1.done; viewkeeperEls_1_1 = viewkeeperEls_1.next()) {
98
- var viewkeeperEl = viewkeeperEls_1_1.value;
99
- this.viewkeepers.push(this.viewkeeperSvc.create({
100
- boundaryEl: this.el.nativeElement,
101
- el: viewkeeperEl,
102
- setWidth: true,
103
- verticalOffsetEl: previousViewkeeperEl
104
- }));
105
- previousViewkeeperEl = viewkeeperEl;
106
- }
107
- }
108
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
109
- finally {
110
- try {
111
- if (viewkeeperEls_1_1 && !viewkeeperEls_1_1.done && (_a = viewkeeperEls_1.return)) _a.call(viewkeeperEls_1);
112
- }
113
- finally { if (e_3) throw e_3.error; }
114
- }
115
- this.currentViewkeeperEls = viewkeeperEls;
116
- }
117
- };
118
- SkyViewkeeperDirective.ctorParameters = function () { return [
119
- { type: ElementRef },
120
- { type: MutationObserverService },
121
- { type: SkyViewkeeperService }
122
- ]; };
123
- __decorate([
124
- Input()
125
- ], SkyViewkeeperDirective.prototype, "skyViewkeeper", null);
126
- SkyViewkeeperDirective = __decorate([
127
- Directive({
128
- selector: '[skyViewkeeper]'
129
- })
130
- ], SkyViewkeeperDirective);
131
- return SkyViewkeeperDirective;
132
- }());
133
- export { SkyViewkeeperDirective };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLHVDQUF1QyxDQUFDO0FBTS9DLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQUs5QjtJQXFCRSxnQ0FDVSxFQUFjLEVBQ2QsbUJBQTRDLEVBQzVDLGFBQW1DO1FBRm5DLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQVRyQyxnQkFBVyxHQUFvQixFQUFFLENBQUM7SUFVdEMsQ0FBQztJQXRCTCxzQkFBVyxpREFBYTthQU14QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3QixDQUFDO2FBUkQsVUFBeUIsS0FBZTtZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUU1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQzs7O09BQUE7SUFvQk0seUNBQVEsR0FBZjtRQUFBLGlCQVVDO1FBVEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsY0FBYyxFQUFFLEVBQXJCLENBQXFCLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQ3JCO1lBQ0UsU0FBUyxFQUFFLElBQUk7WUFDZixP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O0lBckI3QztRQURDLEtBQUssRUFBRTsrREFLUDtJQVBVLHNCQUFzQjtRQUhsQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1NBQzVCLENBQUM7T0FDVyxzQkFBc0IsQ0FxSGxDO0lBQUQsNkJBQUM7Q0FBQSxBQXJIRCxJQXFIQztTQXJIWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgTXV0YXRpb25PYnNlcnZlclNlcnZpY2Vcbn0gZnJvbSAnLi4vbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJcbn0gZnJvbSAnLi92aWV3a2VlcGVyJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlclNlcnZpY2Vcbn0gZnJvbSAnLi92aWV3a2VlcGVyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5Vmlld2tlZXBlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lWaWV3a2VlcGVyKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3NreVZpZXdrZWVwZXIgPSB2YWx1ZTtcblxuICAgIHRoaXMuZGV0ZWN0RWxlbWVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2t5Vmlld2tlZXBlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NreVZpZXdrZWVwZXI7XG4gIH1cblxuICBwcml2YXRlIF9za3lWaWV3a2VlcGVyOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIHZpZXdrZWVwZXJzOiBTa3lWaWV3a2VlcGVyW10gPSBbXTtcblxuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByaXZhdGUgY3VycmVudFZpZXdrZWVwZXJFbHM6IEhUTUxFbGVtZW50W107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld2tlZXBlclN2YzogU2t5Vmlld2tlZXBlclNlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlciA9IHRoaXMubXV0YXRpb25PYnNlcnZlclN2Yy5jcmVhdGUoKCkgPT4gdGhpcy5kZXRlY3RFbGVtZW50cygpKTtcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgIHRoaXMuZGVzdHJveVZpZXdrZWVwZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lWaWV3a2VlcGVycygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHZpZXdrZWVwZXIgb2YgdGhpcy52aWV3a2VlcGVycykge1xuICAgICAgdGhpcy52aWV3a2VlcGVyU3ZjLmRlc3Ryb3kodmlld2tlZXBlcik7XG4gICAgfVxuXG4gICAgdGhpcy52aWV3a2VlcGVycyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaWV3a2VlcGVyRWxzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIGxldCB2aWV3a2VlcGVyRWxzOiBIVE1MRWxlbWVudFtdO1xuXG4gICAgaWYgKHRoaXMuc2t5Vmlld2tlZXBlcikge1xuICAgICAgdmlld2tlZXBlckVscyA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5za3lWaWV3a2VlcGVyKSB7XG4gICAgICAgIGxldCBtYXRjaGluZ0VscyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbChpdGVtKVxuICAgICAgICApIGFzIEhUTUxFbGVtZW50W107XG5cbiAgICAgICAgdmlld2tlZXBlckVscyA9IFsuLi52aWV3a2VlcGVyRWxzLCAuLi5tYXRjaGluZ0Vsc107XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpZXdrZWVwZXJFbHM7XG4gIH1cblxuICBwcml2YXRlIHZpZXdrZWVwZXJFbHNDaGFuZ2VkKHZpZXdrZWVwZXJFbHM6IEhUTUxFbGVtZW50W10pOiBib29sZWFuIHtcbiAgICBpZiAoIXZpZXdrZWVwZXJFbHMgIT09ICF0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmlld2tlZXBlckVscyAmJiB0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzKSB7XG4gICAgICBpZiAodmlld2tlZXBlckVscy5sZW5ndGggIT09IHRoaXMuY3VycmVudFZpZXdrZWVwZXJFbHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMCwgbiA9IHZpZXdrZWVwZXJFbHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGlmICh2aWV3a2VlcGVyRWxzW2ldICE9PSB0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzW2ldKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGxldCB2aWV3a2VlcGVyRWxzID0gdGhpcy5nZXRWaWV3a2VlcGVyRWxzKCk7XG5cbiAgICBpZiAodGhpcy52aWV3a2VlcGVyRWxzQ2hhbmdlZCh2aWV3a2VlcGVyRWxzKSkge1xuICAgICAgdGhpcy5kZXN0cm95Vmlld2tlZXBlcnMoKTtcblxuICAgICAgbGV0IHByZXZpb3VzVmlld2tlZXBlckVsOiBIVE1MRWxlbWVudDtcblxuICAgICAgZm9yIChjb25zdCB2aWV3a2VlcGVyRWwgb2Ygdmlld2tlZXBlckVscykge1xuICAgICAgICB0aGlzLnZpZXdrZWVwZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyU3ZjLmNyZWF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYm91bmRhcnlFbDogdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICBlbDogdmlld2tlZXBlckVsLFxuICAgICAgICAgICAgICBzZXRXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgdmVydGljYWxPZmZzZXRFbDogcHJldmlvdXNWaWV3a2VlcGVyRWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJldmlvdXNWaWV3a2VlcGVyRWwgPSB2aWV3a2VlcGVyRWw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudFZpZXdrZWVwZXJFbHMgPSB2aWV3a2VlcGVyRWxzO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,219 +0,0 @@
1
- var CLS_VIEWKEEPER_FIXED = 'sky-viewkeeper-fixed';
2
- var EVT_AFTER_VIEWKEEPER_SYNC = 'afterViewkeeperSync';
3
- var styleEl;
4
- var nextIdIndex;
5
- function ensureStyleEl() {
6
- if (!styleEl) {
7
- styleEl = document.createElement('style');
8
- var css = document.createTextNode("\n." + CLS_VIEWKEEPER_FIXED + " {\n position: fixed !important;\n z-index: 999;\n opacity: 0.95;\n overflow: hidden;\n}\n\n.sky-theme-modern ." + CLS_VIEWKEEPER_FIXED + " {\n box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.3);\n opacity: initial;\n}\n");
9
- styleEl.appendChild(css);
10
- document.head.appendChild(styleEl);
11
- }
12
- }
13
- function nextId() {
14
- nextIdIndex = (nextIdIndex || 0) + 1;
15
- return 'viewkeeper-' + nextIdIndex;
16
- }
17
- function getOffset(el) {
18
- var rect = el.getBoundingClientRect();
19
- return {
20
- top: rect.top + document.documentElement.scrollTop,
21
- left: rect.left + document.documentElement.scrollLeft
22
- };
23
- }
24
- function px(value) {
25
- var pxValue = value ? value.toString() : '';
26
- if (typeof value === 'number') {
27
- pxValue = value + 'px';
28
- }
29
- return pxValue;
30
- }
31
- function setElPosition(el, left, top, width, marginTop) {
32
- el.style.top = px(top);
33
- el.style.left = px(left);
34
- el.style.marginTop = px(marginTop);
35
- /*istanbul ignore else*/
36
- /* sanity check */
37
- if (width !== null) {
38
- el.style.width = px(width);
39
- }
40
- }
41
- function getHeightWithMargin(el) {
42
- var computedStyle = getComputedStyle(el);
43
- return el.offsetHeight + parseInt(computedStyle.marginTop, 10) + parseInt(computedStyle.marginBottom, 10);
44
- }
45
- function createCustomEvent(name) {
46
- var evt = document.createEvent('CustomEvent');
47
- evt.initCustomEvent(name, false, false, undefined);
48
- return evt;
49
- }
50
- var SkyViewkeeper = /** @class */ (function () {
51
- function SkyViewkeeper(options) {
52
- var _this = this;
53
- options = options || /* istanbul ignore next */ {};
54
- this.setWidth = options.setWidth;
55
- this.id = nextId();
56
- this.el = options.el;
57
- this.boundaryEl = options.boundaryEl;
58
- this.verticalOffset = options.verticalOffset || 0;
59
- this.verticalOffsetEl = options.verticalOffsetEl;
60
- this.viewportMarginTop = options.viewportMarginTop || 0;
61
- this.syncElPositionHandler = function () { return _this.syncElPosition(); };
62
- if (this.verticalOffsetEl) {
63
- this.verticalOffsetEl.addEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
64
- }
65
- window.addEventListener('scroll', this.syncElPositionHandler);
66
- window.addEventListener('resize', this.syncElPositionHandler);
67
- window.addEventListener('orientationchange', this.syncElPositionHandler);
68
- ensureStyleEl();
69
- this.syncElPosition();
70
- }
71
- SkyViewkeeper.prototype.syncElPosition = function () {
72
- var verticalOffset = this.calculateVerticalOffset();
73
- // When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.
74
- if (this.el.offsetWidth === 0 && this.el.offsetHeight === 0) {
75
- return;
76
- }
77
- var boundaryInfo = this.getBoundaryInfo();
78
- var fixedStyles = this.getFixedStyles(boundaryInfo, verticalOffset);
79
- var doFixEl = this.shouldFixEl(boundaryInfo, verticalOffset);
80
- if (this.needsUpdating(doFixEl, fixedStyles)) {
81
- if (doFixEl) {
82
- this.fixEl(boundaryInfo, fixedStyles);
83
- }
84
- else {
85
- this.unfixEl();
86
- }
87
- }
88
- var evt = createCustomEvent(EVT_AFTER_VIEWKEEPER_SYNC);
89
- this.el.dispatchEvent(evt);
90
- };
91
- SkyViewkeeper.prototype.destroy = function () {
92
- if (!this.isDestroyed) {
93
- window.removeEventListener('scroll', this.syncElPositionHandler);
94
- window.removeEventListener('resize', this.syncElPositionHandler);
95
- window.removeEventListener('orientationchange', this.syncElPositionHandler);
96
- this.unfixEl();
97
- if (this.verticalOffsetEl) {
98
- this.verticalOffsetEl.removeEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
99
- }
100
- this.el =
101
- this.boundaryEl =
102
- this.verticalOffsetEl = undefined;
103
- this.isDestroyed = true;
104
- }
105
- };
106
- SkyViewkeeper.prototype.getSpacerId = function () {
107
- return this.id + '-spacer';
108
- };
109
- SkyViewkeeper.prototype.unfixEl = function () {
110
- var spacerEl = document.getElementById(this.getSpacerId());
111
- if (spacerEl) {
112
- spacerEl.parentElement.removeChild(spacerEl);
113
- }
114
- this.el.classList.remove(CLS_VIEWKEEPER_FIXED);
115
- this.currentElFixedLeft =
116
- this.currentElFixedTop =
117
- this.currentElFixedWidth = undefined;
118
- var width;
119
- if (this.setWidth) {
120
- width = 'auto';
121
- }
122
- setElPosition(this.el, '', '', width, '');
123
- };
124
- SkyViewkeeper.prototype.calculateVerticalOffset = function () {
125
- var offset = this.verticalOffset;
126
- if (this.verticalOffsetEl) {
127
- var verticalOffsetElTopStyle = this.verticalOffsetEl.style.top;
128
- var verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;
129
- offset += (this.verticalOffsetEl.offsetHeight + verticalOffsetElTop);
130
- }
131
- return offset;
132
- };
133
- SkyViewkeeper.prototype.shouldFixEl = function (boundaryInfo, verticalOffset) {
134
- var anchorTop;
135
- var doFixEl;
136
- if (boundaryInfo.spacerEl) {
137
- anchorTop = getOffset(boundaryInfo.spacerEl).top;
138
- }
139
- else {
140
- anchorTop = getOffset(this.el).top;
141
- }
142
- doFixEl = boundaryInfo.scrollTop + verticalOffset + this.viewportMarginTop > anchorTop;
143
- return doFixEl;
144
- };
145
- SkyViewkeeper.prototype.getFixedStyles = function (boundaryInfo, verticalOffset) {
146
- var elFixedTop;
147
- // If the element needs to be fixed, this will calculate its position. The position
148
- // will be 0 (fully visible) unless the user is scrolling the boundary out of view.
149
- // In that case, the element should begin to scroll out of view with the
150
- // rest of the boundary by setting its top position to a negative value.
151
- elFixedTop = Math.min((boundaryInfo.boundaryBottom - boundaryInfo.elHeight) - boundaryInfo.scrollTop, verticalOffset);
152
- var elFixedWidth = boundaryInfo.boundaryEl.getBoundingClientRect().width;
153
- var elFixedLeft = boundaryInfo.boundaryOffset.left - boundaryInfo.scrollLeft;
154
- return {
155
- elFixedLeft: elFixedLeft,
156
- elFixedTop: elFixedTop,
157
- elFixedWidth: elFixedWidth
158
- };
159
- };
160
- SkyViewkeeper.prototype.needsUpdating = function (doFixEl, fixedStyles) {
161
- if ((doFixEl &&
162
- this.currentElFixedLeft === fixedStyles.elFixedLeft &&
163
- this.currentElFixedTop === fixedStyles.elFixedTop &&
164
- this.currentElFixedWidth === fixedStyles.elFixedWidth) ||
165
- (!doFixEl &&
166
- !(this.currentElFixedLeft !== undefined && this.currentElFixedLeft !== null))) {
167
- // The element is either currently fixed and its position and width do not need
168
- // to change, or the element is not currently fixed and does not need to be fixed.
169
- // No changes are needed.
170
- return false;
171
- }
172
- return true;
173
- };
174
- SkyViewkeeper.prototype.fixEl = function (boundaryInfo, fixedStyles) {
175
- var el = this.el;
176
- /* istanbul ignore else */
177
- /* sanity check */
178
- if (!boundaryInfo.spacerEl) {
179
- var spacerHeight = boundaryInfo.elHeight;
180
- var spacerEl = document.createElement('div');
181
- spacerEl.id = boundaryInfo.spacerId;
182
- spacerEl.style.height = px(spacerHeight);
183
- el.parentNode.insertBefore(spacerEl, el.nextSibling);
184
- }
185
- el.classList.add(CLS_VIEWKEEPER_FIXED);
186
- this.currentElFixedTop = fixedStyles.elFixedTop;
187
- this.currentElFixedLeft = fixedStyles.elFixedLeft;
188
- this.currentElFixedWidth = fixedStyles.elFixedWidth;
189
- var width;
190
- if (this.setWidth) {
191
- width = fixedStyles.elFixedWidth;
192
- }
193
- setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.viewportMarginTop);
194
- };
195
- SkyViewkeeper.prototype.getBoundaryInfo = function () {
196
- var spacerId = this.getSpacerId();
197
- var spacerEl = document.getElementById(spacerId);
198
- var boundaryEl = this.boundaryEl;
199
- var boundaryOffset = getOffset(boundaryEl);
200
- var boundaryTop = boundaryOffset.top;
201
- var boundaryBottom = boundaryTop + boundaryEl.getBoundingClientRect().height;
202
- var scrollLeft = document.documentElement.scrollLeft;
203
- var scrollTop = document.documentElement.scrollTop;
204
- var elHeight = getHeightWithMargin(this.el);
205
- return {
206
- boundaryBottom: boundaryBottom,
207
- boundaryOffset: boundaryOffset,
208
- boundaryEl: boundaryEl,
209
- elHeight: elHeight,
210
- scrollLeft: scrollLeft,
211
- scrollTop: scrollTop,
212
- spacerId: spacerId,
213
- spacerEl: spacerEl
214
- };
215
- };
216
- return SkyViewkeeper;
217
- }());
218
- export { SkyViewkeeper };
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsibW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLElBQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUFDcEQsSUFBTSx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQztBQUV4RCxJQUFJLE9BQXlCLENBQUM7QUFDOUIsSUFBSSxXQUFtQixDQUFDO0FBRXhCLFNBQVMsYUFBYTtJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUNuQyxvQkFBb0IsMkhBT0Ysb0JBQW9CLHFGQUl4QyxDQUNJLENBQUM7UUFFRixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3BDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTTtJQUNiLFdBQVcsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckMsT0FBTyxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxFQUFlO0lBQ2hDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRXhDLE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVM7UUFDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxVQUFVO0tBQ3RELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsS0FBc0I7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LEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFckQsSUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLE9BQU87WUFDTCxjQUFjLGdCQUFBO1lBQ2QsY0FBYyxnQkFBQTtZQUNkLFVBQVUsWUFBQTtZQUNWLFFBQVEsVUFBQTtZQUNSLFVBQVUsWUFBQTtZQUNWLFNBQVMsV0FBQTtZQUNULFFBQVEsVUFBQTtZQUNSLFFBQVEsVUFBQTtTQUNULENBQUM7SUFDSixDQUFDO0lBRUgsb0JBQUM7QUFBRCxDQUFDLEFBaFJELElBZ1JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mb1xufSBmcm9tICcuL3ZpZXdrZWVwZXItYm91bmRhcnktaW5mbyc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlc1xufSBmcm9tICcuL3ZpZXdrZWVwZXItZml4ZWQtc3R5bGVzJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlck9mZnNldFxufSBmcm9tICcuL3ZpZXdrZWVwZXItb2Zmc2V0JztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlck9wdGlvbnNcbn0gZnJvbSAnLi92aWV3a2VlcGVyLW9wdGlvbnMnO1xuXG5jb25zdCBDTFNfVklFV0tFRVBFUl9GSVhFRCA9ICdza3ktdmlld2tlZXBlci1maXhlZCc7XG5jb25zdCBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DID0gJ2FmdGVyVmlld2tlZXBlclN5bmMnO1xuXG5sZXQgc3R5bGVFbDogSFRNTFN0eWxlRWxlbWVudDtcbmxldCBuZXh0SWRJbmRleDogbnVtYmVyO1xuXG5mdW5jdGlvbiBlbnN1cmVTdHlsZUVsKCk6IHZvaWQge1xuICBpZiAoIXN0eWxlRWwpIHtcbiAgICBzdHlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgIGxldCBjc3MgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgXG4uJHtDTFNfVklFV0tFRVBFUl9GSVhFRH0ge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAwLjk1O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2t5LXRoZW1lLW1vZGVybiAuJHtDTFNfVklFV0tFRVBFUl9GSVhFRH0ge1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgb3BhY2l0eTogaW5pdGlhbDtcbn1cbmBcbiAgICApO1xuXG4gICAgc3R5bGVFbC5hcHBlbmRDaGlsZChjc3MpO1xuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBuZXh0SWQoKTogc3RyaW5nIHtcbiAgbmV4dElkSW5kZXggPSAobmV4dElkSW5kZXggfHwgMCkgKyAxO1xuXG4gIHJldHVybiAndmlld2tlZXBlci0nICsgbmV4dElkSW5kZXg7XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldChlbDogSFRNTEVsZW1lbnQpOiBTa3lWaWV3a2VlcGVyT2Zmc2V0IHtcbiAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIHJldHVybiB7XG4gICAgdG9wOiByZWN0LnRvcCArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsXG4gICAgbGVmdDogcmVjdC5sZWZ0ICsgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnRcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHgodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBweFZhbHVlID0gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogJyc7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBweFZhbHVlID0gdmFsdWUgKyAncHgnO1xuICB9XG5cbiAgcmV0dXJuIHB4VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldEVsUG9zaXRpb24oXG4gIGVsOiBIVE1MRWxlbWVudCxcbiAgbGVmdDogbnVtYmVyIHwgc3RyaW5nLFxuICB0b3A6IG51bWJlciB8IHN0cmluZyxcbiAgd2lkdGg6IG51bWJlciB8IHN0cmluZyxcbiAgbWFyZ2luVG9wOiBudW1iZXIgfCBzdHJpbmdcbik6IHZvaWQge1xuICBlbC5zdHlsZS50b3AgPSBweCh0b3ApO1xuICBlbC5zdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gIGVsLnN0eWxlLm1hcmdpblRvcCA9IHB4KG1hcmdpblRvcCk7XG5cbiAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gIC8qIHNhbml0eSBjaGVjayAqL1xuICBpZiAod2lkdGggIT09IG51bGwpIHtcbiAgICBlbC5zdHlsZS53aWR0aCA9IHB4KHdpZHRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICByZXR1cm4gZWwub2Zmc2V0SGVpZ2h0ICsgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3AsIDEwKSArIHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLCAxMCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUV2ZW50KG5hbWU6IGFueSk6IEN1c3RvbUV2ZW50PGFueT4ge1xuICBjb25zdCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcblxuICBldnQuaW5pdEN1c3RvbUV2ZW50KFxuICAgIG5hbWUsXG4gICAgZmFsc2UsXG4gICAgZmFsc2UsXG4gICAgdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIGV2dDtcbn1cblxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXIge1xuXG4gIHByaXZhdGUgc2V0V2lkdGg6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBpZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgZWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgYm91bmRhcnlFbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyO1xuXG4gIHByaXZhdGUgdmVydGljYWxPZmZzZXRFbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSB2aWV3cG9ydE1hcmdpblRvcDogbnVtYmVyO1xuXG4gIHByaXZhdGUgaXNEZXN0cm95ZWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZFRvcDogbnVtYmVyO1xuXG4gIHByaXZhdGUgY3VycmVudEVsRml4ZWRMZWZ0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZFdpZHRoOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBzeW5jRWxQb3NpdGlvbkhhbmRsZXI6ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2t5Vmlld2tlZXBlck9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyB7fTtcblxuICAgIHRoaXMuc2V0V2lkdGggPSBvcHRpb25zLnNldFdpZHRoO1xuICAgIHRoaXMuaWQgPSBuZXh0SWQoKTtcbiAgICB0aGlzLmVsID0gb3B0aW9ucy5lbDtcbiAgICB0aGlzLmJvdW5kYXJ5RWwgPSBvcHRpb25zLmJvdW5kYXJ5RWw7XG4gICAgdGhpcy52ZXJ0aWNhbE9mZnNldCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXQgfHwgMDtcbiAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwgPSBvcHRpb25zLnZlcnRpY2FsT2Zmc2V0RWw7XG4gICAgdGhpcy52aWV3cG9ydE1hcmdpblRvcCA9IG9wdGlvbnMudmlld3BvcnRNYXJnaW5Ub3AgfHwgMDtcblxuICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyID0gKCkgPT4gdGhpcy5zeW5jRWxQb3NpdGlvbigpO1xuXG4gICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICApO1xuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG5cbiAgICBlbnN1cmVTdHlsZUVsKCk7XG5cbiAgICB0aGlzLnN5bmNFbFBvc2l0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgc3luY0VsUG9zaXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgdmVydGljYWxPZmZzZXQgPSB0aGlzLmNhbGN1bGF0ZVZlcnRpY2FsT2Zmc2V0KCk7XG5cbiAgICAvLyBXaGVuIHRoZSBlbGVtZW50IGlzbid0IHZpc2libGUsIGl0cyBzaXplIGNhbid0IGJlIGNhbGN1bGF0ZWQsIHNvIGRvbid0IGF0dGVtcHQgc3luY2luZyBwb3NpdGlvbiBpbiB0aGlzIGNhc2UuXG4gICAgaWYgKHRoaXMuZWwub2Zmc2V0V2lkdGggPT09IDAgJiYgdGhpcy5lbC5vZmZzZXRIZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZGFyeUluZm8gPSB0aGlzLmdldEJvdW5kYXJ5SW5mbygpO1xuICAgIGNvbnN0IGZpeGVkU3R5bGVzID0gdGhpcy5nZXRGaXhlZFN0eWxlcyhib3VuZGFyeUluZm8sIHZlcnRpY2FsT2Zmc2V0KTtcblxuICAgIGNvbnN0IGRvRml4RWwgPSB0aGlzLnNob3VsZEZpeEVsKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMubmVlZHNVcGRhdGluZyhkb0ZpeEVsLCBmaXhlZFN0eWxlcykpIHtcbiAgICAgIGlmIChkb0ZpeEVsKSB7XG4gICAgICAgIHRoaXMuZml4RWwoYm91bmRhcnlJbmZvLCBmaXhlZFN0eWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVuZml4RWwoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBldnQgPSBjcmVhdGVDdXN0b21FdmVudChFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DKTtcblxuICAgIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChldnQpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcblxuICAgICAgdGhpcy51bmZpeEVsKCk7XG5cbiAgICAgIGlmICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyxcbiAgICAgICAgICB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlclxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVsID1cbiAgICAgICAgdGhpcy5ib3VuZGFyeUVsID1cbiAgICAgICAgdGhpcy52ZXJ0aWNhbE9mZnNldEVsID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLmlzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNwYWNlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgKyAnLXNwYWNlcic7XG4gIH1cblxuICBwcml2YXRlIHVuZml4RWwoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmdldFNwYWNlcklkKCkpO1xuXG4gICAgaWYgKHNwYWNlckVsKSB7XG4gICAgICBzcGFjZXJFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNwYWNlckVsKTtcbiAgICB9XG5cbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPVxuICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9XG4gICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPSB1bmRlZmluZWQ7XG5cbiAgICBsZXQgd2lkdGg6IHN0cmluZztcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9ICdhdXRvJztcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKHRoaXMuZWwsICcnLCAnJywgd2lkdGgsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTogbnVtYmVyIHtcbiAgICBsZXQgb2Zmc2V0ID0gdGhpcy52ZXJ0aWNhbE9mZnNldDtcblxuICAgIGlmICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3BTdHlsZSA9IHRoaXMudmVydGljYWxPZmZzZXRFbC5zdHlsZS50b3A7XG4gICAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldEVsVG9wID0gcGFyc2VJbnQodmVydGljYWxPZmZzZXRFbFRvcFN0eWxlLCAxMCkgfHwgMDtcblxuICAgICAgb2Zmc2V0ICs9ICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwub2Zmc2V0SGVpZ2h0ICsgdmVydGljYWxPZmZzZXRFbFRvcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkRml4RWwoYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgbGV0IGFuY2hvclRvcDogbnVtYmVyO1xuICAgIGxldCBkb0ZpeEVsOiBib29sZWFuO1xuXG4gICAgaWYgKGJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGJvdW5kYXJ5SW5mby5zcGFjZXJFbCkudG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbmNob3JUb3AgPSBnZXRPZmZzZXQodGhpcy5lbCkudG9wO1xuICAgIH1cblxuICAgIGRvRml4RWwgPSBib3VuZGFyeUluZm8uc2Nyb2xsVG9wICsgdmVydGljYWxPZmZzZXQgKyB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wID4gYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICBwcml2YXRlIGdldEZpeGVkU3R5bGVzKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyXG4gICk6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB7XG4gICAgbGV0IGVsRml4ZWRUb3A6IG51bWJlcjtcblxuICAgIC8vIElmIHRoZSBlbGVtZW50IG5lZWRzIHRvIGJlIGZpeGVkLCB0aGlzIHdpbGwgY2FsY3VsYXRlIGl0cyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvblxuICAgIC8vIHdpbGwgYmUgMCAoZnVsbHkgdmlzaWJsZSkgdW5sZXNzIHRoZSB1c2VyIGlzIHNjcm9sbGluZyB0aGUgYm91bmRhcnkgb3V0IG9mIHZpZXcuXG4gICAgLy8gSW4gdGhhdCBjYXNlLCB0aGUgZWxlbWVudCBzaG91bGQgYmVnaW4gdG8gc2Nyb2xsIG91dCBvZiB2aWV3IHdpdGggdGhlXG4gICAgLy8gcmVzdCBvZiB0aGUgYm91bmRhcnkgYnkgc2V0dGluZyBpdHMgdG9wIHBvc2l0aW9uIHRvIGEgbmVnYXRpdmUgdmFsdWUuXG4gICAgZWxGaXhlZFRvcCA9IE1hdGgubWluKFxuICAgICAgKGJvdW5kYXJ5SW5mby5ib3VuZGFyeUJvdHRvbSAtIGJvdW5kYXJ5SW5mby5lbEhlaWdodCkgLSBib3VuZGFyeUluZm8uc2Nyb2xsVG9wLFxuICAgICAgdmVydGljYWxPZmZzZXRcbiAgICApO1xuXG4gICAgY29uc3QgZWxGaXhlZFdpZHRoID0gYm91bmRhcnlJbmZvLmJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgZWxGaXhlZExlZnQgPSBib3VuZGFyeUluZm8uYm91bmRhcnlPZmZzZXQubGVmdCAtIGJvdW5kYXJ5SW5mby5zY3JvbGxMZWZ0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVsRml4ZWRMZWZ0LFxuICAgICAgZWxGaXhlZFRvcCxcbiAgICAgIGVsRml4ZWRXaWR0aFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5lZWRzVXBkYXRpbmcoZG9GaXhFbDogYm9vbGVhbiwgZml4ZWRTdHlsZXM6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIChcbiAgICAgICAgZG9GaXhFbCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZFRvcCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aFxuICAgICAgKSB8fFxuICAgICAgKFxuICAgICAgICAhZG9GaXhFbCAmJlxuICAgICAgICAhKHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgIT09IG51bGwpXG4gICAgICApXG4gICAgKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBlaXRoZXIgY3VycmVudGx5IGZpeGVkIGFuZCBpdHMgcG9zaXRpb24gYW5kIHdpZHRoIGRvIG5vdCBuZWVkXG4gICAgICAvLyB0byBjaGFuZ2UsIG9yIHRoZSBlbGVtZW50IGlzIG5vdCBjdXJyZW50bHkgZml4ZWQgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgZml4ZWQuXG4gICAgICAvLyBObyBjaGFuZ2VzIGFyZSBuZWVkZWQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGZpeEVsKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbDtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgaWYgKCFib3VuZGFyeUluZm8uc3BhY2VyRWwpIHtcbiAgICAgIGNvbnN0IHNwYWNlckhlaWdodCA9IGJvdW5kYXJ5SW5mby5lbEhlaWdodDtcblxuICAgICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHNwYWNlckVsLmlkID0gYm91bmRhcnlJbmZvLnNwYWNlcklkO1xuICAgICAgc3BhY2VyRWwuc3R5bGUuaGVpZ2h0ID0gcHgoc3BhY2VySGVpZ2h0KTtcblxuICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhY2VyRWwsIGVsLm5leHRTaWJsaW5nKTtcbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QuYWRkKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuY3VycmVudEVsRml4ZWRUb3AgPSBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wO1xuICAgIHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ID0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQ7XG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZFdpZHRoID0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoO1xuXG4gICAgbGV0IHdpZHRoOiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5zZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihcbiAgICAgIGVsLFxuICAgICAgZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wLFxuICAgICAgd2lkdGgsXG4gICAgICB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm91bmRhcnlJbmZvKCk6IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8ge1xuICAgIGNvbnN0IHNwYWNlcklkID0gdGhpcy5nZXRTcGFjZXJJZCgpO1xuXG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFjZXJJZCk7XG5cbiAgICBjb25zdCBib3VuZGFyeUVsID0gdGhpcy5ib3VuZGFyeUVsO1xuXG4gICAgY29uc3QgYm91bmRhcnlPZmZzZXQgPSBnZXRPZmZzZXQoYm91bmRhcnlFbCk7XG4gICAgY29uc3QgYm91bmRhcnlUb3AgPSBib3VuZGFyeU9mZnNldC50b3A7XG4gICAgY29uc3QgYm91bmRhcnlCb3R0b20gPSBib3VuZGFyeVRvcCArIGJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICBjb25zdCBlbEhlaWdodCA9IGdldEhlaWdodFdpdGhNYXJnaW4odGhpcy5lbCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm91bmRhcnlCb3R0b20sXG4gICAgICBib3VuZGFyeU9mZnNldCxcbiAgICAgIGJvdW5kYXJ5RWwsXG4gICAgICBlbEhlaWdodCxcbiAgICAgIHNjcm9sbExlZnQsXG4gICAgICBzY3JvbGxUb3AsXG4gICAgICBzcGFjZXJJZCxcbiAgICAgIHNwYWNlckVsXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { NgModule } from '@angular/core';
3
- import { SkyViewkeeperDirective } from './viewkeeper.directive';
4
- var SkyViewkeeperModule = /** @class */ (function () {
5
- function SkyViewkeeperModule() {
6
- }
7
- SkyViewkeeperModule = __decorate([
8
- NgModule({
9
- declarations: [
10
- SkyViewkeeperDirective
11
- ],
12
- exports: [
13
- SkyViewkeeperDirective
14
- ]
15
- })
16
- ], SkyViewkeeperModule);
17
- return SkyViewkeeperModule;
18
- }());
19
- export { SkyViewkeeperModule };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvY29yZS8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sd0JBQXdCLENBQUM7QUFVaEM7SUFBQTtJQUFtQyxDQUFDO0lBQXZCLG1CQUFtQjtRQVIvQixRQUFRLENBQUM7WUFDUixZQUFZLEVBQUU7Z0JBQ1osc0JBQXNCO2FBQ3ZCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLHNCQUFzQjthQUN2QjtTQUNGLENBQUM7T0FDVyxtQkFBbUIsQ0FBSTtJQUFELDBCQUFDO0NBQUEsQUFBcEMsSUFBb0M7U0FBdkIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbn0gZnJvbSAnLi92aWV3a2VlcGVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreVZpZXdrZWVwZXJEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVyTW9kdWxlIHsgfVxuIl19
@@ -1,42 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Injectable, Optional } from '@angular/core';
3
- import { SkyViewkeeper } from './viewkeeper';
4
- import { SkyViewkeeperHostOptions } from './viewkeeper-host-options';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./viewkeeper-host-options";
7
- /**
8
- * Provides methods for creating and destroying viewkeeper instances.
9
- */
10
- var SkyViewkeeperService = /** @class */ (function () {
11
- function SkyViewkeeperService(hostOptions) {
12
- this.hostOptions = hostOptions;
13
- }
14
- /**
15
- *
16
- * @param options Creates a viewkeeper instance, applying host options where applicable.
17
- */
18
- SkyViewkeeperService.prototype.create = function (options) {
19
- options = Object.assign({}, this.hostOptions || {}, options);
20
- return new SkyViewkeeper(options);
21
- };
22
- /**
23
- * Destroys a viewkeeper instance.
24
- * @param vk Viewkeeper instance to destroy.
25
- */
26
- SkyViewkeeperService.prototype.destroy = function (vk) {
27
- vk.destroy();
28
- };
29
- SkyViewkeeperService.ctorParameters = function () { return [
30
- { type: SkyViewkeeperHostOptions, decorators: [{ type: Optional }] }
31
- ]; };
32
- SkyViewkeeperService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyViewkeeperService_Factory() { return new SkyViewkeeperService(i0.ɵɵinject(i1.SkyViewkeeperHostOptions, 8)); }, token: SkyViewkeeperService, providedIn: "root" });
33
- SkyViewkeeperService = __decorate([
34
- Injectable({
35
- providedIn: 'root'
36
- }),
37
- __param(0, Optional())
38
- ], SkyViewkeeperService);
39
- return SkyViewkeeperService;
40
- }());
41
- export { SkyViewkeeperService };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2NvcmUvIiwic291cmNlcyI6WyJtb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsYUFBYSxFQUNkLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDTCx3QkFBd0IsRUFDekIsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBTW5DOztHQUVHO0FBSUg7SUFFRSw4QkFBZ0MsV0FBc0M7UUFBdEMsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO0lBQUksQ0FBQztJQUUzRTs7O09BR0c7SUFDSSxxQ0FBTSxHQUFiLFVBQWMsT0FBNkI7UUFDekMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdELE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLHNDQUFPLEdBQWQsVUFBZSxFQUFpQjtRQUM5QixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDOztnQkFsQjZDLHdCQUF3Qix1QkFBekQsUUFBUTs7O0lBRlYsb0JBQW9CO1FBSGhDLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUM7UUFHYSxXQUFBLFFBQVEsRUFBRSxDQUFBO09BRlosb0JBQW9CLENBc0JoQzsrQkE3Q0Q7Q0E2Q0MsQUF0QkQsSUFzQkM7U0F0Qlksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreVZpZXdrZWVwZXJcbn0gZnJvbSAnLi92aWV3a2VlcGVyJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlckhvc3RPcHRpb25zXG59IGZyb20gJy4vdmlld2tlZXBlci1ob3N0LW9wdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT3B0aW9uc1xufSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgdmlld2tlZXBlciBpbnN0YW5jZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGhvc3RPcHRpb25zPzogU2t5Vmlld2tlZXBlckhvc3RPcHRpb25zKSB7IH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgQ3JlYXRlcyBhIHZpZXdrZWVwZXIgaW5zdGFuY2UsIGFwcGx5aW5nIGhvc3Qgb3B0aW9ucyB3aGVyZSBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZShvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucyk6IFNreVZpZXdrZWVwZXIge1xuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhvc3RPcHRpb25zIHx8IHt9LCBvcHRpb25zKTtcblxuICAgIHJldHVybiBuZXcgU2t5Vmlld2tlZXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyBhIHZpZXdrZWVwZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB2ayBWaWV3a2VlcGVyIGluc3RhbmNlIHRvIGRlc3Ryb3kuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSh2azogU2t5Vmlld2tlZXBlcik6IHZvaWQge1xuICAgIHZrLmRlc3Ryb3koKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @internal
6
- */
7
- export function getWindow() {
8
- return window;
9
- }
10
- /**
11
- * The application window reference service references the global window variable.
12
- * After users inject SkyAppWindowRef into a component, they can use the service to interact with
13
- * window properties and event handlers by referencing its nativeWindow property.
14
- */
15
- var SkyAppWindowRef = /** @class */ (function () {
16
- function SkyAppWindowRef() {
17
- }
18
- Object.defineProperty(SkyAppWindowRef.prototype, "nativeWindow", {
19
- /**
20
- * References the global `window` variable.
21
- */
22
- get: function () {
23
- return getWindow();
24
- },
25
- enumerable: true,
26
- configurable: true
27
- });
28
- SkyAppWindowRef.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyAppWindowRef_Factory() { return new SkyAppWindowRef(); }, token: SkyAppWindowRef, providedIn: "root" });
29
- SkyAppWindowRef = __decorate([
30
- Injectable({
31
- providedIn: 'root'
32
- })
33
- ], SkyAppWindowRef);
34
- return SkyAppWindowRef;
35
- }());
36
- export { SkyAppWindowRef };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9jb3JlLyIsInNvdXJjZXMiOlsibW9kdWxlcy93aW5kb3cvd2luZG93LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUlIO0lBQUE7S0FRQztJQUhDLHNCQUFXLHlDQUFZO1FBSHZCOztXQUVHO2FBQ0g7WUFDRSxPQUFPLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7OztPQUFBOztJQVBVLGVBQWU7UUFIM0IsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztPQUNXLGVBQWUsQ0FRM0I7MEJBM0JEO0NBMkJDLEFBUkQsSUFRQztTQVJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2luZG93KCk6IGFueSB7XG4gIHJldHVybiB3aW5kb3c7XG59XG5cbi8qKlxuICogVGhlIGFwcGxpY2F0aW9uIHdpbmRvdyByZWZlcmVuY2Ugc2VydmljZSByZWZlcmVuY2VzIHRoZSBnbG9iYWwgd2luZG93IHZhcmlhYmxlLlxuICogQWZ0ZXIgdXNlcnMgaW5qZWN0IFNreUFwcFdpbmRvd1JlZiBpbnRvIGEgY29tcG9uZW50LCB0aGV5IGNhbiB1c2UgdGhlIHNlcnZpY2UgdG8gaW50ZXJhY3Qgd2l0aFxuICogd2luZG93IHByb3BlcnRpZXMgYW5kIGV2ZW50IGhhbmRsZXJzIGJ5IHJlZmVyZW5jaW5nIGl0cyBuYXRpdmVXaW5kb3cgcHJvcGVydHkuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcFdpbmRvd1JlZiB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZXMgdGhlIGdsb2JhbCBgd2luZG93YCB2YXJpYWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgbmF0aXZlV2luZG93KCk6IGFueSB7XG4gICAgcmV0dXJuIGdldFdpbmRvdygpO1xuICB9XG59XG4iXX0=