@skyux/flyout 8.7.0 → 9.0.0-alpha.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/esm2022/lib/modules/flyout/flyout-adapter.service.mjs +69 -0
- package/esm2022/lib/modules/flyout/flyout-instance.mjs +122 -0
- package/esm2022/lib/modules/flyout/flyout-iterator.component.mjs +51 -0
- package/esm2022/lib/modules/flyout/flyout-media-query.service.mjs +68 -0
- package/esm2022/lib/modules/flyout/flyout.component.mjs +526 -0
- package/{esm2020 → esm2022}/lib/modules/flyout/flyout.module.mjs +21 -21
- package/esm2022/lib/modules/flyout/flyout.service.mjs +168 -0
- package/esm2022/lib/modules/shared/sky-flyout-resources.module.mjs +54 -0
- package/fesm2022/skyux-flyout.mjs +1098 -0
- package/{fesm2020 → fesm2022}/skyux-flyout.mjs.map +1 -1
- package/lib/modules/flyout/flyout-iterator.component.d.ts +1 -1
- package/package.json +16 -22
- package/esm2020/lib/modules/flyout/flyout-adapter.service.mjs +0 -72
- package/esm2020/lib/modules/flyout/flyout-instance.mjs +0 -119
- package/esm2020/lib/modules/flyout/flyout-iterator.component.mjs +0 -56
- package/esm2020/lib/modules/flyout/flyout-media-query.service.mjs +0 -71
- package/esm2020/lib/modules/flyout/flyout.component.mjs +0 -513
- package/esm2020/lib/modules/flyout/flyout.service.mjs +0 -167
- package/esm2020/lib/modules/shared/sky-flyout-resources.module.mjs +0 -54
- package/fesm2015/skyux-flyout.mjs +0 -1091
- package/fesm2015/skyux-flyout.mjs.map +0 -1
- package/fesm2020/skyux-flyout.mjs +0 -1087
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-before-close-handler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config-internal.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/flyout/types/flyout-permalink.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-flyout.mjs +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Injectable, } from '@angular/core';
|
|
2
|
+
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@skyux/core";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export class SkyFlyoutAdapterService {
|
|
9
|
+
#renderer;
|
|
10
|
+
#windowRef;
|
|
11
|
+
constructor(rendererFactory, windowRef) {
|
|
12
|
+
this.#windowRef = windowRef;
|
|
13
|
+
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
|
14
|
+
}
|
|
15
|
+
adjustHeaderForHelp(header) {
|
|
16
|
+
const windowObj = this.#windowRef.nativeWindow;
|
|
17
|
+
const helpWidget = windowObj.document.getElementById('bb-help-invoker');
|
|
18
|
+
if (helpWidget) {
|
|
19
|
+
this.#renderer.addClass(header.nativeElement, 'sky-flyout-help-shim');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
setResponsiveClass(element, breakpoint) {
|
|
23
|
+
/* istanbul ignore if */
|
|
24
|
+
if (!breakpoint) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const nativeEl = element.nativeElement;
|
|
28
|
+
this.#renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
|
|
29
|
+
this.#renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
|
|
30
|
+
this.#renderer.removeClass(nativeEl, 'sky-responsive-container-md');
|
|
31
|
+
this.#renderer.removeClass(nativeEl, 'sky-responsive-container-lg');
|
|
32
|
+
let newClass;
|
|
33
|
+
switch (breakpoint) {
|
|
34
|
+
case SkyMediaBreakpoints.xs: {
|
|
35
|
+
newClass = 'sky-responsive-container-xs';
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case SkyMediaBreakpoints.sm: {
|
|
39
|
+
newClass = 'sky-responsive-container-sm';
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
case SkyMediaBreakpoints.md: {
|
|
43
|
+
newClass = 'sky-responsive-container-md';
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
default: {
|
|
47
|
+
newClass = 'sky-responsive-container-lg';
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.#renderer.addClass(nativeEl, newClass);
|
|
52
|
+
}
|
|
53
|
+
toggleIframePointerEvents(enable) {
|
|
54
|
+
// When iframes are present on the page, they may interfere with dragging
|
|
55
|
+
// temporarily disable pointer events in iframes when dragging starts.
|
|
56
|
+
// When re-enabling we set to the empty string as it will remove the element styling
|
|
57
|
+
// and fall back to any css originally given to iframe
|
|
58
|
+
const iframes = document.querySelectorAll('iframe');
|
|
59
|
+
for (let i = 0; i < iframes.length; i++) {
|
|
60
|
+
iframes[i].style.pointerEvents = enable ? '' : 'none';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutAdapterService, deps: [{ token: i0.RendererFactory2 }, { token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutAdapterService }); }
|
|
65
|
+
}
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutAdapterService, decorators: [{
|
|
67
|
+
type: Injectable
|
|
68
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.SkyAppWindowRef }]; } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBRW5FOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxTQUFTLENBQVk7SUFFckIsVUFBVSxDQUFrQjtJQUU1QixZQUFZLGVBQWlDLEVBQUUsU0FBMEI7UUFDdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sbUJBQW1CLENBQUMsTUFBa0I7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV4RSxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FDdkIsT0FBbUIsRUFDbkIsVUFBZ0M7UUFFaEMsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFDRCxNQUFNLFFBQVEsR0FBZ0IsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUVwRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUVwRSxJQUFJLFFBQWdCLENBQUM7UUFFckIsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7U0FDRjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0seUJBQXlCLENBQUMsTUFBZTtRQUM5Qyx5RUFBeUU7UUFDekUsc0VBQXNFO1FBQ3RFLG9GQUFvRjtRQUNwRixzREFBc0Q7UUFDdEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDdkQ7SUFDSCxDQUFDOzhHQW5FVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYsIFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lGbHlvdXRBZGFwdGVyU2VydmljZSB7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICN3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZjtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmKSB7XG4gICAgdGhpcy4jd2luZG93UmVmID0gd2luZG93UmVmO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgYWRqdXN0SGVhZGVyRm9ySGVscChoZWFkZXI6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCB3aW5kb3dPYmogPSB0aGlzLiN3aW5kb3dSZWYubmF0aXZlV2luZG93O1xuICAgIGNvbnN0IGhlbHBXaWRnZXQgPSB3aW5kb3dPYmouZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JiLWhlbHAtaW52b2tlcicpO1xuXG4gICAgaWYgKGhlbHBXaWRnZXQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGhlYWRlci5uYXRpdmVFbGVtZW50LCAnc2t5LWZseW91dC1oZWxwLXNoaW0nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNsYXNzKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludD86IFNreU1lZGlhQnJlYWtwb2ludHNcbiAgKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFicmVha3BvaW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5hdGl2ZUVsOiBIVE1MRWxlbWVudCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItc20nKTtcbiAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhuYXRpdmVFbCwgbmV3Q2xhc3MpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHMoZW5hYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gV2hlbiBpZnJhbWVzIGFyZSBwcmVzZW50IG9uIHRoZSBwYWdlLCB0aGV5IG1heSBpbnRlcmZlcmUgd2l0aCBkcmFnZ2luZ1xuICAgIC8vIHRlbXBvcmFyaWx5IGRpc2FibGUgcG9pbnRlciBldmVudHMgaW4gaWZyYW1lcyB3aGVuIGRyYWdnaW5nIHN0YXJ0cy5cbiAgICAvLyBXaGVuIHJlLWVuYWJsaW5nIHdlIHNldCB0byB0aGUgZW1wdHkgc3RyaW5nIGFzIGl0IHdpbGwgcmVtb3ZlIHRoZSBlbGVtZW50IHN0eWxpbmdcbiAgICAvLyBhbmQgZmFsbCBiYWNrIHRvIGFueSBjc3Mgb3JpZ2luYWxseSBnaXZlbiB0byBpZnJhbWVcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZnJhbWVzW2ldLnN0eWxlLnBvaW50ZXJFdmVudHMgPSBlbmFibGUgPyAnJyA6ICdub25lJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { SkyFlyoutMessageType } from './types/flyout-message-type';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a single displayed flyout.
|
|
6
|
+
*/
|
|
7
|
+
export class SkyFlyoutInstance {
|
|
8
|
+
/**
|
|
9
|
+
* An event that the modal instance emits when it is about to close.
|
|
10
|
+
* If a subscription exists for this event,
|
|
11
|
+
* the modal does not close until the subscriber calls the handler's `closeModal` method.
|
|
12
|
+
*/
|
|
13
|
+
get beforeClose() {
|
|
14
|
+
return this.#_beforeClose;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Used to communicate with the host component.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
get hostController() {
|
|
21
|
+
return this.#_hostController;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* An event that the flyout instance emits when users click the next iterator button.
|
|
25
|
+
*/
|
|
26
|
+
get iteratorNextButtonClick() {
|
|
27
|
+
return this.#_iteratorNextButtonClick;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* An event that the flyout instance emits when users click the previous iterator button.
|
|
31
|
+
*/
|
|
32
|
+
get iteratorPreviousButtonClick() {
|
|
33
|
+
return this.#_iteratorPreviousButtonClick;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Disables the next iterator button.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
set iteratorNextButtonDisabled(newValue) {
|
|
40
|
+
this.#_iteratorNextButtonDisabled = newValue;
|
|
41
|
+
if (newValue) {
|
|
42
|
+
this.hostController.next({
|
|
43
|
+
type: SkyFlyoutMessageType.DisableIteratorNextButton,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.hostController.next({
|
|
48
|
+
type: SkyFlyoutMessageType.EnableIteratorNextButton,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get iteratorNextButtonDisabled() {
|
|
53
|
+
return this.#_iteratorNextButtonDisabled;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Disables the previous iterator button.
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
set iteratorPreviousButtonDisabled(newValue) {
|
|
60
|
+
this.#_iteratorPreviousButtonDisabled = newValue;
|
|
61
|
+
if (newValue) {
|
|
62
|
+
this.hostController.next({
|
|
63
|
+
type: SkyFlyoutMessageType.DisableIteratorPreviousButton,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.hostController.next({
|
|
68
|
+
type: SkyFlyoutMessageType.EnableIteratorPreviousButton,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
get iteratorPreviousButtonDisabled() {
|
|
73
|
+
return this.#_iteratorPreviousButtonDisabled;
|
|
74
|
+
}
|
|
75
|
+
#_beforeClose;
|
|
76
|
+
#_iteratorNextButtonClick;
|
|
77
|
+
#_iteratorPreviousButtonClick;
|
|
78
|
+
#_iteratorNextButtonDisabled;
|
|
79
|
+
#_iteratorPreviousButtonDisabled;
|
|
80
|
+
#_hostController;
|
|
81
|
+
// TODO: Remove this being optional in a future breaking change.
|
|
82
|
+
constructor(componentInstance) {
|
|
83
|
+
/**
|
|
84
|
+
* An event that the flyout instance emits when it closes.
|
|
85
|
+
*/
|
|
86
|
+
this.closed = new EventEmitter();
|
|
87
|
+
/**
|
|
88
|
+
* A `boolean` value that returns `true` if the flyout is open.
|
|
89
|
+
* @default true
|
|
90
|
+
*/
|
|
91
|
+
this.isOpen = true;
|
|
92
|
+
this.#_beforeClose = new Subject();
|
|
93
|
+
this.#_iteratorNextButtonClick = new EventEmitter();
|
|
94
|
+
this.#_iteratorPreviousButtonClick = new EventEmitter();
|
|
95
|
+
this.#_iteratorNextButtonDisabled = false;
|
|
96
|
+
this.#_iteratorPreviousButtonDisabled = false;
|
|
97
|
+
this.#_hostController = new Subject();
|
|
98
|
+
if (!componentInstance) {
|
|
99
|
+
console.warn(`The SkyFlyoutInstance was created without a reference to the flyout's child component instance.
|
|
100
|
+
The instance will not have a reference ot this child component.
|
|
101
|
+
Support for creating an instance without this reference will be removed in a future breaking change.`);
|
|
102
|
+
}
|
|
103
|
+
this.componentInstance = componentInstance;
|
|
104
|
+
this.closed.subscribe(() => {
|
|
105
|
+
this.isOpen = false;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Closes the flyout instance and emits its `closed` event.
|
|
110
|
+
* @param args Arguments used when closing the flyout.
|
|
111
|
+
*/
|
|
112
|
+
close(args) {
|
|
113
|
+
this.hostController.next({
|
|
114
|
+
type: SkyFlyoutMessageType.Close,
|
|
115
|
+
data: { ignoreBeforeClose: args ? args.ignoreBeforeClose : false },
|
|
116
|
+
});
|
|
117
|
+
this.#_iteratorPreviousButtonClick.complete();
|
|
118
|
+
this.#_iteratorNextButtonClick.complete();
|
|
119
|
+
this.hostController.complete();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7O09BSUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFZRDs7O09BR0c7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQVFEOztPQUVHO0lBQ0gsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVywyQkFBMkI7UUFDcEMsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsMEJBQTBCLENBQUMsUUFBaUI7UUFDckQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLFFBQVEsQ0FBQztRQUM3QyxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsb0JBQW9CLENBQUMseUJBQXlCO2FBQ3JELENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLG9CQUFvQixDQUFDLHdCQUF3QjthQUNwRCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxJQUFXLDBCQUEwQjtRQUNuQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyw4QkFBOEIsQ0FBQyxRQUFpQjtRQUN6RCxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsUUFBUSxDQUFDO1FBQ2pELElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksRUFBRSxvQkFBb0IsQ0FBQyw2QkFBNkI7YUFDekQsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsb0JBQW9CLENBQUMsNEJBQTRCO2FBQ3hELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQVcsOEJBQThCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxhQUFhLENBQThDO0lBRTNELHlCQUF5QixDQUE0QjtJQUVyRCw2QkFBNkIsQ0FBNEI7SUFFekQsNEJBQTRCLENBQVM7SUFFckMsZ0NBQWdDLENBQVM7SUFFekMsZ0JBQWdCLENBQW1DO0lBRW5ELGdFQUFnRTtJQUNoRSxZQUFZLGlCQUFxQjtRQTdGakM7O1dBRUc7UUFDSSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWV6Qzs7O1dBR0c7UUFDSSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBMERyQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO1FBRTNELDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFckQsa0NBQTZCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxpQ0FBNEIsR0FBRyxLQUFLLENBQUM7UUFFckMscUNBQWdDLEdBQUcsS0FBSyxDQUFDO1FBRXpDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBSWpELElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixPQUFPLENBQUMsSUFBSSxDQUNWOzs2R0FFcUcsQ0FDdEcsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFrQixDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsSUFBeUI7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEtBQUs7WUFDaEMsSUFBSSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtTQUNuRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5Rmx5b3V0QmVmb3JlQ2xvc2VIYW5kbGVyIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtYmVmb3JlLWNsb3NlLWhhbmRsZXInO1xuaW1wb3J0IHsgU2t5Rmx5b3V0Q2xvc2VBcmdzIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtY2xvc2UtYXJncyc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlIH0gZnJvbSAnLi90eXBlcy9mbHlvdXQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lGbHlvdXRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvZmx5b3V0LW1lc3NhZ2UtdHlwZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBkaXNwbGF5ZWQgZmx5b3V0LlxuICovXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0SW5zdGFuY2U8VD4ge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCB0aGUgbW9kYWwgaW5zdGFuY2UgZW1pdHMgd2hlbiBpdCBpcyBhYm91dCB0byBjbG9zZS5cbiAgICogSWYgYSBzdWJzY3JpcHRpb24gZXhpc3RzIGZvciB0aGlzIGV2ZW50LFxuICAgKiB0aGUgbW9kYWwgZG9lcyBub3QgY2xvc2UgdW50aWwgdGhlIHN1YnNjcmliZXIgY2FsbHMgdGhlIGhhbmRsZXIncyBgY2xvc2VNb2RhbGAgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIGdldCBiZWZvcmVDbG9zZSgpOiBPYnNlcnZhYmxlPFNreUZseW91dEJlZm9yZUNsb3NlSGFuZGxlcj4ge1xuICAgIHJldHVybiB0aGlzLiNfYmVmb3JlQ2xvc2U7XG4gIH1cblxuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCB0aGUgZmx5b3V0IGluc3RhbmNlIGVtaXRzIHdoZW4gaXQgY2xvc2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQgdG8gZGlzcGxheSBpbiB0aGUgZmx5b3V0LlxuICAgKi9cbiAgcHVibGljIGNvbXBvbmVudEluc3RhbmNlITogVDtcblxuICAvKipcbiAgICogVXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBob3N0IGNvbXBvbmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhvc3RDb250cm9sbGVyKCk6IFN1YmplY3Q8U2t5Rmx5b3V0TWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLiNfaG9zdENvbnRyb2xsZXI7XG4gIH1cblxuICAvKipcbiAgICogQSBgYm9vbGVhbmAgdmFsdWUgdGhhdCByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmx5b3V0IGlzIG9wZW4uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHB1YmxpYyBpc09wZW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IHRoZSBmbHlvdXQgaW5zdGFuY2UgZW1pdHMgd2hlbiB1c2VycyBjbGljayB0aGUgbmV4dCBpdGVyYXRvciBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGl0ZXJhdG9yTmV4dEJ1dHRvbkNsaWNrKCk6IEV2ZW50RW1pdHRlcjx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI19pdGVyYXRvck5leHRCdXR0b25DbGljaztcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IHRoZSBmbHlvdXQgaW5zdGFuY2UgZW1pdHMgd2hlbiB1c2VycyBjbGljayB0aGUgcHJldmlvdXMgaXRlcmF0b3IgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGdldCBpdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2soKTogRXZlbnRFbWl0dGVyPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jX2l0ZXJhdG9yUHJldmlvdXNCdXR0b25DbGljaztcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyB0aGUgbmV4dCBpdGVyYXRvciBidXR0b24uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwdWJsaWMgc2V0IGl0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkKG5ld1ZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2l0ZXJhdG9yTmV4dEJ1dHRvbkRpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLmhvc3RDb250cm9sbGVyLm5leHQoe1xuICAgICAgICB0eXBlOiBTa3lGbHlvdXRNZXNzYWdlVHlwZS5EaXNhYmxlSXRlcmF0b3JOZXh0QnV0dG9uLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG9zdENvbnRyb2xsZXIubmV4dCh7XG4gICAgICAgIHR5cGU6IFNreUZseW91dE1lc3NhZ2VUeXBlLkVuYWJsZUl0ZXJhdG9yTmV4dEJ1dHRvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlcmF0b3JOZXh0QnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pdGVyYXRvck5leHRCdXR0b25EaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyB0aGUgcHJldmlvdXMgaXRlcmF0b3IgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIHNldCBpdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfaXRlcmF0b3JQcmV2aW91c0J1dHRvbkRpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLmhvc3RDb250cm9sbGVyLm5leHQoe1xuICAgICAgICB0eXBlOiBTa3lGbHlvdXRNZXNzYWdlVHlwZS5EaXNhYmxlSXRlcmF0b3JQcmV2aW91c0J1dHRvbixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhvc3RDb250cm9sbGVyLm5leHQoe1xuICAgICAgICB0eXBlOiBTa3lGbHlvdXRNZXNzYWdlVHlwZS5FbmFibGVJdGVyYXRvclByZXZpb3VzQnV0dG9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pdGVyYXRvclByZXZpb3VzQnV0dG9uRGlzYWJsZWQ7XG4gIH1cblxuICAjX2JlZm9yZUNsb3NlID0gbmV3IFN1YmplY3Q8U2t5Rmx5b3V0QmVmb3JlQ2xvc2VIYW5kbGVyPigpO1xuXG4gICNfaXRlcmF0b3JOZXh0QnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgI19pdGVyYXRvclByZXZpb3VzQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgI19pdGVyYXRvck5leHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICNfaXRlcmF0b3JQcmV2aW91c0J1dHRvbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgI19ob3N0Q29udHJvbGxlciA9IG5ldyBTdWJqZWN0PFNreUZseW91dE1lc3NhZ2U+KCk7XG5cbiAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgYmVpbmcgb3B0aW9uYWwgaW4gYSBmdXR1cmUgYnJlYWtpbmcgY2hhbmdlLlxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnRJbnN0YW5jZT86IFQpIHtcbiAgICBpZiAoIWNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBUaGUgU2t5Rmx5b3V0SW5zdGFuY2Ugd2FzIGNyZWF0ZWQgd2l0aG91dCBhIHJlZmVyZW5jZSB0byB0aGUgZmx5b3V0J3MgY2hpbGQgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAgICBUaGUgaW5zdGFuY2Ugd2lsbCBub3QgaGF2ZSBhIHJlZmVyZW5jZSBvdCB0aGlzIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgICAgU3VwcG9ydCBmb3IgY3JlYXRpbmcgYW4gaW5zdGFuY2Ugd2l0aG91dCB0aGlzIHJlZmVyZW5jZSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgYnJlYWtpbmcgY2hhbmdlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudEluc3RhbmNlITtcbiAgICB0aGlzLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGZseW91dCBpbnN0YW5jZSBhbmQgZW1pdHMgaXRzIGBjbG9zZWRgIGV2ZW50LlxuICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdXNlZCB3aGVuIGNsb3NpbmcgdGhlIGZseW91dC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZShhcmdzPzogU2t5Rmx5b3V0Q2xvc2VBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0Q29udHJvbGxlci5uZXh0KHtcbiAgICAgIHR5cGU6IFNreUZseW91dE1lc3NhZ2VUeXBlLkNsb3NlLFxuICAgICAgZGF0YTogeyBpZ25vcmVCZWZvcmVDbG9zZTogYXJncyA/IGFyZ3MuaWdub3JlQmVmb3JlQ2xvc2UgOiBmYWxzZSB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy4jX2l0ZXJhdG9yUHJldmlvdXNCdXR0b25DbGljay5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI19pdGVyYXRvck5leHRCdXR0b25DbGljay5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5ob3N0Q29udHJvbGxlci5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@skyux/indicators";
|
|
5
|
+
import * as i2 from "@skyux/theme";
|
|
6
|
+
import * as i3 from "@skyux/i18n";
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export class SkyFlyoutIteratorComponent {
|
|
11
|
+
get previousButtonClick() {
|
|
12
|
+
return this.#_previousButtonClick;
|
|
13
|
+
}
|
|
14
|
+
get nextButtonClick() {
|
|
15
|
+
return this.#_nextButtonClick;
|
|
16
|
+
}
|
|
17
|
+
#ngUnsubscribe = new Subject();
|
|
18
|
+
#_nextButtonClick = new EventEmitter();
|
|
19
|
+
#_previousButtonClick = new EventEmitter();
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.#ngUnsubscribe.next();
|
|
22
|
+
this.#ngUnsubscribe.complete();
|
|
23
|
+
}
|
|
24
|
+
onIteratorPreviousClick() {
|
|
25
|
+
/* istanbul ignore else */
|
|
26
|
+
if (!this.previousButtonDisabled) {
|
|
27
|
+
this.#_previousButtonClick.emit();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
onIteratorNextClick() {
|
|
31
|
+
/* istanbul ignore else */
|
|
32
|
+
if (!this.nextButtonDisabled) {
|
|
33
|
+
this.#_nextButtonClick.emit();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutIteratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyFlyoutIteratorComponent, selector: "sky-flyout-iterator", inputs: { nextButtonDisabled: "nextButtonDisabled", previousButtonDisabled: "previousButtonDisabled" }, outputs: { previousButtonClick: "previousButtonClick", nextButtonClick: "nextButtonClick" }, ngImport: i0, template: "<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n", styles: [":host-context(.sky-theme-modern) .sky-flyout-iterators{display:inline}.sky-theme-modern .sky-flyout-iterators{display:inline}\n"], dependencies: [{ kind: "component", type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i2.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutIteratorComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'sky-flyout-iterator', template: "<div id=\"iterators\" class=\"sky-flyout-iterators\">\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"\n 'skyux_flyout_iterator_previous_button' | skyLibResources\n \"\n [disabled]=\"previousButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorPreviousClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-up\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-up\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n <button\n class=\"sky-btn\"\n [attr.aria-label]=\"'skyux_flyout_iterator_next_button' | skyLibResources\"\n [disabled]=\"nextButtonDisabled\"\n [skyThemeClass]=\"{\n 'sky-btn-default sky-margin-inline-compact': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-sm': 'modern'\n }\"\n (click)=\"onIteratorNextClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-down\"> </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n", styles: [":host-context(.sky-theme-modern) .sky-flyout-iterators{display:inline}.sky-theme-modern .sky-flyout-iterators{display:inline}\n"] }]
|
|
42
|
+
}], propDecorators: { nextButtonDisabled: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], previousButtonDisabled: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], previousButtonClick: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}], nextButtonClick: [{
|
|
49
|
+
type: Output
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LWl0ZXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mbHlvdXQvc3JjL2xpYi9tb2R1bGVzL2ZseW91dC9mbHlvdXQtaXRlcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ZseW91dC9zcmMvbGliL21vZHVsZXMvZmx5b3V0L2ZseW91dC1pdGVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRS9COztHQUVHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQU9yQyxJQUNXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVyQyxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTdDLHFCQUFxQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFMUMsV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNoQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7OEdBeENVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdRQ2xCdkMseXZDQTBDQTs7MkZEeEJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBTXhCLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBSUssbUJBQW1CO3NCQUQ3QixNQUFNO2dCQU1JLGVBQWU7c0JBRHpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZmx5b3V0LWl0ZXJhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZseW91dC1pdGVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZseW91dC1pdGVyYXRvci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGbHlvdXRJdGVyYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuZXh0QnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZXZpb3VzQnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNCdXR0b25DbGljaygpOiBFdmVudEVtaXR0ZXI8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNfcHJldmlvdXNCdXR0b25DbGljaztcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IG5leHRCdXR0b25DbGljaygpOiBFdmVudEVtaXR0ZXI8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNfbmV4dEJ1dHRvbkNsaWNrO1xuICB9XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfbmV4dEJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICNfcHJldmlvdXNCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uSXRlcmF0b3JQcmV2aW91c0NsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19wcmV2aW91c0J1dHRvbkNsaWNrLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JdGVyYXRvck5leHRDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5uZXh0QnV0dG9uRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19uZXh0QnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBpZD1cIml0ZXJhdG9yc1wiIGNsYXNzPVwic2t5LWZseW91dC1pdGVyYXRvcnNcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2t5LWJ0blwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICdza3l1eF9mbHlvdXRfaXRlcmF0b3JfcHJldmlvdXNfYnV0dG9uJyB8IHNreUxpYlJlc291cmNlc1xuICAgIFwiXG4gICAgW2Rpc2FibGVkXT1cInByZXZpb3VzQnV0dG9uRGlzYWJsZWRcIlxuICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICdza3ktYnRuLWRlZmF1bHQgc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdCc6ICdkZWZhdWx0JyxcbiAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1zbSc6ICdtb2Rlcm4nXG4gICAgfVwiXG4gICAgKGNsaWNrKT1cIm9uSXRlcmF0b3JQcmV2aW91c0NsaWNrKClcIlxuICA+XG4gICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNoZXZyb24tdXBcIj4gPC9za3ktaWNvbj5cbiAgICA8c2t5LWljb25cbiAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgaWNvbj1cImNoZXZyb24tdXBcIlxuICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICBzaXplPVwibGdcIlxuICAgID5cbiAgICA8L3NreS1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2t5LWJ0blwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfZmx5b3V0X2l0ZXJhdG9yX25leHRfYnV0dG9uJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgW2Rpc2FibGVkXT1cIm5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1jb21wYWN0JzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICB9XCJcbiAgICAoY2xpY2spPVwib25JdGVyYXRvck5leHRDbGljaygpXCJcbiAgPlxuICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjaGV2cm9uLWRvd25cIj4gPC9za3ktaWNvbj5cbiAgICA8c2t5LWljb25cbiAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgaWNvbj1cImNoZXZyb24tZG93blwiXG4gICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgIHNpemU9XCJsZ1wiXG4gICAgPlxuICAgIDwvc2t5LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { SkyMediaBreakpoints } from '@skyux/core';
|
|
3
|
+
import { ReplaySubject } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export class SkyFlyoutMediaQueryService {
|
|
9
|
+
#currentSubject;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.#currentSubject = new ReplaySubject(1);
|
|
12
|
+
}
|
|
13
|
+
subscribe(listener) {
|
|
14
|
+
return this.#currentSubject.subscribe({
|
|
15
|
+
next: (breakpoints) => {
|
|
16
|
+
listener(breakpoints);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
setBreakpointForWidth(width) {
|
|
21
|
+
let breakpoint;
|
|
22
|
+
if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.xs)) {
|
|
23
|
+
breakpoint = SkyMediaBreakpoints.xs;
|
|
24
|
+
}
|
|
25
|
+
else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.sm)) {
|
|
26
|
+
breakpoint = SkyMediaBreakpoints.sm;
|
|
27
|
+
}
|
|
28
|
+
else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.md)) {
|
|
29
|
+
breakpoint = SkyMediaBreakpoints.md;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
breakpoint = SkyMediaBreakpoints.lg;
|
|
33
|
+
}
|
|
34
|
+
this.current = breakpoint;
|
|
35
|
+
this.#currentSubject.next(this.current);
|
|
36
|
+
}
|
|
37
|
+
isWidthWithinBreakpoint(width, breakpoint) {
|
|
38
|
+
const xsBreakpointMaxPixels = 767;
|
|
39
|
+
const smBreakpointMinPixels = 768;
|
|
40
|
+
const smBreakpointMaxPixels = 991;
|
|
41
|
+
const mdBreakpointMinPixels = 992;
|
|
42
|
+
const mdBreakpointMaxPixels = 1199;
|
|
43
|
+
const lgBreakpointMinPixels = 1200;
|
|
44
|
+
switch (breakpoint) {
|
|
45
|
+
case SkyMediaBreakpoints.xs: {
|
|
46
|
+
return width <= xsBreakpointMaxPixels;
|
|
47
|
+
}
|
|
48
|
+
case SkyMediaBreakpoints.sm: {
|
|
49
|
+
return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;
|
|
50
|
+
}
|
|
51
|
+
case SkyMediaBreakpoints.md: {
|
|
52
|
+
return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;
|
|
53
|
+
}
|
|
54
|
+
default: {
|
|
55
|
+
return width >= lgBreakpointMinPixels;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
destroy() {
|
|
60
|
+
this.#currentSubject.complete();
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutMediaQueryService }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyFlyoutMediaQueryService, decorators: [{
|
|
66
|
+
type: Injectable
|
|
67
|
+
}], ctorParameters: function () { return []; } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5b3V0LW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZmx5b3V0L3NyYy9saWIvbW9kdWxlcy9mbHlvdXQvZmx5b3V0LW1lZGlhLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sYUFBYSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFBMEI7SUFHckMsZUFBZSxDQUFxQztJQUVwRDtRQUNFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxhQUFhLENBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxVQUErQixDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvRCxVQUFVLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RFLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEUsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsVUFBVSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLEtBQWEsRUFDYixVQUErQjtRQUUvQixNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNsQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNuQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUVuQyxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEtBQUssSUFBSSxxQkFBcUIsQ0FBQzthQUN2QztZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sS0FBSyxJQUFJLHFCQUFxQixJQUFJLEtBQUssSUFBSSxxQkFBcUIsQ0FBQzthQUN6RTtZQUNELEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sS0FBSyxJQUFJLHFCQUFxQixJQUFJLEtBQUssSUFBSSxxQkFBcUIsQ0FBQzthQUN6RTtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE9BQU8sS0FBSyxJQUFJLHFCQUFxQixDQUFDO2FBQ3ZDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs4R0EvRFUsMEJBQTBCO2tIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lNZWRpYUJyZWFrcG9pbnRzLCBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5Rmx5b3V0TWVkaWFRdWVyeVNlcnZpY2Uge1xuICBwdWJsaWMgY3VycmVudDogU2t5TWVkaWFCcmVha3BvaW50cyB8IHVuZGVmaW5lZDtcblxuICAjY3VycmVudFN1YmplY3Q6IFJlcGxheVN1YmplY3Q8U2t5TWVkaWFCcmVha3BvaW50cz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jY3VycmVudFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPigxKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmUobGlzdGVuZXI6IFNreU1lZGlhUXVlcnlMaXN0ZW5lcik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRTdWJqZWN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpID0+IHtcbiAgICAgICAgbGlzdGVuZXIoYnJlYWtwb2ludHMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzO1xuXG4gICAgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcG9pbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMueHMpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcG9pbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMuc20pKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5zbTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaWR0aFdpdGhpbkJyZWFrcG9pbnQod2lkdGgsIFNreU1lZGlhQnJlYWtwb2ludHMubWQpKSB7XG4gICAgICBicmVha3BvaW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWtwb2ludCA9IFNreU1lZGlhQnJlYWtwb2ludHMubGc7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50ID0gYnJlYWtwb2ludDtcbiAgICB0aGlzLiNjdXJyZW50U3ViamVjdC5uZXh0KHRoaXMuY3VycmVudCk7XG4gIH1cblxuICBwdWJsaWMgaXNXaWR0aFdpdGhpbkJyZWFrcG9pbnQoXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHhzQnJlYWtwb2ludE1heFBpeGVscyA9IDc2NztcbiAgICBjb25zdCBzbUJyZWFrcG9pbnRNaW5QaXhlbHMgPSA3Njg7XG4gICAgY29uc3Qgc21CcmVha3BvaW50TWF4UGl4ZWxzID0gOTkxO1xuICAgIGNvbnN0IG1kQnJlYWtwb2ludE1pblBpeGVscyA9IDk5MjtcbiAgICBjb25zdCBtZEJyZWFrcG9pbnRNYXhQaXhlbHMgPSAxMTk5O1xuICAgIGNvbnN0IGxnQnJlYWtwb2ludE1pblBpeGVscyA9IDEyMDA7XG5cbiAgICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy54czoge1xuICAgICAgICByZXR1cm4gd2lkdGggPD0geHNCcmVha3BvaW50TWF4UGl4ZWxzO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+PSBzbUJyZWFrcG9pbnRNaW5QaXhlbHMgJiYgd2lkdGggPD0gc21CcmVha3BvaW50TWF4UGl4ZWxzO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIHJldHVybiB3aWR0aCA+PSBtZEJyZWFrcG9pbnRNaW5QaXhlbHMgJiYgd2lkdGggPD0gbWRCcmVha3BvaW50TWF4UGl4ZWxzO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gd2lkdGggPj0gbGdCcmVha3BvaW50TWluUGl4ZWxzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2N1cnJlbnRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|