@mintplayer/ng-bootstrap 15.23.0 → 15.23.2

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.
@@ -1,6 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Directive, Inject, HostBinding, Input, HostListener, forwardRef, Component, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/common';
3
4
  import { CommonModule } from '@angular/common';
5
+ import { BehaviorSubject, Subject, map, takeUntil } from 'rxjs';
4
6
 
5
7
  const RESIZABLE = new InjectionToken('Resizable');
6
8
 
@@ -38,13 +40,15 @@ class BsResizeGlyphDirective {
38
40
  this.onPointerUp();
39
41
  }
40
42
  onPointerDown() {
41
- let action = {};
43
+ let action = {
44
+ positioning: this.resizable.positioning
45
+ };
42
46
  const rect = this.resizable.element.nativeElement.getBoundingClientRect();
43
47
  const styles = window.getComputedStyle(this.resizable.element.nativeElement);
44
- const marginLeft = parseFloat(styles.marginLeft.slice(0, -2));
45
- const marginRight = parseFloat(styles.marginRight.slice(0, -2));
46
- const marginTop = parseFloat(styles.marginTop.slice(0, -2));
47
- const marginBottom = parseFloat(styles.marginBottom.slice(0, -2));
48
+ const marginLeft = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));
49
+ const marginRight = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));
50
+ const marginTop = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));
51
+ const marginBottom = (this.resizable.positioning === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));
48
52
  if (this.positions?.includes('start')) {
49
53
  action = {
50
54
  ...action,
@@ -91,39 +95,83 @@ class BsResizeGlyphDirective {
91
95
  }
92
96
  this.resizable.resizeAction = action;
93
97
  this.activeClass = true;
94
- console.log('resize', action);
95
98
  }
96
99
  onPointerMove(ev) {
97
100
  if (this.resizable.resizeAction && !this.isBusy) {
98
101
  ev.preventDefault();
99
102
  this.isBusy = true;
100
103
  const rct = this.resizable.element.nativeElement.getBoundingClientRect();
101
- // console.log('position', ev);
102
104
  if (this.resizable.resizeAction.start && this.positions?.includes('end')) {
103
105
  // Right glyph
104
- const initalMargin = this.resizable.marginRight ?? 0;
105
106
  const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;
106
- this.resizable.marginRight = initalMargin - (x - rct.right);
107
+ switch (this.resizable.positioning) {
108
+ case 'inline':
109
+ {
110
+ const initalMargin = this.resizable.marginRight ?? 0;
111
+ this.resizable.marginRight = initalMargin - (x - rct.right);
112
+ }
113
+ break;
114
+ case 'absolute':
115
+ {
116
+ this.resizable.width = x - rct.left;
117
+ }
118
+ break;
119
+ }
107
120
  }
108
121
  else if (this.resizable.resizeAction.end && this.positions?.includes('start')) {
109
122
  // Left glyph
110
- const initalMargin = this.resizable.marginLeft ?? 0;
111
123
  const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;
112
- this.resizable.marginLeft = initalMargin + x - rct.left;
124
+ switch (this.resizable.positioning) {
125
+ case 'inline':
126
+ {
127
+ const initalMargin = this.resizable.marginLeft ?? 0;
128
+ this.resizable.marginLeft = initalMargin + x - rct.left;
129
+ }
130
+ break;
131
+ case 'absolute':
132
+ {
133
+ this.resizable.left = x;
134
+ this.resizable.width = this.resizable.resizeAction.end.edge - x;
135
+ }
136
+ break;
137
+ }
113
138
  }
114
139
  if (this.resizable.resizeAction.top && this.positions?.includes('bottom')) {
115
140
  // Bottom glyph
116
- const initalMargin = this.resizable.marginBottom ?? 0;
117
141
  const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;
118
- this.resizable.height = y - rct.top;
119
- this.resizable.marginBottom = initalMargin - (y - rct.bottom);
142
+ switch (this.resizable.positioning) {
143
+ case 'inline':
144
+ {
145
+ const initalMargin = this.resizable.marginBottom ?? 0;
146
+ this.resizable.height = y - rct.top;
147
+ this.resizable.marginBottom = initalMargin - (y - rct.bottom);
148
+ }
149
+ break;
150
+ case 'absolute':
151
+ {
152
+ this.resizable.height = y - rct.top;
153
+ }
154
+ break;
155
+ }
120
156
  }
121
157
  else if (this.resizable.resizeAction.bottom && this.positions?.includes('top')) {
122
158
  // Top glyph
123
- const initalMargin = this.resizable.marginTop ?? 0;
124
159
  const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;
125
- this.resizable.height = rct.bottom - y;
126
- this.resizable.marginTop = initalMargin + y - rct.top;
160
+ switch (this.resizable.positioning) {
161
+ case 'inline':
162
+ {
163
+ const initalMargin = this.resizable.marginTop ?? 0;
164
+ this.resizable.height = rct.bottom - y;
165
+ this.resizable.marginTop = initalMargin + y - rct.top;
166
+ }
167
+ break;
168
+ case 'absolute':
169
+ {
170
+ this.resizable.top = y;
171
+ this.resizable.height = this.resizable.resizeAction.bottom.edge - y;
172
+ }
173
+ break;
174
+ }
127
175
  }
128
176
  this.isBusy = false;
129
177
  }
@@ -176,20 +224,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
176
224
 
177
225
  class BsResizableComponent {
178
226
  constructor(element) {
227
+ //#region Positioning
228
+ this.positioning$ = new BehaviorSubject('inline');
179
229
  this.classes = true;
230
+ this.hostClass = null;
231
+ this.destroyed$ = new Subject();
180
232
  this.element = element;
233
+ this.hostPosition$ = this.positioning$.pipe(map((positioning) => {
234
+ switch (positioning) {
235
+ case 'absolute': return 'position-absolute';
236
+ case 'inline': return 'position-relative';
237
+ }
238
+ }));
239
+ this.wrapperPosition$ = this.positioning$.pipe(map((positioning) => {
240
+ switch (positioning) {
241
+ case 'absolute': return ['position-relative', 'h-100'];
242
+ case 'inline': return [];
243
+ }
244
+ }));
245
+ this.hostPosition$.pipe(takeUntil(this.destroyed$))
246
+ .subscribe(hostPosition => this.hostClass = hostPosition);
247
+ }
248
+ get positioning() {
249
+ return this.positioning$.value;
250
+ }
251
+ set positioning(value) {
252
+ this.positioning$.next(value);
253
+ }
254
+ ngOnDestroy() {
255
+ this.destroyed$.next(true);
181
256
  }
182
257
  }
183
258
  BsResizableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
184
- BsResizableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsResizableComponent, selector: "bs-resizable", host: { properties: { "style.margin-left.px": "this.marginLeft", "style.margin-right.px": "this.marginRight", "style.margin-top.px": "this.marginTop", "style.margin-bottom.px": "this.marginBottom", "style.height.px": "this.height", "class.d-block": "this.classes", "class.border": "this.classes", "class.position-relative": "this.classes" } }, providers: [
259
+ BsResizableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: BsResizableComponent, selector: "bs-resizable", inputs: { positioning: "positioning" }, host: { properties: { "style.margin-left.px": "this.marginLeft", "style.margin-right.px": "this.marginRight", "style.margin-top.px": "this.marginTop", "style.margin-bottom.px": "this.marginBottom", "style.width.px": "this.width", "style.height.px": "this.height", "style.left.px": "this.left", "style.top.px": "this.top", "class.d-block": "this.classes", "class.border": "this.classes", "class": "this.hostClass" } }, providers: [
185
260
  { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
186
- ], ngImport: i0, template: "<!-- <div class=\"border position-relative\"> -->\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{position:absolute;width:8px;height:8px;transition:background-color .2s ease-in-out;border-radius:4px}.glyph.top{top:-4px}.glyph.start{left:-4px}.glyph.bottom{bottom:-4px}.glyph.end{right:-4px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph:hover,.glyph.active{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: ["bsResizeGlyph"] }] });
261
+ ], ngImport: i0, template: "<div [class]=\"wrapperPosition$ | async\">\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{position:absolute;width:8px;height:8px;transition:background-color .2s ease-in-out;border-radius:4px}.glyph.top{top:-4px}.glyph.start{left:-4px}.glyph.bottom{bottom:-4px}.glyph.end{right:-4px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph:hover,.glyph.active{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: ["bsResizeGlyph"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
187
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BsResizableComponent, decorators: [{
188
263
  type: Component,
189
264
  args: [{ selector: 'bs-resizable', providers: [
190
265
  { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
191
- ], template: "<!-- <div class=\"border position-relative\"> -->\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{position:absolute;width:8px;height:8px;transition:background-color .2s ease-in-out;border-radius:4px}.glyph.top{top:-4px}.glyph.start{left:-4px}.glyph.bottom{bottom:-4px}.glyph.end{right:-4px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph:hover,.glyph.active{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"] }]
192
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { marginLeft: [{
266
+ ], template: "<div [class]=\"wrapperPosition$ | async\">\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{position:absolute;width:8px;height:8px;transition:background-color .2s ease-in-out;border-radius:4px}.glyph.top{top:-4px}.glyph.start{left:-4px}.glyph.bottom{bottom:-4px}.glyph.end{right:-4px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph:hover,.glyph.active{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"] }]
267
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { positioning: [{
268
+ type: Input
269
+ }], marginLeft: [{
193
270
  type: HostBinding,
194
271
  args: ['style.margin-left.px']
195
272
  }], marginRight: [{
@@ -201,18 +278,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
201
278
  }], marginBottom: [{
202
279
  type: HostBinding,
203
280
  args: ['style.margin-bottom.px']
281
+ }], width: [{
282
+ type: HostBinding,
283
+ args: ['style.width.px']
204
284
  }], height: [{
205
285
  type: HostBinding,
206
286
  args: ['style.height.px']
287
+ }], left: [{
288
+ type: HostBinding,
289
+ args: ['style.left.px']
290
+ }], top: [{
291
+ type: HostBinding,
292
+ args: ['style.top.px']
207
293
  }], classes: [{
208
294
  type: HostBinding,
209
295
  args: ['class.d-block']
210
296
  }, {
211
297
  type: HostBinding,
212
298
  args: ['class.border']
213
- }, {
299
+ }], hostClass: [{
214
300
  type: HostBinding,
215
- args: ['class.position-relative']
301
+ args: ['class']
216
302
  }] } });
217
303
 
218
304
  class BsResizableModule {
@@ -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})\nexport class BsResizeGlyphDirective {\n\n 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 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 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: Event) {\n this.onPointerUp();\n }\n\n onPointerDown() {\n let action: ResizeAction = {};\n const rect = this.resizable.element.nativeElement.getBoundingClientRect();\n const styles = window.getComputedStyle(this.resizable.element.nativeElement);\n\n const marginLeft = parseFloat(styles.marginLeft.slice(0, -2));\n const marginRight = parseFloat(styles.marginRight.slice(0, -2));\n const marginTop = parseFloat(styles.marginTop.slice(0, -2));\n const marginBottom = 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 console.log('resize', action);\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 // console.log('position', ev);\n if (this.resizable.resizeAction.start && this.positions?.includes('end')) {\n // Right glyph\n const initalMargin = this.resizable.marginRight ?? 0;\n const x = (ev.clientX < rct.left + 10) ? rct.left + 10 : ev.clientX;\n this.resizable.marginRight = initalMargin - (x - rct.right);\n } else if (this.resizable.resizeAction.end && this.positions?.includes('start')) {\n // Left glyph\n const initalMargin = this.resizable.marginLeft ?? 0;\n const x = (ev.clientX > rct.right - 10) ? rct.right - 10 : ev.clientX;\n this.resizable.marginLeft = initalMargin + x - rct.left;\n }\n\n if (this.resizable.resizeAction.top && this.positions?.includes('bottom')) {\n // Bottom glyph\n const initalMargin = this.resizable.marginBottom ?? 0;\n const y = (ev.clientY < rct.top + 10) ? rct.top + 10 : ev.clientY;\n this.resizable.height = y - rct.top;\n this.resizable.marginBottom = initalMargin - (y - rct.bottom);\n } else if (this.resizable.resizeAction.bottom && this.positions?.includes('top')) {\n // Top glyph\n const initalMargin = this.resizable.marginTop ?? 0;\n const y = (ev.clientY > rct.bottom - 10) ? rct.bottom - 10 : ev.clientY;\n this.resizable.height = rct.bottom - y;\n this.resizable.marginTop = initalMargin + y - rct.top;\n }\n this.isBusy = false;\n }\n }\n \n onPointerUp() {\n this.resizable.resizeAction = undefined;\n this.activeClass = false;\n }\n}\n","import { Component, Directive, ElementRef, HostBinding, forwardRef } from '@angular/core';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ]\n})\nexport class BsResizableComponent {\n constructor(element: ElementRef<HTMLElement>) {\n this.element = element;\n }\n\n resizeAction?: ResizeAction;\n element: ElementRef<HTMLElement>;\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.height.px') height?: number;\n\n @HostBinding('class.d-block')\n @HostBinding('class.border')\n @HostBinding('class.position-relative')\n classes = true;\n}\n","<!-- <div class=\"border position-relative\"> -->\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/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})\nexport class BsResizeGlyphDirective {\n\n 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 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 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: Event) {\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 { Component, Directive, ElementRef, HostBinding, Input, OnDestroy, forwardRef } from '@angular/core';\nimport { BehaviorSubject, Observable, map, Subject, takeUntil } from 'rxjs';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\nimport { ResizablePositioning } from '../types/positioning';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ]\n})\nexport class BsResizableComponent implements OnDestroy {\n constructor(element: ElementRef<HTMLElement>) {\n this.element = element;\n this.hostPosition$ = this.positioning$.pipe(map((positioning) => {\n switch (positioning) {\n case 'absolute': return 'position-absolute';\n case 'inline': return 'position-relative';\n }\n }));\n\n this.wrapperPosition$ = this.positioning$.pipe(map((positioning) => {\n switch (positioning) {\n case 'absolute': return ['position-relative', 'h-100']\n case 'inline': return [];\n }\n }));\n\n this.hostPosition$.pipe(takeUntil(this.destroyed$))\n .subscribe(hostPosition => this.hostClass = hostPosition);\n }\n\n resizeAction?: ResizeAction;\n element: ElementRef<HTMLElement>;\n hostPosition$: Observable<string>;\n wrapperPosition$: Observable<string[]>;\n\n //#region Positioning\n positioning$ = new BehaviorSubject<ResizablePositioning>('inline');\n public get positioning() {\n return this.positioning$.value;\n }\n @Input() public set positioning(value: ResizablePositioning) {\n this.positioning$.next(value);\n }\n //#endregion\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\n @HostBinding('class.d-block')\n @HostBinding('class.border')\n classes = true;\n\n @HostBinding('class')\n hostClass: string | null = null;\n\n destroyed$ = new Subject();\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","<div [class]=\"wrapperPosition$ | async\">\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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-bootstrap",
3
3
  "private": false,
4
- "version": "15.23.0",
4
+ "version": "15.23.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
@@ -3,3 +3,4 @@ export * from './resizable/resizable.component';
3
3
  export * from './resize-glyph/resize-glyph.directive';
4
4
  export * from './interfaces';
5
5
  export * from './providers';
6
+ export * from './types';
@@ -1,4 +1,6 @@
1
+ import { ResizablePositioning } from "../types/positioning";
1
2
  export interface ResizeAction {
3
+ positioning: ResizablePositioning;
2
4
  top?: ResizeActionSide;
3
5
  start?: ResizeActionSide;
4
6
  bottom?: ResizeActionSide;
@@ -8,9 +10,9 @@ export interface ResizeActionSide {
8
10
  /** Fixed edge */
9
11
  edge: number;
10
12
  /** Initial margin at the fixed edge */
11
- margin: number;
13
+ margin?: number;
12
14
  /** Initial margin at the edge that's being dragged */
13
- dragMargin: number;
15
+ dragMargin?: number;
14
16
  /** Initial size */
15
17
  size: number;
16
18
  }
@@ -1,16 +1,29 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { ElementRef, OnDestroy } from '@angular/core';
2
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
2
3
  import { ResizeAction } from '../interfaces/resize-action';
4
+ import { ResizablePositioning } from '../types/positioning';
3
5
  import * as i0 from "@angular/core";
4
- export declare class BsResizableComponent {
6
+ export declare class BsResizableComponent implements OnDestroy {
5
7
  constructor(element: ElementRef<HTMLElement>);
6
8
  resizeAction?: ResizeAction;
7
9
  element: ElementRef<HTMLElement>;
10
+ hostPosition$: Observable<string>;
11
+ wrapperPosition$: Observable<string[]>;
12
+ positioning$: BehaviorSubject<ResizablePositioning>;
13
+ get positioning(): ResizablePositioning;
14
+ set positioning(value: ResizablePositioning);
8
15
  marginLeft?: number;
9
16
  marginRight?: number;
10
17
  marginTop?: number;
11
18
  marginBottom?: number;
19
+ width?: number;
12
20
  height?: number;
21
+ left?: number;
22
+ top?: number;
13
23
  classes: boolean;
24
+ hostClass: string | null;
25
+ destroyed$: Subject<unknown>;
26
+ ngOnDestroy(): void;
14
27
  static ɵfac: i0.ɵɵFactoryDeclaration<BsResizableComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<BsResizableComponent, "bs-resizable", never, {}, {}, never, ["*"], false, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<BsResizableComponent, "bs-resizable", never, { "positioning": "positioning"; }, {}, never, ["*"], false, never>;
16
29
  }
@@ -0,0 +1 @@
1
+ export * from './positioning';
@@ -0,0 +1 @@
1
+ export type ResizablePositioning = 'absolute' | 'inline';
@@ -4,7 +4,7 @@ $utilities: map-merge(
4
4
  (
5
5
  "cursor": (
6
6
  property: cursor,
7
- values: auto default pointer wait text move help not-allowed n-resize e-resize s-resize w-resize ne-resize se-resize nw-resize sw-resize
7
+ values: auto default pointer wait text move help not-allowed n-resize e-resize s-resize w-resize ne-resize se-resize nw-resize sw-resize grab grabbing
8
8
  ),
9
9
  )
10
10
  );