@mintplayer/ng-bootstrap 16.15.3 → 16.16.1
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/carousel/src/carousel-image/carousel-image.directive.d.ts +1 -0
- package/carousel/src/carousel-img/carousel-img.directive.d.ts +8 -0
- package/carousel/src/carousel.module.d.ts +7 -6
- package/carousel/src/index.d.ts +1 -0
- package/color-picker/components/color-picker/color-picker.component.d.ts +3 -5
- package/esm2022/carousel/src/carousel/carousel.component.mjs +2 -1
- package/esm2022/carousel/src/carousel-image/carousel-image.directive.mjs +2 -1
- package/esm2022/carousel/src/carousel-img/carousel-img.directive.mjs +21 -0
- package/esm2022/carousel/src/carousel.module.mjs +10 -5
- package/esm2022/carousel/src/index.mjs +2 -1
- package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +7 -13
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +28 -5
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +6 -12
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export declare class BsCarouselImageDirective {
|
|
|
7
7
|
itemTemplate: TemplateRef<any>;
|
|
8
8
|
constructor(templateRef: TemplateRef<any>, carousel: BsCarouselComponent, element: ElementRef<HTMLElement>);
|
|
9
9
|
id: number;
|
|
10
|
+
isFirst: boolean;
|
|
10
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselImageDirective, never>;
|
|
11
12
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BsCarouselImageDirective, "*[bsCarouselImage]", never, {}, {}, never, never, false, never>;
|
|
12
13
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class BsCarouselImgDirective {
|
|
4
|
+
constructor(image: BsCarouselImageDirective);
|
|
5
|
+
fetchPriority: 'high' | 'low' | 'auto';
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselImgDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BsCarouselImgDirective, "img", never, {}, {}, never, never, false, never>;
|
|
8
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./carousel/carousel.component";
|
|
3
3
|
import * as i2 from "./carousel-image/carousel-image.directive";
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "@
|
|
6
|
-
import * as i5 from "@mintplayer/ng-
|
|
7
|
-
import * as i6 from "@mintplayer/ng-
|
|
8
|
-
import * as i7 from "@mintplayer/ng-bootstrap/
|
|
4
|
+
import * as i3 from "./carousel-img/carousel-img.directive";
|
|
5
|
+
import * as i4 from "@angular/common";
|
|
6
|
+
import * as i5 from "@mintplayer/ng-bootstrap/let";
|
|
7
|
+
import * as i6 from "@mintplayer/ng-swiper";
|
|
8
|
+
import * as i7 from "@mintplayer/ng-bootstrap/track-by";
|
|
9
|
+
import * as i8 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
9
10
|
export declare class BsCarouselModule {
|
|
10
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsCarouselModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BsCarouselModule, [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective], [typeof
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BsCarouselModule, [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective, typeof i3.BsCarouselImgDirective], [typeof i4.CommonModule, typeof i5.BsLetModule, typeof i6.BsSwiperModule, typeof i7.BsTrackByModule, typeof i8.BsNoNoscriptModule], [typeof i1.BsCarouselComponent, typeof i2.BsCarouselImageDirective, typeof i3.BsCarouselImgDirective]>;
|
|
12
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<BsCarouselModule>;
|
|
13
14
|
}
|
package/carousel/src/index.d.ts
CHANGED
|
@@ -6,11 +6,9 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
export declare class BsColorPickerComponent {
|
|
7
7
|
constructor();
|
|
8
8
|
colorWheel: BsColorWheelComponent;
|
|
9
|
-
set
|
|
10
|
-
set height(value: number);
|
|
9
|
+
set size(value: number);
|
|
11
10
|
set allowAlpha(value: boolean);
|
|
12
|
-
|
|
13
|
-
height$: BehaviorSubject<number>;
|
|
11
|
+
size$: BehaviorSubject<number>;
|
|
14
12
|
disabled$: BehaviorSubject<boolean>;
|
|
15
13
|
allowAlpha$: BehaviorSubject<boolean>;
|
|
16
14
|
hs$: BehaviorSubject<HS>;
|
|
@@ -20,5 +18,5 @@ export declare class BsColorPickerComponent {
|
|
|
20
18
|
get alpha(): number;
|
|
21
19
|
set alpha(value: number);
|
|
22
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsColorPickerComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BsColorPickerComponent, "bs-color-picker", never, { "
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BsColorPickerComponent, "bs-color-picker", never, { "size": { "alias": "size"; "required": false; }; "allowAlpha": { "alias": "allowAlpha"; "required": false; }; "alpha": { "alias": "alpha"; "required": false; }; }, { "alphaChange": "alphaChange"; }, never, never, false, never>;
|
|
24
22
|
}
|
|
@@ -53,6 +53,7 @@ export class BsCarouselComponent {
|
|
|
53
53
|
}
|
|
54
54
|
set images(value) {
|
|
55
55
|
this.images$.next(value);
|
|
56
|
+
value.forEach((item, index) => item.isFirst = (index === 0));
|
|
56
57
|
}
|
|
57
58
|
set animation(value) {
|
|
58
59
|
this.animationsDisabled = true;
|
|
@@ -148,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
148
149
|
type: HostListener,
|
|
149
150
|
args: ['document:keydown.ArrowRight', ['$event']]
|
|
150
151
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFdBQVcsRUFBRSxTQUFTLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFOLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7OztBQVF0RixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQWlDLFVBQWUsRUFBVSxLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQTZCbEYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTZDLElBQUksQ0FBQyxDQUFD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QUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzhHQXRIVSxtQkFBbUIsa0JBRVYsV0FBVztrR0FGcEIsbUJBQW1CLHdZQTZDSSx3QkFBd0IsNk9DM0Q1RCx5OUtBbUZlLDIxTkR2RUQsQ0FBQyxrQkFBa0IsQ0FBQzs7MkZBRXJCLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLGNBR1gsQ0FBQyxrQkFBa0IsQ0FBQzs7MEJBSW5CLE1BQU07MkJBQUMsV0FBVzs0RUFzQ3RCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNELGNBQWM7c0JBQXJDLFNBQVM7dUJBQUMsV0FBVztnQkFDMkMsTUFBTTtzQkFBdEUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBS3pCLGtCQUFrQjtzQkFBbkQsV0FBVzt1QkFBQyxZQUFZO2dCQUVMLFNBQVM7c0JBQTVCLEtBQUs7Z0JBYU4sVUFBVTtzQkFGVCxZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lELCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhZGVJbk91dEFuaW1hdGlvbiB9IGZyb20gJ0BtaW50cGxheWVyL25nLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLXN3aXBlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbRmFkZUluT3V0QW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBCc0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnksIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5pc1NlcnZlclNpZGUgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuICAgIHRoaXMuaW1hZ2VDb3VudCQgPSB0aGlzLmltYWdlcyQucGlwZShtYXAoKGltYWdlcykgPT4gaW1hZ2VzPy5sZW5ndGggPz8gMCkpO1xuICAgIHRoaXMuZmlyc3RJbWFnZVRlbXBsYXRlJCA9IHRoaXMuaW1hZ2VzJC5waXBlKG1hcCgoaW1hZ2VzKSA9PiB7XG4gICAgICBpZiAoIWltYWdlcykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoaW1hZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IGltZyA9IGltYWdlcy5nZXQoMCk7XG4gICAgICBpZiAoIWltZykgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiBpbWcuaXRlbVRlbXBsYXRlO1xuICAgIH0pKTtcbiAgICB0aGlzLmxhc3RJbWFnZVRlbXBsYXRlJCA9IHRoaXMuaW1hZ2VzJC5waXBlKG1hcCgoaW1hZ2VzKSA9PiB7XG4gICAgICBpZiAoIWltYWdlcykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoaW1hZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgICBcbiAgICAgIGNvbnN0IGltZyA9IGltYWdlcy5nZXQoaW1hZ2VzLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKCFpbWcpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gaW1nLml0ZW1UZW1wbGF0ZTtcbiAgICB9KSk7XG5cbiAgICBpZiAoIWlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGNvbG9ycyA9IENvbG9yO1xuICBpc1NlcnZlclNpZGU6IGJvb2xlYW47XG4gIGN1cnJlbnRJbWFnZUluZGV4ID0gMDtcbiAgaW1hZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZT4gfCBudWxsPihudWxsKTtcbiAgaW1hZ2VDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgZmlyc3RJbWFnZVRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD47XG4gIGxhc3RJbWFnZVRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD47XG4gIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgQElucHV0KCkgaW5kaWNhdG9ycyA9IGZhbHNlO1xuICBASW5wdXQoKSBrZXlib2FyZEV2ZW50cyA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5uZXJFbGVtZW50JykgaW5uZXJFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIHN3aXBlQ29udGFpbmVyITogQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSkpIHNldCBpbWFnZXModmFsdWU6IFF1ZXJ5TGlzdDxCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5pbWFnZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgLy8jcmVnaW9uIEFuaW1hdGlvblxuICBASG9zdEJpbmRpbmcoJ0AuZGlzYWJsZWQnKSBwdWJsaWMgYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2FuaW1hdGlvbjogJ2ZhZGUnIHwgJ3NsaWRlJyA9ICdzbGlkZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYW5pbWF0aW9uKHZhbHVlOiAnZmFkZScgfCAnc2xpZGUnKSB7XG4gICAgdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2FuaW1hdGlvbiA9IHZhbHVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSBmYWxzZSwgMjApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCksIDUwKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFuaW1hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dMZWZ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5BcnJvd1JpZ2h0JywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldjogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmtleWJvYXJkRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGV2LmtleSkge1xuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMucHJldmlvdXNJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICB0aGlzLm5leHRJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91c0ltYWdlKCkge1xuICAgIHN3aXRjaCAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4LS07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IHRoaXMuaW1hZ2VzJC52YWx1ZSEubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NsaWRlJzpcbiAgICAgICAgdGhpcy5zd2lwZUNvbnRhaW5lci5wcmV2aW91cygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBuZXh0SW1hZ2UoKSB7XG4gICAgc3dpdGNoICh0aGlzLmFuaW1hdGlvbikge1xuICAgICAgY2FzZSAnZmFkZSc6XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4IDwgdGhpcy5pbWFnZXMkLnZhbHVlIS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaW1hZ2VDb3VudGVyID0gMTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLmlubmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmlubmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlcnZlclNpZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwgbXgtYXV0byBub3NjcmlwdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXIgZC1ncmlkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpic0xldD1cIihpbWFnZXMkIHwgYXN5bmMpIGFzIGltYWdlc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaW1hZ2VDb3VudCQgfCBhc3luYykgYXMgaW1hZ2VDb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIFtpZF09XCInY2FyLScgKyBpXCIgW25hbWVdPVwiJ2NhcidcIiBjbGFzcz1cImNhci1yYWRpbyBkLW5vbmVcIiBic05vTm9zY3JpcHQgW2NoZWNrZWRdPVwiaSA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0gZmFkZSBkLWZsZXggZmxleC1yb3cgaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmRpY2F0b3JzXCIgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgYnNUcmFja0J5OiAnaWQnOyBsZXQgaiA9IGluZGV4XCIgW2F0dHIuZm9yXT1cIidjYXItJyArIChqICUgaW1hZ2VDb3VudClcIiBbY2xhc3MuYWN0aXZlXT1cImkgPT09IGpcIiBkYXRhLWJzLXRhcmdldD48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSAtIDEgKyBpbWFnZUNvdW50KSAlIGltYWdlQ291bnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dCBjdXJzb3ItcG9pbnRlclwiIFtmb3JdPVwiJ2Nhci0nICsgKChpICsgMSkgJSBpbWFnZUNvdW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTZXJ2ZXJTaWRlXCI+XG4gICAgPGRpdiAqbmdJZj1cImFuaW1hdGlvbiA9PT0gJ3NsaWRlJ1wiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbXgtYXV0b1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGFpbmVyLmN1cnJlbnRTbGlkZUhlaWdodCQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY29udGFpbmVyLmdvdG8oaSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiKGNvbnRhaW5lci5pbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaVwiIGRhdGEtYnMtdGFyZ2V0XG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIihjb250YWluZXIuaW1hZ2VJbmRleCQgfCBhc3luYykgPT09IGkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2xpZGUgJyArIGlcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lciBvdmVyZmxvdy1oaWRkZW4gdGV4dC1ub3dyYXAgcGUtbm9uZVwiICNpbm5lckVsZW1lbnQ+XG4gICAgICAgICAgICA8ZGl2IGJzU3dpcGVDb250YWluZXIgI2NvbnRhaW5lcj1cImJzU3dpcGVDb250YWluZXJcIiBbbWluaW11bU9mZnNldF09XCI1MFwiIFsoaW1hZ2VJbmRleCldPVwiY3VycmVudEltYWdlSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiIGJzU3dpcGUgW29mZnNpZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFzdEltYWdlVGVtcGxhdGUkIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiAoaW1hZ2VzJCB8IGFzeW5jKTsgYnNUcmFja0J5OiAnaWQnXCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgYnNTd2lwZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgYnNTd2lwZSBbb2Zmc2lkZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaXJzdEltYWdlVGVtcGxhdGUkIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYW5pbWF0aW9uID09PSAnZmFkZSdcIiBjbGFzcz1cImNhcm91c2VsIGZhZGUgbXgtYXV0b1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY3VycmVudEltYWdlSW5kZXggPSBpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCIgZGF0YS1icy10YXJnZXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiY3VycmVudEltYWdlSW5kZXggPT09IGkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2xpZGUgJyArIGlcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgQGZhZGVJbk91dCAqbmdJZj1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+ICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFdBQVcsRUFBRSxTQUFTLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFOLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7OztBQVF0RixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQWlDLFVBQWUsRUFBVSxLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQTZCbEYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTZDLElBQUksQ0FBQyxDQUFD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QU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBdkhVLG1CQUFtQixrQkFFVixXQUFXO2tHQUZwQixtQkFBbUIsd1lBNkNJLHdCQUF3Qiw2T0MzRDVELHk5S0FtRmUsMjFORHZFRCxDQUFDLGtCQUFrQixDQUFDOzsyRkFFckIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsY0FHWCxDQUFDLGtCQUFrQixDQUFDOzswQkFJbkIsTUFBTTsyQkFBQyxXQUFXOzRFQXNDdEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVxQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0QsY0FBYztzQkFBckMsU0FBUzt1QkFBQyxXQUFXO2dCQUMyQyxNQUFNO3NCQUF0RSxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztnQkFNekIsa0JBQWtCO3NCQUFuRCxXQUFXO3VCQUFDLFlBQVk7Z0JBRUwsU0FBUztzQkFBNUIsS0FBSztnQkFhTixVQUFVO3NCQUZULFlBQVk7dUJBQUMsNEJBQTRCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNyRCxZQUFZO3VCQUFDLDZCQUE2QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgUExBVEZPUk1fSUQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFkZUluT3V0QW5pbWF0aW9uIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBCc1N3aXBlQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctc3dpcGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmUgfSBmcm9tICcuLi9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1jYXJvdXNlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtGYWRlSW5PdXRBbmltYXRpb25dXG59KVxuZXhwb3J0IGNsYXNzIEJzQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IGFueSwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmlzU2VydmVyU2lkZSA9IGlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm1JZCk7XG4gICAgdGhpcy5pbWFnZUNvdW50JCA9IHRoaXMuaW1hZ2VzJC5waXBlKG1hcCgoaW1hZ2VzKSA9PiBpbWFnZXM/Lmxlbmd0aCA/PyAwKSk7XG4gICAgdGhpcy5maXJzdEltYWdlVGVtcGxhdGUkID0gdGhpcy5pbWFnZXMkLnBpcGUobWFwKChpbWFnZXMpID0+IHtcbiAgICAgIGlmICghaW1hZ2VzKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChpbWFnZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3QgaW1nID0gaW1hZ2VzLmdldCgwKTtcbiAgICAgIGlmICghaW1nKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIGltZy5pdGVtVGVtcGxhdGU7XG4gICAgfSkpO1xuICAgIHRoaXMubGFzdEltYWdlVGVtcGxhdGUkID0gdGhpcy5pbWFnZXMkLnBpcGUobWFwKChpbWFnZXMpID0+IHtcbiAgICAgIGlmICghaW1hZ2VzKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChpbWFnZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICAgIFxuICAgICAgY29uc3QgaW1nID0gaW1hZ2VzLmdldChpbWFnZXMubGVuZ3RoIC0gMSk7XG4gICAgICBpZiAoIWltZykgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiBpbWcuaXRlbVRlbXBsYXRlO1xuICAgIH0pKTtcblxuICAgIGlmICghaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgY29sb3JzID0gQ29sb3I7XG4gIGlzU2VydmVyU2lkZTogYm9vbGVhbjtcbiAgY3VycmVudEltYWdlSW5kZXggPSAwO1xuICBpbWFnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8QnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlPiB8IG51bGw+KG51bGwpO1xuICBpbWFnZUNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBmaXJzdEltYWdlVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPjtcbiAgbGFzdEltYWdlVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPjtcbiAgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBASW5wdXQoKSBpbmRpY2F0b3JzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGtleWJvYXJkRXZlbnRzID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCdpbm5lckVsZW1lbnQnKSBpbm5lckVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgc3dpcGVDb250YWluZXIhOiBCc1N3aXBlQ29udGFpbmVyRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlKSkgc2V0IGltYWdlcyh2YWx1ZTogUXVlcnlMaXN0PEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLmltYWdlcyQubmV4dCh2YWx1ZSk7XG4gICAgdmFsdWUuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IGl0ZW0uaXNGaXJzdCA9IChpbmRleCA9PT0gMCkpO1xuICB9XG5cbiAgLy8jcmVnaW9uIEFuaW1hdGlvblxuICBASG9zdEJpbmRpbmcoJ0AuZGlzYWJsZWQnKSBwdWJsaWMgYW5pbWF0aW9uc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2FuaW1hdGlvbjogJ2ZhZGUnIHwgJ3NsaWRlJyA9ICdzbGlkZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYW5pbWF0aW9uKHZhbHVlOiAnZmFkZScgfCAnc2xpZGUnKSB7XG4gICAgdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2FuaW1hdGlvbiA9IHZhbHVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hbmltYXRpb25zRGlzYWJsZWQgPSBmYWxzZSwgMjApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCksIDUwKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFuaW1hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uQXJyb3dMZWZ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5BcnJvd1JpZ2h0JywgWyckZXZlbnQnXSlcbiAgb25LZXlQcmVzcyhldjogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmtleWJvYXJkRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGV2LmtleSkge1xuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgIHRoaXMucHJldmlvdXNJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICB0aGlzLm5leHRJbWFnZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91c0ltYWdlKCkge1xuICAgIHN3aXRjaCAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDApIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4LS07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IHRoaXMuaW1hZ2VzJC52YWx1ZSEubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NsaWRlJzpcbiAgICAgICAgdGhpcy5zd2lwZUNvbnRhaW5lci5wcmV2aW91cygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBuZXh0SW1hZ2UoKSB7XG4gICAgc3dpdGNoICh0aGlzLmFuaW1hdGlvbikge1xuICAgICAgY2FzZSAnZmFkZSc6XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4IDwgdGhpcy5pbWFnZXMkLnZhbHVlIS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xpZGUnOlxuICAgICAgICB0aGlzLnN3aXBlQ29udGFpbmVyLm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaW1hZ2VDb3VudGVyID0gMTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLmlubmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmlubmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlcnZlclNpZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwgbXgtYXV0byBub3NjcmlwdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5uZXIgZC1ncmlkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpic0xldD1cIihpbWFnZXMkIHwgYXN5bmMpIGFzIGltYWdlc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaW1hZ2VDb3VudCQgfCBhc3luYykgYXMgaW1hZ2VDb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBpbWFnZXM7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIFtpZF09XCInY2FyLScgKyBpXCIgW25hbWVdPVwiJ2NhcidcIiBjbGFzcz1cImNhci1yYWRpbyBkLW5vbmVcIiBic05vTm9zY3JpcHQgW2NoZWNrZWRdPVwiaSA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0gZmFkZSBkLWZsZXggZmxleC1yb3cgaC0xMDAgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmRpY2F0b3JzXCIgY2xhc3M9XCJjYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlczsgYnNUcmFja0J5OiAnaWQnOyBsZXQgaiA9IGluZGV4XCIgW2F0dHIuZm9yXT1cIidjYXItJyArIChqICUgaW1hZ2VDb3VudClcIiBbY2xhc3MuYWN0aXZlXT1cImkgPT09IGpcIiBkYXRhLWJzLXRhcmdldD48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYgY3Vyc29yLXBvaW50ZXJcIiBbZm9yXT1cIidjYXItJyArICgoaSAtIDEgKyBpbWFnZUNvdW50KSAlIGltYWdlQ291bnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dCBjdXJzb3ItcG9pbnRlclwiIFtmb3JdPVwiJ2Nhci0nICsgKChpICsgMSkgJSBpbWFnZUNvdW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTZXJ2ZXJTaWRlXCI+XG4gICAgPGRpdiAqbmdJZj1cImFuaW1hdGlvbiA9PT0gJ3NsaWRlJ1wiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbXgtYXV0b1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGFpbmVyLmN1cnJlbnRTbGlkZUhlaWdodCQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY29udGFpbmVyLmdvdG8oaSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiKGNvbnRhaW5lci5pbWFnZUluZGV4JCB8IGFzeW5jKSA9PT0gaVwiIGRhdGEtYnMtdGFyZ2V0XG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIihjb250YWluZXIuaW1hZ2VJbmRleCQgfCBhc3luYykgPT09IGkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2xpZGUgJyArIGlcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lciBvdmVyZmxvdy1oaWRkZW4gdGV4dC1ub3dyYXAgcGUtbm9uZVwiICNpbm5lckVsZW1lbnQ+XG4gICAgICAgICAgICA8ZGl2IGJzU3dpcGVDb250YWluZXIgI2NvbnRhaW5lcj1cImJzU3dpcGVDb250YWluZXJcIiBbbWluaW11bU9mZnNldF09XCI1MFwiIFsoaW1hZ2VJbmRleCldPVwiY3VycmVudEltYWdlSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiIGJzU3dpcGUgW29mZnNpZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFzdEltYWdlVGVtcGxhdGUkIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZSBvZiAoaW1hZ2VzJCB8IGFzeW5jKTsgYnNUcmFja0J5OiAnaWQnXCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgYnNTd2lwZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltYWdlLml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgYnNTd2lwZSBbb2Zmc2lkZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaXJzdEltYWdlVGVtcGxhdGUkIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldlwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5QcmV2aW91czwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLW5leHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5OZXh0PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYW5pbWF0aW9uID09PSAnZmFkZSdcIiBjbGFzcz1cImNhcm91c2VsIGZhZGUgbXgtYXV0b1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5kaWNhdG9yc1wiIGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY3VycmVudEltYWdlSW5kZXggPSBpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCIgZGF0YS1icy10YXJnZXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiY3VycmVudEltYWdlSW5kZXggPT09IGkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2xpZGUgJyArIGlcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgKGltYWdlcyQgfCBhc3luYyk7IGJzVHJhY2tCeTogJ2lkJzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCIgQGZhZGVJbk91dCAqbmdJZj1cImN1cnJlbnRJbWFnZUluZGV4ID09PSBpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW1hZ2UuaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+ICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aW91c0ltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlByZXZpb3VzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibmV4dEltYWdlKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPk5leHQ8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -6,6 +6,7 @@ export class BsCarouselImageDirective {
|
|
|
6
6
|
constructor(templateRef, carousel, element) {
|
|
7
7
|
this.templateRef = templateRef;
|
|
8
8
|
this.element = element;
|
|
9
|
+
this.isFirst = false;
|
|
9
10
|
this.itemTemplate = this.templateRef;
|
|
10
11
|
this.id = carousel.imageCounter++;
|
|
11
12
|
}
|
|
@@ -18,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
18
19
|
selector: '*[bsCarouselImage]'
|
|
19
20
|
}]
|
|
20
21
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.BsCarouselComponent }, { type: i0.ElementRef }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBS3JFLE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFBb0IsV0FBNkIsRUFBRSxRQUE2QixFQUFVLE9BQWdDO1FBQXRHLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUF5QyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQU0xSCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTGQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBUFUsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4uL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJypbYnNDYXJvdXNlbEltYWdlXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlIHtcblxuICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiwgY2Fyb3VzZWw6IEJzQ2Fyb3VzZWxDb21wb25lbnQsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVSZWY7XG4gICAgdGhpcy5pZCA9IGNhcm91c2VsLmltYWdlQ291bnRlcisrO1xuICB9XG4gIFxuICBpZDogbnVtYmVyO1xuICBpc0ZpcnN0ID0gZmFsc2U7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Directive, HostBinding } from '@angular/core';
|
|
2
|
+
import { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../carousel-image/carousel-image.directive";
|
|
5
|
+
export class BsCarouselImgDirective {
|
|
6
|
+
constructor(image) {
|
|
7
|
+
this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselImgDirective, deps: [{ token: i1.BsCarouselImageDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: BsCarouselImgDirective, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
|
|
13
|
+
type: Directive,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: 'img'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i1.BsCarouselImageDirective }]; }, propDecorators: { fetchPriority: [{
|
|
18
|
+
type: HostBinding,
|
|
19
|
+
args: ['attr.fetch-priority']
|
|
20
|
+
}] } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW1nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvY2Fyb3VzZWwvc3JjL2Nhcm91c2VsLWltZy9jYXJvdXNlbC1pbWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7QUFLdEYsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFZLEtBQStCO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDOzhHQUhVLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxLQUFLO2lCQUNoQjsrR0FNcUMsYUFBYTtzQkFBaEQsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmUgfSBmcm9tICcuLi9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbWcnXG59KVxuZXhwb3J0IGNsYXNzIEJzQ2Fyb3VzZWxJbWdEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihpbWFnZTogQnNDYXJvdXNlbEltYWdlRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5mZXRjaFByaW9yaXR5ID0gKGltYWdlICYmIGltYWdlLmlzRmlyc3QpID8gJ2hpZ2gnIDogJ2xvdyc7XG4gIH1cbiAgXG4gIEBIb3N0QmluZGluZygnYXR0ci5mZXRjaC1wcmlvcml0eScpIGZldGNoUHJpb3JpdHk6ICdoaWdoJyB8ICdsb3cnIHwgJ2F1dG8nO1xufVxuIl19
|
|
@@ -6,16 +6,19 @@ import { BsTrackByModule } from '@mintplayer/ng-bootstrap/track-by';
|
|
|
6
6
|
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
|
|
7
7
|
import { BsCarouselComponent } from './carousel/carousel.component';
|
|
8
8
|
import { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';
|
|
9
|
+
import { BsCarouselImgDirective } from './carousel-img/carousel-img.directive';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class BsCarouselModule {
|
|
11
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
13
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
|
|
13
|
-
BsCarouselImageDirective
|
|
14
|
+
BsCarouselImageDirective,
|
|
15
|
+
BsCarouselImgDirective], imports: [CommonModule,
|
|
14
16
|
BsLetModule,
|
|
15
17
|
BsSwiperModule,
|
|
16
18
|
BsTrackByModule,
|
|
17
19
|
BsNoNoscriptModule], exports: [BsCarouselComponent,
|
|
18
|
-
BsCarouselImageDirective
|
|
20
|
+
BsCarouselImageDirective,
|
|
21
|
+
BsCarouselImgDirective] }); }
|
|
19
22
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, imports: [CommonModule,
|
|
20
23
|
BsLetModule,
|
|
21
24
|
BsSwiperModule,
|
|
@@ -27,7 +30,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
27
30
|
args: [{
|
|
28
31
|
declarations: [
|
|
29
32
|
BsCarouselComponent,
|
|
30
|
-
BsCarouselImageDirective
|
|
33
|
+
BsCarouselImageDirective,
|
|
34
|
+
BsCarouselImgDirective,
|
|
31
35
|
],
|
|
32
36
|
imports: [
|
|
33
37
|
CommonModule,
|
|
@@ -38,8 +42,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
38
42
|
],
|
|
39
43
|
exports: [
|
|
40
44
|
BsCarouselComponent,
|
|
41
|
-
BsCarouselImageDirective
|
|
45
|
+
BsCarouselImageDirective,
|
|
46
|
+
BsCarouselImgDirective,
|
|
42
47
|
]
|
|
43
48
|
}]
|
|
44
49
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQXFCL0UsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBakJ6QixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLHNCQUFzQixhQUd0QixZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCLGFBR2xCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsc0JBQXNCOytHQUdiLGdCQUFnQixZQVp6QixZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCOzsyRkFRVCxnQkFBZ0I7a0JBbkI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNTd2lwZXJNb2R1bGUgfSBmcm9tICdAbWludHBsYXllci9uZy1zd2lwZXInO1xuaW1wb3J0IHsgQnNMZXRNb2R1bGUgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAvbGV0JztcbmltcG9ydCB7IEJzVHJhY2tCeU1vZHVsZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC90cmFjay1ieSc7XG5pbXBvcnQgeyBCc05vTm9zY3JpcHRNb2R1bGUgfSBmcm9tICdAbWludHBsYXllci9uZy1ib290c3RyYXAvbm8tbm9zY3JpcHQnO1xuaW1wb3J0IHsgQnNDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSB9IGZyb20gJy4vY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJzQ2Fyb3VzZWxJbWdEaXJlY3RpdmUgfSBmcm9tICcuL2Nhcm91c2VsLWltZy9jYXJvdXNlbC1pbWcuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnNDYXJvdXNlbENvbXBvbmVudCxcbiAgICBCc0Nhcm91c2VsSW1hZ2VEaXJlY3RpdmUsXG4gICAgQnNDYXJvdXNlbEltZ0RpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCc0xldE1vZHVsZSxcbiAgICBCc1N3aXBlck1vZHVsZSxcbiAgICBCc1RyYWNrQnlNb2R1bGUsXG4gICAgQnNOb05vc2NyaXB0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc0Nhcm91c2VsQ29tcG9uZW50LFxuICAgIEJzQ2Fyb3VzZWxJbWFnZURpcmVjdGl2ZSxcbiAgICBCc0Nhcm91c2VsSW1nRGlyZWN0aXZlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzQ2Fyb3VzZWxNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './carousel/carousel.component';
|
|
2
2
|
export * from './carousel-image/carousel-image.directive';
|
|
3
|
+
export * from './carousel-img/carousel-img.directive';
|
|
3
4
|
export * from './carousel.module';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2Nhcm91c2VsL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC1pbWcvY2Fyb3VzZWwtaW1nLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nhcm91c2VsLm1vZHVsZSc7Il19
|
|
@@ -10,8 +10,7 @@ import * as i4 from "../luminosity-strip/luminosity-strip.component";
|
|
|
10
10
|
import * as i5 from "../alpha-strip/alpha-strip.component";
|
|
11
11
|
export class BsColorPickerComponent {
|
|
12
12
|
constructor() {
|
|
13
|
-
this.
|
|
14
|
-
this.height$ = new BehaviorSubject(150);
|
|
13
|
+
this.size$ = new BehaviorSubject(150);
|
|
15
14
|
this.disabled$ = new BehaviorSubject(false);
|
|
16
15
|
this.allowAlpha$ = new BehaviorSubject(true);
|
|
17
16
|
this.hs$ = new BehaviorSubject({ hue: 0, saturation: 0 });
|
|
@@ -22,11 +21,8 @@ export class BsColorPickerComponent {
|
|
|
22
21
|
this.alpha$.pipe(takeUntilDestroyed())
|
|
23
22
|
.subscribe((alpha) => this.alphaChange.emit(alpha));
|
|
24
23
|
}
|
|
25
|
-
set
|
|
26
|
-
this.
|
|
27
|
-
}
|
|
28
|
-
set height(value) {
|
|
29
|
-
this.height$.next(value);
|
|
24
|
+
set size(value) {
|
|
25
|
+
this.size$.next(value);
|
|
30
26
|
}
|
|
31
27
|
set allowAlpha(value) {
|
|
32
28
|
this.allowAlpha$.next(value);
|
|
@@ -38,17 +34,15 @@ export class BsColorPickerComponent {
|
|
|
38
34
|
this.alpha$.next(value);
|
|
39
35
|
}
|
|
40
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BsColorPickerComponent, selector: "bs-color-picker", inputs: {
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BsColorPickerComponent, selector: "bs-color-picker", inputs: { size: "size", allowAlpha: "allowAlpha", alpha: "alpha" }, outputs: { alphaChange: "alphaChange" }, viewQueries: [{ propertyName: "colorWheel", first: true, predicate: ["wheel"], descendants: true }], ngImport: i0, template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "component", type: i3.BsColorWheelComponent, selector: "bs-color-wheel", inputs: ["diameterRatio", "width", "height", "hs", "luminosity"], outputs: ["hsChange"] }, { kind: "component", type: i4.BsLuminosityStripComponent, selector: "bs-luminosity-strip", inputs: ["hs", "luminosity"], outputs: ["luminosityChange"] }, { kind: "component", type: i5.BsAlphaStripComponent, selector: "bs-alpha-strip", inputs: ["hs", "luminosity", "alpha"], outputs: ["alphaChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
42
38
|
}
|
|
43
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsColorPickerComponent, decorators: [{
|
|
44
40
|
type: Component,
|
|
45
|
-
args: [{ selector: 'bs-color-picker', template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>" }]
|
|
41
|
+
args: [{ selector: 'bs-color-picker', template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>" }]
|
|
46
42
|
}], ctorParameters: function () { return []; }, propDecorators: { colorWheel: [{
|
|
47
43
|
type: ViewChild,
|
|
48
44
|
args: ['wheel']
|
|
49
|
-
}],
|
|
50
|
-
type: Input
|
|
51
|
-
}], height: [{
|
|
45
|
+
}], size: [{
|
|
52
46
|
type: Input
|
|
53
47
|
}], allowAlpha: [{
|
|
54
48
|
type: Input
|
|
@@ -57,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
57
51
|
}], alpha: [{
|
|
58
52
|
type: Input
|
|
59
53
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvY29sb3ItcGlja2VyL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL2NvbG9yLXBpY2tlci9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQU9oRSxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDO1FBYUEsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWpELFFBQUcsR0FBRyxJQUFJLGVBQWUsQ0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUU3QyxlQUFlO1FBQ2YsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQXJCakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUdELElBQWEsSUFBSSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELElBQWEsVUFBVSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQVlELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs4R0E5QlUsc0JBQXNCO2tHQUF0QixzQkFBc0IseVFDWG5DLGdoQ0FVZTs7MkZEQ0Ysc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjswRUFXUCxVQUFVO3NCQUE3QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0wsSUFBSTtzQkFBaEIsS0FBSztnQkFHTyxVQUFVO3NCQUF0QixLQUFLO2dCQWFJLFdBQVc7c0JBQXBCLE1BQU07Z0JBSU0sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEhTIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvaHNcIjtcbmltcG9ydCB7IEJzQ29sb3JXaGVlbENvbXBvbmVudCB9IGZyb20gXCIuLi9jb2xvci13aGVlbC9jb2xvci13aGVlbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy1jb2xvci1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNDb2xvclBpY2tlckNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hbHBoYSQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFscGhhKSA9PiB0aGlzLmFscGhhQ2hhbmdlLmVtaXQoYWxwaGEpKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3doZWVsJykgY29sb3JXaGVlbCE6IEJzQ29sb3JXaGVlbENvbXBvbmVudDtcbiAgQElucHV0KCkgc2V0IHNpemUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc2l6ZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGFsbG93QWxwaGEodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsbG93QWxwaGEkLm5leHQodmFsdWUpO1xuICB9XG4gIFxuICBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxNTApO1xuICBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgYWxsb3dBbHBoYSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIGhzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFM+KHsgaHVlOiAwLCBzYXR1cmF0aW9uOiAwIH0pO1xuICBsdW1pbm9zaXR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvLyNyZWdpb24gQWxwaGFcbiAgYWxwaGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuICBAT3V0cHV0KCkgYWxwaGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgZ2V0IGFscGhhKCkge1xuICAgIHJldHVybiB0aGlzLmFscGhhJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBzZXQgYWxwaGEodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuYWxwaGEkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIiwiPG5nLWNvbnRhaW5lciAqYnNMZXQ9XCIoZGlzYWJsZWQkIHwgYXN5bmMpITsgbGV0IGxldERpc2FibGVkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYnNMZXQ9XCIoaHMkIHwgYXN5bmMpITsgbGV0IGxldEhTXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmJzTGV0PVwiKGx1bWlub3NpdHkkIHwgYXN5bmMpITsgbGV0IGxldEx1bWlub3NpdHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmJzTGV0PVwiKGFscGhhJCB8IGFzeW5jKSE7IGxldCBsZXRBbHBoYVwiPlxuICAgICAgICAgICAgICAgIDxicy1jb2xvci13aGVlbCBbaHNdPVwibGV0SFNcIiAoaHNDaGFuZ2UpPVwiaHMkLm5leHQoJGV2ZW50KVwiIFtsdW1pbm9zaXR5XT1cImxldEx1bWlub3NpdHlcIiBbd2lkdGhdPVwiKHNpemUkIHwgYXN5bmMpID8/IDE1MFwiIFtoZWlnaHRdPVwiKHNpemUkIHwgYXN5bmMpID8/IDE1MFwiICN3aGVlbD48L2JzLWNvbG9yLXdoZWVsPlxuICAgICAgICAgICAgICAgIDxicy1sdW1pbm9zaXR5LXN0cmlwIFtoc109XCJsZXRIU1wiIFtsdW1pbm9zaXR5XT1cImxldEx1bWlub3NpdHlcIiAobHVtaW5vc2l0eUNoYW5nZSk9XCJsdW1pbm9zaXR5JC5uZXh0KCRldmVudClcIiBjbGFzcz1cImQtYmxvY2sgbXQtMlwiIFtzdHlsZS53aWR0aC5weF09XCJzaXplJCB8IGFzeW5jXCIgI3N0cmlwPjwvYnMtbHVtaW5vc2l0eS1zdHJpcD5cbiAgICAgICAgICAgICAgICA8YnMtYWxwaGEtc3RyaXAgKm5nSWY9XCJhbGxvd0FscGhhJCB8IGFzeW5jXCIgW2hzXT1cImxldEhTXCIgW2x1bWlub3NpdHldPVwibGV0THVtaW5vc2l0eVwiIFthbHBoYV09XCJsZXRBbHBoYVwiIChhbHBoYUNoYW5nZSk9XCJhbHBoYSQubmV4dCgkZXZlbnQpXCIgY2xhc3M9XCJkLWJsb2NrIG10LTJcIiBbc3R5bGUud2lkdGgucHhdPVwic2l6ZSQgfCBhc3luY1wiICNhbHBoYT48L2JzLWFscGhhLXN0cmlwPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -18,6 +18,7 @@ class BsCarouselImageDirective {
|
|
|
18
18
|
constructor(templateRef, carousel, element) {
|
|
19
19
|
this.templateRef = templateRef;
|
|
20
20
|
this.element = element;
|
|
21
|
+
this.isFirst = false;
|
|
21
22
|
this.itemTemplate = this.templateRef;
|
|
22
23
|
this.id = carousel.imageCounter++;
|
|
23
24
|
}
|
|
@@ -73,6 +74,7 @@ class BsCarouselComponent {
|
|
|
73
74
|
}
|
|
74
75
|
set images(value) {
|
|
75
76
|
this.images$.next(value);
|
|
77
|
+
value.forEach((item, index) => item.isFirst = (index === 0));
|
|
76
78
|
}
|
|
77
79
|
set animation(value) {
|
|
78
80
|
this.animationsDisabled = true;
|
|
@@ -169,15 +171,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
169
171
|
args: ['document:keydown.ArrowRight', ['$event']]
|
|
170
172
|
}] } });
|
|
171
173
|
|
|
174
|
+
class BsCarouselImgDirective {
|
|
175
|
+
constructor(image) {
|
|
176
|
+
this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';
|
|
177
|
+
}
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselImgDirective, deps: [{ token: BsCarouselImageDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
179
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: BsCarouselImgDirective, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
|
|
180
|
+
}
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
|
|
182
|
+
type: Directive,
|
|
183
|
+
args: [{
|
|
184
|
+
selector: 'img'
|
|
185
|
+
}]
|
|
186
|
+
}], ctorParameters: function () { return [{ type: BsCarouselImageDirective }]; }, propDecorators: { fetchPriority: [{
|
|
187
|
+
type: HostBinding,
|
|
188
|
+
args: ['attr.fetch-priority']
|
|
189
|
+
}] } });
|
|
190
|
+
|
|
172
191
|
class BsCarouselModule {
|
|
173
192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
174
193
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
|
|
175
|
-
BsCarouselImageDirective
|
|
194
|
+
BsCarouselImageDirective,
|
|
195
|
+
BsCarouselImgDirective], imports: [CommonModule,
|
|
176
196
|
BsLetModule,
|
|
177
197
|
BsSwiperModule,
|
|
178
198
|
BsTrackByModule,
|
|
179
199
|
BsNoNoscriptModule], exports: [BsCarouselComponent,
|
|
180
|
-
BsCarouselImageDirective
|
|
200
|
+
BsCarouselImageDirective,
|
|
201
|
+
BsCarouselImgDirective] }); }
|
|
181
202
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsCarouselModule, imports: [CommonModule,
|
|
182
203
|
BsLetModule,
|
|
183
204
|
BsSwiperModule,
|
|
@@ -189,7 +210,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
189
210
|
args: [{
|
|
190
211
|
declarations: [
|
|
191
212
|
BsCarouselComponent,
|
|
192
|
-
BsCarouselImageDirective
|
|
213
|
+
BsCarouselImageDirective,
|
|
214
|
+
BsCarouselImgDirective,
|
|
193
215
|
],
|
|
194
216
|
imports: [
|
|
195
217
|
CommonModule,
|
|
@@ -200,7 +222,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
200
222
|
],
|
|
201
223
|
exports: [
|
|
202
224
|
BsCarouselComponent,
|
|
203
|
-
BsCarouselImageDirective
|
|
225
|
+
BsCarouselImageDirective,
|
|
226
|
+
BsCarouselImgDirective,
|
|
204
227
|
]
|
|
205
228
|
}]
|
|
206
229
|
}] });
|
|
@@ -209,5 +232,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
209
232
|
* Generated bundle index. Do not edit.
|
|
210
233
|
*/
|
|
211
234
|
|
|
212
|
-
export { BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule };
|
|
235
|
+
export { BsCarouselComponent, BsCarouselImageDirective, BsCarouselImgDirective, BsCarouselModule };
|
|
213
236
|
//# sourceMappingURL=mintplayer-ng-bootstrap-carousel.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, ElementRef } from '@angular/core';\nimport { BsCarouselComponent } from '../carousel/carousel.component';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>, carousel: BsCarouselComponent, private element: ElementRef<HTMLElement>) {\n this.itemTemplate = this.templateRef;\n this.id = carousel.imageCounter++;\n }\n \n id: number;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, OnDestroy, PLATFORM_ID, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent implements AfterViewInit, OnDestroy {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));\n this.firstImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n\n const img = images.get(0);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n this.lastImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n \n const img = images.get(images.length - 1);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n\n if (!isPlatformServer(platformId)) {\n this.resizeObserver = new ResizeObserver((entries) => {\n this.cdRef.detectChanges();\n });\n }\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n images$ = new BehaviorSubject<QueryList<BsCarouselImageDirective> | null>(null);\n imageCount$: Observable<number>;\n firstImageTemplate$: Observable<TemplateRef<any> | null>;\n lastImageTemplate$: Observable<TemplateRef<any> | null>;\n resizeObserver?: ResizeObserver;\n\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('innerElement') innerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) set images(value: QueryList<BsCarouselImageDirective>) {\n this.images$.next(value);\n }\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images$.value!.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images$.value!.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n imageCounter = 1;\n\n ngAfterViewInit() {\n this.resizeObserver?.observe(this.innerElement.nativeElement);\n }\n\n ngOnDestroy() {\n this.resizeObserver?.unobserve(this.innerElement.nativeElement);\n this.resizeObserver?.disconnect();\n }\n}\n","<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *bsLet=\"(images$ | async) as images\">\n <ng-container *ngIf=\"(imageCount$ | async) as imageCount\">\n <ng-container *ngFor=\"let image of images; bsTrackBy: 'id'; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; bsTrackBy: 'id'; let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n <div *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'\" class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner\">\n <ng-container *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsTrackByModule } from '@mintplayer/ng-bootstrap/track-by';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ],\n imports: [\n CommonModule,\n BsLetModule,\n BsSwiperModule,\n BsTrackByModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsCarouselComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-img/carousel-img.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, ElementRef, HostBinding } from '@angular/core';\nimport { BsCarouselComponent } from '../carousel/carousel.component';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>, carousel: BsCarouselComponent, private element: ElementRef<HTMLElement>) {\n this.itemTemplate = this.templateRef;\n this.id = carousel.imageCounter++;\n }\n \n id: number;\n isFirst = false;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, OnDestroy, PLATFORM_ID, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent implements AfterViewInit, OnDestroy {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));\n this.firstImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n\n const img = images.get(0);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n this.lastImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n \n const img = images.get(images.length - 1);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n\n if (!isPlatformServer(platformId)) {\n this.resizeObserver = new ResizeObserver((entries) => {\n this.cdRef.detectChanges();\n });\n }\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n images$ = new BehaviorSubject<QueryList<BsCarouselImageDirective> | null>(null);\n imageCount$: Observable<number>;\n firstImageTemplate$: Observable<TemplateRef<any> | null>;\n lastImageTemplate$: Observable<TemplateRef<any> | null>;\n resizeObserver?: ResizeObserver;\n\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('innerElement') innerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) set images(value: QueryList<BsCarouselImageDirective>) {\n this.images$.next(value);\n value.forEach((item, index) => item.isFirst = (index === 0));\n }\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images$.value!.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images$.value!.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n imageCounter = 1;\n\n ngAfterViewInit() {\n this.resizeObserver?.observe(this.innerElement.nativeElement);\n }\n\n ngOnDestroy() {\n this.resizeObserver?.unobserve(this.innerElement.nativeElement);\n this.resizeObserver?.disconnect();\n }\n}\n","<ng-container *ngIf=\"isServerSide\">\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *bsLet=\"(images$ | async) as images\">\n <ng-container *ngIf=\"(imageCount$ | async) as imageCount\">\n <ng-container *ngFor=\"let image of images; bsTrackBy: 'id'; let i = index\">\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <label *ngFor=\"let image of images; bsTrackBy: 'id'; let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n </div>\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n <div *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'\" class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n <button *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n </div>\n <div class=\"carousel-inner\">\n <ng-container *ngFor=\"let image of (images$ | async); bsTrackBy: 'id'; let i = index\">\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container> \n </div>\n </ng-container>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n</ng-container>","import { Directive, HostBinding } from '@angular/core';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Directive({\n selector: 'img'\n})\nexport class BsCarouselImgDirective {\n constructor(image: BsCarouselImageDirective) {\n this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';\n }\n \n @HostBinding('attr.fetch-priority') fetchPriority: 'high' | 'low' | 'auto';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsTrackByModule } from '@mintplayer/ng-bootstrap/track-by';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\nimport { BsCarouselImgDirective } from './carousel-img/carousel-img.directive';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ],\n imports: [\n CommonModule,\n BsLetModule,\n BsSwiperModule,\n BsTrackByModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsCarouselComponent","i1.BsCarouselImageDirective"],"mappings":"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"}
|
|
@@ -586,8 +586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
586
586
|
|
|
587
587
|
class BsColorPickerComponent {
|
|
588
588
|
constructor() {
|
|
589
|
-
this.
|
|
590
|
-
this.height$ = new BehaviorSubject(150);
|
|
589
|
+
this.size$ = new BehaviorSubject(150);
|
|
591
590
|
this.disabled$ = new BehaviorSubject(false);
|
|
592
591
|
this.allowAlpha$ = new BehaviorSubject(true);
|
|
593
592
|
this.hs$ = new BehaviorSubject({ hue: 0, saturation: 0 });
|
|
@@ -598,11 +597,8 @@ class BsColorPickerComponent {
|
|
|
598
597
|
this.alpha$.pipe(takeUntilDestroyed())
|
|
599
598
|
.subscribe((alpha) => this.alphaChange.emit(alpha));
|
|
600
599
|
}
|
|
601
|
-
set
|
|
602
|
-
this.
|
|
603
|
-
}
|
|
604
|
-
set height(value) {
|
|
605
|
-
this.height$.next(value);
|
|
600
|
+
set size(value) {
|
|
601
|
+
this.size$.next(value);
|
|
606
602
|
}
|
|
607
603
|
set allowAlpha(value) {
|
|
608
604
|
this.allowAlpha$.next(value);
|
|
@@ -614,17 +610,15 @@ class BsColorPickerComponent {
|
|
|
614
610
|
this.alpha$.next(value);
|
|
615
611
|
}
|
|
616
612
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
617
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BsColorPickerComponent, selector: "bs-color-picker", inputs: {
|
|
613
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BsColorPickerComponent, selector: "bs-color-picker", inputs: { size: "size", allowAlpha: "allowAlpha", alpha: "alpha" }, outputs: { alphaChange: "alphaChange" }, viewQueries: [{ propertyName: "colorWheel", first: true, predicate: ["wheel"], descendants: true }], ngImport: i0, template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "component", type: BsColorWheelComponent, selector: "bs-color-wheel", inputs: ["diameterRatio", "width", "height", "hs", "luminosity"], outputs: ["hsChange"] }, { kind: "component", type: BsLuminosityStripComponent, selector: "bs-luminosity-strip", inputs: ["hs", "luminosity"], outputs: ["luminosityChange"] }, { kind: "component", type: BsAlphaStripComponent, selector: "bs-alpha-strip", inputs: ["hs", "luminosity", "alpha"], outputs: ["alphaChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
618
614
|
}
|
|
619
615
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BsColorPickerComponent, decorators: [{
|
|
620
616
|
type: Component,
|
|
621
|
-
args: [{ selector: 'bs-color-picker', template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>" }]
|
|
617
|
+
args: [{ selector: 'bs-color-picker', template: "<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>" }]
|
|
622
618
|
}], ctorParameters: function () { return []; }, propDecorators: { colorWheel: [{
|
|
623
619
|
type: ViewChild,
|
|
624
620
|
args: ['wheel']
|
|
625
|
-
}],
|
|
626
|
-
type: Input
|
|
627
|
-
}], height: [{
|
|
621
|
+
}], size: [{
|
|
628
622
|
type: Input
|
|
629
623
|
}], allowAlpha: [{
|
|
630
624
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-color-picker.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/color-picker.module.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/mintplayer-ng-bootstrap-color-picker.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest, debounceTime, map, take, Observable, switchMap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\nimport { HslColor } from '../../interfaces/hsl-color';\nimport { RgbColor } from '../../interfaces/rgb-color';\n\n@Component({\n selector: 'bs-color-wheel',\n templateUrl: './color-wheel.component.html',\n styleUrls: ['./color-wheel.component.scss']\n})\nexport class BsColorWheelComponent implements AfterViewInit {\n\n constructor(private element: ElementRef<HTMLElement>) {\n // this.resizeObserver = new ResizeObserver((entries) => {\n // for (const entry of entries) {\n // if (entry.target === this.element.nativeElement) {\n // console.log(entry.contentRect);\n // this.width$.next(entry.contentRect.width);\n // this.height$.next(entry.contentRect.height);\n // break;\n // }\n // }\n // });\n\n this.squareSize$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n }\n\n const squareSize = Math.min(width, height);\n return squareSize;\n }));\n\n this.shiftX$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return 0;\n } else {\n return (width - height) / 2;\n }\n }));\n\n this.shiftY$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return (height - width) / 2;\n } else {\n return 0;\n }\n }));\n\n this.innerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2 * diameterRatio;\n } else {\n return 0;\n }\n }));\n\n this.outerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2;\n } else {\n return 150;\n }\n }));\n \n combineLatest([this.innerRadius$, this.outerRadius$, this.shiftX$, this.shiftY$])\n .pipe(debounceTime(20), takeUntilDestroyed())\n .subscribe(([innerRadius, outerRadius, shiftX, shiftY]) => {\n if (this.canvasContext && (innerRadius !== null) && (outerRadius !== null) && (shiftX !== null) && (shiftY !== null)) {\n this.canvasContext.clearRect(0, 0, this.canvas.nativeElement.width, this.canvas.nativeElement.height);\n this.canvasContext.save();\n this.canvasContext.translate(shiftX + outerRadius, shiftY + outerRadius);\n\n for (let x = 0; x < 360; x++) {\n this.canvasContext.rotate(1 * Math.PI / 180);\n const gradient = this.canvasContext.createLinearGradient(innerRadius, 0, outerRadius, 0);\n\n gradient.addColorStop(0, `hsl(${x}, 0%, 50%)`);\n gradient.addColorStop(1, `hsl(${x}, 100%, 50%)`);\n\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(innerRadius, 0, outerRadius - innerRadius, outerRadius / 50);\n }\n\n this.canvasContext.restore();\n }\n });\n\n this.markerPosition$ = combineLatest([this.hs$, this.shiftX$, this.shiftY$])\n .pipe(switchMap(([hs, shiftX, shiftY]) => {\n return this.color2position(hs)\n .pipe(map((position) => ({position, shiftX: (shiftX ?? 0), shiftY: (shiftY ?? 0)})));\n }))\n .pipe(map(({position, shiftX, shiftY}) => {\n return {\n x: position.x + shiftX,\n y: position.y + shiftY,\n };\n }));\n\n this.hs$.pipe(takeUntilDestroyed())\n .subscribe((hs) => this.hsChange.emit(hs));\n }\n\n @HostBinding('class.position-relative') positionRelative = true;\n \n @Input() set diameterRatio(value: number) {\n this.diameterRatio$.next(value);\n }\n @Input() set width(value: number) {\n this.width$.next(value);\n }\n @Input() set height(value: number) {\n this.height$.next(value);\n }\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n \n //#region Hue/Luminosity\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n @Output() hsChange = new EventEmitter<HS>();\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n // private resizeObserver: ResizeObserver;\n private canvasContext: CanvasRenderingContext2D | null = null;\n private isPointerDown = false;\n width$ = new BehaviorSubject<number>(150);\n height$ = new BehaviorSubject<number>(150);\n diameterRatio$ = new BehaviorSubject<number>(0);\n\n squareSize$: Observable<number | null>;\n shiftX$: Observable<number | null>;\n shiftY$: Observable<number | null>;\n\n innerRadius$: Observable<number | null>;\n outerRadius$: Observable<number | null>;\n markerPosition$: Observable<{x: number, y: number}>;\n disabled$ = new BehaviorSubject<boolean>(false);\n \n viewInited$ = new BehaviorSubject<boolean>(false);\n\n ngAfterViewInit() {\n // this.resizeObserver.observe(this.element.nativeElement);\n this.viewInited$.next(true);\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n if (!this.disabled$.value) {\n ev.preventDefault();\n this.isPointerDown = true;\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove(ev);\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown = false;\n }\n\n private updateColor(ev: MouseEvent | TouchEvent, subtract: boolean) {\n let co: { x: number, y: number };\n const rect = this.canvas.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n y: ev.touches[0].clientY - rect.top,\n };\n } else {\n co = {\n x: ev.clientX - (subtract ? rect.left : 0),\n y: ev.clientY - (subtract ? rect.top : 0),\n };\n }\n \n this.position2color(co.x, co.y).pipe(take(1)).subscribe((color) => {\n if (color) {\n this.hs$.next({ hue: color.hue, saturation: color.saturation });\n } else {\n console.warn('Color is null');\n }\n });\n }\n\n private isInsideCircle(x: number, y: number) {\n return combineLatest([this.squareSize$, this.shiftX$, this.shiftY$])\n .pipe(map(([squareSize, shiftX, shiftY]) => {\n // Position to the square\n const sx: number = x - (shiftX ?? 0);\n const sy = y - (shiftY ?? 0);\n // Square radius\n const sr = (squareSize ?? 0) / 2;\n\n const radius = Math.sqrt(Math.pow(sx - sr, 2) + Math.pow(sy - sr, 2));\n const angle = (Math.atan2(sr - sy, sr - sx) + Math.PI) % 360;\n return {\n inside: radius <= sr,\n angle\n };\n }));\n }\n\n private position2color(x: number, y: number) {\n return this.isInsideCircle(x, y).pipe(map((result) => {\n if (!this.canvasContext) {\n return null;\n }\n\n if (result.inside) {\n const imageData = this.canvasContext.getImageData(x, y, 1, 1).data;\n const hsl = this.rgb2Hsl({ r: imageData[0], g: imageData[1], b: imageData[2] });\n return hsl;\n }\n\n return <HslColor>{ hue: result.angle * 180 / Math.PI, saturation: 1, luminosity: 0.5 };\n }));\n }\n\n private color2position(hs: HS) {\n return combineLatest([this.innerRadius$, this.outerRadius$])\n .pipe(map(([innerRadius, outerRadius]) => {\n if (innerRadius === null) {\n innerRadius = 0;\n }\n if (!outerRadius) {\n outerRadius = 100;\n }\n\n const theta = hs.hue * Math.PI / 180;\n const c = {\n x: -outerRadius * Math.cos(theta),\n y: -outerRadius * Math.sin(theta)\n };\n \n const d = hs.saturation * (outerRadius - innerRadius) + innerRadius;\n const o = { x: outerRadius, y: outerRadius };\n \n return {\n x: o.x - d * (c.x / outerRadius),\n y: o.y - d * (c.y / outerRadius),\n }\n }));\n }\n \n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number; const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = (l > 0.5) ? (d / (2 - max - min)) : (d / (max + min));\n switch (max) {\n case r01: {\n h = (g01 - b01) / d + ((g01 < b01) ? 6 : 0);\n } break;\n case g01: {\n h = (b01 - r01) / d + 2;\n } break;\n case b01: {\n h = (r01 - g01) / d + 4;\n } break;\n default: {\n throw 'Invalid operation';\n }\n }\n \n h /= 6;\n }\n \n h *= 360;\n\n return <HslColor>{ hue: h, saturation: s, luminosity: l };\n }\n\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n\n}\n","<canvas\n class=\"d-block\"\n [width]=\"width$ | async\"\n [height]=\"height$ | async\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n #canvas></canvas>\n\n<ng-container *ngIf=\"(markerPosition$ | async) as markerPosition\">\n <div class=\"thumb position-absolute pe-none\" [style.left.px]=\"markerPosition.x\" [style.top.px]=\"markerPosition.y\"></div>\n</ng-container>","import { Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, NgZone } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'bs-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss']\n})\nexport class BsSliderComponent {\n constructor(private element: ElementRef<HTMLElement>, private zone: NgZone) {\n this.value$.pipe(takeUntilDestroyed())\n .subscribe((value) => this.valueChange.emit(value));\n\n this.thumbMarginLeft$ = this.value$.pipe(map((value) => {\n const res = value * element.nativeElement.clientWidth - 12;\n return res;\n }));\n\n this.cursorClass$ = this.isPointerDown$.pipe(map((isPointerDown) => {\n return isPointerDown ? 'cursor-grabbing' : 'cursor-grab';\n }));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n thumbMarginLeft$: Observable<number>;\n @ViewChild('track') track!: ElementRef<HTMLDivElement>;\n @ViewChild('thumb') thumb!: ElementRef<HTMLDivElement>;\n\n //#region Value\n value$ = new BehaviorSubject<number>(0.5);\n @Output() valueChange = new EventEmitter<number>();\n public get value() {\n return this.value$.value;\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n }\n //#endregion\n\n private isPointerDown$ = new BehaviorSubject<boolean>(false);\n cursorClass$: Observable<string>;\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n ev.preventDefault();\n this.zone.run(() => this.isPointerDown$.next(true));\n this.updateColor(ev);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown$.value) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown$.next(false);\n }\n\n private updateColor(ev: MouseEvent | TouchEvent) {\n let co: { x: number };\n const rect = this.track.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n };\n } else {\n co = {\n x: ev.clientX - rect.left,\n };\n }\n \n const percent = co.x / this.track.nativeElement.clientWidth;\n const limited = Math.max(0, Math.min(1, percent));\n this.value$.next(limited);\n }\n}\n\n@Directive({ selector: '[bsThumb]' })\nexport class BsThumbDirective {\n @HostBinding('class.thumb')\n @HostBinding('class.position-absolute')\n thumbClass = true;\n}\n\n@Directive({ selector: '[bsTrack]' })\nexport class BsTrackDirective {\n @HostBinding('class.track') trackClass = true;\n}","<div class=\"wrapper d-block position-relative\">\n <div #track class=\"track2\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\">\n <ng-content select=\"[bsTrack]\"></ng-content>\n </div>\n <div #thumb\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n [class]=\"cursorClass$ | async\"\n [style.margin-left.px]=\"thumbMarginLeft$ | async\">\n <ng-content select=\"[bsThumb]\"></ng-content>\n </div>\n</div>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\n\n@Component({\n selector: 'bs-luminosity-strip',\n templateUrl: './luminosity-strip.component.html',\n styleUrls: ['./luminosity-strip.component.scss']\n})\nexport class BsLuminosityStripComponent implements AfterViewInit {\n constructor() {\n this.hs$.pipe(takeUntilDestroyed()).subscribe((hs) => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n\n // HSL\n // - H: 0 - 359\n // - S: \"0%\" - \"100%\"\n // - L: \"0%\" - \"50%\" - \"100%\"\n\n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsl(${hs.hue}, ${hs.saturation * 100}%, 0%)`);\n gradient.addColorStop(0.5, `hsl(${hs.hue}, ${hs.saturation * 100}%, 50%)`);\n gradient.addColorStop(1, `hsl(${hs.hue}, ${hs.saturation * 100}%, 100%)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n \n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$])\n .pipe(map(([hs, luminosity]) => {\n return `hsl(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%)`;\n }));\n \n this.luminosity$.pipe(takeUntilDestroyed())\n .subscribe(luminosity => this.luminosityChange.emit(luminosity));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n @Output() luminosityChange = new EventEmitter<number>();\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(luminosity$ | async)!\" (valueChange)=\"luminosityChange.emit($event)\">\n <canvas bsTrack class=\"position-absolute w-100\" #canvas></canvas>\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { HS } from '../../interfaces/hs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-alpha-strip',\n templateUrl: './alpha-strip.component.html',\n styleUrls: ['./alpha-strip.component.scss']\n})\nexport class BsAlphaStripComponent implements AfterViewInit {\n\n constructor() {\n combineLatest([this.hs$, this.luminosity$]).pipe(takeUntilDestroyed()).subscribe(([hs, luminosity]) => {\n setTimeout(() => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n \n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 0)`);\n gradient.addColorStop(1, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 1)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n });\n\n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$, this.alpha$])\n .pipe(map(([hs, luminosity, alpha]) => {\n return `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, ${alpha})`;\n }));\n\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n public get alpha() {\n return this.alpha$.value;\n }\n @Input() public set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n \n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('track') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(alpha$ | async)!\" (valueChange)=\"alphaChange.emit($event)\">\n <canvas bsTrack class=\" track position-absolute w-100\" #track></canvas>\n\n <!-- [style.background]=\"resultBackground$ | async\" -->\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, Input, ViewChild, EventEmitter, Output } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { HS } from \"../../interfaces/hs\";\nimport { BsColorWheelComponent } from \"../color-wheel/color-wheel.component\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'bs-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss']\n})\nexport class BsColorPickerComponent {\n\n constructor() {\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n @ViewChild('wheel') colorWheel!: BsColorWheelComponent;\n @Input() set width(value: number) {\n this.width$.next(value);\n }\n @Input() set height(value: number) {\n this.height$.next(value);\n }\n @Input() set allowAlpha(value: boolean) {\n this.allowAlpha$.next(value);\n }\n \n width$ = new BehaviorSubject<number>(150);\n height$ = new BehaviorSubject<number>(150);\n disabled$ = new BehaviorSubject<boolean>(false);\n allowAlpha$ = new BehaviorSubject<boolean>(true);\n\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n luminosity$ = new BehaviorSubject<number>(0);\n\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n get alpha() {\n return this.alpha$.value;\n }\n @Input() set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n}\n","<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>","import { Directive, Inject, forwardRef, AfterViewInit, DestroyRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { combineLatest } from 'rxjs';\nimport { BsColorPickerComponent } from '../../components/color-picker/color-picker.component';\nimport { RgbColor } from '../../interfaces/rgb-color';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: 'bs-color-picker',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n // useExisting: BsColorPickerValueAccessor,\n useExisting: forwardRef(() => BsColorPickerValueAccessor),\n multi: true\n }],\n exportAs: 'bsColorPicker'\n})\nexport class BsColorPickerValueAccessor implements AfterViewInit, ControlValueAccessor {\n\n constructor(@Inject(forwardRef(() => BsColorPickerComponent)) private host: BsColorPickerComponent, private destroy: DestroyRef) {\n }\n\n ngAfterViewInit() {\n combineLatest([this.host.hs$, this.host.luminosity$])\n .pipe(takeUntilDestroyed(this.destroy))\n .subscribe(([hs, luminosity]) => {\n const rgb = this.hsl2rgb(hs.hue, hs.saturation, luminosity);\n const hex = this.rgb2hex(rgb);\n setTimeout(() => this.onValueChange && this.onValueChange(hex), 10);\n })\n }\n\n public hsl2rgb(h: number, s: number, l: number) {\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n const retValue = <RgbColor>{ r: 255 * f(0), g: 255 * f(8), b: 255 * f(4) };\n return retValue;\n }\n\n onValueChange?: (value: string) => void;\n onTouched?: () => void;\n\n //#region ControlValueAccessor implementation\n registerOnChange(fn: (_: any) => void) {\n this.onValueChange = fn;\n }\n \n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n writeValue(value: string | null) {\n if (this.host && this.host.colorWheel) {\n if (value) {\n const rgb = this.hex2rgb(value);\n const hsl = this.rgb2Hsl(rgb);\n this.host.hs$.next({ hue: hsl.h, saturation: hsl.s });\n this.host.luminosity$.next(hsl.l);\n }\n }\n }\n\n setDisabledState(isDisabled: boolean) {\n if (this.host && this.host.colorWheel) {\n this.host.colorWheel.disabled$.next(isDisabled);\n }\n }\n //#endregion\n\n //#region Color Conversion\n private rgb2hex(rgb: RgbColor) {\n return '#' + (Math.round((rgb.r << 16) + (rgb.g << 8) + rgb.b)).toString(16).padStart(6, '0');\n }\n\n private hex2rgb(hex: string): RgbColor {\n const r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n return { r, g, b };\n }\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number;\n const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r01:\n h = (g01 - b01) / d + (g01 < b01 ? 6 : 0);\n break;\n case g01:\n h = (b01 - r01) / d + 2;\n break;\n case b01:\n h = (r01 - g01) / d + 4;\n break;\n default: {\n throw 'Invalid operation';\n }\n }\n\n h /= 6;\n }\n\n h *= 360;\n\n return { h, s, l };\n }\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsColorPickerValueAccessor } from './directives/color-picker-value-accessor/color-picker-value-accessor.directive';\nimport { BsColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { BsColorWheelComponent } from './components/color-wheel/color-wheel.component';\nimport { BsLuminosityStripComponent } from './components/luminosity-strip/luminosity-strip.component';\nimport { BsSliderComponent, BsThumbDirective, BsTrackDirective } from './components/slider/slider.component';\nimport { BsAlphaStripComponent } from './components/alpha-strip/alpha-strip.component';\n\n@NgModule({\n declarations: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsLetModule\n ],\n exports: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ]\n})\nexport class BsColorPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSliderComponent","i1.BsThumbDirective","i1.BsTrackDirective","i2","i3.BsColorWheelComponent","i4.BsLuminosityStripComponent","i5.BsAlphaStripComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-color-picker.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/color-picker.module.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/mintplayer-ng-bootstrap-color-picker.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest, debounceTime, map, take, Observable, switchMap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\nimport { HslColor } from '../../interfaces/hsl-color';\nimport { RgbColor } from '../../interfaces/rgb-color';\n\n@Component({\n selector: 'bs-color-wheel',\n templateUrl: './color-wheel.component.html',\n styleUrls: ['./color-wheel.component.scss']\n})\nexport class BsColorWheelComponent implements AfterViewInit {\n\n constructor(private element: ElementRef<HTMLElement>) {\n // this.resizeObserver = new ResizeObserver((entries) => {\n // for (const entry of entries) {\n // if (entry.target === this.element.nativeElement) {\n // console.log(entry.contentRect);\n // this.width$.next(entry.contentRect.width);\n // this.height$.next(entry.contentRect.height);\n // break;\n // }\n // }\n // });\n\n this.squareSize$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n }\n\n const squareSize = Math.min(width, height);\n return squareSize;\n }));\n\n this.shiftX$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return 0;\n } else {\n return (width - height) / 2;\n }\n }));\n\n this.shiftY$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return (height - width) / 2;\n } else {\n return 0;\n }\n }));\n\n this.innerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2 * diameterRatio;\n } else {\n return 0;\n }\n }));\n\n this.outerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2;\n } else {\n return 150;\n }\n }));\n \n combineLatest([this.innerRadius$, this.outerRadius$, this.shiftX$, this.shiftY$])\n .pipe(debounceTime(20), takeUntilDestroyed())\n .subscribe(([innerRadius, outerRadius, shiftX, shiftY]) => {\n if (this.canvasContext && (innerRadius !== null) && (outerRadius !== null) && (shiftX !== null) && (shiftY !== null)) {\n this.canvasContext.clearRect(0, 0, this.canvas.nativeElement.width, this.canvas.nativeElement.height);\n this.canvasContext.save();\n this.canvasContext.translate(shiftX + outerRadius, shiftY + outerRadius);\n\n for (let x = 0; x < 360; x++) {\n this.canvasContext.rotate(1 * Math.PI / 180);\n const gradient = this.canvasContext.createLinearGradient(innerRadius, 0, outerRadius, 0);\n\n gradient.addColorStop(0, `hsl(${x}, 0%, 50%)`);\n gradient.addColorStop(1, `hsl(${x}, 100%, 50%)`);\n\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(innerRadius, 0, outerRadius - innerRadius, outerRadius / 50);\n }\n\n this.canvasContext.restore();\n }\n });\n\n this.markerPosition$ = combineLatest([this.hs$, this.shiftX$, this.shiftY$])\n .pipe(switchMap(([hs, shiftX, shiftY]) => {\n return this.color2position(hs)\n .pipe(map((position) => ({position, shiftX: (shiftX ?? 0), shiftY: (shiftY ?? 0)})));\n }))\n .pipe(map(({position, shiftX, shiftY}) => {\n return {\n x: position.x + shiftX,\n y: position.y + shiftY,\n };\n }));\n\n this.hs$.pipe(takeUntilDestroyed())\n .subscribe((hs) => this.hsChange.emit(hs));\n }\n\n @HostBinding('class.position-relative') positionRelative = true;\n \n @Input() set diameterRatio(value: number) {\n this.diameterRatio$.next(value);\n }\n @Input() set width(value: number) {\n this.width$.next(value);\n }\n @Input() set height(value: number) {\n this.height$.next(value);\n }\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n \n //#region Hue/Luminosity\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n @Output() hsChange = new EventEmitter<HS>();\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n // private resizeObserver: ResizeObserver;\n private canvasContext: CanvasRenderingContext2D | null = null;\n private isPointerDown = false;\n width$ = new BehaviorSubject<number>(150);\n height$ = new BehaviorSubject<number>(150);\n diameterRatio$ = new BehaviorSubject<number>(0);\n\n squareSize$: Observable<number | null>;\n shiftX$: Observable<number | null>;\n shiftY$: Observable<number | null>;\n\n innerRadius$: Observable<number | null>;\n outerRadius$: Observable<number | null>;\n markerPosition$: Observable<{x: number, y: number}>;\n disabled$ = new BehaviorSubject<boolean>(false);\n \n viewInited$ = new BehaviorSubject<boolean>(false);\n\n ngAfterViewInit() {\n // this.resizeObserver.observe(this.element.nativeElement);\n this.viewInited$.next(true);\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n if (!this.disabled$.value) {\n ev.preventDefault();\n this.isPointerDown = true;\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove(ev);\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown = false;\n }\n\n private updateColor(ev: MouseEvent | TouchEvent, subtract: boolean) {\n let co: { x: number, y: number };\n const rect = this.canvas.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n y: ev.touches[0].clientY - rect.top,\n };\n } else {\n co = {\n x: ev.clientX - (subtract ? rect.left : 0),\n y: ev.clientY - (subtract ? rect.top : 0),\n };\n }\n \n this.position2color(co.x, co.y).pipe(take(1)).subscribe((color) => {\n if (color) {\n this.hs$.next({ hue: color.hue, saturation: color.saturation });\n } else {\n console.warn('Color is null');\n }\n });\n }\n\n private isInsideCircle(x: number, y: number) {\n return combineLatest([this.squareSize$, this.shiftX$, this.shiftY$])\n .pipe(map(([squareSize, shiftX, shiftY]) => {\n // Position to the square\n const sx: number = x - (shiftX ?? 0);\n const sy = y - (shiftY ?? 0);\n // Square radius\n const sr = (squareSize ?? 0) / 2;\n\n const radius = Math.sqrt(Math.pow(sx - sr, 2) + Math.pow(sy - sr, 2));\n const angle = (Math.atan2(sr - sy, sr - sx) + Math.PI) % 360;\n return {\n inside: radius <= sr,\n angle\n };\n }));\n }\n\n private position2color(x: number, y: number) {\n return this.isInsideCircle(x, y).pipe(map((result) => {\n if (!this.canvasContext) {\n return null;\n }\n\n if (result.inside) {\n const imageData = this.canvasContext.getImageData(x, y, 1, 1).data;\n const hsl = this.rgb2Hsl({ r: imageData[0], g: imageData[1], b: imageData[2] });\n return hsl;\n }\n\n return <HslColor>{ hue: result.angle * 180 / Math.PI, saturation: 1, luminosity: 0.5 };\n }));\n }\n\n private color2position(hs: HS) {\n return combineLatest([this.innerRadius$, this.outerRadius$])\n .pipe(map(([innerRadius, outerRadius]) => {\n if (innerRadius === null) {\n innerRadius = 0;\n }\n if (!outerRadius) {\n outerRadius = 100;\n }\n\n const theta = hs.hue * Math.PI / 180;\n const c = {\n x: -outerRadius * Math.cos(theta),\n y: -outerRadius * Math.sin(theta)\n };\n \n const d = hs.saturation * (outerRadius - innerRadius) + innerRadius;\n const o = { x: outerRadius, y: outerRadius };\n \n return {\n x: o.x - d * (c.x / outerRadius),\n y: o.y - d * (c.y / outerRadius),\n }\n }));\n }\n \n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number; const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = (l > 0.5) ? (d / (2 - max - min)) : (d / (max + min));\n switch (max) {\n case r01: {\n h = (g01 - b01) / d + ((g01 < b01) ? 6 : 0);\n } break;\n case g01: {\n h = (b01 - r01) / d + 2;\n } break;\n case b01: {\n h = (r01 - g01) / d + 4;\n } break;\n default: {\n throw 'Invalid operation';\n }\n }\n \n h /= 6;\n }\n \n h *= 360;\n\n return <HslColor>{ hue: h, saturation: s, luminosity: l };\n }\n\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n\n}\n","<canvas\n class=\"d-block\"\n [width]=\"width$ | async\"\n [height]=\"height$ | async\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n #canvas></canvas>\n\n<ng-container *ngIf=\"(markerPosition$ | async) as markerPosition\">\n <div class=\"thumb position-absolute pe-none\" [style.left.px]=\"markerPosition.x\" [style.top.px]=\"markerPosition.y\"></div>\n</ng-container>","import { Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, NgZone } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'bs-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss']\n})\nexport class BsSliderComponent {\n constructor(private element: ElementRef<HTMLElement>, private zone: NgZone) {\n this.value$.pipe(takeUntilDestroyed())\n .subscribe((value) => this.valueChange.emit(value));\n\n this.thumbMarginLeft$ = this.value$.pipe(map((value) => {\n const res = value * element.nativeElement.clientWidth - 12;\n return res;\n }));\n\n this.cursorClass$ = this.isPointerDown$.pipe(map((isPointerDown) => {\n return isPointerDown ? 'cursor-grabbing' : 'cursor-grab';\n }));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n thumbMarginLeft$: Observable<number>;\n @ViewChild('track') track!: ElementRef<HTMLDivElement>;\n @ViewChild('thumb') thumb!: ElementRef<HTMLDivElement>;\n\n //#region Value\n value$ = new BehaviorSubject<number>(0.5);\n @Output() valueChange = new EventEmitter<number>();\n public get value() {\n return this.value$.value;\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n }\n //#endregion\n\n private isPointerDown$ = new BehaviorSubject<boolean>(false);\n cursorClass$: Observable<string>;\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n ev.preventDefault();\n this.zone.run(() => this.isPointerDown$.next(true));\n this.updateColor(ev);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown$.value) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown$.next(false);\n }\n\n private updateColor(ev: MouseEvent | TouchEvent) {\n let co: { x: number };\n const rect = this.track.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n };\n } else {\n co = {\n x: ev.clientX - rect.left,\n };\n }\n \n const percent = co.x / this.track.nativeElement.clientWidth;\n const limited = Math.max(0, Math.min(1, percent));\n this.value$.next(limited);\n }\n}\n\n@Directive({ selector: '[bsThumb]' })\nexport class BsThumbDirective {\n @HostBinding('class.thumb')\n @HostBinding('class.position-absolute')\n thumbClass = true;\n}\n\n@Directive({ selector: '[bsTrack]' })\nexport class BsTrackDirective {\n @HostBinding('class.track') trackClass = true;\n}","<div class=\"wrapper d-block position-relative\">\n <div #track class=\"track2\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\">\n <ng-content select=\"[bsTrack]\"></ng-content>\n </div>\n <div #thumb\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n [class]=\"cursorClass$ | async\"\n [style.margin-left.px]=\"thumbMarginLeft$ | async\">\n <ng-content select=\"[bsThumb]\"></ng-content>\n </div>\n</div>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\n\n@Component({\n selector: 'bs-luminosity-strip',\n templateUrl: './luminosity-strip.component.html',\n styleUrls: ['./luminosity-strip.component.scss']\n})\nexport class BsLuminosityStripComponent implements AfterViewInit {\n constructor() {\n this.hs$.pipe(takeUntilDestroyed()).subscribe((hs) => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n\n // HSL\n // - H: 0 - 359\n // - S: \"0%\" - \"100%\"\n // - L: \"0%\" - \"50%\" - \"100%\"\n\n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsl(${hs.hue}, ${hs.saturation * 100}%, 0%)`);\n gradient.addColorStop(0.5, `hsl(${hs.hue}, ${hs.saturation * 100}%, 50%)`);\n gradient.addColorStop(1, `hsl(${hs.hue}, ${hs.saturation * 100}%, 100%)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n \n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$])\n .pipe(map(([hs, luminosity]) => {\n return `hsl(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%)`;\n }));\n \n this.luminosity$.pipe(takeUntilDestroyed())\n .subscribe(luminosity => this.luminosityChange.emit(luminosity));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n @Output() luminosityChange = new EventEmitter<number>();\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(luminosity$ | async)!\" (valueChange)=\"luminosityChange.emit($event)\">\n <canvas bsTrack class=\"position-absolute w-100\" #canvas></canvas>\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { HS } from '../../interfaces/hs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-alpha-strip',\n templateUrl: './alpha-strip.component.html',\n styleUrls: ['./alpha-strip.component.scss']\n})\nexport class BsAlphaStripComponent implements AfterViewInit {\n\n constructor() {\n combineLatest([this.hs$, this.luminosity$]).pipe(takeUntilDestroyed()).subscribe(([hs, luminosity]) => {\n setTimeout(() => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n \n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 0)`);\n gradient.addColorStop(1, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 1)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n });\n\n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$, this.alpha$])\n .pipe(map(([hs, luminosity, alpha]) => {\n return `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, ${alpha})`;\n }));\n\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n public get alpha() {\n return this.alpha$.value;\n }\n @Input() public set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n \n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('track') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(alpha$ | async)!\" (valueChange)=\"alphaChange.emit($event)\">\n <canvas bsTrack class=\" track position-absolute w-100\" #track></canvas>\n\n <!-- [style.background]=\"resultBackground$ | async\" -->\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, Input, ViewChild, EventEmitter, Output } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { HS } from \"../../interfaces/hs\";\nimport { BsColorWheelComponent } from \"../color-wheel/color-wheel.component\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'bs-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss']\n})\nexport class BsColorPickerComponent {\n\n constructor() {\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n @ViewChild('wheel') colorWheel!: BsColorWheelComponent;\n @Input() set size(value: number) {\n this.size$.next(value);\n }\n @Input() set allowAlpha(value: boolean) {\n this.allowAlpha$.next(value);\n }\n \n size$ = new BehaviorSubject<number>(150);\n disabled$ = new BehaviorSubject<boolean>(false);\n allowAlpha$ = new BehaviorSubject<boolean>(true);\n\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n luminosity$ = new BehaviorSubject<number>(0);\n\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n get alpha() {\n return this.alpha$.value;\n }\n @Input() set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n}\n","<ng-container *bsLet=\"(disabled$ | async)!; let letDisabled\">\n <ng-container *bsLet=\"(hs$ | async)!; let letHS\">\n <ng-container *bsLet=\"(luminosity$ | async)!; let letLuminosity\">\n <ng-container *bsLet=\"(alpha$ | async)!; let letAlpha\">\n <bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n <bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n <bs-alpha-strip *ngIf=\"allowAlpha$ | async\" [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>","import { Directive, Inject, forwardRef, AfterViewInit, DestroyRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { combineLatest } from 'rxjs';\nimport { BsColorPickerComponent } from '../../components/color-picker/color-picker.component';\nimport { RgbColor } from '../../interfaces/rgb-color';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: 'bs-color-picker',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n // useExisting: BsColorPickerValueAccessor,\n useExisting: forwardRef(() => BsColorPickerValueAccessor),\n multi: true\n }],\n exportAs: 'bsColorPicker'\n})\nexport class BsColorPickerValueAccessor implements AfterViewInit, ControlValueAccessor {\n\n constructor(@Inject(forwardRef(() => BsColorPickerComponent)) private host: BsColorPickerComponent, private destroy: DestroyRef) {\n }\n\n ngAfterViewInit() {\n combineLatest([this.host.hs$, this.host.luminosity$])\n .pipe(takeUntilDestroyed(this.destroy))\n .subscribe(([hs, luminosity]) => {\n const rgb = this.hsl2rgb(hs.hue, hs.saturation, luminosity);\n const hex = this.rgb2hex(rgb);\n setTimeout(() => this.onValueChange && this.onValueChange(hex), 10);\n })\n }\n\n public hsl2rgb(h: number, s: number, l: number) {\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n const retValue = <RgbColor>{ r: 255 * f(0), g: 255 * f(8), b: 255 * f(4) };\n return retValue;\n }\n\n onValueChange?: (value: string) => void;\n onTouched?: () => void;\n\n //#region ControlValueAccessor implementation\n registerOnChange(fn: (_: any) => void) {\n this.onValueChange = fn;\n }\n \n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n writeValue(value: string | null) {\n if (this.host && this.host.colorWheel) {\n if (value) {\n const rgb = this.hex2rgb(value);\n const hsl = this.rgb2Hsl(rgb);\n this.host.hs$.next({ hue: hsl.h, saturation: hsl.s });\n this.host.luminosity$.next(hsl.l);\n }\n }\n }\n\n setDisabledState(isDisabled: boolean) {\n if (this.host && this.host.colorWheel) {\n this.host.colorWheel.disabled$.next(isDisabled);\n }\n }\n //#endregion\n\n //#region Color Conversion\n private rgb2hex(rgb: RgbColor) {\n return '#' + (Math.round((rgb.r << 16) + (rgb.g << 8) + rgb.b)).toString(16).padStart(6, '0');\n }\n\n private hex2rgb(hex: string): RgbColor {\n const r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n return { r, g, b };\n }\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number;\n const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r01:\n h = (g01 - b01) / d + (g01 < b01 ? 6 : 0);\n break;\n case g01:\n h = (b01 - r01) / d + 2;\n break;\n case b01:\n h = (r01 - g01) / d + 4;\n break;\n default: {\n throw 'Invalid operation';\n }\n }\n\n h /= 6;\n }\n\n h *= 360;\n\n return { h, s, l };\n }\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsColorPickerValueAccessor } from './directives/color-picker-value-accessor/color-picker-value-accessor.directive';\nimport { BsColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { BsColorWheelComponent } from './components/color-wheel/color-wheel.component';\nimport { BsLuminosityStripComponent } from './components/luminosity-strip/luminosity-strip.component';\nimport { BsSliderComponent, BsThumbDirective, BsTrackDirective } from './components/slider/slider.component';\nimport { BsAlphaStripComponent } from './components/alpha-strip/alpha-strip.component';\n\n@NgModule({\n declarations: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsLetModule\n ],\n exports: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ]\n})\nexport class BsColorPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSliderComponent","i1.BsThumbDirective","i1.BsTrackDirective","i2","i3.BsColorWheelComponent","i4.BsLuminosityStripComponent","i5.BsAlphaStripComponent"],"mappings":";;;;;;;;;;MAYa,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAoB,OAAgC,EAAA;;;;;;;;;;;QAAhC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAqGZ,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;AAchE,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,eAAe,CAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAM,CAAC;;;AAS5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;;;QAUrC,IAAa,CAAA,aAAA,GAAoC,IAAI,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;AAShD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAEhD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AA1IhD,QAAA,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;YAC5B,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,MAAM,KAAK,IAAI,CAAC,EAAE;AACzC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,YAAA,OAAO,UAAU,CAAC;SACnB,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACtD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;YAC5B,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,MAAM,KAAK,IAAI,CAAC,EAAE;AACzC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;iBAAM,IAAI,KAAK,GAAG,MAAM,EAAE;AACzB,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,CAAC;AAC7B,aAAA;SACF,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACtD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;YAC5B,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,MAAM,KAAK,IAAI,CAAC,EAAE;AACzC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;iBAAM,IAAI,KAAK,GAAG,MAAM,EAAE;AACzB,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;SACF,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAI;AACxC,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,OAAO,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC;AACvC,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;SACF,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAI;AACxC,YAAA,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,GAAG,CAAC,CAAC;AACvB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;SACF,CAAC,CAAC,CAAC;AAEN,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC9E,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;AAC5C,aAAA,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,KAAI;YACxD,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,KAAK,IAAI,CAAC,KAAK,WAAW,KAAK,IAAI,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE;gBACpH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtG,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;gBAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC5B,oBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC7C,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAEzF,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAO,IAAA,EAAA,CAAC,CAAY,UAAA,CAAA,CAAC,CAAC;oBAC/C,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAO,IAAA,EAAA,CAAC,CAAc,YAAA,CAAA,CAAC,CAAC;AAEjD,oBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;AACxC,oBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;AAC1F,iBAAA;AAED,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC9B,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACzE,aAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAI;AACvC,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AAC3B,iBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAC,CAAC,CAAC;AACF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,KAAI;YACvC,OAAO;AACL,gBAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;AACtB,gBAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM;aACvB,CAAC;SACH,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9C;IAID,IAAa,aAAa,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;IACD,IAAa,MAAM,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;AAMD,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;KACvB;IACD,IAAoB,EAAE,CAAC,KAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;AAID,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;IACD,IAAoB,UAAU,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAqBD,eAAe,GAAA;;AAEb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/F;AAED,IAAA,aAAa,CAAC,EAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACzB,EAAE,CAAC,cAAc,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,aAAa,CAAC,EAA2B,EAAA;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,SAAA;KACF;AAGD,IAAA,WAAW,CAAC,EAAc,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;KACxB;AAGD,IAAA,WAAW,CAAC,EAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAEO,WAAW,CAAC,EAA2B,EAAE,QAAiB,EAAA;AAChE,QAAA,IAAI,EAA4B,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC/D,IAAI,SAAS,IAAI,EAAE,EAAE;AACnB,YAAA,EAAE,GAAG;AACH,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;AACpC,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG;aACpC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,EAAE,GAAG;AACH,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1C,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;aAC1C,CAAC;AACH,SAAA;QAED,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChE,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AACjE,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC/B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,cAAc,CAAC,CAAS,EAAE,CAAS,EAAA;AACzC,QAAA,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,KAAI;;YAEzC,MAAM,EAAE,GAAW,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC;;YAE7B,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;YAC7D,OAAO;gBACL,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,KAAK;aACN,CAAC;SACH,CAAC,CAAC,CAAC;KACP;IAEO,cAAc,CAAC,CAAS,EAAE,CAAS,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACnD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YAED,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;YAED,OAAiB,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;SACxF,CAAC,CAAC,CAAC;KACL;AAEO,IAAA,cAAc,CAAC,EAAM,EAAA;QAC3B,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACzD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,KAAI;YACvC,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,WAAW,GAAG,CAAC,CAAC;AACjB,aAAA;YACD,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,GAAG,CAAC;AACnB,aAAA;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AACrC,YAAA,MAAM,CAAC,GAAG;gBACR,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBACjC,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;aAClC,CAAC;AAEF,YAAA,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;YACpE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;YAE7C,OAAO;AACL,gBAAA,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAChC,gBAAA,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;aACjC,CAAA;SACF,CAAC,CAAC,CAAC;KACP;AAEO,IAAA,OAAO,CAAC,KAAe,EAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAS,EAAE,CAAS,CAAC;QAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QACpD,IAAI,GAAG,KAAK,GAAG,EAAE;AACb,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACb,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACpB,YAAA,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1D,YAAA,QAAQ,GAAG;AACP,gBAAA,KAAK,GAAG;AAAE,oBAAA;wBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,qBAAA;oBAAC,MAAM;AACR,gBAAA,KAAK,GAAG;AAAE,oBAAA;wBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,qBAAA;oBAAC,MAAM;AACR,gBAAA,KAAK,GAAG;AAAE,oBAAA;wBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,qBAAA;oBAAC,MAAM;AACR,gBAAA,SAAS;AACL,oBAAA,MAAM,mBAAmB,CAAC;AAC7B,iBAAA;AACJ,aAAA;YAED,CAAC,IAAI,CAAC,CAAC;AACV,SAAA;QAED,CAAC,IAAI,GAAG,CAAC;AAET,QAAA,OAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;KAC3D;AAED;;;AAGI;IACI,OAAO,CAAC,CAAS,EAAE,GAAW,EAAA;AAClC,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG;AAChC,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AAC1B,SAAA;KACJ;8GA9TU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,keCZlC,ggBAYe,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,ggBAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;iGA2Gc,gBAAgB,EAAA,CAAA;sBAAvD,WAAW;uBAAC,yBAAyB,CAAA;gBAEzB,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAGO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAGO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAGe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAIT,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAIa,EAAE,EAAA,CAAA;sBAArB,KAAK;gBASc,UAAU,EAAA,CAAA;sBAA7B,KAAK;gBA8CN,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAM9C,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MExLjC,iBAAiB,CAAA;IAC5B,WAAoB,CAAA,OAAgC,EAAU,IAAY,EAAA;QAAtD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAc5C,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACJ,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;AAMhE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;;AAS3C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AA9B3D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAEtD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;YACrD,MAAM,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3D,YAAA,OAAO,GAAG,CAAC;SACZ,CAAC,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,KAAI;YACjE,OAAO,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;SAC1D,CAAC,CAAC,CAAC;KACL;AAWD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1B;IACD,IAAoB,KAAK,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAMD,IAAA,aAAa,CAAC,EAA2B,EAAA;QACvC,EAAE,CAAC,cAAc,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACtB;AAGD,IAAA,aAAa,CAAC,EAA2B,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACtB,SAAA;KACF;AAGD,IAAA,WAAW,CAAC,EAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAEO,IAAA,WAAW,CAAC,EAA2B,EAAA;AAC7C,QAAA,IAAI,EAAiB,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC9D,IAAI,SAAS,IAAI,EAAE,EAAE;AACnB,YAAA,EAAE,GAAG;AACH,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;aACrC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,EAAE,GAAG;AACH,gBAAA,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;aAC1B,CAAC;AACH,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;AAC5D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3B;8GAvEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,8fCT9B,mtBAiBM,EAAA,MAAA,EAAA,CAAA,kNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDRO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,mtBAAA,EAAA,MAAA,EAAA,CAAA,kNAAA,CAAA,EAAA,CAAA;sHAmBS,MAAM,EAAA,CAAA;sBAAnC,WAAW;uBAAC,eAAe,CAAA;gBACY,gBAAgB,EAAA,CAAA;sBAAvD,WAAW;uBAAC,yBAAyB,CAAA;gBAElB,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACE,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBAIR,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAIa,KAAK,EAAA,CAAA;sBAAxB,KAAK;gBAeN,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAU9C,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;MAyBjC,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;QAIE,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AACnB,KAAA;8GAJY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;8BAIlC,UAAU,EAAA,CAAA;sBAFT,WAAW;uBAAC,aAAa,CAAA;;sBACzB,WAAW;uBAAC,yBAAyB,CAAA;;MAK3B,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;QAE8B,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAC/C,KAAA;8GAFY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;8BAEN,UAAU,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa,CAAA;;;MElFf,0BAA0B,CAAA;AACrC,IAAA,WAAA,GAAA;;AA+BA,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,eAAe,CAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;;;AASzD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;;QAShD,IAAa,CAAA,aAAA,GAAoC,IAAI,CAAC;AAjD5D,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI;YACnD,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACzF,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;;;;;AAO1B,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACzE,gBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAA,MAAA,CAAQ,CAAC,CAAC;AACxE,gBAAA,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAA,OAAA,CAAS,CAAC,CAAC;AAC3E,gBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAA,QAAA,CAAU,CAAC,CAAC;AAC1E,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;AACxC,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAI;AAC7B,YAAA,OAAO,CAAO,IAAA,EAAA,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAM,GAAA,EAAA,UAAU,GAAG,GAAG,IAAI,CAAC;SACxE,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACxC,aAAA,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;KACpE;AAID,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;KACvB;IACD,IAAoB,EAAE,CAAC,KAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;AAKD,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;IACD,IAAoB,UAAU,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAKD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/F;8GAvDU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,gQCVvC,iQAGY,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDOC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,iQAAA,EAAA,CAAA;0EAwCX,EAAE,EAAA,CAAA;sBAArB,KAAK;gBAMI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAIa,UAAU,EAAA,CAAA;sBAA7B,KAAK;gBAMe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;;;MEpDR,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA;;AA2BA,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,eAAe,CAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;;;AASzD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;;;AAS/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;;QAS3C,IAAa,CAAA,aAAA,GAAoC,IAAI,CAAC;QAtD5D,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAI;YACpG,UAAU,CAAC,MAAK;gBACd,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACzF,oBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAE1B,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACzE,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAQ,KAAA,EAAA,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAA,GAAA,EAAM,UAAU,GAAG,GAAG,CAAO,KAAA,CAAA,CAAC,CAAC;oBAC9F,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAQ,KAAA,EAAA,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAA,GAAA,EAAM,UAAU,GAAG,GAAG,CAAO,KAAA,CAAA,CAAC,CAAC;AAC9F,oBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;AACxC,oBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,KAAI;AACpC,YAAA,OAAO,QAAQ,EAAE,CAAC,GAAG,CAAA,EAAA,EAAK,EAAE,CAAC,UAAU,GAAG,GAAG,MAAM,UAAU,GAAG,GAAG,CAAM,GAAA,EAAA,KAAK,GAAG,CAAC;SACnF,CAAC,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACvD;AAID,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;KACvB;IACD,IAAoB,EAAE,CAAC,KAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;AAID,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;IACD,IAAoB,UAAU,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AAKD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1B;IACD,IAAoB,KAAK,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;IAKD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/F;8GA7DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gQCVlC,8TAKY,EAAA,MAAA,EAAA,CAAA,oTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDKC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,8TAAA,EAAA,MAAA,EAAA,CAAA,oTAAA,CAAA,EAAA,CAAA;0EAqCN,EAAE,EAAA,CAAA;sBAArB,KAAK;gBASc,UAAU,EAAA,CAAA;sBAA7B,KAAK;gBAMI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAIa,KAAK,EAAA,CAAA;sBAAxB,KAAK;gBAMc,MAAM,EAAA,CAAA;sBAAzB,SAAS;uBAAC,OAAO,CAAA;;;MEzDP,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA;AAaA,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAEjD,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,eAAe,CAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;;AAG7C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AArBjD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACvD;IAGD,IAAa,IAAI,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;IACD,IAAa,UAAU,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AAYD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1B;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;8GA9BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,yQCXnC,ghCAUe,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDCF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,ghCAAA,EAAA,CAAA;0EAWP,UAAU,EAAA,CAAA;sBAA7B,SAAS;uBAAC,OAAO,CAAA;gBACL,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAGO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAaI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAIM,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;MEtBK,0BAA0B,CAAA;IAErC,WAAsE,CAAA,IAA4B,EAAU,OAAmB,EAAA;QAAzD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAC9H;IAED,eAAe,GAAA;AACb,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACtC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAI;AAC9B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE,SAAC,CAAC,CAAA;KACL;AAEM,IAAA,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAC5C,QAAA,MAAM,CAAC,GAAG,CAAC,CAAS,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAC3C,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAS,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,QAAA,MAAM,QAAQ,GAAa,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,QAAA,OAAO,QAAQ,CAAC;KACjB;;AAMD,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAC,KAAoB,EAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACrC,YAAA,IAAI,KAAK,EAAE;gBACT,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,aAAA;AACF,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAClC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjD,SAAA;KACF;;;AAIO,IAAA,OAAO,CAAC,GAAa,EAAA;AAC3B,QAAA,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC/F;AAEO,IAAA,OAAO,CAAC,GAAW,EAAA;QACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACjC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EACjC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAExC,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACpB;AACD;;;AAGI;IACI,OAAO,CAAC,CAAS,EAAE,GAAW,EAAA;AACpC,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,EAAE;AAChC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACxB,SAAA;KACF;AACO,IAAA,OAAO,CAAC,KAAe,EAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAS,EAAE,CAAS,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACX,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;YACpB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpD,YAAA,QAAQ,GAAG;AACT,gBAAA,KAAK,GAAG;oBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,MAAM;AACR,gBAAA,KAAK,GAAG;oBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM;AACR,gBAAA,KAAK,GAAG;oBACN,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM;AACR,gBAAA,SAAS;AACP,oBAAA,MAAM,mBAAmB,CAAC;AAC3B,iBAAA;AACF,aAAA;YAED,CAAC,IAAI,CAAC,CAAC;AACR,SAAA;QAED,CAAC,IAAI,GAAG,CAAC;AAET,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACpB;AAlHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kBAEjB,UAAU,CAAC,MAAM,sBAAsB,CAAC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAFjD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,0CAR1B,CAAC;AACV,gBAAA,OAAO,EAAE,iBAAiB;;AAE1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,gBAAA,KAAK,EAAE,IAAI;aACZ,CAAC,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGS,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE,CAAC;AACV,4BAAA,OAAO,EAAE,iBAAiB;;AAE1B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC;AACzD,4BAAA,KAAK,EAAE,IAAI;yBACZ,CAAC;AACF,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;;0BAGc,MAAM;AAAC,oBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,sBAAsB,CAAC,CAAA;;;MCmBjD,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAzB5B,sBAAsB;YACtB,0BAA0B;YAC1B,qBAAqB;YACrB,0BAA0B;YAC1B,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;AAChB,YAAA,qBAAqB,aAGrB,YAAY;YACZ,WAAW;AACX,YAAA,WAAW,aAGX,sBAAsB;YACtB,0BAA0B;YAC1B,qBAAqB;YACrB,0BAA0B;YAC1B,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAf5B,YAAY;YACZ,WAAW;YACX,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAaF,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA3B/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,0BAA0B;wBAC1B,qBAAqB;wBACrB,0BAA0B;wBAC1B,iBAAiB;wBACjB,gBAAgB;wBAChB,gBAAgB;wBAChB,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,0BAA0B;wBAC1B,qBAAqB;wBACrB,0BAA0B;wBAC1B,iBAAiB;wBACjB,gBAAgB;wBAChB,gBAAgB;wBAChB,qBAAqB;AACtB,qBAAA;AACF,iBAAA,CAAA;;;ACrCD;;AAEG;;;;"}
|