@mintplayer/ng-bootstrap 21.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +33 -46
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +12 -30
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +6 -18
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +31 -65
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +200 -132
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs +5 -7
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +14 -17
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +231 -347
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +43 -39
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +7 -35
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +46 -86
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +7 -6
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +32 -74
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs +6 -7
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +18 -18
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +20 -22
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -10
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -28
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +204 -265
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -21
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +43 -38
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +59 -120
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +11 -25
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -28
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +67 -103
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +34 -63
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +19 -47
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +35 -41
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +205 -779
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +34 -39
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +74 -100
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +37 -79
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +78 -45
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +16 -26
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +14 -40
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +8 -32
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +70 -76
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +11 -11
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +53 -99
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +7 -38
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +23 -49
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +33 -38
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +45 -98
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +12 -24
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +21 -43
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +29 -49
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
- package/package.json +5 -5
- package/types/mintplayer-ng-bootstrap-accordion.d.ts +11 -15
- package/types/mintplayer-ng-bootstrap-alert.d.ts +4 -9
- package/types/mintplayer-ng-bootstrap-badge.d.ts +5 -9
- package/types/mintplayer-ng-bootstrap-calendar.d.ts +14 -22
- package/types/mintplayer-ng-bootstrap-carousel.d.ts +41 -35
- package/types/mintplayer-ng-bootstrap-close.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +4 -5
- package/types/mintplayer-ng-bootstrap-color-picker.d.ts +70 -97
- package/types/mintplayer-ng-bootstrap-datatable.d.ts +11 -11
- package/types/mintplayer-ng-bootstrap-datepicker.d.ts +6 -13
- package/types/mintplayer-ng-bootstrap-dropdown.d.ts +14 -20
- package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -3
- package/types/mintplayer-ng-bootstrap-file-upload.d.ts +1 -1
- package/types/mintplayer-ng-bootstrap-grid.d.ts +14 -26
- package/types/mintplayer-ng-bootstrap-let.d.ts +0 -2
- package/types/mintplayer-ng-bootstrap-markdown.d.ts +1 -5
- package/types/mintplayer-ng-bootstrap-modal.d.ts +3 -6
- package/types/mintplayer-ng-bootstrap-multiselect.d.ts +6 -6
- package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +5 -11
- package/types/mintplayer-ng-bootstrap-navbar.d.ts +74 -80
- package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +2 -4
- package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +12 -14
- package/types/mintplayer-ng-bootstrap-ordinal-number.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-pagination.d.ts +17 -31
- package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -8
- package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +5 -11
- package/types/mintplayer-ng-bootstrap-popover.d.ts +15 -23
- package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +19 -22
- package/types/mintplayer-ng-bootstrap-range.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-rating.d.ts +8 -14
- package/types/mintplayer-ng-bootstrap-resizable.d.ts +7 -11
- package/types/mintplayer-ng-bootstrap-scheduler.d.ts +132 -220
- package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +14 -15
- package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -27
- package/types/mintplayer-ng-bootstrap-select.d.ts +13 -23
- package/types/mintplayer-ng-bootstrap-select2.d.ts +16 -14
- package/types/mintplayer-ng-bootstrap-shell.d.ts +6 -12
- package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +7 -12
- package/types/mintplayer-ng-bootstrap-spinner.d.ts +8 -16
- package/types/mintplayer-ng-bootstrap-splitter.d.ts +21 -27
- package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-tab-control.d.ts +29 -37
- package/types/mintplayer-ng-bootstrap-table.d.ts +6 -13
- package/types/mintplayer-ng-bootstrap-timepicker.d.ts +7 -14
- package/types/mintplayer-ng-bootstrap-toast.d.ts +5 -10
- package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +22 -36
- package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -7
- package/types/mintplayer-ng-bootstrap-treeview.d.ts +10 -15
- package/types/mintplayer-ng-bootstrap-trust-html.d.ts +0 -2
- package/types/mintplayer-ng-bootstrap-typeahead.d.ts +14 -17
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
2
|
+
import { model, input, HostListener, HostBinding, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
3
|
|
|
6
4
|
class BsSignaturePadComponent {
|
|
7
5
|
constructor() {
|
|
8
|
-
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
11
|
-
//#endregion
|
|
12
|
-
this.width = 500;
|
|
13
|
-
this.height = 300;
|
|
6
|
+
this.signature = model({ strokes: [] }, ...(ngDevMode ? [{ debugName: "signature" }] : []));
|
|
7
|
+
this.width = input(500, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
8
|
+
this.height = input(300, ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
14
9
|
this.classes = true;
|
|
15
10
|
this.isDrawing = false;
|
|
16
11
|
this.context = null;
|
|
17
12
|
this.minHeight = 5;
|
|
18
|
-
this.signature$.pipe(takeUntilDestroyed()).subscribe((signature) => {
|
|
19
|
-
this.signatureChange.emit(signature);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
get signature() {
|
|
23
|
-
return this.signature$.value;
|
|
24
|
-
}
|
|
25
|
-
set signature(value) {
|
|
26
|
-
this.signature$.next(value);
|
|
27
13
|
}
|
|
28
14
|
ngAfterViewInit() {
|
|
29
15
|
if (typeof window !== 'undefined') {
|
|
@@ -33,16 +19,18 @@ class BsSignaturePadComponent {
|
|
|
33
19
|
onTouchMove(ev) {
|
|
34
20
|
if (this.isDrawing) {
|
|
35
21
|
ev.preventDefault();
|
|
22
|
+
ev.stopPropagation();
|
|
36
23
|
}
|
|
37
24
|
}
|
|
38
25
|
onPointerStart(ev) {
|
|
39
26
|
ev.preventDefault();
|
|
40
27
|
this.isDrawing = true;
|
|
41
28
|
if (this.context) {
|
|
42
|
-
this.signature
|
|
29
|
+
const sig = this.signature();
|
|
30
|
+
sig.strokes.push({
|
|
43
31
|
points: [{ x: ev.offsetX, y: ev.offsetY }]
|
|
44
32
|
});
|
|
45
|
-
this.
|
|
33
|
+
this.signature.set({ ...sig });
|
|
46
34
|
this.context.fillStyle = 'black';
|
|
47
35
|
this.context.beginPath();
|
|
48
36
|
this.context.moveTo(ev.offsetX, ev.offsetY);
|
|
@@ -51,14 +39,9 @@ class BsSignaturePadComponent {
|
|
|
51
39
|
onPointerMove(ev) {
|
|
52
40
|
if (this.isDrawing && this.context) {
|
|
53
41
|
ev.preventDefault();
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// // this.context.arcTo(ev.offsetX, ev.offsetY,)
|
|
58
|
-
// this.context.closePath();
|
|
59
|
-
// this.context.fill();
|
|
60
|
-
this.signature.strokes.at(-1)?.points.push({ x: ev.offsetX, y: ev.offsetY });
|
|
61
|
-
this.signatureChange.emit(this.signature);
|
|
42
|
+
const sig = this.signature();
|
|
43
|
+
sig.strokes.at(-1)?.points.push({ x: ev.offsetX, y: ev.offsetY });
|
|
44
|
+
this.signature.set({ ...sig });
|
|
62
45
|
this.context.lineTo(ev.offsetX, ev.offsetY);
|
|
63
46
|
this.context.stroke();
|
|
64
47
|
}
|
|
@@ -67,24 +50,15 @@ class BsSignaturePadComponent {
|
|
|
67
50
|
if (this.isDrawing && this.context) {
|
|
68
51
|
ev.preventDefault();
|
|
69
52
|
this.isDrawing = false;
|
|
70
|
-
this.signatureChange.emit(this.signature);
|
|
71
53
|
}
|
|
72
54
|
}
|
|
73
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSignaturePadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsSignaturePadComponent, isStandalone: true, selector: "bs-signature-pad", inputs: { signature: { classPropertyName: "signature", publicName: "signature", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { signature: "signatureChange" }, host: { listeners: { "touchmove": "onTouchMove($event)", "pointerdown": "onPointerStart($event)", "pointermove": "onPointerMove($event)", "window:pointerup": "onPointerEnd($event)" }, properties: { "class.border": "this.classes", "class.d-inline-block": "this.classes", "style.min-height.rem": "this.minHeight" } }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
75
57
|
}
|
|
76
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSignaturePadComponent, decorators: [{
|
|
77
59
|
type: Component,
|
|
78
|
-
args: [{ selector: 'bs-signature-pad', standalone: true, template: "<canvas [width]=\"width\" [height]=\"height\" class=\"d-block\" #canvas></canvas>" }]
|
|
79
|
-
}],
|
|
80
|
-
type: Output
|
|
81
|
-
}], signature: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], width: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], height: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], classes: [{
|
|
60
|
+
args: [{ selector: 'bs-signature-pad', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>" }]
|
|
61
|
+
}], propDecorators: { signature: [{ type: i0.Input, args: [{ isSignal: true, alias: "signature", required: false }] }, { type: i0.Output, args: ["signatureChange"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], classes: [{
|
|
88
62
|
type: HostBinding,
|
|
89
63
|
args: ['class.border']
|
|
90
64
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-signature-pad.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.ts","../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.html","../../../../libs/mintplayer-ng-bootstrap/signature-pad/mintplayer-ng-bootstrap-signature-pad.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef,
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-signature-pad.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.ts","../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.html","../../../../libs/mintplayer-ng-bootstrap/signature-pad/mintplayer-ng-bootstrap-signature-pad.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, input, model, ViewChild } from '@angular/core';\nimport { Signature } from '../interfaces/signature';\n\n@Component({\n selector: 'bs-signature-pad',\n templateUrl: './signature-pad.component.html',\n styleUrls: ['./signature-pad.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSignaturePadComponent implements AfterViewInit {\n\n signature = model<Signature>({ strokes: [] });\n width = input(500);\n height = input(300);\n\n @HostBinding('class.border')\n @HostBinding('class.d-inline-block')\n classes = true;\n\n isDrawing = false;\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n context: CanvasRenderingContext2D | null = null;\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.context = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n @HostBinding('style.min-height.rem') minHeight = 5;\n @HostListener('touchmove', ['$event']) onTouchMove(ev: TouchEvent) {\n if (this.isDrawing) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n @HostListener('pointerdown', ['$event']) onPointerStart(ev: PointerEvent) {\n ev.preventDefault();\n this.isDrawing = true;\n if (this.context) {\n const sig = this.signature();\n sig.strokes.push({\n points: [{ x: ev.offsetX, y: ev.offsetY }]\n });\n this.signature.set({ ...sig });\n\n this.context.fillStyle = 'black';\n this.context.beginPath();\n this.context.moveTo(ev.offsetX, ev.offsetY);\n }\n }\n @HostListener('pointermove', ['$event']) onPointerMove(ev: PointerEvent) {\n if (this.isDrawing && this.context) {\n ev.preventDefault();\n\n const sig = this.signature();\n sig.strokes.at(-1)?.points.push({ x: ev.offsetX, y: ev.offsetY });\n this.signature.set({ ...sig });\n\n this.context.lineTo(ev.offsetX, ev.offsetY);\n this.context.stroke();\n }\n }\n @HostListener('window:pointerup', ['$event']) onPointerEnd(ev: PointerEvent) {\n if (this.isDrawing && this.context) {\n ev.preventDefault();\n this.isDrawing = false;\n }\n }\n}\n","<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +1,22 @@
|
|
|
1
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
3
|
import { Color } from '@mintplayer/ng-bootstrap';
|
|
5
|
-
import { BehaviorSubject, map } from 'rxjs';
|
|
6
4
|
|
|
7
5
|
class BsSpinnerComponent {
|
|
8
6
|
constructor() {
|
|
9
7
|
this.colors = Color;
|
|
10
|
-
|
|
11
|
-
this.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
this.color$ = new BehaviorSubject(Color.dark);
|
|
15
|
-
this.spinnerClass$ = this.type$
|
|
16
|
-
.pipe(map((type) => `spinner-${type}`));
|
|
17
|
-
this.colorClass$ = this.color$
|
|
18
|
-
.pipe(map((type) => `text-${this.colors[type]}`));
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() { }
|
|
21
|
-
get type() {
|
|
22
|
-
return this.type$.value;
|
|
23
|
-
}
|
|
24
|
-
set type(value) {
|
|
25
|
-
this.type$.next(value);
|
|
26
|
-
}
|
|
27
|
-
get color() {
|
|
28
|
-
return this.color$.value;
|
|
29
|
-
}
|
|
30
|
-
set color(value) {
|
|
31
|
-
this.color$.next(value);
|
|
8
|
+
this.type = input('border', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
9
|
+
this.color = input(Color.dark, ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
10
|
+
this.spinnerClass = computed(() => `spinner-${this.type()}`, ...(ngDevMode ? [{ debugName: "spinnerClass" }] : []));
|
|
11
|
+
this.colorClass = computed(() => `text-${this.colors[this.color()]}`, ...(ngDevMode ? [{ debugName: "colorClass" }] : []));
|
|
32
12
|
}
|
|
33
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsSpinnerComponent, isStandalone: true, selector: "bs-spinner", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n", styles: [":host ::ng-deep .spinner-grow,:host ::ng-deep .spinner-border{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}:host ::ng-deep .spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}:host ::ng-deep .spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}:host ::ng-deep .spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}:host ::ng-deep .spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion:reduce){:host ::ng-deep .spinner-border,:host ::ng-deep .spinner-grow{--bs-spinner-animation-speed: 1.5s}}:host ::ng-deep .spinner-border{animation:.75s linear infinite spinner-border}:host ::ng-deep .spinner-grow{animation:.75s linear infinite spinner-grow}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
15
|
}
|
|
36
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSpinnerComponent, decorators: [{
|
|
37
17
|
type: Component,
|
|
38
|
-
args: [{ selector: 'bs-spinner', standalone: true,
|
|
39
|
-
}],
|
|
40
|
-
type: Input
|
|
41
|
-
}], color: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}] } });
|
|
18
|
+
args: [{ selector: 'bs-spinner', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n", styles: [":host ::ng-deep .spinner-grow,:host ::ng-deep .spinner-border{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}:host ::ng-deep .spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}:host ::ng-deep .spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}:host ::ng-deep .spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}:host ::ng-deep .spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion:reduce){:host ::ng-deep .spinner-border,:host ::ng-deep .spinner-grow{--bs-spinner-animation-speed: 1.5s}}:host ::ng-deep .spinner-border{animation:.75s linear infinite spinner-border}:host ::ng-deep .spinner-grow{animation:.75s linear infinite spinner-grow}\n"] }]
|
|
19
|
+
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
44
20
|
|
|
45
21
|
/**
|
|
46
22
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-spinner.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.ts","../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.html","../../../../libs/mintplayer-ng-bootstrap/spinner/mintplayer-ng-bootstrap-spinner.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-spinner.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.ts","../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.html","../../../../libs/mintplayer-ng-bootstrap/spinner/mintplayer-ng-bootstrap-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSpinnerComponent {\n colors = Color;\n\n type = input<'border' | 'grow'>('border');\n color = input<Color>(Color.dark);\n\n spinnerClass = computed(() => `spinner-${this.type()}`);\n colorClass = computed(() => `text-${this.colors[this.color()]}`);\n}\n","<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAUa,kBAAkB,CAAA;AAP/B,IAAA,WAAA,GAAA;QAQE,IAAA,CAAA,MAAM,GAAG,KAAK;AAEd,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,QAAQ,gDAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAQ,KAAK,CAAC,IAAI,iDAAC;AAEhC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,wDAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA,CAAE,sDAAC;AACjE,IAAA;8GARY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,+TCV/B,mIAGA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDOa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,UAAA,EAGV,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mIAAA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA;;;AERjD;;AAEG;;;;"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Pipe, HostListener, HostBinding, ViewChildren, ContentChildren,
|
|
3
|
-
import * as i3 from '@angular/common';
|
|
2
|
+
import { inject, ElementRef, ChangeDetectionStrategy, Component, Pipe, input, signal, computed, HostListener, HostBinding, ViewChildren, ContentChildren, NgModule } from '@angular/core';
|
|
4
3
|
import { AsyncPipe } from '@angular/common';
|
|
5
4
|
import * as i1 from '@angular/cdk/portal';
|
|
6
5
|
import { DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
7
6
|
import * as i2 from '@mintplayer/ng-bootstrap/user-agent';
|
|
8
7
|
import { BsUserAgentDirective } from '@mintplayer/ng-bootstrap/user-agent';
|
|
9
|
-
import { BehaviorSubject, map, combineLatest, take } from 'rxjs';
|
|
10
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
8
|
|
|
12
9
|
var EDragOperation;
|
|
13
10
|
(function (EDragOperation) {
|
|
@@ -16,19 +13,19 @@ var EDragOperation;
|
|
|
16
13
|
})(EDragOperation || (EDragOperation = {}));
|
|
17
14
|
|
|
18
15
|
class BsSplitPanelComponent {
|
|
19
|
-
constructor(
|
|
20
|
-
this.element =
|
|
16
|
+
constructor() {
|
|
17
|
+
this.element = inject(ElementRef);
|
|
21
18
|
}
|
|
22
19
|
ngAfterViewInit() {
|
|
23
20
|
setTimeout(() => this.portal = new DomPortal(this.element.nativeElement), 10);
|
|
24
21
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitPanelComponent, deps: [
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsSplitPanelComponent, isStandalone: false, selector: "bs-split-panel", ngImport: i0, template: "<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block;height:100%}\n"] }); }
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsSplitPanelComponent, isStandalone: false, selector: "bs-split-panel", ngImport: i0, template: "<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
24
|
}
|
|
28
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitPanelComponent, decorators: [{
|
|
29
26
|
type: Component,
|
|
30
|
-
args: [{ selector: 'bs-split-panel', standalone: false, template: "<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block;height:100%}\n"] }]
|
|
31
|
-
}]
|
|
27
|
+
args: [{ selector: 'bs-split-panel', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block;height:100%}\n"] }]
|
|
28
|
+
}] });
|
|
32
29
|
|
|
33
30
|
class BsElementAtPipe {
|
|
34
31
|
transform(value, index) {
|
|
@@ -51,31 +48,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
51
48
|
}] });
|
|
52
49
|
|
|
53
50
|
class BsSplitterComponent {
|
|
54
|
-
constructor(
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
this.
|
|
58
|
-
|
|
59
|
-
this.
|
|
60
|
-
this.panels$ = new BehaviorSubject([]);
|
|
51
|
+
constructor() {
|
|
52
|
+
this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
53
|
+
this.previewSizes = signal(null, ...(ngDevMode ? [{ debugName: "previewSizes" }] : []));
|
|
54
|
+
this.panels = signal([], ...(ngDevMode ? [{ debugName: "panels" }] : []));
|
|
55
|
+
this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: "isResizing" }] : []));
|
|
56
|
+
this.touchedDivider = signal(null, ...(ngDevMode ? [{ debugName: "touchedDivider" }] : []));
|
|
61
57
|
this.classes = true;
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
this.operation = null;
|
|
65
|
-
this.directionClass$ = this.orientation$.pipe(map((orientation) => {
|
|
66
|
-
switch (orientation) {
|
|
58
|
+
this.directionClass = computed(() => {
|
|
59
|
+
switch (this.orientation()) {
|
|
67
60
|
case 'horizontal': return 'flex-row';
|
|
68
61
|
case 'vertical': return 'flex-column';
|
|
69
62
|
}
|
|
70
|
-
}));
|
|
71
|
-
this.splitterClass
|
|
72
|
-
switch (orientation) {
|
|
63
|
+
}, ...(ngDevMode ? [{ debugName: "directionClass" }] : []));
|
|
64
|
+
this.splitterClass = computed(() => {
|
|
65
|
+
switch (this.orientation()) {
|
|
73
66
|
case 'horizontal': return 'split-hor';
|
|
74
67
|
case 'vertical': return 'split-ver';
|
|
75
68
|
}
|
|
76
|
-
}));
|
|
77
|
-
this.widthStyles
|
|
78
|
-
|
|
69
|
+
}, ...(ngDevMode ? [{ debugName: "splitterClass" }] : []));
|
|
70
|
+
this.widthStyles = computed(() => {
|
|
71
|
+
const orientation = this.orientation();
|
|
72
|
+
const previewSizes = this.previewSizes();
|
|
73
|
+
const panels = this.panels();
|
|
79
74
|
switch (orientation) {
|
|
80
75
|
case 'horizontal':
|
|
81
76
|
if (previewSizes) {
|
|
@@ -89,14 +84,16 @@ class BsSplitterComponent {
|
|
|
89
84
|
});
|
|
90
85
|
}
|
|
91
86
|
else {
|
|
92
|
-
return Array(panels.length).
|
|
87
|
+
return Array(panels.length).fill('100%');
|
|
93
88
|
}
|
|
94
89
|
case 'vertical':
|
|
95
90
|
return null;
|
|
96
91
|
}
|
|
97
|
-
}));
|
|
98
|
-
this.heightStyles
|
|
99
|
-
|
|
92
|
+
}, ...(ngDevMode ? [{ debugName: "widthStyles" }] : []));
|
|
93
|
+
this.heightStyles = computed(() => {
|
|
94
|
+
const orientation = this.orientation();
|
|
95
|
+
const previewSizes = this.previewSizes();
|
|
96
|
+
const panels = this.panels();
|
|
100
97
|
switch (orientation) {
|
|
101
98
|
case 'horizontal':
|
|
102
99
|
return null;
|
|
@@ -112,26 +109,21 @@ class BsSplitterComponent {
|
|
|
112
109
|
});
|
|
113
110
|
}
|
|
114
111
|
else {
|
|
115
|
-
return Array(panels.length).
|
|
112
|
+
return Array(panels.length).fill('100%');
|
|
116
113
|
}
|
|
117
114
|
}
|
|
118
|
-
}));
|
|
119
|
-
|
|
120
|
-
get orientation() {
|
|
121
|
-
return this.orientation$.value;
|
|
122
|
-
}
|
|
123
|
-
set orientation(value) {
|
|
124
|
-
this.orientation$.next(value);
|
|
115
|
+
}, ...(ngDevMode ? [{ debugName: "heightStyles" }] : []));
|
|
116
|
+
this.operation = null;
|
|
125
117
|
}
|
|
126
|
-
set
|
|
127
|
-
this.panels
|
|
118
|
+
set panelsList(value) {
|
|
119
|
+
this.panels.set(value.toArray());
|
|
128
120
|
}
|
|
129
121
|
computeSizes() {
|
|
130
122
|
if (typeof window !== 'undefined') {
|
|
131
123
|
const sizes = this.splitPanels
|
|
132
124
|
.map((sp) => {
|
|
133
125
|
const styles = window.getComputedStyle(sp.nativeElement);
|
|
134
|
-
switch (this.orientation) {
|
|
126
|
+
switch (this.orientation()) {
|
|
135
127
|
case 'horizontal': return styles.width;
|
|
136
128
|
case 'vertical': return styles.height;
|
|
137
129
|
}
|
|
@@ -151,13 +143,14 @@ class BsSplitterComponent {
|
|
|
151
143
|
startResizeTouch(ev, indexBefore, indexAfter, divider) {
|
|
152
144
|
if (ev.cancelable) {
|
|
153
145
|
ev.preventDefault();
|
|
154
|
-
|
|
146
|
+
ev.stopPropagation();
|
|
147
|
+
this.touchedDivider.set(divider);
|
|
155
148
|
this.startResize(indexBefore, indexAfter, { x: ev.touches[0].clientX, y: ev.touches[0].clientY });
|
|
156
149
|
}
|
|
157
150
|
}
|
|
158
151
|
startResize(indexBefore, indexAfter, pt) {
|
|
159
152
|
const sizes = this.computeSizes();
|
|
160
|
-
this.previewSizes
|
|
153
|
+
this.previewSizes.set(sizes);
|
|
161
154
|
this.operation = {
|
|
162
155
|
operation: EDragOperation.resizeSplitter,
|
|
163
156
|
startPosition: pt,
|
|
@@ -165,12 +158,16 @@ class BsSplitterComponent {
|
|
|
165
158
|
indexBefore,
|
|
166
159
|
indexAfter,
|
|
167
160
|
};
|
|
168
|
-
this.isResizing
|
|
161
|
+
this.isResizing.set(true);
|
|
169
162
|
}
|
|
170
163
|
onMouseMove(ev) {
|
|
171
164
|
this.onResizeMove({ x: ev.clientX, y: ev.clientY });
|
|
172
165
|
}
|
|
173
166
|
onTouchMove(ev) {
|
|
167
|
+
if (this.operation) {
|
|
168
|
+
ev.preventDefault();
|
|
169
|
+
ev.stopPropagation();
|
|
170
|
+
}
|
|
174
171
|
this.onResizeMove({ x: ev.touches[0].clientX, y: ev.touches[0].clientY });
|
|
175
172
|
}
|
|
176
173
|
onResizeMove(pt) {
|
|
@@ -178,28 +175,23 @@ class BsSplitterComponent {
|
|
|
178
175
|
switch (this.operation.operation) {
|
|
179
176
|
case EDragOperation.resizeSplitter:
|
|
180
177
|
{
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
this.previewSizes$.next(sy);
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
});
|
|
178
|
+
const orientation = this.orientation();
|
|
179
|
+
switch (orientation) {
|
|
180
|
+
case 'horizontal':
|
|
181
|
+
const deltaX = pt.x - this.operation.startPosition.x;
|
|
182
|
+
const sx = Array.from(this.operation.sizes);
|
|
183
|
+
sx[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaX;
|
|
184
|
+
sx[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaX;
|
|
185
|
+
this.previewSizes.set(sx);
|
|
186
|
+
break;
|
|
187
|
+
case 'vertical':
|
|
188
|
+
const deltaY = pt.y - this.operation.startPosition.y;
|
|
189
|
+
const sy = Array.from(this.operation.sizes);
|
|
190
|
+
sy[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaY;
|
|
191
|
+
sy[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaY;
|
|
192
|
+
this.previewSizes.set(sy);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
203
195
|
}
|
|
204
196
|
break;
|
|
205
197
|
}
|
|
@@ -209,22 +201,24 @@ class BsSplitterComponent {
|
|
|
209
201
|
this.onResizeUp();
|
|
210
202
|
}
|
|
211
203
|
onTouchEnd(ev) {
|
|
212
|
-
this.
|
|
204
|
+
if (this.operation) {
|
|
205
|
+
ev.preventDefault();
|
|
206
|
+
ev.stopPropagation();
|
|
207
|
+
}
|
|
208
|
+
this.touchedDivider.set(null);
|
|
213
209
|
this.onResizeUp();
|
|
214
210
|
}
|
|
215
211
|
onResizeUp() {
|
|
216
|
-
this.isResizing
|
|
212
|
+
this.isResizing.set(false);
|
|
217
213
|
this.operation = null;
|
|
218
214
|
}
|
|
219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitterComponent, deps: [
|
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsSplitterComponent, isStandalone: false, selector: "bs-splitter", inputs: { orientation: "orientation" }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.w-100": "this.classes", "class.h-100": "this.classes", "class.d-flex": "this.classes" } }, queries: [{ propertyName: "
|
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsSplitterComponent, isStandalone: false, selector: "bs-splitter", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.w-100": "this.classes", "class.h-100": "this.classes", "class.d-flex": "this.classes" } }, queries: [{ propertyName: "panelsList", predicate: BsSplitPanelComponent }], viewQueries: [{ propertyName: "splitPanels", predicate: ["splitPanel"], descendants: true }], ngImport: i0, template: "<div class=\"d-flex w-100 root\" [class]=\"[directionClass(), splitterClass()]\" bsUserAgent>\n <ng-content></ng-content>\n @for (panel of panels(); let index = $index; let last = $last; track panel) {\n @let widthStylesValue = widthStyles();\n @let heightStylesValue = heightStyles();\n\n <div class=\"split-panel overflow-hidden\" [class.flex-none]=\"isResizing()\" #splitPanel [style.width]=\"widthStylesValue | bsElementAt:index\" [style.height]=\"heightStylesValue | bsElementAt:index\">\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </div>\n @if (!last) {\n <div class=\"divider\" bsUserAgent [class.hover]=\"touchedDivider() === divider\" #divider (mousedown)=\"startResizeMouse($event, index, index + 1)\" (touchstart)=\"startResizeTouch($event, index, index + 1, divider)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\"></div>\n }\n }\n</div>\n", styles: [".root{--thumb-margin: 3px}.root.os-android{--thumb-margin: 20px}.split-panel{flex-grow:1}.divider{flex-shrink:0;transition:background-color .15s ease-in-out;z-index:3}.divider:before{background-position:center center;background-repeat:no-repeat}.divider:not(.os-android):hover:before{background-color:#1389fd;border-radius:4px}.divider.os-android.hover:before{background-color:#1389fd;border-radius:4px}.divider:before{content:\"\";display:block;background-color:#eee}.split-hor>.divider{width:calc(8px + 2 * var(--thumb-margin));height:100%;cursor:col-resize;border-left:var(--thumb-margin) solid transparent;border-right:var(--thumb-margin) solid transparent}.split-hor>.divider:before{height:100%;width:8px;margin:0 auto;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}.split-hor>.split-panel:not(:first-child){margin-left:calc(-1 * var(--thumb-margin))}.split-hor>.split-panel:not(:last-child){margin-right:calc(-1 * var(--thumb-margin))}.split-ver>.divider{width:100%;height:calc(8px + 2 * var(--thumb-margin));cursor:row-resize;border-top:var(--thumb-margin) solid transparent;border-bottom:var(--thumb-margin) solid transparent}.split-ver>.divider:before{height:8px;margin:auto 0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFCAMAAABl/6zIAAAABlBMVEUAAADMzMzIT8AyAAAAAXRSTlMAQObYZgAAABRJREFUeAFjYGRkwIMJSeMHlBkOABP7AEGzSuPKAAAAAElFTkSuQmCC)}.split-ver>.split-panel:not(:first-child){margin-top:calc(-1 * var(--thumb-margin))}.split-ver>.split-panel:not(:last-child){margin-bottom:calc(-1 * var(--thumb-margin))}.flex-none{flex:none}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2.BsUserAgentDirective, selector: "[bsUserAgent]", outputs: ["detected"] }, { kind: "pipe", type: BsElementAtPipe, name: "bsElementAt" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
221
217
|
}
|
|
222
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsSplitterComponent, decorators: [{
|
|
223
219
|
type: Component,
|
|
224
|
-
args: [{ selector: 'bs-splitter', standalone: false, template: "<div class=\"d-flex w-100 root\" [class]=\"[directionClass
|
|
225
|
-
}],
|
|
226
|
-
type: Input
|
|
227
|
-
}], panels: [{
|
|
220
|
+
args: [{ selector: 'bs-splitter', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex w-100 root\" [class]=\"[directionClass(), splitterClass()]\" bsUserAgent>\n <ng-content></ng-content>\n @for (panel of panels(); let index = $index; let last = $last; track panel) {\n @let widthStylesValue = widthStyles();\n @let heightStylesValue = heightStyles();\n\n <div class=\"split-panel overflow-hidden\" [class.flex-none]=\"isResizing()\" #splitPanel [style.width]=\"widthStylesValue | bsElementAt:index\" [style.height]=\"heightStylesValue | bsElementAt:index\">\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </div>\n @if (!last) {\n <div class=\"divider\" bsUserAgent [class.hover]=\"touchedDivider() === divider\" #divider (mousedown)=\"startResizeMouse($event, index, index + 1)\" (touchstart)=\"startResizeTouch($event, index, index + 1, divider)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\"></div>\n }\n }\n</div>\n", styles: [".root{--thumb-margin: 3px}.root.os-android{--thumb-margin: 20px}.split-panel{flex-grow:1}.divider{flex-shrink:0;transition:background-color .15s ease-in-out;z-index:3}.divider:before{background-position:center center;background-repeat:no-repeat}.divider:not(.os-android):hover:before{background-color:#1389fd;border-radius:4px}.divider.os-android.hover:before{background-color:#1389fd;border-radius:4px}.divider:before{content:\"\";display:block;background-color:#eee}.split-hor>.divider{width:calc(8px + 2 * var(--thumb-margin));height:100%;cursor:col-resize;border-left:var(--thumb-margin) solid transparent;border-right:var(--thumb-margin) solid transparent}.split-hor>.divider:before{height:100%;width:8px;margin:0 auto;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}.split-hor>.split-panel:not(:first-child){margin-left:calc(-1 * var(--thumb-margin))}.split-hor>.split-panel:not(:last-child){margin-right:calc(-1 * var(--thumb-margin))}.split-ver>.divider{width:100%;height:calc(8px + 2 * var(--thumb-margin));cursor:row-resize;border-top:var(--thumb-margin) solid transparent;border-bottom:var(--thumb-margin) solid transparent}.split-ver>.divider:before{height:8px;margin:auto 0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFCAMAAABl/6zIAAAABlBMVEUAAADMzMzIT8AyAAAAAXRSTlMAQObYZgAAABRJREFUeAFjYGRkwIMJSeMHlBkOABP7AEGzSuPKAAAAAElFTkSuQmCC)}.split-ver>.split-panel:not(:first-child){margin-top:calc(-1 * var(--thumb-margin))}.split-ver>.split-panel:not(:last-child){margin-bottom:calc(-1 * var(--thumb-margin))}.flex-none{flex:none}\n"] }]
|
|
221
|
+
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], panelsList: [{
|
|
228
222
|
type: ContentChildren,
|
|
229
223
|
args: [BsSplitPanelComponent]
|
|
230
224
|
}], splitPanels: [{
|