@skyux/core 5.0.0-beta.7 → 5.1.0
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.
- package/LICENSE +21 -0
- package/bundles/skyux-core-testing.umd.js +363 -234
- package/bundles/skyux-core-testing.umd.js.map +1 -1
- package/bundles/skyux-core.umd.js +3295 -2913
- package/bundles/skyux-core.umd.js.map +1 -1
- package/documentation.json +8863 -0
- package/esm2015/modules/adapter-service/adapter.module.js +11 -8
- package/esm2015/modules/adapter-service/adapter.service.js +14 -15
- package/esm2015/modules/adapter-service/focusable-children-options.js +2 -1
- package/esm2015/modules/affix/affix-auto-fit-context.js +1 -1
- package/esm2015/modules/affix/affix-config.js +2 -1
- package/esm2015/modules/affix/affix-horizontal-alignment.js +2 -1
- package/esm2015/modules/affix/affix-offset-change.js +2 -1
- package/esm2015/modules/affix/affix-offset.js +2 -1
- package/esm2015/modules/affix/affix-placement-change.js +2 -1
- package/esm2015/modules/affix/affix-placement.js +2 -1
- package/esm2015/modules/affix/affix-utils.js +1 -1
- package/esm2015/modules/affix/affix-vertical-alignment.js +2 -1
- package/esm2015/modules/affix/affix.directive.js +36 -49
- package/esm2015/modules/affix/affix.module.js +22 -17
- package/esm2015/modules/affix/affix.service.js +12 -15
- package/esm2015/modules/affix/affixer.js +1 -1
- package/esm2015/modules/affix/dom-utils.js +1 -1
- package/esm2015/modules/dock/dock-dom-adapter.service.js +23 -15
- package/esm2015/modules/dock/dock-insert-component-config.js +2 -1
- package/esm2015/modules/dock/dock-item-config.js +2 -1
- package/esm2015/modules/dock/dock-item-reference.js +2 -1
- package/esm2015/modules/dock/dock-item.js +1 -1
- package/esm2015/modules/dock/dock-location.js +19 -0
- package/esm2015/modules/dock/dock-options.js +2 -0
- package/esm2015/modules/dock/dock.component.js +48 -33
- package/esm2015/modules/dock/dock.module.js +28 -17
- package/esm2015/modules/dock/dock.service.js +44 -16
- package/esm2015/modules/dock/sort-by-stack-order.js +1 -1
- package/esm2015/modules/dynamic-component/dynamic-component-location.js +15 -3
- package/esm2015/modules/dynamic-component/dynamic-component-options.js +2 -1
- package/esm2015/modules/dynamic-component/dynamic-component.module.js +11 -8
- package/esm2015/modules/dynamic-component/dynamic-component.service.js +24 -20
- package/esm2015/modules/format/app-format.js +11 -11
- package/esm2015/modules/id/id.directive.js +14 -16
- package/esm2015/modules/id/id.module.js +18 -15
- package/esm2015/modules/log/log.module.js +11 -8
- package/esm2015/modules/log/log.service.js +11 -11
- package/esm2015/modules/media-query/media-breakpoints.js +1 -1
- package/esm2015/modules/media-query/media-query-listener.js +2 -1
- package/esm2015/modules/media-query/media-query.module.js +11 -8
- package/esm2015/modules/media-query/media-query.service.js +16 -20
- package/esm2015/modules/mutation/mutation-observer-service.js +11 -11
- package/esm2015/modules/numeric/numeric-symbol.js +2 -1
- package/esm2015/modules/numeric/numeric.module.js +30 -21
- package/esm2015/modules/numeric/numeric.options.js +6 -1
- package/esm2015/modules/numeric/numeric.pipe.js +14 -16
- package/esm2015/modules/numeric/numeric.service.js +15 -17
- package/esm2015/modules/overlay/overlay-adapter.service.js +13 -15
- package/esm2015/modules/overlay/overlay-config.js +2 -1
- package/esm2015/modules/overlay/overlay-context.js +1 -1
- package/esm2015/modules/overlay/overlay-instance.js +1 -1
- package/esm2015/modules/overlay/overlay.component.js +41 -44
- package/esm2015/modules/overlay/overlay.module.js +22 -17
- package/esm2015/modules/overlay/overlay.service.js +18 -26
- package/esm2015/modules/percent-pipe/percent-pipe.module.js +30 -21
- package/esm2015/modules/percent-pipe/percent.pipe.js +15 -15
- package/esm2015/modules/scrollable-host/scrollable-host.service.js +75 -0
- package/esm2015/modules/shared/number-format/number-format-utility.js +4 -3
- package/esm2015/modules/shared/sky-core-resources.module.js +41 -0
- package/esm2015/modules/title/set-title-args.js +2 -1
- package/esm2015/modules/title/title.service.js +11 -15
- package/esm2015/modules/ui-config/ui-config.service.js +11 -11
- package/esm2015/modules/viewkeeper/viewkeeper-boundary-info.js +2 -1
- package/esm2015/modules/viewkeeper/viewkeeper-fixed-styles.js +2 -1
- package/esm2015/modules/viewkeeper/viewkeeper-host-options.js +9 -8
- package/esm2015/modules/viewkeeper/viewkeeper-offset.js +2 -1
- package/esm2015/modules/viewkeeper/viewkeeper-options.js +2 -1
- package/esm2015/modules/viewkeeper/viewkeeper.directive.js +47 -32
- package/esm2015/modules/viewkeeper/viewkeeper.js +16 -11
- package/esm2015/modules/viewkeeper/viewkeeper.module.js +18 -15
- package/esm2015/modules/viewkeeper/viewkeeper.service.js +13 -16
- package/esm2015/modules/window/window-ref.js +11 -11
- package/esm2015/public-api.js +60 -0
- package/esm2015/skyux-core.js +2 -12
- package/esm2015/testing/mock-media-query.service.js +9 -8
- package/esm2015/testing/mock-ui-config.service.js +9 -8
- package/esm2015/testing/public-api.js +3 -0
- package/esm2015/testing/skyux-core-testing.js +2 -2
- package/fesm2015/skyux-core-testing.js +15 -11
- package/fesm2015/skyux-core-testing.js.map +1 -1
- package/fesm2015/skyux-core.js +820 -567
- package/fesm2015/skyux-core.js.map +1 -1
- package/modules/adapter-service/adapter.module.d.ts +4 -0
- package/modules/adapter-service/adapter.service.d.ts +3 -0
- package/modules/affix/affix.directive.d.ts +3 -0
- package/modules/affix/affix.module.d.ts +6 -0
- package/modules/affix/affix.service.d.ts +3 -0
- package/modules/dock/dock-dom-adapter.service.d.ts +6 -0
- package/modules/dock/dock-location.d.ts +17 -0
- package/modules/dock/dock-options.d.ts +18 -0
- package/modules/dock/dock.component.d.ts +8 -3
- package/modules/dock/dock.module.d.ts +6 -0
- package/modules/dock/dock.service.d.ts +14 -1
- package/modules/dynamic-component/dynamic-component-location.d.ts +14 -2
- package/modules/dynamic-component/dynamic-component-options.d.ts +4 -0
- package/modules/dynamic-component/dynamic-component.module.d.ts +4 -0
- package/modules/dynamic-component/dynamic-component.service.d.ts +3 -0
- package/modules/format/app-format.d.ts +3 -0
- package/modules/id/id.directive.d.ts +3 -0
- package/modules/id/id.module.d.ts +5 -0
- package/modules/log/log.module.d.ts +4 -0
- package/modules/log/log.service.d.ts +3 -0
- package/modules/media-query/media-query.module.d.ts +4 -0
- package/modules/media-query/media-query.service.d.ts +3 -0
- package/modules/mutation/mutation-observer-service.d.ts +3 -0
- package/modules/numeric/numeric.module.d.ts +7 -0
- package/modules/numeric/numeric.options.d.ts +5 -0
- package/modules/numeric/numeric.pipe.d.ts +3 -0
- package/modules/numeric/numeric.service.d.ts +3 -0
- package/modules/overlay/overlay-adapter.service.d.ts +3 -0
- package/modules/overlay/overlay.component.d.ts +3 -0
- package/modules/overlay/overlay.module.d.ts +6 -0
- package/modules/overlay/overlay.service.d.ts +3 -0
- package/modules/percent-pipe/percent-pipe.module.d.ts +7 -0
- package/modules/percent-pipe/percent.pipe.d.ts +3 -0
- package/modules/scrollable-host/scrollable-host.service.d.ts +16 -0
- package/modules/shared/number-format/number-format-utility.d.ts +1 -1
- package/modules/shared/sky-core-resources.module.d.ts +14 -0
- package/modules/title/title.service.d.ts +3 -0
- package/modules/ui-config/ui-config.service.d.ts +3 -0
- package/modules/viewkeeper/viewkeeper-host-options.d.ts +4 -0
- package/modules/viewkeeper/viewkeeper-options.d.ts +5 -0
- package/modules/viewkeeper/viewkeeper.d.ts +1 -0
- package/modules/viewkeeper/viewkeeper.directive.d.ts +7 -1
- package/modules/viewkeeper/viewkeeper.module.d.ts +5 -0
- package/modules/viewkeeper/viewkeeper.service.d.ts +3 -0
- package/modules/window/window-ref.d.ts +3 -0
- package/package.json +8 -23
- package/{public_api.d.ts → public-api.d.ts} +6 -0
- package/skyux-core.d.ts +2 -11
- package/testing/mock-media-query.service.d.ts +3 -0
- package/testing/mock-ui-config.service.d.ts +3 -0
- package/testing/package.json +2 -5
- package/testing/{public_api.d.ts → public-api.d.ts} +0 -0
- package/testing/skyux-core-testing.d.ts +2 -1
- package/CHANGELOG.md +0 -316
- package/bundles/skyux-core-testing.umd.min.js +0 -16
- package/bundles/skyux-core-testing.umd.min.js.map +0 -1
- package/bundles/skyux-core.umd.min.js +0 -16
- package/bundles/skyux-core.umd.min.js.map +0 -1
- package/esm2015/modules/shared/core-resources.module.js +0 -17
- package/esm2015/plugin-resources/core-resources-provider.js +0 -16
- package/esm2015/public_api.js +0 -36
- package/esm2015/testing/public_api.js +0 -3
- package/esm5/modules/adapter-service/adapter.module.js +0 -16
- package/esm5/modules/adapter-service/adapter.service.js +0 -221
- package/esm5/modules/adapter-service/focusable-children-options.js +0 -1
- package/esm5/modules/affix/affix-auto-fit-context.js +0 -12
- package/esm5/modules/affix/affix-config.js +0 -1
- package/esm5/modules/affix/affix-horizontal-alignment.js +0 -1
- package/esm5/modules/affix/affix-offset-change.js +0 -1
- package/esm5/modules/affix/affix-offset.js +0 -1
- package/esm5/modules/affix/affix-placement-change.js +0 -1
- package/esm5/modules/affix/affix-placement.js +0 -1
- package/esm5/modules/affix/affix-utils.js +0 -23
- package/esm5/modules/affix/affix-vertical-alignment.js +0 -1
- package/esm5/modules/affix/affix.directive.js +0 -113
- package/esm5/modules/affix/affix.module.js +0 -24
- package/esm5/modules/affix/affix.service.js +0 -28
- package/esm5/modules/affix/affixer.js +0 -368
- package/esm5/modules/affix/dom-utils.js +0 -79
- package/esm5/modules/dock/dock-dom-adapter.service.js +0 -72
- package/esm5/modules/dock/dock-insert-component-config.js +0 -1
- package/esm5/modules/dock/dock-item-config.js +0 -1
- package/esm5/modules/dock/dock-item-reference.js +0 -1
- package/esm5/modules/dock/dock-item.js +0 -35
- package/esm5/modules/dock/dock.component.js +0 -87
- package/esm5/modules/dock/dock.module.js +0 -24
- package/esm5/modules/dock/dock.service.js +0 -69
- package/esm5/modules/dock/sort-by-stack-order.js +0 -13
- package/esm5/modules/dynamic-component/dynamic-component-location.js +0 -15
- package/esm5/modules/dynamic-component/dynamic-component-options.js +0 -1
- package/esm5/modules/dynamic-component/dynamic-component.module.js +0 -17
- package/esm5/modules/dynamic-component/dynamic-component.service.js +0 -79
- package/esm5/modules/format/app-format.js +0 -25
- package/esm5/modules/id/id.directive.js +0 -41
- package/esm5/modules/id/id.module.js +0 -20
- package/esm5/modules/log/log.module.js +0 -16
- package/esm5/modules/log/log.service.js +0 -29
- package/esm5/modules/media-query/media-breakpoints.js +0 -20
- package/esm5/modules/media-query/media-query-listener.js +0 -1
- package/esm5/modules/media-query/media-query.module.js +0 -16
- package/esm5/modules/media-query/media-query.service.js +0 -128
- package/esm5/modules/mutation/mutation-observer-service.js +0 -19
- package/esm5/modules/numeric/numeric-symbol.js +0 -1
- package/esm5/modules/numeric/numeric.module.js +0 -29
- package/esm5/modules/numeric/numeric.options.js +0 -38
- package/esm5/modules/numeric/numeric.pipe.js +0 -70
- package/esm5/modules/numeric/numeric.service.js +0 -195
- package/esm5/modules/overlay/overlay-adapter.service.js +0 -44
- package/esm5/modules/overlay/overlay-config.js +0 -1
- package/esm5/modules/overlay/overlay-context.js +0 -12
- package/esm5/modules/overlay/overlay-instance.js +0 -66
- package/esm5/modules/overlay/overlay.component.js +0 -168
- package/esm5/modules/overlay/overlay.module.js +0 -24
- package/esm5/modules/overlay/overlay.service.js +0 -128
- package/esm5/modules/percent-pipe/percent-pipe.module.js +0 -29
- package/esm5/modules/percent-pipe/percent.pipe.js +0 -49
- package/esm5/modules/shared/core-resources.module.js +0 -20
- package/esm5/modules/shared/number-format/number-format-utility.js +0 -75
- package/esm5/modules/title/set-title-args.js +0 -1
- package/esm5/modules/title/title.service.js +0 -35
- package/esm5/modules/ui-config/ui-config.service.js +0 -24
- package/esm5/modules/viewkeeper/viewkeeper-boundary-info.js +0 -1
- package/esm5/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -1
- package/esm5/modules/viewkeeper/viewkeeper-host-options.js +0 -12
- package/esm5/modules/viewkeeper/viewkeeper-offset.js +0 -1
- package/esm5/modules/viewkeeper/viewkeeper-options.js +0 -1
- package/esm5/modules/viewkeeper/viewkeeper.directive.js +0 -134
- package/esm5/modules/viewkeeper/viewkeeper.js +0 -219
- package/esm5/modules/viewkeeper/viewkeeper.module.js +0 -20
- package/esm5/modules/viewkeeper/viewkeeper.service.js +0 -42
- package/esm5/modules/window/window-ref.js +0 -37
- package/esm5/plugin-resources/core-resources-provider.js +0 -17
- package/esm5/public_api.js +0 -36
- package/esm5/skyux-core.js +0 -15
- package/esm5/testing/mock-media-query.service.js +0 -47
- package/esm5/testing/mock-ui-config.service.js +0 -66
- package/esm5/testing/public_api.js +0 -3
- package/esm5/testing/skyux-core-testing.js +0 -5
- package/fesm5/skyux-core-testing.js +0 -114
- package/fesm5/skyux-core-testing.js.map +0 -1
- package/fesm5/skyux-core.js +0 -2899
- package/fesm5/skyux-core.js.map +0 -1
- package/modules/shared/core-resources.module.d.ts +0 -2
- package/plugin-resources/core-resources-provider.d.ts +0 -5
- package/skyux-core.metadata.json +0 -1
- package/src/assets/locales/resources_en_US.json +0 -18
- 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=
|