@ptsecurity/mosaic 12.2.2 → 12.3.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.
Files changed (60) hide show
  1. package/_theming.scss +14 -150
  2. package/bundles/ptsecurity-mosaic-button.umd.js +2 -2
  3. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2
  4. package/bundles/ptsecurity-mosaic-core.umd.js.map +1 -1
  5. package/bundles/ptsecurity-mosaic-datepicker.umd.js +8 -1
  6. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
  7. package/bundles/ptsecurity-mosaic-form-field.umd.js +2 -2
  8. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +1 -1
  9. package/bundles/ptsecurity-mosaic-list.umd.js +14 -19
  10. package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
  11. package/bundles/ptsecurity-mosaic-popover.umd.js +2 -2
  12. package/bundles/ptsecurity-mosaic-popover.umd.js.map +1 -1
  13. package/bundles/ptsecurity-mosaic-splitter.umd.js +217 -30
  14. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
  15. package/bundles/ptsecurity-mosaic-tags.umd.js +52 -47
  16. package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
  17. package/bundles/ptsecurity-mosaic-tree-select.umd.js +1 -0
  18. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +1 -1
  19. package/bundles/ptsecurity-mosaic-tree.umd.js +3 -3
  20. package/bundles/ptsecurity-mosaic-tree.umd.js.map +1 -1
  21. package/esm2015/button/button.component.js +2 -2
  22. package/esm2015/core/pop-up/pop-up-trigger.js +1 -3
  23. package/esm2015/datepicker/datepicker-input.directive.js +9 -2
  24. package/esm2015/form-field/cleaner.js +3 -3
  25. package/esm2015/list/list-selection.component.js +15 -20
  26. package/esm2015/popover/popover-confirm.component.js +2 -2
  27. package/esm2015/popover/popover.component.js +2 -2
  28. package/esm2015/splitter/splitter.component.js +179 -32
  29. package/esm2015/splitter/splitter.module.js +4 -2
  30. package/esm2015/tags/tag.component.js +51 -48
  31. package/esm2015/tree/toggle.js +3 -3
  32. package/esm2015/tree/tree-option.component.js +2 -2
  33. package/esm2015/tree-select/tree-select.component.js +2 -1
  34. package/fesm2015/ptsecurity-mosaic-button.js +2 -2
  35. package/fesm2015/ptsecurity-mosaic-core.js +0 -2
  36. package/fesm2015/ptsecurity-mosaic-core.js.map +1 -1
  37. package/fesm2015/ptsecurity-mosaic-datepicker.js +8 -1
  38. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
  39. package/fesm2015/ptsecurity-mosaic-form-field.js +2 -2
  40. package/fesm2015/ptsecurity-mosaic-form-field.js.map +1 -1
  41. package/fesm2015/ptsecurity-mosaic-list.js +14 -19
  42. package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
  43. package/fesm2015/ptsecurity-mosaic-popover.js +2 -2
  44. package/fesm2015/ptsecurity-mosaic-popover.js.map +1 -1
  45. package/fesm2015/ptsecurity-mosaic-splitter.js +181 -32
  46. package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
  47. package/fesm2015/ptsecurity-mosaic-tags.js +50 -47
  48. package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
  49. package/fesm2015/ptsecurity-mosaic-tree-select.js +1 -0
  50. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +1 -1
  51. package/fesm2015/ptsecurity-mosaic-tree.js +3 -3
  52. package/fesm2015/ptsecurity-mosaic-tree.js.map +1 -1
  53. package/package.json +4 -4
  54. package/prebuilt-themes/dark-theme.css +1 -1
  55. package/prebuilt-themes/default-theme.css +1 -1
  56. package/splitter/splitter.component.d.ts +41 -3
  57. package/splitter/splitter.module.d.ts +1 -1
  58. package/tags/tag.component.d.ts +20 -20
  59. package/tree/toggle.d.ts +1 -1
  60. package/tree/tree-option.component.d.ts +1 -1
@@ -69,18 +69,28 @@
69
69
  enumerable: false,
70
70
  configurable: true
71
71
  });
72
+ Object.defineProperty(McGutterDirective.prototype, "isVertical", {
73
+ get: function () {
74
+ return this._direction === exports.Direction.Vertical;
75
+ },
76
+ enumerable: false,
77
+ configurable: true
78
+ });
72
79
  McGutterDirective.prototype.ngOnInit = function () {
73
80
  this.setStyle("flex-basis" /* FlexBasis */, coercion.coerceCssPixelValue(this.size));
74
- this.setStyle(this.isVertical() ? "height" /* Height */ : "width" /* Width */, coercion.coerceCssPixelValue(this.size));
81
+ this.setStyle(this.isVertical ? "height" /* Height */ : "width" /* Width */, coercion.coerceCssPixelValue(this.size));
75
82
  this.setStyle("order" /* Order */, this.order);
76
- if (!this.isVertical()) {
83
+ if (!this.isVertical) {
77
84
  this.setStyle("height" /* Height */, '100%');
78
85
  }
79
86
  // fix IE issue with gutter icon. flex-direction is requied for flex alignment options
80
- this.setStyle("flex-direction" /* FlexDirection */, this.isVertical() ? 'row' : 'column');
87
+ this.setStyle("flex-direction" /* FlexDirection */, this.isVertical ? 'row' : 'column');
81
88
  };
82
- McGutterDirective.prototype.isVertical = function () {
83
- return this.direction === exports.Direction.Vertical;
89
+ McGutterDirective.prototype.getPosition = function () {
90
+ return {
91
+ x: this.elementRef.nativeElement.offsetLeft,
92
+ y: this.elementRef.nativeElement.offsetTop
93
+ };
84
94
  };
85
95
  McGutterDirective.prototype.setStyle = function (property, value) {
86
96
  this.renderer.setStyle(this.elementRef.nativeElement, property, value);
@@ -88,14 +98,14 @@
88
98
  return McGutterDirective;
89
99
  }());
90
100
  /** @nocollapse */ McGutterDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McGutterDirective, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Directive });
91
- /** @nocollapse */ McGutterDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterDirective, selector: "mc-gutter", inputs: { direction: "direction", order: "order", size: "size" }, host: { listeners: { "mousedown": "dragged = true" }, properties: { "class.mc-gutter_vertical": "isVertical()", "class.mc-gutter_dragged": "dragged" }, classAttribute: "mc-gutter" }, ngImport: i0__namespace });
101
+ /** @nocollapse */ McGutterDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterDirective, selector: "mc-gutter", inputs: { direction: "direction", order: "order", size: "size" }, host: { listeners: { "mousedown": "dragged = true" }, properties: { "class.mc-gutter_vertical": "isVertical", "class.mc-gutter_dragged": "dragged" }, classAttribute: "mc-gutter" }, ngImport: i0__namespace });
92
102
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McGutterDirective, decorators: [{
93
103
  type: i0.Directive,
94
104
  args: [{
95
105
  selector: 'mc-gutter',
96
106
  host: {
97
107
  class: 'mc-gutter',
98
- '[class.mc-gutter_vertical]': 'isVertical()',
108
+ '[class.mc-gutter_vertical]': 'isVertical',
99
109
  '[class.mc-gutter_dragged]': 'dragged',
100
110
  '(mousedown)': 'dragged = true'
101
111
  }
@@ -107,6 +117,98 @@
107
117
  }], size: [{
108
118
  type: i0.Input
109
119
  }] } });
120
+ var McGutterGhostDirective = /** @class */ (function () {
121
+ function McGutterGhostDirective(elementRef, renderer) {
122
+ this.elementRef = elementRef;
123
+ this.renderer = renderer;
124
+ this._x = 0;
125
+ this._y = 0;
126
+ this._direction = exports.Direction.Vertical;
127
+ this._size = 6;
128
+ }
129
+ Object.defineProperty(McGutterGhostDirective.prototype, "x", {
130
+ get: function () {
131
+ return this._x;
132
+ },
133
+ set: function (x) {
134
+ this._x = x;
135
+ this.setStyle("left" /* Left */, coercion.coerceCssPixelValue(x));
136
+ },
137
+ enumerable: false,
138
+ configurable: true
139
+ });
140
+ Object.defineProperty(McGutterGhostDirective.prototype, "y", {
141
+ get: function () {
142
+ return this._y;
143
+ },
144
+ set: function (y) {
145
+ this._y = y;
146
+ this.setStyle("top" /* Top */, coercion.coerceCssPixelValue(y));
147
+ },
148
+ enumerable: false,
149
+ configurable: true
150
+ });
151
+ Object.defineProperty(McGutterGhostDirective.prototype, "direction", {
152
+ get: function () {
153
+ return this._direction;
154
+ },
155
+ set: function (direction) {
156
+ this._direction = direction;
157
+ this.updateDimensions();
158
+ },
159
+ enumerable: false,
160
+ configurable: true
161
+ });
162
+ Object.defineProperty(McGutterGhostDirective.prototype, "size", {
163
+ get: function () {
164
+ return this._size;
165
+ },
166
+ set: function (size) {
167
+ this._size = coercion.coerceNumberProperty(size);
168
+ this.updateDimensions();
169
+ },
170
+ enumerable: false,
171
+ configurable: true
172
+ });
173
+ Object.defineProperty(McGutterGhostDirective.prototype, "isVertical", {
174
+ get: function () {
175
+ return this.direction === exports.Direction.Vertical;
176
+ },
177
+ enumerable: false,
178
+ configurable: true
179
+ });
180
+ McGutterGhostDirective.prototype.updateDimensions = function () {
181
+ this.setStyle(this.isVertical ? "width" /* Width */ : "height" /* Height */, '100%');
182
+ this.setStyle(this.isVertical ? "height" /* Height */ : "width" /* Width */, coercion.coerceCssPixelValue(this.size));
183
+ };
184
+ McGutterGhostDirective.prototype.setStyle = function (property, value) {
185
+ this.renderer.setStyle(this.elementRef.nativeElement, property, value);
186
+ };
187
+ return McGutterGhostDirective;
188
+ }());
189
+ /** @nocollapse */ McGutterGhostDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McGutterGhostDirective, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Directive });
190
+ /** @nocollapse */ McGutterGhostDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterGhostDirective, selector: "mc-gutter-ghost", inputs: { visible: "visible", x: "x", y: "y", direction: "direction", size: "size" }, host: { properties: { "class.mc-gutter-ghost_vertical": "isVertical", "class.mc-gutter-ghost_visible": "visible" }, classAttribute: "mc-gutter-ghost" }, ngImport: i0__namespace });
191
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McGutterGhostDirective, decorators: [{
192
+ type: i0.Directive,
193
+ args: [{
194
+ selector: 'mc-gutter-ghost',
195
+ host: {
196
+ class: 'mc-gutter-ghost',
197
+ '[class.mc-gutter-ghost_vertical]': 'isVertical',
198
+ '[class.mc-gutter-ghost_visible]': 'visible'
199
+ }
200
+ }]
201
+ }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: i0__namespace.Renderer2 }]; }, propDecorators: { visible: [{
202
+ type: i0.Input
203
+ }], x: [{
204
+ type: i0.Input
205
+ }], y: [{
206
+ type: i0.Input
207
+ }], direction: [{
208
+ type: i0.Input
209
+ }], size: [{
210
+ type: i0.Input
211
+ }] } });
110
212
  var McSplitterComponent = /** @class */ (function () {
111
213
  function McSplitterComponent(elementRef, changeDetectorRef, ngZone, renderer) {
112
214
  this.elementRef = elementRef;
@@ -115,13 +217,22 @@
115
217
  this.renderer = renderer;
116
218
  this.gutterPositionChange = new i0.EventEmitter();
117
219
  this.areas = [];
118
- this.isDragging = false;
220
+ this._isDragging = false;
119
221
  this.areaPositionDivider = 2;
120
222
  this.listeners = [];
121
223
  this._hideGutters = false;
122
224
  this._disabled = false;
225
+ this._useGhost = false;
123
226
  this._gutterSize = 6;
227
+ this._resizing = false;
124
228
  }
229
+ Object.defineProperty(McSplitterComponent.prototype, "isDragging", {
230
+ get: function () {
231
+ return this._isDragging;
232
+ },
233
+ enumerable: false,
234
+ configurable: true
235
+ });
125
236
  Object.defineProperty(McSplitterComponent.prototype, "hideGutters", {
126
237
  get: function () {
127
238
  return this._hideGutters;
@@ -152,6 +263,16 @@
152
263
  enumerable: false,
153
264
  configurable: true
154
265
  });
266
+ Object.defineProperty(McSplitterComponent.prototype, "useGhost", {
267
+ get: function () {
268
+ return this._useGhost;
269
+ },
270
+ set: function (useGhost) {
271
+ this._useGhost = coercion.coerceBooleanProperty(useGhost);
272
+ },
273
+ enumerable: false,
274
+ configurable: true
275
+ });
155
276
  Object.defineProperty(McSplitterComponent.prototype, "gutterSize", {
156
277
  get: function () {
157
278
  return this._gutterSize;
@@ -163,6 +284,13 @@
163
284
  enumerable: false,
164
285
  configurable: true
165
286
  });
287
+ Object.defineProperty(McSplitterComponent.prototype, "resizing", {
288
+ get: function () {
289
+ return this._resizing;
290
+ },
291
+ enumerable: false,
292
+ configurable: true
293
+ });
166
294
  McSplitterComponent.prototype.addArea = function (area) {
167
295
  var index = this.areas.length;
168
296
  var order = index * this.areaPositionDivider;
@@ -187,26 +315,41 @@
187
315
  return;
188
316
  }
189
317
  event.preventDefault();
190
- var leftArea = this.areas[leftAreaIndex];
191
- var rightArea = this.areas[rightAreaIndex];
192
318
  var startPoint = {
193
319
  x: event.screenX,
194
320
  y: event.screenY
195
321
  };
322
+ var leftArea = this.areas[leftAreaIndex];
323
+ var rightArea = this.areas[rightAreaIndex];
196
324
  leftArea.initialSize = leftArea.area.getSize();
197
325
  rightArea.initialSize = rightArea.area.getSize();
198
- this.areas.forEach(function (item) {
199
- var size = item.area.getSize();
200
- item.area.disableFlex();
201
- item.area.setSize(size);
202
- });
203
- this.ngZone.runOutsideAngular(function () {
204
- _this.listeners.push(_this.renderer.listen('document', 'mouseup', function () { return _this.onMouseUp(); }));
205
- });
326
+ var currentGutter;
327
+ if (this.useGhost) {
328
+ // tslint:disable-next-line:no-magic-numbers
329
+ var gutterOrder_1 = leftAreaIndex * 2 + 1;
330
+ currentGutter = this.gutters.find(function (gutter) { return gutter.order === gutterOrder_1; });
331
+ if (currentGutter) {
332
+ var gutterPosition = currentGutter.getPosition();
333
+ this.ghost.direction = currentGutter.direction;
334
+ this.ghost.size = currentGutter.size;
335
+ this.ghost.x = gutterPosition.x;
336
+ this.ghost.y = gutterPosition.y;
337
+ this.ghost.visible = true;
338
+ this.setStyle("cursor" /* Cursor */, currentGutter.direction === exports.Direction.Vertical ? 'row-resize' : 'col-resize');
339
+ }
340
+ }
341
+ else {
342
+ this.areas.forEach(function (item) {
343
+ var size = item.area.getSize();
344
+ item.area.disableFlex();
345
+ item.area.setSize(size);
346
+ });
347
+ }
348
+ this.listeners.push(this.renderer.listen('document', 'mouseup', function () { return _this.onMouseUp(leftArea, rightArea, currentGutter); }));
206
349
  this.ngZone.runOutsideAngular(function () {
207
- _this.listeners.push(_this.renderer.listen('document', 'mousemove', function (e) { return _this.onMouseMove(e, startPoint, leftArea, rightArea); }));
350
+ _this.listeners.push(_this.renderer.listen('document', 'mousemove', function (e) { return _this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter); }));
208
351
  });
209
- this.isDragging = true;
352
+ this._isDragging = true;
210
353
  };
211
354
  McSplitterComponent.prototype.removeArea = function (area) {
212
355
  var indexToRemove = -1;
@@ -234,7 +377,7 @@
234
377
  }
235
378
  });
236
379
  };
237
- McSplitterComponent.prototype.onMouseMove = function (event, startPoint, leftArea, rightArea) {
380
+ McSplitterComponent.prototype.onMouseMove = function (event, startPoint, leftArea, rightArea, currentGutter) {
238
381
  if (!this.isDragging || this.disabled) {
239
382
  return;
240
383
  }
@@ -245,11 +388,28 @@
245
388
  var offset = this.isVertical()
246
389
  ? startPoint.y - endPoint.y
247
390
  : startPoint.x - endPoint.x;
248
- var newLeftAreaSize = leftArea.initialSize - offset;
249
- var newRightAreaSize = rightArea.initialSize + offset;
391
+ if (this.useGhost && currentGutter) {
392
+ var gutterPosition = currentGutter.getPosition();
393
+ var leftPos = leftArea.area.getPosition();
394
+ var rightPos = rightArea.area.getPosition();
395
+ var rightMin = rightArea.area.getMinSize() || 0;
396
+ var leftMin = leftArea.area.getMinSize() || 0;
397
+ var key = this.isVertical() ? 'y' : 'x';
398
+ var minPos = leftPos[key] - leftMin;
399
+ var maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;
400
+ var newPos = gutterPosition[key] - offset;
401
+ this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);
402
+ }
403
+ else {
404
+ this.resizeAreas(leftArea, rightArea, offset);
405
+ }
406
+ };
407
+ McSplitterComponent.prototype.resizeAreas = function (leftArea, rightArea, sizeOffset) {
408
+ var newLeftAreaSize = leftArea.initialSize - sizeOffset;
409
+ var newRightAreaSize = rightArea.initialSize + sizeOffset;
250
410
  var minLeftAreaSize = leftArea.area.getMinSize();
251
411
  var minRightAreaSize = rightArea.area.getMinSize();
252
- if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {
412
+ if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {
253
413
  return;
254
414
  }
255
415
  else if (newLeftAreaSize <= 0) {
@@ -265,14 +425,23 @@
265
425
  rightArea.area.setSize(newRightAreaSize);
266
426
  }
267
427
  };
268
- McSplitterComponent.prototype.onMouseUp = function () {
428
+ McSplitterComponent.prototype.onMouseUp = function (leftArea, rightArea, currentGutter) {
269
429
  while (this.listeners.length > 0) {
270
430
  var unsubscribe = this.listeners.pop();
271
431
  if (unsubscribe) {
272
432
  unsubscribe();
273
433
  }
274
434
  }
275
- this.isDragging = false;
435
+ if (this.useGhost && currentGutter) {
436
+ var gutterPosition = currentGutter.getPosition();
437
+ var offset = this.ghost.direction === exports.Direction.Vertical ?
438
+ gutterPosition.y - this.ghost.y :
439
+ gutterPosition.x - this.ghost.x;
440
+ this.resizeAreas(leftArea, rightArea, offset);
441
+ this.ghost.visible = false;
442
+ this.setStyle("cursor" /* Cursor */, 'unset');
443
+ }
444
+ this._isDragging = false;
276
445
  this.updateGutter();
277
446
  this.gutterPositionChange.emit();
278
447
  };
@@ -282,7 +451,7 @@
282
451
  return McSplitterComponent;
283
452
  }());
284
453
  /** @nocollapse */ McSplitterComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterComponent, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.NgZone }, { token: i0__namespace.Renderer2 }], target: i0__namespace.ɵɵFactoryTarget.Component });
285
- /** @nocollapse */ McSplitterComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterComponent, selector: "mc-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "mc-splitter" }, viewQueries: [{ propertyName: "gutters", predicate: McGutterDirective, descendants: true }], exportAs: ["mcSplitter"], ngImport: i0__namespace, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <mc-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </mc-gutter>\n</ng-template>\n", styles: [".mc-splitter{display:flex;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.mc-splitter .mc-splitter-area{overflow:hidden}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}\n"], directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: McGutterDirective, selector: "mc-gutter", inputs: ["direction", "order", "size"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
454
+ /** @nocollapse */ McSplitterComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterComponent, selector: "mc-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "mc-splitter" }, viewQueries: [{ propertyName: "ghost", first: true, predicate: McGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: McGutterDirective, descendants: true }], exportAs: ["mcSplitter"], ngImport: i0__namespace, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <mc-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </mc-gutter>\n</ng-template>\n\n<mc-gutter-ghost *ngIf=\"useGhost\"></mc-gutter-ghost>\n", styles: [".mc-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.mc-splitter .mc-splitter-area{overflow:hidden}.mc-splitter .mc-splitter-area_resizing{pointer-events:none}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}.mc-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.mc-gutter-ghost.mc-gutter-ghost_vertical>.mc-icon{transform:rotate(90deg)}.mc-gutter-ghost.mc-gutter-ghost_visible{display:block}\n"], directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: McGutterDirective, selector: "mc-gutter", inputs: ["direction", "order", "size"] }, { type: McGutterGhostDirective, selector: "mc-gutter-ghost", inputs: ["visible", "x", "y", "direction", "size"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
286
455
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterComponent, decorators: [{
287
456
  type: i0.Component,
288
457
  args: [{
@@ -302,12 +471,17 @@
302
471
  }], gutters: [{
303
472
  type: i0.ViewChildren,
304
473
  args: [McGutterDirective]
474
+ }], ghost: [{
475
+ type: i0.ViewChild,
476
+ args: [McGutterGhostDirective]
305
477
  }], hideGutters: [{
306
478
  type: i0.Input
307
479
  }], direction: [{
308
480
  type: i0.Input
309
481
  }], disabled: [{
310
482
  type: i0.Input
483
+ }], useGhost: [{
484
+ type: i0.Input
311
485
  }], gutterSize: [{
312
486
  type: i0.Input
313
487
  }] } });
@@ -318,6 +492,9 @@
318
492
  this.splitter = splitter;
319
493
  this.sizeChange = new i0.EventEmitter();
320
494
  }
495
+ McSplitterAreaDirective.prototype.isResizing = function () {
496
+ return this.splitter.isDragging;
497
+ };
321
498
  McSplitterAreaDirective.prototype.disableFlex = function () {
322
499
  this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');
323
500
  };
@@ -342,7 +519,7 @@
342
519
  this.setStyle("order" /* Order */, order);
343
520
  };
344
521
  McSplitterAreaDirective.prototype.setSize = function (size) {
345
- if (size) {
522
+ if (!isNaN(size)) {
346
523
  var sz = coercion.coerceNumberProperty(size);
347
524
  this.setStyle(this.getSizeProperty(), coercion.coerceCssPixelValue(sz));
348
525
  }
@@ -350,6 +527,12 @@
350
527
  McSplitterAreaDirective.prototype.getSize = function () {
351
528
  return this.elementRef.nativeElement[this.getOffsetSizeProperty()];
352
529
  };
530
+ McSplitterAreaDirective.prototype.getPosition = function () {
531
+ return {
532
+ x: this.elementRef.nativeElement.offsetLeft,
533
+ y: this.elementRef.nativeElement.offsetTop
534
+ };
535
+ };
353
536
  McSplitterAreaDirective.prototype.getMinSize = function () {
354
537
  var styles = getComputedStyle(this.elementRef.nativeElement);
355
538
  return parseFloat(styles[this.getMinSizeProperty()]);
@@ -384,13 +567,14 @@
384
567
  return McSplitterAreaDirective;
385
568
  }());
386
569
  /** @nocollapse */ McSplitterAreaDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterAreaDirective, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.Renderer2 }, { token: McSplitterComponent }], target: i0__namespace.ɵɵFactoryTarget.Directive });
387
- /** @nocollapse */ McSplitterAreaDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterAreaDirective, selector: "[mc-splitter-area]", outputs: { sizeChange: "sizeChange" }, host: { classAttribute: "mc-splitter-area" }, ngImport: i0__namespace });
570
+ /** @nocollapse */ McSplitterAreaDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterAreaDirective, selector: "[mc-splitter-area]", outputs: { sizeChange: "sizeChange" }, host: { properties: { "class.mc-splitter-area_resizing": "isResizing()" }, classAttribute: "mc-splitter-area" }, ngImport: i0__namespace });
388
571
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterAreaDirective, decorators: [{
389
572
  type: i0.Directive,
390
573
  args: [{
391
574
  selector: '[mc-splitter-area]',
392
575
  host: {
393
- class: 'mc-splitter-area'
576
+ class: 'mc-splitter-area',
577
+ '[class.mc-splitter-area_resizing]': 'isResizing()'
394
578
  }
395
579
  }]
396
580
  }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: i0__namespace.Renderer2 }, { type: McSplitterComponent }]; }, propDecorators: { sizeChange: [{
@@ -404,6 +588,7 @@
404
588
  }());
405
589
  /** @nocollapse */ McSplitterModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
406
590
  /** @nocollapse */ McSplitterModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0__namespace, type: McSplitterModule, declarations: [McGutterDirective,
591
+ McGutterGhostDirective,
407
592
  McSplitterAreaDirective,
408
593
  McSplitterComponent], imports: [i1.CommonModule,
409
594
  icon.McIconModule], exports: [McGutterDirective,
@@ -427,6 +612,7 @@
427
612
  ],
428
613
  declarations: [
429
614
  McGutterDirective,
615
+ McGutterGhostDirective,
430
616
  McSplitterAreaDirective,
431
617
  McSplitterComponent
432
618
  ]
@@ -438,6 +624,7 @@
438
624
  */
439
625
 
440
626
  exports.McGutterDirective = McGutterDirective;
627
+ exports.McGutterGhostDirective = McGutterGhostDirective;
441
628
  exports.McSplitterAreaDirective = McSplitterAreaDirective;
442
629
  exports.McSplitterComponent = McSplitterComponent;
443
630
  exports.McSplitterModule = McSplitterModule;
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-splitter.umd.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.component.html","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange(): void {\n this.sizeChange.emit(this.getSize());\n }\n}\n","<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <mc-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </mc-gutter>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Direction","coerceNumberProperty","coerceCssPixelValue","Directive","Input","EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","Output","ViewChildren","CommonModule","McIconModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-splitter.umd.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.component.html","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width',\n Top = 'top',\n Left = 'left',\n Cursor = 'cursor'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this._direction === Direction.Vertical;\n }\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical ? 'row' : 'column');\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: 'mc-gutter-ghost',\n host: {\n class: 'mc-gutter-ghost',\n '[class.mc-gutter-ghost_vertical]': 'isVertical',\n '[class.mc-gutter-ghost_visible]': 'visible'\n }\n})\nexport class McGutterGhostDirective {\n @Input() visible: boolean;\n\n get x(): number {\n return this._x;\n }\n\n @Input()\n set x(x: number) {\n this._x = x;\n this.setStyle(StyleProperty.Left, coerceCssPixelValue(x));\n }\n\n private _x: number = 0;\n\n get y(): number {\n return this._y;\n }\n\n @Input()\n set y(y: number) {\n this._y = y;\n this.setStyle(StyleProperty.Top, coerceCssPixelValue(y));\n }\n\n private _y: number = 0;\n\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n this.updateDimensions();\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n this.updateDimensions();\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private updateDimensions(): void {\n this.setStyle(this.isVertical ? StyleProperty.Width : StyleProperty.Height, '100%');\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n @ViewChild(McGutterGhostDirective) ghost: McGutterGhostDirective;\n\n get isDragging(): boolean {\n return this._isDragging;\n }\n private _isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get useGhost(): boolean {\n return this._useGhost;\n }\n\n @Input()\n set useGhost(useGhost: boolean) {\n this._useGhost = coerceBooleanProperty(useGhost);\n }\n\n private _useGhost: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n get resizing(): boolean {\n return this._resizing;\n }\n\n private _resizing: boolean = false;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n let currentGutter: McGutterDirective | undefined;\n\n if (this.useGhost) {\n // tslint:disable-next-line:no-magic-numbers\n const gutterOrder = leftAreaIndex * 2 + 1;\n currentGutter = this.gutters.find((gutter: McGutterDirective) => gutter.order === gutterOrder);\n\n if (currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n\n this.ghost.direction = currentGutter.direction;\n this.ghost.size = currentGutter.size;\n this.ghost.x = gutterPosition.x;\n this.ghost.y = gutterPosition.y;\n\n this.ghost.visible = true;\n this.setStyle(StyleProperty.Cursor, currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize');\n }\n } else {\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n }\n\n\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp(leftArea, rightArea, currentGutter)\n )\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter)\n )\n );\n });\n\n this._isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n private onMouseMove(event: MouseEvent,\n startPoint: IPoint,\n leftArea: IArea,\n rightArea: IArea,\n currentGutter: McGutterDirective | undefined) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const leftPos = leftArea.area.getPosition();\n const rightPos = rightArea.area.getPosition();\n const rightMin = rightArea.area.getMinSize() || 0;\n const leftMin = leftArea.area.getMinSize() || 0;\n\n const key = this.isVertical() ? 'y' : 'x';\n\n const minPos = leftPos[key] - leftMin;\n\n const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;\n\n const newPos = gutterPosition[key] - offset;\n\n this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);\n\n } else {\n this.resizeAreas(leftArea, rightArea, offset);\n }\n }\n\n private resizeAreas(leftArea: IArea, rightArea: IArea, sizeOffset: number): void {\n const newLeftAreaSize = leftArea.initialSize - sizeOffset;\n const newRightAreaSize = rightArea.initialSize + sizeOffset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp(leftArea: IArea,\n rightArea: IArea,\n currentGutter: McGutterDirective | undefined) {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const offset = this.ghost.direction === Direction.Vertical ?\n gutterPosition.y - this.ghost.y :\n gutterPosition.x - this.ghost.x;\n this.resizeAreas(leftArea, rightArea, offset);\n this.ghost.visible = false;\n this.setStyle(StyleProperty.Cursor, 'unset');\n }\n this._isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area',\n '[class.mc-splitter-area_resizing]': 'isResizing()'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) { }\n\n isResizing(): boolean {\n return this.splitter.isDragging;\n }\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (!isNaN(size)) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange(): void {\n this.sizeChange.emit(this.getSize());\n }\n}\n","<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <mc-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </mc-gutter>\n</ng-template>\n\n<mc-gutter-ghost *ngIf=\"useGhost\"></mc-gutter-ghost>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport {\n McGutterDirective,\n McGutterGhostDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n} from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McGutterGhostDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Direction","coerceNumberProperty","coerceCssPixelValue","Directive","Input","EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","Output","ViewChildren","ViewChild","CommonModule","McIconModule","NgModule"],"mappings":"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"}