@mintplayer/ng-bootstrap 16.15.3 → 16.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/color-picker/components/color-picker/color-picker.component.d.ts +3 -5
- package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +7 -13
- 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
|
@@ -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
|
}
|
|
@@ -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
|
|
@@ -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":"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"}
|