@mintplayer/ng-bootstrap 21.6.0 → 21.8.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 +34 -73
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +10 -31
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +12 -29
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +17 -19
- package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -11
- package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-card.mjs +14 -41
- package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +47 -89
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +10 -13
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +294 -383
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-container.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +10 -44
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +16 -23
- package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +24 -74
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +6 -8
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +43 -73
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +8 -12
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +23 -60
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +34 -86
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +9 -12
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +35 -96
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +9 -10
- package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-for.mjs +23 -26
- package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-form.mjs +29 -54
- package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +35 -67
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +75 -114
- package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs +16 -15
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +17 -44
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -16
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +74 -160
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +25 -87
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -9
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +136 -232
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +40 -68
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +11 -15
- package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +70 -138
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +16 -39
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -9
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +40 -70
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +28 -97
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +30 -58
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +10 -17
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +96 -153
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +26 -41
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +30 -61
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +59 -108
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +99 -131
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +63 -106
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +15 -33
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +16 -33
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +16 -35
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +39 -81
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +13 -17
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +80 -154
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +116 -153
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +25 -62
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +16 -33
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +13 -20
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +14 -26
- package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs +6 -9
- package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -4
- package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
- package/package.json +4 -4
- package/types/mintplayer-ng-bootstrap-accordion.d.ts +20 -30
- package/types/mintplayer-ng-bootstrap-alert.d.ts +3 -9
- package/types/mintplayer-ng-bootstrap-breadcrumb.d.ts +3 -10
- package/types/mintplayer-ng-bootstrap-button-type.d.ts +4 -4
- package/types/mintplayer-ng-bootstrap-card.d.ts +5 -12
- package/types/mintplayer-ng-bootstrap-carousel.d.ts +6 -14
- package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-color-picker.d.ts +43 -54
- package/types/mintplayer-ng-bootstrap-context-menu.d.ts +2 -11
- package/types/mintplayer-ng-bootstrap-copy.d.ts +5 -7
- package/types/mintplayer-ng-bootstrap-datatable.d.ts +7 -18
- package/types/mintplayer-ng-bootstrap-dock.d.ts +18 -31
- package/types/mintplayer-ng-bootstrap-dropdown-divider.d.ts +0 -1
- package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +11 -22
- package/types/mintplayer-ng-bootstrap-dropdown.d.ts +16 -28
- package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-file-upload.d.ts +16 -27
- package/types/mintplayer-ng-bootstrap-floating-labels.d.ts +2 -3
- package/types/mintplayer-ng-bootstrap-for.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-form.d.ts +11 -20
- package/types/mintplayer-ng-bootstrap-grid.d.ts +23 -35
- package/types/mintplayer-ng-bootstrap-instance-of.d.ts +34 -41
- package/types/mintplayer-ng-bootstrap-let.d.ts +3 -2
- package/types/mintplayer-ng-bootstrap-list-group.d.ts +4 -13
- package/types/mintplayer-ng-bootstrap-modal.d.ts +13 -29
- package/types/mintplayer-ng-bootstrap-multiselect.d.ts +8 -21
- package/types/mintplayer-ng-bootstrap-navbar.d.ts +38 -51
- package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +8 -15
- package/types/mintplayer-ng-bootstrap-no-noscript.d.ts +1 -1
- package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +20 -30
- package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -11
- package/types/mintplayer-ng-bootstrap-popover.d.ts +18 -31
- package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +9 -27
- package/types/mintplayer-ng-bootstrap-range.d.ts +14 -22
- package/types/mintplayer-ng-bootstrap-rating.d.ts +0 -2
- package/types/mintplayer-ng-bootstrap-resizable.d.ts +23 -32
- package/types/mintplayer-ng-bootstrap-scheduler.d.ts +3 -9
- package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +7 -16
- package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -34
- package/types/mintplayer-ng-bootstrap-select.d.ts +24 -30
- package/types/mintplayer-ng-bootstrap-select2.d.ts +21 -33
- package/types/mintplayer-ng-bootstrap-shell.d.ts +12 -19
- package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +2 -3
- package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +4 -12
- package/types/mintplayer-ng-bootstrap-tab-control.d.ts +9 -21
- package/types/mintplayer-ng-bootstrap-timepicker.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-toast.d.ts +12 -20
- package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +20 -29
- package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -24
- package/types/mintplayer-ng-bootstrap-treeview.d.ts +13 -21
- package/types/mintplayer-ng-bootstrap-typeahead.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-user-agent.d.ts +2 -3
- package/types/mintplayer-ng-bootstrap-viewport.d.ts +2 -2
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken,
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { InjectionToken, inject, signal, input, effect, Directive, ElementRef, computed, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
3
|
|
|
5
4
|
const RESIZABLE = new InjectionToken('Resizable');
|
|
6
5
|
|
|
7
6
|
class BsResizeGlyphDirective {
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
7
|
+
constructor() {
|
|
8
|
+
// Can't use typed DI because of the `import type`
|
|
9
|
+
this.resizable = inject(RESIZABLE);
|
|
10
|
+
this.positions = signal('', ...(ngDevMode ? [{ debugName: "positions" }] : []));
|
|
11
|
+
this.activeClass = signal(false, ...(ngDevMode ? [{ debugName: "activeClass" }] : []));
|
|
12
|
+
this.bsResizeGlyph = input([], ...(ngDevMode ? [{ debugName: "bsResizeGlyph" }] : []));
|
|
12
13
|
this.isBusy = false;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
effect(() => {
|
|
15
|
+
const value = this.bsResizeGlyph();
|
|
16
|
+
this.positions.set(value.join(' '));
|
|
17
|
+
});
|
|
17
18
|
}
|
|
18
19
|
onMouseDown(ev) {
|
|
19
20
|
ev.preventDefault();
|
|
@@ -52,7 +53,7 @@ class BsResizeGlyphDirective {
|
|
|
52
53
|
const marginRight = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));
|
|
53
54
|
const marginTop = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));
|
|
54
55
|
const marginBottom = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));
|
|
55
|
-
if (this.positions?.includes('start')) {
|
|
56
|
+
if (this.positions()?.includes('start')) {
|
|
56
57
|
action = {
|
|
57
58
|
...action,
|
|
58
59
|
end: {
|
|
@@ -63,7 +64,7 @@ class BsResizeGlyphDirective {
|
|
|
63
64
|
},
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
|
-
if (this.positions?.includes('end')) {
|
|
67
|
+
if (this.positions()?.includes('end')) {
|
|
67
68
|
action = {
|
|
68
69
|
...action,
|
|
69
70
|
start: {
|
|
@@ -74,7 +75,7 @@ class BsResizeGlyphDirective {
|
|
|
74
75
|
},
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
|
-
if (this.positions?.includes('top')) {
|
|
78
|
+
if (this.positions()?.includes('top')) {
|
|
78
79
|
action = {
|
|
79
80
|
...action,
|
|
80
81
|
bottom: {
|
|
@@ -85,7 +86,7 @@ class BsResizeGlyphDirective {
|
|
|
85
86
|
},
|
|
86
87
|
};
|
|
87
88
|
}
|
|
88
|
-
if (this.positions?.includes('bottom')) {
|
|
89
|
+
if (this.positions()?.includes('bottom')) {
|
|
89
90
|
action = {
|
|
90
91
|
...action,
|
|
91
92
|
top: {
|
|
@@ -97,81 +98,81 @@ class BsResizeGlyphDirective {
|
|
|
97
98
|
};
|
|
98
99
|
}
|
|
99
100
|
this.resizable.resizeAction = action;
|
|
100
|
-
this.activeClass
|
|
101
|
+
this.activeClass.set(true);
|
|
101
102
|
}
|
|
102
103
|
onPointerMove(ev) {
|
|
103
104
|
if (this.resizable.resizeAction && !this.isBusy) {
|
|
104
105
|
ev.preventDefault();
|
|
105
106
|
this.isBusy = true;
|
|
106
107
|
const rct = this.resizable.element.nativeElement.getBoundingClientRect();
|
|
107
|
-
if (this.resizable.resizeAction.start && this.positions?.includes('end')) {
|
|
108
|
+
if (this.resizable.resizeAction.start && this.positions()?.includes('end')) {
|
|
108
109
|
// Right glyph
|
|
109
110
|
const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;
|
|
110
111
|
switch (this.resizable.positioning()) {
|
|
111
112
|
case 'inline':
|
|
112
113
|
{
|
|
113
|
-
const initalMargin = this.resizable.marginRight ?? 0;
|
|
114
|
-
this.resizable.marginRight
|
|
114
|
+
const initalMargin = this.resizable.marginRight() ?? 0;
|
|
115
|
+
this.resizable.marginRight.set(initalMargin - (x - rct.right));
|
|
115
116
|
}
|
|
116
117
|
break;
|
|
117
118
|
case 'absolute':
|
|
118
119
|
{
|
|
119
|
-
this.resizable.width
|
|
120
|
+
this.resizable.width.set(x - rct.left);
|
|
120
121
|
}
|
|
121
122
|
break;
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
|
-
else if (this.resizable.resizeAction.end && this.positions?.includes('start')) {
|
|
125
|
+
else if (this.resizable.resizeAction.end && this.positions()?.includes('start')) {
|
|
125
126
|
// Left glyph
|
|
126
127
|
const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;
|
|
127
128
|
switch (this.resizable.positioning()) {
|
|
128
129
|
case 'inline':
|
|
129
130
|
{
|
|
130
|
-
const initalMargin = this.resizable.marginLeft ?? 0;
|
|
131
|
-
this.resizable.marginLeft
|
|
131
|
+
const initalMargin = this.resizable.marginLeft() ?? 0;
|
|
132
|
+
this.resizable.marginLeft.set(initalMargin + x - rct.left);
|
|
132
133
|
}
|
|
133
134
|
break;
|
|
134
135
|
case 'absolute':
|
|
135
136
|
{
|
|
136
|
-
this.resizable.left
|
|
137
|
-
this.resizable.width
|
|
137
|
+
this.resizable.left.set(x);
|
|
138
|
+
this.resizable.width.set(this.resizable.resizeAction.end.edge - x);
|
|
138
139
|
}
|
|
139
140
|
break;
|
|
140
141
|
}
|
|
141
142
|
}
|
|
142
|
-
if (this.resizable.resizeAction.top && this.positions?.includes('bottom')) {
|
|
143
|
+
if (this.resizable.resizeAction.top && this.positions()?.includes('bottom')) {
|
|
143
144
|
// Bottom glyph
|
|
144
145
|
const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;
|
|
145
146
|
switch (this.resizable.positioning()) {
|
|
146
147
|
case 'inline':
|
|
147
148
|
{
|
|
148
|
-
const initalMargin = this.resizable.marginBottom ?? 0;
|
|
149
|
-
this.resizable.height
|
|
150
|
-
this.resizable.marginBottom
|
|
149
|
+
const initalMargin = this.resizable.marginBottom() ?? 0;
|
|
150
|
+
this.resizable.height.set(y - rct.top);
|
|
151
|
+
this.resizable.marginBottom.set(initalMargin - (y - rct.bottom));
|
|
151
152
|
}
|
|
152
153
|
break;
|
|
153
154
|
case 'absolute':
|
|
154
155
|
{
|
|
155
|
-
this.resizable.height
|
|
156
|
+
this.resizable.height.set(y - rct.top);
|
|
156
157
|
}
|
|
157
158
|
break;
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
|
-
else if (this.resizable.resizeAction.bottom && this.positions?.includes('top')) {
|
|
161
|
+
else if (this.resizable.resizeAction.bottom && this.positions()?.includes('top')) {
|
|
161
162
|
// Top glyph
|
|
162
163
|
const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;
|
|
163
164
|
switch (this.resizable.positioning()) {
|
|
164
165
|
case 'inline':
|
|
165
166
|
{
|
|
166
|
-
const initalMargin = this.resizable.marginTop ?? 0;
|
|
167
|
-
this.resizable.height
|
|
168
|
-
this.resizable.marginTop
|
|
167
|
+
const initalMargin = this.resizable.marginTop() ?? 0;
|
|
168
|
+
this.resizable.height.set(rct.bottom - y);
|
|
169
|
+
this.resizable.marginTop.set(initalMargin + y - rct.top);
|
|
169
170
|
}
|
|
170
171
|
break;
|
|
171
172
|
case 'absolute':
|
|
172
173
|
{
|
|
173
|
-
this.resizable.top
|
|
174
|
-
this.resizable.height
|
|
174
|
+
this.resizable.top.set(y);
|
|
175
|
+
this.resizable.height.set(this.resizable.resizeAction.bottom.edge - y);
|
|
175
176
|
}
|
|
176
177
|
break;
|
|
177
178
|
}
|
|
@@ -181,50 +182,28 @@ class BsResizeGlyphDirective {
|
|
|
181
182
|
}
|
|
182
183
|
onPointerUp() {
|
|
183
184
|
this.resizable.resizeAction = undefined;
|
|
184
|
-
this.activeClass
|
|
185
|
+
this.activeClass.set(false);
|
|
185
186
|
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
187
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
187
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizeGlyphDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
188
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: BsResizeGlyphDirective, isStandalone: true, selector: "[bsResizeGlyph]", inputs: { bsResizeGlyph: { classPropertyName: "bsResizeGlyph", publicName: "bsResizeGlyph", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "onMouseDown($event)", "touchstart": "onTouchStart($event)", "document:mousemove": "onMouseMove($event)", "touchmove": "onTouchMove($event)", "document:mouseup": "onMouseUp($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "positions()", "class.glyph": "true", "class.active": "activeClass()" } }, ngImport: i0 }); }
|
|
188
189
|
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizeGlyphDirective, decorators: [{
|
|
190
191
|
type: Directive,
|
|
191
192
|
args: [{
|
|
192
193
|
selector: '[bsResizeGlyph]',
|
|
193
|
-
|
|
194
|
+
host: {
|
|
195
|
+
'[class]': 'positions()',
|
|
196
|
+
'[class.glyph]': 'true',
|
|
197
|
+
'[class.active]': 'activeClass()',
|
|
198
|
+
'(mousedown)': 'onMouseDown($event)',
|
|
199
|
+
'(touchstart)': 'onTouchStart($event)',
|
|
200
|
+
'(document:mousemove)': 'onMouseMove($event)',
|
|
201
|
+
'(touchmove)': 'onTouchMove($event)',
|
|
202
|
+
'(document:mouseup)': 'onMouseUp($event)',
|
|
203
|
+
'(touchend)': 'onTouchEnd($event)',
|
|
204
|
+
},
|
|
194
205
|
}]
|
|
195
|
-
}], ctorParameters: () => [{ type:
|
|
196
|
-
type: Inject,
|
|
197
|
-
args: [RESIZABLE]
|
|
198
|
-
}] }], propDecorators: { positions: [{
|
|
199
|
-
type: HostBinding,
|
|
200
|
-
args: ['class']
|
|
201
|
-
}], glyphClass: [{
|
|
202
|
-
type: HostBinding,
|
|
203
|
-
args: ['class.glyph']
|
|
204
|
-
}], activeClass: [{
|
|
205
|
-
type: HostBinding,
|
|
206
|
-
args: ['class.active']
|
|
207
|
-
}], bsResizeGlyph: [{
|
|
208
|
-
type: Input
|
|
209
|
-
}], onMouseDown: [{
|
|
210
|
-
type: HostListener,
|
|
211
|
-
args: ['mousedown', ['$event']]
|
|
212
|
-
}], onTouchStart: [{
|
|
213
|
-
type: HostListener,
|
|
214
|
-
args: ['touchstart', ['$event']]
|
|
215
|
-
}], onMouseMove: [{
|
|
216
|
-
type: HostListener,
|
|
217
|
-
args: ['document:mousemove', ['$event']]
|
|
218
|
-
}], onTouchMove: [{
|
|
219
|
-
type: HostListener,
|
|
220
|
-
args: ['touchmove', ['$event']]
|
|
221
|
-
}], onMouseUp: [{
|
|
222
|
-
type: HostListener,
|
|
223
|
-
args: ['document:mouseup', ['$event']]
|
|
224
|
-
}], onTouchEnd: [{
|
|
225
|
-
type: HostListener,
|
|
226
|
-
args: ['touchend', ['$event']]
|
|
227
|
-
}] } });
|
|
206
|
+
}], ctorParameters: () => [], propDecorators: { bsResizeGlyph: [{ type: i0.Input, args: [{ isSignal: true, alias: "bsResizeGlyph", required: false }] }] } });
|
|
228
207
|
|
|
229
208
|
class BsResizableComponent {
|
|
230
209
|
constructor() {
|
|
@@ -244,95 +223,59 @@ class BsResizableComponent {
|
|
|
244
223
|
case 'inline': return [];
|
|
245
224
|
}
|
|
246
225
|
}, ...(ngDevMode ? [{ debugName: "wrapperPosition" }] : []));
|
|
247
|
-
this.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
this.
|
|
254
|
-
this.
|
|
255
|
-
this.
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
226
|
+
this.presetPosition = input(undefined, ...(ngDevMode ? [{ debugName: "presetPosition" }] : []));
|
|
227
|
+
this.marginLeft = signal(undefined, ...(ngDevMode ? [{ debugName: "marginLeft" }] : []));
|
|
228
|
+
this.marginRight = signal(undefined, ...(ngDevMode ? [{ debugName: "marginRight" }] : []));
|
|
229
|
+
this.marginTop = signal(undefined, ...(ngDevMode ? [{ debugName: "marginTop" }] : []));
|
|
230
|
+
this.marginBottom = signal(undefined, ...(ngDevMode ? [{ debugName: "marginBottom" }] : []));
|
|
231
|
+
this.width = signal(undefined, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
232
|
+
this.height = signal(undefined, ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
233
|
+
this.left = signal(undefined, ...(ngDevMode ? [{ debugName: "left" }] : []));
|
|
234
|
+
this.top = signal(undefined, ...(ngDevMode ? [{ debugName: "top" }] : []));
|
|
235
|
+
effect(() => {
|
|
236
|
+
const value = this.presetPosition();
|
|
237
|
+
if (value) {
|
|
238
|
+
if (this.positioning() === 'inline') {
|
|
239
|
+
throw 'presetPosition currently only supported in absolute positioning';
|
|
240
|
+
}
|
|
241
|
+
this.width.set(value.width);
|
|
242
|
+
this.height.set(value.height);
|
|
243
|
+
this.left.set(value.left);
|
|
244
|
+
this.top.set(value.top);
|
|
245
|
+
this.marginTop.set(undefined);
|
|
246
|
+
this.marginBottom.set(undefined);
|
|
247
|
+
this.marginLeft.set(undefined);
|
|
248
|
+
this.marginRight.set(undefined);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
261
251
|
}
|
|
262
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
263
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: BsResizableComponent, isStandalone: true, selector: "bs-resizable", inputs: { positioning: { classPropertyName: "positioning", publicName: "positioning", isSignal: true, isRequired: false, transformFunction: null }, presetPosition: { classPropertyName: "presetPosition", publicName: "presetPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.margin-left.px": "marginLeft()", "style.margin-right.px": "marginRight()", "style.margin-top.px": "marginTop()", "style.margin-bottom.px": "marginBottom()", "style.width.px": "width()", "style.height.px": "height()", "style.left.px": "left()", "style.top.px": "top()", "class.d-block": "true", "class.border": "true", "class": "hostPosition()" } }, providers: [
|
|
264
254
|
{ provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
|
|
265
255
|
], ngImport: i0, template: "<div [class]=\"wrapperPosition()\" class=\"h-100\">\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n <ng-content></ng-content>\n</div>", styles: [".glyph:before{content:\"\";width:8px;height:8px;display:block;border-radius:4px;transition:background-color .2s ease-in-out}.glyph{position:absolute;width:14px;height:14px;z-index:20}.glyph.top{top:-7px}.glyph.start{left:-7px}.glyph.bottom{bottom:-7px}.glyph.end{right:-7px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.start:not(.top):not(.bottom):before,.glyph.end:not(.top):not(.bottom):before{display:block;height:100%}.glyph.start:before,.glyph.end:before{margin-left:3px;margin-right:3px}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph.top:not(.start):not(.end):before,.glyph.bottom:not(.start):not(.end):before{display:block;width:100%}.glyph.top:before,.glyph.bottom:before{margin-top:3px;margin-bottom:3px}.glyph:hover:before,.glyph.active:before{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: ["bsResizeGlyph"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
266
256
|
}
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizableComponent, decorators: [{
|
|
268
258
|
type: Component,
|
|
269
|
-
args: [{ selector: 'bs-resizable',
|
|
259
|
+
args: [{ selector: 'bs-resizable', imports: [BsResizeGlyphDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
270
260
|
{ provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
|
|
271
|
-
],
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
args: ['style.margin-bottom.px']
|
|
286
|
-
}], width: [{
|
|
287
|
-
type: HostBinding,
|
|
288
|
-
args: ['style.width.px']
|
|
289
|
-
}], height: [{
|
|
290
|
-
type: HostBinding,
|
|
291
|
-
args: ['style.height.px']
|
|
292
|
-
}], left: [{
|
|
293
|
-
type: HostBinding,
|
|
294
|
-
args: ['style.left.px']
|
|
295
|
-
}], top: [{
|
|
296
|
-
type: HostBinding,
|
|
297
|
-
args: ['style.top.px']
|
|
298
|
-
}], classes: [{
|
|
299
|
-
type: HostBinding,
|
|
300
|
-
args: ['class.d-block']
|
|
301
|
-
}, {
|
|
302
|
-
type: HostBinding,
|
|
303
|
-
args: ['class.border']
|
|
304
|
-
}], hostClass: [{
|
|
305
|
-
type: HostBinding,
|
|
306
|
-
args: ['class']
|
|
307
|
-
}] } });
|
|
308
|
-
|
|
309
|
-
class BsResizableModule {
|
|
310
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
311
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BsResizableModule, declarations: [BsResizableComponent,
|
|
312
|
-
BsResizeGlyphDirective], imports: [CommonModule], exports: [BsResizableComponent,
|
|
313
|
-
BsResizeGlyphDirective] }); }
|
|
314
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsResizableModule, imports: [CommonModule] }); }
|
|
315
|
-
}
|
|
316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsResizableModule, decorators: [{
|
|
317
|
-
type: NgModule,
|
|
318
|
-
args: [{
|
|
319
|
-
declarations: [
|
|
320
|
-
BsResizableComponent,
|
|
321
|
-
BsResizeGlyphDirective
|
|
322
|
-
],
|
|
323
|
-
imports: [
|
|
324
|
-
CommonModule
|
|
325
|
-
],
|
|
326
|
-
exports: [
|
|
327
|
-
BsResizableComponent,
|
|
328
|
-
BsResizeGlyphDirective
|
|
329
|
-
]
|
|
330
|
-
}]
|
|
331
|
-
}] });
|
|
261
|
+
], host: {
|
|
262
|
+
'[style.margin-left.px]': 'marginLeft()',
|
|
263
|
+
'[style.margin-right.px]': 'marginRight()',
|
|
264
|
+
'[style.margin-top.px]': 'marginTop()',
|
|
265
|
+
'[style.margin-bottom.px]': 'marginBottom()',
|
|
266
|
+
'[style.width.px]': 'width()',
|
|
267
|
+
'[style.height.px]': 'height()',
|
|
268
|
+
'[style.left.px]': 'left()',
|
|
269
|
+
'[style.top.px]': 'top()',
|
|
270
|
+
'[class.d-block]': 'true',
|
|
271
|
+
'[class.border]': 'true',
|
|
272
|
+
'[class]': 'hostPosition()',
|
|
273
|
+
}, template: "<div [class]=\"wrapperPosition()\" class=\"h-100\">\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n <ng-content></ng-content>\n</div>", styles: [".glyph:before{content:\"\";width:8px;height:8px;display:block;border-radius:4px;transition:background-color .2s ease-in-out}.glyph{position:absolute;width:14px;height:14px;z-index:20}.glyph.top{top:-7px}.glyph.start{left:-7px}.glyph.bottom{bottom:-7px}.glyph.end{right:-7px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.start:not(.top):not(.bottom):before,.glyph.end:not(.top):not(.bottom):before{display:block;height:100%}.glyph.start:before,.glyph.end:before{margin-left:3px;margin-right:3px}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph.top:not(.start):not(.end):before,.glyph.bottom:not(.start):not(.end):before{display:block;width:100%}.glyph.top:before,.glyph.bottom:before{margin-top:3px;margin-bottom:3px}.glyph:hover:before,.glyph.active:before{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"] }]
|
|
274
|
+
}], ctorParameters: () => [], propDecorators: { positioning: [{ type: i0.Input, args: [{ isSignal: true, alias: "positioning", required: false }] }], presetPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetPosition", required: false }] }] } });
|
|
332
275
|
|
|
333
276
|
/**
|
|
334
277
|
* Generated bundle index. Do not edit.
|
|
335
278
|
*/
|
|
336
279
|
|
|
337
|
-
export { BsResizableComponent,
|
|
280
|
+
export { BsResizableComponent, BsResizeGlyphDirective, RESIZABLE };
|
|
338
281
|
//# sourceMappingURL=mintplayer-ng-bootstrap-resizable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-resizable.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/resizable/src/providers/resizable.provider.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resize-glyph/resize-glyph.directive.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.html","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable.module.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/mintplayer-ng-bootstrap-resizable.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { BsResizableComponent } from \"../resizable/resizable.component\";\n\nexport const RESIZABLE = new InjectionToken<BsResizableComponent>('Resizable');","import { Directive, HostBinding, HostListener, Inject, Input, forwardRef, Optional } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport type { BsResizableComponent } from '../resizable/resizable.component';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { PointerData } from '../interfaces/pointer-data';\nimport { RESIZABLE } from '../providers/resizable.provider';\n\n@Directive({\n selector: '[bsResizeGlyph]',\n standalone: false,\n})\nexport class BsResizeGlyphDirective {\n\n // Can't use typed DI because of the `import type`\n private readonly resizable: BsResizableComponent;\n constructor(@Inject(RESIZABLE) resizable: any) {\n this.resizable = resizable;\n }\n\n @HostBinding('class') positions = '';\n @HostBinding('class.glyph') glyphClass = true;\n @HostBinding('class.active') activeClass = false;\n\n @Input() set bsResizeGlyph(value: Position[]) {\n this.positions = value.join(' ');\n }\n\n @HostListener('mousedown', ['$event']) onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.onPointerDown()\n }\n\n @HostListener('touchstart', ['$event']) onTouchStart(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerDown();\n }\n\n @HostListener('document:mousemove', ['$event']) onMouseMove(ev: MouseEvent) {\n this.onPointerMove({ clientX: ev.clientX, clientY: ev.clientY, preventDefault: () => ev.preventDefault() });\n }\n\n @HostListener('touchmove', ['$event']) onTouchMove(ev: TouchEvent) {\n if (ev.touches.length === 1) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerMove({ clientX: ev.touches[0].clientX, clientY: ev.touches[0].clientY, preventDefault: () => ev.preventDefault() });\n }\n }\n\n @HostListener('document:mouseup', ['$event']) onMouseUp(ev: Event) {\n this.onPointerUp();\n }\n\n @HostListener('touchend', ['$event']) onTouchEnd(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerUp();\n }\n\n onPointerDown() {\n let action: ResizeAction = {\n positioning: this.resizable.positioning()\n };\n const rect = this.resizable.element.nativeElement.getBoundingClientRect();\n const styles = window.getComputedStyle(this.resizable.element.nativeElement);\n\n const marginLeft = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));\n const marginRight = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));\n const marginTop = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));\n const marginBottom = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));\n\n if (this.positions?.includes('start')) {\n action = {\n ...action,\n end: {\n edge: rect.right,\n size: rect.width,\n margin: marginRight,\n dragMargin: marginLeft\n },\n };\n }\n if (this.positions?.includes('end')) {\n action = {\n ...action,\n start: {\n edge: rect.left,\n size: rect.width,\n margin: marginLeft,\n dragMargin: marginRight\n },\n };\n }\n if (this.positions?.includes('top')) {\n action = {\n ...action,\n bottom: {\n edge: rect.bottom,\n size: rect.height,\n margin: marginBottom,\n dragMargin: marginTop\n },\n };\n }\n if (this.positions?.includes('bottom')) {\n action = {\n ...action,\n top: {\n edge: rect.top,\n size: rect.height,\n margin: marginTop,\n dragMargin: marginBottom\n },\n };\n }\n\n this.resizable.resizeAction = action;\n this.activeClass = true;\n }\n\n private isBusy = false;\n onPointerMove(ev: PointerData) {\n if (this.resizable.resizeAction && !this.isBusy) {\n ev.preventDefault();\n this.isBusy = true;\n const rct = this.resizable.element.nativeElement.getBoundingClientRect();\n if (this.resizable.resizeAction.start && this.positions?.includes('end')) {\n // Right glyph\n const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginRight ?? 0;\n this.resizable.marginRight = initalMargin - (x - rct.right);\n } break;\n case 'absolute': {\n this.resizable.width = x - rct.left;\n } break;\n }\n } else if (this.resizable.resizeAction.end && this.positions?.includes('start')) {\n // Left glyph\n const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginLeft ?? 0;\n this.resizable.marginLeft = initalMargin + x - rct.left;\n } break;\n case 'absolute': {\n this.resizable.left = x;\n this.resizable.width = this.resizable.resizeAction.end.edge - x;\n } break;\n }\n }\n\n if (this.resizable.resizeAction.top && this.positions?.includes('bottom')) {\n // Bottom glyph\n const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginBottom ?? 0;\n this.resizable.height = y - rct.top;\n this.resizable.marginBottom = initalMargin - (y - rct.bottom);\n } break;\n case 'absolute': {\n this.resizable.height = y - rct.top;\n } break;\n }\n } else if (this.resizable.resizeAction.bottom && this.positions?.includes('top')) {\n // Top glyph\n const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginTop ?? 0;\n this.resizable.height = rct.bottom - y;\n this.resizable.marginTop = initalMargin + y - rct.top;\n } break;\n case 'absolute': {\n this.resizable.top = y;\n this.resizable.height = this.resizable.resizeAction.bottom.edge - y;\n } break;\n }\n }\n this.isBusy = false;\n }\n }\n \n onPointerUp() {\n this.resizable.resizeAction = undefined;\n this.activeClass = false;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, HostBinding, inject, input, Input, forwardRef, signal } from '@angular/core';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\nimport { ResizablePositioning } from '../types/positioning';\nimport { PresetPosition } from '../interfaces/preset-position';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ],\n})\nexport class BsResizableComponent {\n element = inject(ElementRef<HTMLElement>);\n\n resizeAction?: ResizeAction;\n positioning = input<ResizablePositioning>('inline');\n\n hostPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return 'position-absolute';\n case 'inline': return 'position-relative';\n }\n });\n\n wrapperPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return ['position-relative', 'h-100'];\n case 'inline': return [];\n }\n });\n\n @Input() public set presetPosition(value: PresetPosition) {\n if (this.positioning() === 'inline') {\n throw 'presetPosition currently only supported in absolute positioning';\n }\n this.width = value.width;\n this.height = value.height;\n this.left = value.left;\n this.top = value.top;\n this.marginTop = this.marginBottom = this.marginLeft = this.marginRight = undefined;\n }\n\n @HostBinding('style.margin-left.px') marginLeft?: number;\n @HostBinding('style.margin-right.px') marginRight?: number;\n @HostBinding('style.margin-top.px') marginTop?: number;\n @HostBinding('style.margin-bottom.px') marginBottom?: number;\n @HostBinding('style.width.px') width?: number;\n @HostBinding('style.height.px') height?: number;\n @HostBinding('style.left.px') left?: number;\n @HostBinding('style.top.px') top?: number;\n\n @HostBinding('class.d-block')\n @HostBinding('class.border')\n classes = true;\n\n @HostBinding('class')\n get hostClass(): string | null {\n return this.hostPosition();\n }\n}\n","<div [class]=\"wrapperPosition()\" class=\"h-100\">\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsResizableComponent } from './resizable/resizable.component';\nimport { BsResizeGlyphDirective } from './resize-glyph/resize-glyph.directive';\n\n@NgModule({\n declarations: [\n BsResizableComponent,\n BsResizeGlyphDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n BsResizableComponent,\n BsResizeGlyphDirective\n ]\n})\nexport class BsResizableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsResizeGlyphDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-resizable.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/resizable/src/providers/resizable.provider.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resize-glyph/resize-glyph.directive.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.html","../../../../libs/mintplayer-ng-bootstrap/resizable/mintplayer-ng-bootstrap-resizable.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { BsResizableComponent } from \"../resizable/resizable.component\";\n\nexport const RESIZABLE = new InjectionToken<BsResizableComponent>('Resizable');","import { Directive, effect, inject, input, signal, forwardRef } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport type { BsResizableComponent } from '../resizable/resizable.component';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { PointerData } from '../interfaces/pointer-data';\nimport { RESIZABLE } from '../providers/resizable.provider';\n\n@Directive({\n selector: '[bsResizeGlyph]',\n host: {\n '[class]': 'positions()',\n '[class.glyph]': 'true',\n '[class.active]': 'activeClass()',\n '(mousedown)': 'onMouseDown($event)',\n '(touchstart)': 'onTouchStart($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(touchmove)': 'onTouchMove($event)',\n '(document:mouseup)': 'onMouseUp($event)',\n '(touchend)': 'onTouchEnd($event)',\n },\n})\nexport class BsResizeGlyphDirective {\n\n // Can't use typed DI because of the `import type`\n private readonly resizable: BsResizableComponent = inject(RESIZABLE);\n\n constructor() {\n effect(() => {\n const value = this.bsResizeGlyph();\n this.positions.set(value.join(' '));\n });\n }\n\n positions = signal('');\n activeClass = signal(false);\n\n readonly bsResizeGlyph = input<Position[]>([]);\n\n onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.onPointerDown()\n }\n\n onTouchStart(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerDown();\n }\n\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove({ clientX: ev.clientX, clientY: ev.clientY, preventDefault: () => ev.preventDefault() });\n }\n\n onTouchMove(ev: TouchEvent) {\n if (ev.touches.length === 1) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerMove({ clientX: ev.touches[0].clientX, clientY: ev.touches[0].clientY, preventDefault: () => ev.preventDefault() });\n }\n }\n\n onMouseUp(ev: Event) {\n this.onPointerUp();\n }\n\n onTouchEnd(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerUp();\n }\n\n onPointerDown() {\n let action: ResizeAction = {\n positioning: this.resizable.positioning()\n };\n const rect = this.resizable.element.nativeElement.getBoundingClientRect();\n const styles = window.getComputedStyle(this.resizable.element.nativeElement);\n\n const marginLeft = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));\n const marginRight = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));\n const marginTop = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));\n const marginBottom = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));\n\n\n if (this.positions()?.includes('start')) {\n action = {\n ...action,\n end: {\n edge: rect.right,\n size: rect.width,\n margin: marginRight,\n dragMargin: marginLeft\n },\n };\n }\n if (this.positions()?.includes('end')) {\n action = {\n ...action,\n start: {\n edge: rect.left,\n size: rect.width,\n margin: marginLeft,\n dragMargin: marginRight\n },\n };\n }\n if (this.positions()?.includes('top')) {\n action = {\n ...action,\n bottom: {\n edge: rect.bottom,\n size: rect.height,\n margin: marginBottom,\n dragMargin: marginTop\n },\n };\n }\n if (this.positions()?.includes('bottom')) {\n action = {\n ...action,\n top: {\n edge: rect.top,\n size: rect.height,\n margin: marginTop,\n dragMargin: marginBottom\n },\n };\n }\n\n this.resizable.resizeAction = action;\n this.activeClass.set(true);\n }\n\n private isBusy = false;\n onPointerMove(ev: PointerData) {\n if (this.resizable.resizeAction && !this.isBusy) {\n ev.preventDefault();\n this.isBusy = true;\n const rct = this.resizable.element.nativeElement.getBoundingClientRect();\n if (this.resizable.resizeAction.start && this.positions()?.includes('end')) {\n // Right glyph\n const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginRight() ?? 0;\n this.resizable.marginRight.set(initalMargin - (x - rct.right));\n } break;\n case 'absolute': {\n this.resizable.width.set(x - rct.left);\n } break;\n }\n } else if (this.resizable.resizeAction.end && this.positions()?.includes('start')) {\n // Left glyph\n const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginLeft() ?? 0;\n this.resizable.marginLeft.set(initalMargin + x - rct.left);\n } break;\n case 'absolute': {\n this.resizable.left.set(x);\n this.resizable.width.set(this.resizable.resizeAction.end.edge - x);\n } break;\n }\n }\n\n if (this.resizable.resizeAction.top && this.positions()?.includes('bottom')) {\n // Bottom glyph\n const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginBottom() ?? 0;\n this.resizable.height.set(y - rct.top);\n this.resizable.marginBottom.set(initalMargin - (y - rct.bottom));\n } break;\n case 'absolute': {\n this.resizable.height.set(y - rct.top);\n } break;\n }\n } else if (this.resizable.resizeAction.bottom && this.positions()?.includes('top')) {\n // Top glyph\n const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initalMargin = this.resizable.marginTop() ?? 0;\n this.resizable.height.set(rct.bottom - y);\n this.resizable.marginTop.set(initalMargin + y - rct.top);\n } break;\n case 'absolute': {\n this.resizable.top.set(y);\n this.resizable.height.set(this.resizable.resizeAction.bottom.edge - y);\n } break;\n }\n }\n this.isBusy = false;\n }\n }\n \n onPointerUp() {\n this.resizable.resizeAction = undefined;\n this.activeClass.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, forwardRef, signal } from '@angular/core';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\nimport { ResizablePositioning } from '../types/positioning';\nimport { PresetPosition } from '../interfaces/preset-position';\nimport { BsResizeGlyphDirective } from '../resize-glyph/resize-glyph.directive';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n imports: [BsResizeGlyphDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ],\n host: {\n '[style.margin-left.px]': 'marginLeft()',\n '[style.margin-right.px]': 'marginRight()',\n '[style.margin-top.px]': 'marginTop()',\n '[style.margin-bottom.px]': 'marginBottom()',\n '[style.width.px]': 'width()',\n '[style.height.px]': 'height()',\n '[style.left.px]': 'left()',\n '[style.top.px]': 'top()',\n '[class.d-block]': 'true',\n '[class.border]': 'true',\n '[class]': 'hostPosition()',\n },\n})\nexport class BsResizableComponent {\n element = inject(ElementRef<HTMLElement>);\n\n resizeAction?: ResizeAction;\n positioning = input<ResizablePositioning>('inline');\n\n hostPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return 'position-absolute';\n case 'inline': return 'position-relative';\n }\n });\n\n wrapperPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return ['position-relative', 'h-100'];\n case 'inline': return [];\n }\n });\n\n readonly presetPosition = input<PresetPosition | undefined>(undefined);\n\n constructor() {\n effect(() => {\n const value = this.presetPosition();\n if (value) {\n if (this.positioning() === 'inline') {\n throw 'presetPosition currently only supported in absolute positioning';\n }\n this.width.set(value.width);\n this.height.set(value.height);\n this.left.set(value.left);\n this.top.set(value.top);\n this.marginTop.set(undefined);\n this.marginBottom.set(undefined);\n this.marginLeft.set(undefined);\n this.marginRight.set(undefined);\n }\n });\n }\n\n marginLeft = signal<number | undefined>(undefined);\n marginRight = signal<number | undefined>(undefined);\n marginTop = signal<number | undefined>(undefined);\n marginBottom = signal<number | undefined>(undefined);\n width = signal<number | undefined>(undefined);\n height = signal<number | undefined>(undefined);\n left = signal<number | undefined>(undefined);\n top = signal<number | undefined>(undefined);\n}\n","<div [class]=\"wrapperPosition()\" class=\"h-100\">\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n <ng-content></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|