@mintplayer/ng-bootstrap 21.22.0 → 21.23.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 (182) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +20 -20
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +8 -8
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +5 -5
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +6 -6
  8. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +4 -4
  12. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
  14. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +10 -10
  16. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +8 -8
  18. package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +25 -25
  20. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +3 -3
  22. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  24. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +58 -58
  26. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
  28. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +3 -3
  30. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +4 -4
  32. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +20 -20
  34. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +6 -6
  36. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +789 -1175
  38. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
  40. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  42. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +15 -15
  44. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
  46. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
  48. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +16 -16
  50. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
  52. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
  54. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +4 -4
  56. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +11 -11
  58. package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +26 -26
  60. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -4
  62. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
  64. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
  66. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
  68. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +14 -14
  70. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +4 -4
  72. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
  74. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +7 -7
  76. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -12
  78. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
  80. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +24 -24
  82. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +24 -24
  84. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +5 -5
  86. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +58 -58
  88. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -8
  90. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
  92. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +40 -40
  94. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -3
  96. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +12 -12
  98. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +6 -6
  100. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +7 -7
  102. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +5 -5
  104. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  105. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +20 -20
  106. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  107. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +30 -30
  108. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
  109. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +17 -17
  110. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  111. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +9 -9
  112. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  113. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +7 -7
  114. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  115. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +25 -25
  116. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  117. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -16
  118. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  119. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +14 -14
  120. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  121. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +24 -24
  122. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  123. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +19 -19
  124. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  125. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +20 -20
  126. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  127. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +11 -11
  128. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  129. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +7 -7
  130. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  131. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
  132. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  133. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  134. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  135. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
  136. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  137. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +6 -6
  138. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  139. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +57 -67
  140. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  141. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -10
  142. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  143. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +8 -8
  144. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  145. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +24 -24
  146. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  147. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +22 -22
  148. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  149. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  150. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  151. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +14 -14
  152. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  153. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -3
  154. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  155. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +10 -10
  156. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  157. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
  158. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  159. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
  160. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  161. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs +3 -3
  162. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs.map +1 -1
  163. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +10 -10
  164. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
  165. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs +1356 -0
  166. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs.map +1 -0
  167. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +3819 -0
  168. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -0
  169. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +731 -0
  170. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -0
  171. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +549 -0
  172. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -0
  173. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
  174. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  175. package/package.json +20 -6
  176. package/types/mintplayer-ng-bootstrap-dock.d.ts +55 -19
  177. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +2 -2
  178. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +7 -11
  179. package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +890 -0
  180. package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +354 -0
  181. package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +165 -0
  182. package/types/mintplayer-ng-bootstrap-web-components-tab-control.d.ts +95 -0
@@ -7,9 +7,9 @@ class BsResizeGlyphDirective {
7
7
  constructor() {
8
8
  // Can't use typed DI because of the `import type`
9
9
  this.resizable = inject(RESIZABLE);
10
- this.positions = signal('', ...(ngDevMode ? [{ debugName: "positions" }] : []));
11
- this.activeClass = signal(false, ...(ngDevMode ? [{ debugName: "activeClass" }] : []));
12
- this.bsResizeGlyph = input([], ...(ngDevMode ? [{ debugName: "bsResizeGlyph" }] : []));
10
+ this.positions = signal('', ...(ngDevMode ? [{ debugName: "positions" }] : /* istanbul ignore next */ []));
11
+ this.activeClass = signal(false, ...(ngDevMode ? [{ debugName: "activeClass" }] : /* istanbul ignore next */ []));
12
+ this.bsResizeGlyph = input([], ...(ngDevMode ? [{ debugName: "bsResizeGlyph" }] : /* istanbul ignore next */ []));
13
13
  this.isBusy = false;
14
14
  effect(() => {
15
15
  const value = this.bsResizeGlyph();
@@ -197,10 +197,10 @@ class BsResizeGlyphDirective {
197
197
  this.resizable.resizeAction = undefined;
198
198
  this.activeClass.set(false);
199
199
  }
200
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizeGlyphDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
201
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: BsResizeGlyphDirective, isStandalone: true, selector: "[bsResizeGlyph]", inputs: { bsResizeGlyph: { classPropertyName: "bsResizeGlyph", publicName: "bsResizeGlyph", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "onMouseDown($event)", "touchstart": "onTouchStart($event)", "document:mousemove": "onMouseMove($event)", "touchmove": "onTouchMove($event)", "document:mouseup": "onMouseUp($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "positions()", "class.glyph": "true", "class.active": "activeClass()" } }, ngImport: i0 }); }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsResizeGlyphDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
201
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: BsResizeGlyphDirective, isStandalone: true, selector: "[bsResizeGlyph]", inputs: { bsResizeGlyph: { classPropertyName: "bsResizeGlyph", publicName: "bsResizeGlyph", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousedown": "onMouseDown($event)", "touchstart": "onTouchStart($event)", "document:mousemove": "onMouseMove($event)", "touchmove": "onTouchMove($event)", "document:mouseup": "onMouseUp($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "positions()", "class.glyph": "true", "class.active": "activeClass()" } }, ngImport: i0 }); }
202
202
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizeGlyphDirective, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsResizeGlyphDirective, decorators: [{
204
204
  type: Directive,
205
205
  args: [{
206
206
  selector: '[bsResizeGlyph]',
@@ -221,34 +221,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
221
221
  class BsResizableComponent {
222
222
  constructor() {
223
223
  this.element = inject((ElementRef));
224
- this.positioning = input('inline', ...(ngDevMode ? [{ debugName: "positioning" }] : []));
225
- this.horizontal = input(true, ...(ngDevMode ? [{ debugName: "horizontal" }] : []));
226
- this.vertical = input(true, ...(ngDevMode ? [{ debugName: "vertical" }] : []));
227
- this.corners = input(true, ...(ngDevMode ? [{ debugName: "corners" }] : []));
228
- this.showCorners = computed(() => this.horizontal() && this.vertical() && this.corners(), ...(ngDevMode ? [{ debugName: "showCorners" }] : []));
224
+ this.positioning = input('inline', ...(ngDevMode ? [{ debugName: "positioning" }] : /* istanbul ignore next */ []));
225
+ this.horizontal = input(true, ...(ngDevMode ? [{ debugName: "horizontal" }] : /* istanbul ignore next */ []));
226
+ this.vertical = input(true, ...(ngDevMode ? [{ debugName: "vertical" }] : /* istanbul ignore next */ []));
227
+ this.corners = input(true, ...(ngDevMode ? [{ debugName: "corners" }] : /* istanbul ignore next */ []));
228
+ this.showCorners = computed(() => this.horizontal() && this.vertical() && this.corners(), ...(ngDevMode ? [{ debugName: "showCorners" }] : /* istanbul ignore next */ []));
229
229
  this.hostPosition = computed(() => {
230
230
  const positioning = this.positioning();
231
231
  switch (positioning) {
232
232
  case 'absolute': return 'position-absolute';
233
233
  case 'inline': return 'position-relative';
234
234
  }
235
- }, ...(ngDevMode ? [{ debugName: "hostPosition" }] : []));
235
+ }, ...(ngDevMode ? [{ debugName: "hostPosition" }] : /* istanbul ignore next */ []));
236
236
  this.wrapperPosition = computed(() => {
237
237
  const positioning = this.positioning();
238
238
  switch (positioning) {
239
239
  case 'absolute': return ['position-relative', 'h-100'];
240
240
  case 'inline': return [];
241
241
  }
242
- }, ...(ngDevMode ? [{ debugName: "wrapperPosition" }] : []));
243
- this.presetPosition = input(undefined, ...(ngDevMode ? [{ debugName: "presetPosition" }] : []));
244
- this.marginLeft = signal(undefined, ...(ngDevMode ? [{ debugName: "marginLeft" }] : []));
245
- this.marginRight = signal(undefined, ...(ngDevMode ? [{ debugName: "marginRight" }] : []));
246
- this.marginTop = signal(undefined, ...(ngDevMode ? [{ debugName: "marginTop" }] : []));
247
- this.marginBottom = signal(undefined, ...(ngDevMode ? [{ debugName: "marginBottom" }] : []));
248
- this.width = signal(undefined, ...(ngDevMode ? [{ debugName: "width" }] : []));
249
- this.height = signal(undefined, ...(ngDevMode ? [{ debugName: "height" }] : []));
250
- this.left = signal(undefined, ...(ngDevMode ? [{ debugName: "left" }] : []));
251
- this.top = signal(undefined, ...(ngDevMode ? [{ debugName: "top" }] : []));
242
+ }, ...(ngDevMode ? [{ debugName: "wrapperPosition" }] : /* istanbul ignore next */ []));
243
+ this.presetPosition = input(undefined, ...(ngDevMode ? [{ debugName: "presetPosition" }] : /* istanbul ignore next */ []));
244
+ this.marginLeft = signal(undefined, ...(ngDevMode ? [{ debugName: "marginLeft" }] : /* istanbul ignore next */ []));
245
+ this.marginRight = signal(undefined, ...(ngDevMode ? [{ debugName: "marginRight" }] : /* istanbul ignore next */ []));
246
+ this.marginTop = signal(undefined, ...(ngDevMode ? [{ debugName: "marginTop" }] : /* istanbul ignore next */ []));
247
+ this.marginBottom = signal(undefined, ...(ngDevMode ? [{ debugName: "marginBottom" }] : /* istanbul ignore next */ []));
248
+ this.width = signal(undefined, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
249
+ this.height = signal(undefined, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
250
+ this.left = signal(undefined, ...(ngDevMode ? [{ debugName: "left" }] : /* istanbul ignore next */ []));
251
+ this.top = signal(undefined, ...(ngDevMode ? [{ debugName: "top" }] : /* istanbul ignore next */ []));
252
252
  effect(() => {
253
253
  const value = this.presetPosition();
254
254
  if (value) {
@@ -266,12 +266,12 @@ class BsResizableComponent {
266
266
  }
267
267
  });
268
268
  }
269
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
270
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsResizableComponent, isStandalone: true, selector: "bs-resizable", inputs: { positioning: { classPropertyName: "positioning", publicName: "positioning", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, corners: { classPropertyName: "corners", publicName: "corners", isSignal: true, isRequired: false, transformFunction: null }, presetPosition: { classPropertyName: "presetPosition", publicName: "presetPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.margin-left.px": "marginLeft()", "style.margin-right.px": "marginRight()", "style.margin-top.px": "marginTop()", "style.margin-bottom.px": "marginBottom()", "style.width.px": "width()", "style.height.px": "height()", "style.left.px": "left()", "style.top.px": "top()", "class.d-block": "true", "class.border": "true", "class": "hostPosition()" } }, providers: [
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsResizableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsResizableComponent, isStandalone: true, selector: "bs-resizable", inputs: { positioning: { classPropertyName: "positioning", publicName: "positioning", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, corners: { classPropertyName: "corners", publicName: "corners", isSignal: true, isRequired: false, transformFunction: null }, presetPosition: { classPropertyName: "presetPosition", publicName: "presetPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.margin-left.px": "marginLeft()", "style.margin-right.px": "marginRight()", "style.margin-top.px": "marginTop()", "style.margin-bottom.px": "marginBottom()", "style.width.px": "width()", "style.height.px": "height()", "style.left.px": "left()", "style.top.px": "top()", "class.d-block": "true", "class.border": "true", "class": "hostPosition()" } }, providers: [
271
271
  { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
272
272
  ], ngImport: i0, template: "<div [class]=\"wrapperPosition()\" class=\"h-100\">\n @if (showCorners()) {\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n }\n @if (vertical()) {\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n }\n @if (horizontal()) {\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n }\n <ng-content></ng-content>\n</div>", styles: [".glyph:before{content:\"\";width:8px;height:8px;display:block;border-radius:4px;transition:background-color .2s ease-in-out}.glyph{position:absolute;width:14px;height:14px;z-index:20}.glyph.top{top:-7px}.glyph.start{left:-7px}.glyph.bottom{bottom:-7px}.glyph.end{right:-7px}.glyph.start:not(.top):not(.bottom),.glyph.end:not(.top):not(.bottom){top:4px;height:calc(100% - 8px)}.glyph.start:not(.top):not(.bottom):before,.glyph.end:not(.top):not(.bottom):before{display:block;height:100%}.glyph.start:before,.glyph.end:before{margin-left:3px;margin-right:3px}.glyph.top:not(.start):not(.end),.glyph.bottom:not(.start):not(.end){left:4px;width:calc(100% - 8px)}.glyph.top:not(.start):not(.end):before,.glyph.bottom:not(.start):not(.end):before{display:block;width:100%}.glyph.top:before,.glyph.bottom:before{margin-top:3px;margin-bottom:3px}.glyph:hover:before,.glyph.active:before{background-color:#1389fd}:host{min-width:2rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: BsResizeGlyphDirective, selector: "[bsResizeGlyph]", inputs: ["bsResizeGlyph"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
273
273
  }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsResizableComponent, decorators: [{
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsResizableComponent, decorators: [{
275
275
  type: Component,
276
276
  args: [{ selector: 'bs-resizable', imports: [BsResizeGlyphDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
277
277
  { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }
@@ -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/mintplayer-ng-bootstrap-resizable.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { BsResizableComponent } from \"../resizable/resizable.component\";\n\nexport const RESIZABLE = new InjectionToken<BsResizableComponent>('Resizable');","import { Directive, effect, inject, input, signal, forwardRef } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport type { BsResizableComponent } from '../resizable/resizable.component';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { PointerData } from '../interfaces/pointer-data';\nimport { RESIZABLE } from '../providers/resizable.provider';\n\n@Directive({\n selector: '[bsResizeGlyph]',\n host: {\n '[class]': 'positions()',\n '[class.glyph]': 'true',\n '[class.active]': 'activeClass()',\n '(mousedown)': 'onMouseDown($event)',\n '(touchstart)': 'onTouchStart($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(touchmove)': 'onTouchMove($event)',\n '(document:mouseup)': 'onMouseUp($event)',\n '(touchend)': 'onTouchEnd($event)',\n },\n})\nexport class BsResizeGlyphDirective {\n\n // Can't use typed DI because of the `import type`\n private readonly resizable: BsResizableComponent = inject(RESIZABLE);\n\n constructor() {\n effect(() => {\n const value = this.bsResizeGlyph();\n this.positions.set(value.join(' '));\n });\n }\n\n positions = signal('');\n activeClass = signal(false);\n\n readonly bsResizeGlyph = input<Position[]>([]);\n\n onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.onPointerDown()\n }\n\n onTouchStart(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerDown();\n }\n\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove({ clientX: ev.clientX, clientY: ev.clientY, preventDefault: () => ev.preventDefault() });\n }\n\n onTouchMove(ev: TouchEvent) {\n if (ev.touches.length === 1) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerMove({ clientX: ev.touches[0].clientX, clientY: ev.touches[0].clientY, preventDefault: () => ev.preventDefault() });\n }\n }\n\n onMouseUp(ev: Event) {\n this.onPointerUp();\n }\n\n onTouchEnd(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerUp();\n }\n\n onPointerDown() {\n let action: ResizeAction = {\n positioning: this.resizable.positioning()\n };\n const rect = this.resizable.element.nativeElement.getBoundingClientRect();\n const styles = window.getComputedStyle(this.resizable.element.nativeElement);\n\n const marginLeft = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));\n const marginRight = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));\n const marginTop = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));\n const marginBottom = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));\n\n\n if (this.positions()?.includes('start')) {\n action = {\n ...action,\n end: {\n edge: rect.right,\n size: rect.width,\n margin: marginRight,\n dragMargin: marginLeft\n },\n };\n }\n if (this.positions()?.includes('end')) {\n action = {\n ...action,\n start: {\n edge: rect.left,\n size: rect.width,\n margin: marginLeft,\n dragMargin: marginRight\n },\n };\n }\n if (this.positions()?.includes('top')) {\n action = {\n ...action,\n bottom: {\n edge: rect.bottom,\n size: rect.height,\n margin: marginBottom,\n dragMargin: marginTop\n },\n };\n }\n if (this.positions()?.includes('bottom')) {\n action = {\n ...action,\n top: {\n edge: rect.top,\n size: rect.height,\n margin: marginTop,\n dragMargin: marginBottom\n },\n };\n }\n\n this.resizable.resizeAction = action;\n this.activeClass.set(true);\n }\n\n private isBusy = false;\n onPointerMove(ev: PointerData) {\n if (this.resizable.resizeAction && !this.isBusy) {\n ev.preventDefault();\n this.isBusy = true;\n const action = this.resizable.resizeAction;\n // Note: the live bounding rect must NOT be used in the size/margin math.\n // Reading it per-frame creates a feedback loop when content inside the\n // host changes layout during the drag (e.g. a child component that\n // shows/hides items in response to width). Use the captured `action`\n // values from pointer-down — they're stable for the duration of the drag.\n\n if (action.start && this.positions()?.includes('end')) {\n // Right glyph — fixed left edge\n const initialLeft = action.start.edge;\n const initialRight = action.start.edge + action.start.size;\n const x = (ev.clientX < initialLeft + 10) ? initialLeft + 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.start.dragMargin ?? 0;\n this.resizable.marginRight.set(initialMargin + (initialRight - x));\n } break;\n case 'absolute': {\n this.resizable.width.set(x - initialLeft);\n } break;\n }\n } else if (action.end && this.positions()?.includes('start')) {\n // Left glyph — fixed right edge\n const initialRight = action.end.edge;\n const initialLeft = action.end.edge - action.end.size;\n const x = (ev.clientX > initialRight - 10) ? initialRight - 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.end.dragMargin ?? 0;\n this.resizable.marginLeft.set(initialMargin + (x - initialLeft));\n } break;\n case 'absolute': {\n this.resizable.left.set(x);\n this.resizable.width.set(initialRight - x);\n } break;\n }\n }\n\n if (action.top && this.positions()?.includes('bottom')) {\n // Bottom glyph — fixed top edge. action.top.edge = captured rect.top\n const initialTop = action.top.edge;\n const initialBottom = action.top.edge + action.top.size;\n const y = (ev.clientY < initialTop + 10) ? initialTop + 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.top.dragMargin ?? 0;\n this.resizable.height.set(y - initialTop);\n this.resizable.marginBottom.set(initialMargin + (initialBottom - y));\n } break;\n case 'absolute': {\n this.resizable.height.set(y - initialTop);\n } break;\n }\n } else if (action.bottom && this.positions()?.includes('top')) {\n // Top glyph — fixed bottom edge. action.bottom.edge = captured rect.bottom\n const initialBottom = action.bottom.edge;\n const initialTop = action.bottom.edge - action.bottom.size;\n const y = (ev.clientY > initialBottom - 10) ? initialBottom - 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.bottom.dragMargin ?? 0;\n this.resizable.height.set(initialBottom - y);\n this.resizable.marginTop.set(initialMargin + (y - initialTop));\n } break;\n case 'absolute': {\n this.resizable.top.set(y);\n this.resizable.height.set(initialBottom - y);\n } break;\n }\n }\n this.isBusy = false;\n }\n }\n \n onPointerUp() {\n this.resizable.resizeAction = undefined;\n this.activeClass.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, forwardRef, signal } from '@angular/core';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\nimport { ResizablePositioning } from '../types/positioning';\nimport { PresetPosition } from '../interfaces/preset-position';\nimport { BsResizeGlyphDirective } from '../resize-glyph/resize-glyph.directive';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n imports: [BsResizeGlyphDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ],\n host: {\n '[style.margin-left.px]': 'marginLeft()',\n '[style.margin-right.px]': 'marginRight()',\n '[style.margin-top.px]': 'marginTop()',\n '[style.margin-bottom.px]': 'marginBottom()',\n '[style.width.px]': 'width()',\n '[style.height.px]': 'height()',\n '[style.left.px]': 'left()',\n '[style.top.px]': 'top()',\n '[class.d-block]': 'true',\n '[class.border]': 'true',\n '[class]': 'hostPosition()',\n },\n})\nexport class BsResizableComponent {\n element = inject(ElementRef<HTMLElement>);\n\n resizeAction?: ResizeAction;\n positioning = input<ResizablePositioning>('inline');\n horizontal = input(true);\n vertical = input(true);\n corners = input(true);\n\n showCorners = computed(() => this.horizontal() && this.vertical() && this.corners());\n\n hostPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return 'position-absolute';\n case 'inline': return 'position-relative';\n }\n });\n\n wrapperPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return ['position-relative', 'h-100'];\n case 'inline': return [];\n }\n });\n\n readonly presetPosition = input<PresetPosition | undefined>(undefined);\n\n constructor() {\n effect(() => {\n const value = this.presetPosition();\n if (value) {\n if (this.positioning() === 'inline') {\n throw 'presetPosition currently only supported in absolute positioning';\n }\n this.width.set(value.width);\n this.height.set(value.height);\n this.left.set(value.left);\n this.top.set(value.top);\n this.marginTop.set(undefined);\n this.marginBottom.set(undefined);\n this.marginLeft.set(undefined);\n this.marginRight.set(undefined);\n }\n });\n }\n\n marginLeft = signal<number | undefined>(undefined);\n marginRight = signal<number | undefined>(undefined);\n marginTop = signal<number | undefined>(undefined);\n marginBottom = signal<number | undefined>(undefined);\n width = signal<number | undefined>(undefined);\n height = signal<number | undefined>(undefined);\n left = signal<number | undefined>(undefined);\n top = signal<number | undefined>(undefined);\n}\n","<div [class]=\"wrapperPosition()\" class=\"h-100\">\n @if (showCorners()) {\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n }\n @if (vertical()) {\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n }\n @if (horizontal()) {\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n }\n <ng-content></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-resizable.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/resizable/src/providers/resizable.provider.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resize-glyph/resize-glyph.directive.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.ts","../../../../libs/mintplayer-ng-bootstrap/resizable/src/resizable/resizable.component.html","../../../../libs/mintplayer-ng-bootstrap/resizable/mintplayer-ng-bootstrap-resizable.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { BsResizableComponent } from \"../resizable/resizable.component\";\n\nexport const RESIZABLE = new InjectionToken<BsResizableComponent>('Resizable');","import { Directive, effect, inject, input, signal, forwardRef } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport type { BsResizableComponent } from '../resizable/resizable.component';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { PointerData } from '../interfaces/pointer-data';\nimport { RESIZABLE } from '../providers/resizable.provider';\n\n@Directive({\n selector: '[bsResizeGlyph]',\n host: {\n '[class]': 'positions()',\n '[class.glyph]': 'true',\n '[class.active]': 'activeClass()',\n '(mousedown)': 'onMouseDown($event)',\n '(touchstart)': 'onTouchStart($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(touchmove)': 'onTouchMove($event)',\n '(document:mouseup)': 'onMouseUp($event)',\n '(touchend)': 'onTouchEnd($event)',\n },\n})\nexport class BsResizeGlyphDirective {\n\n // Can't use typed DI because of the `import type`\n private readonly resizable: BsResizableComponent = inject(RESIZABLE);\n\n constructor() {\n effect(() => {\n const value = this.bsResizeGlyph();\n this.positions.set(value.join(' '));\n });\n }\n\n positions = signal('');\n activeClass = signal(false);\n\n readonly bsResizeGlyph = input<Position[]>([]);\n\n onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.onPointerDown()\n }\n\n onTouchStart(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerDown();\n }\n\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove({ clientX: ev.clientX, clientY: ev.clientY, preventDefault: () => ev.preventDefault() });\n }\n\n onTouchMove(ev: TouchEvent) {\n if (ev.touches.length === 1) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerMove({ clientX: ev.touches[0].clientX, clientY: ev.touches[0].clientY, preventDefault: () => ev.preventDefault() });\n }\n }\n\n onMouseUp(ev: Event) {\n this.onPointerUp();\n }\n\n onTouchEnd(ev: TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.onPointerUp();\n }\n\n onPointerDown() {\n let action: ResizeAction = {\n positioning: this.resizable.positioning()\n };\n const rect = this.resizable.element.nativeElement.getBoundingClientRect();\n const styles = window.getComputedStyle(this.resizable.element.nativeElement);\n\n const marginLeft = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginLeft.slice(0, -2));\n const marginRight = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginRight.slice(0, -2));\n const marginTop = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginTop.slice(0, -2));\n const marginBottom = (this.resizable.positioning() === 'absolute') ? undefined : parseFloat(styles.marginBottom.slice(0, -2));\n\n\n if (this.positions()?.includes('start')) {\n action = {\n ...action,\n end: {\n edge: rect.right,\n size: rect.width,\n margin: marginRight,\n dragMargin: marginLeft\n },\n };\n }\n if (this.positions()?.includes('end')) {\n action = {\n ...action,\n start: {\n edge: rect.left,\n size: rect.width,\n margin: marginLeft,\n dragMargin: marginRight\n },\n };\n }\n if (this.positions()?.includes('top')) {\n action = {\n ...action,\n bottom: {\n edge: rect.bottom,\n size: rect.height,\n margin: marginBottom,\n dragMargin: marginTop\n },\n };\n }\n if (this.positions()?.includes('bottom')) {\n action = {\n ...action,\n top: {\n edge: rect.top,\n size: rect.height,\n margin: marginTop,\n dragMargin: marginBottom\n },\n };\n }\n\n this.resizable.resizeAction = action;\n this.activeClass.set(true);\n }\n\n private isBusy = false;\n onPointerMove(ev: PointerData) {\n if (this.resizable.resizeAction && !this.isBusy) {\n ev.preventDefault();\n this.isBusy = true;\n const action = this.resizable.resizeAction;\n // Note: the live bounding rect must NOT be used in the size/margin math.\n // Reading it per-frame creates a feedback loop when content inside the\n // host changes layout during the drag (e.g. a child component that\n // shows/hides items in response to width). Use the captured `action`\n // values from pointer-down — they're stable for the duration of the drag.\n\n if (action.start && this.positions()?.includes('end')) {\n // Right glyph — fixed left edge\n const initialLeft = action.start.edge;\n const initialRight = action.start.edge + action.start.size;\n const x = (ev.clientX < initialLeft + 10) ? initialLeft + 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.start.dragMargin ?? 0;\n this.resizable.marginRight.set(initialMargin + (initialRight - x));\n } break;\n case 'absolute': {\n this.resizable.width.set(x - initialLeft);\n } break;\n }\n } else if (action.end && this.positions()?.includes('start')) {\n // Left glyph — fixed right edge\n const initialRight = action.end.edge;\n const initialLeft = action.end.edge - action.end.size;\n const x = (ev.clientX > initialRight - 10) ? initialRight - 10 : ev.clientX;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.end.dragMargin ?? 0;\n this.resizable.marginLeft.set(initialMargin + (x - initialLeft));\n } break;\n case 'absolute': {\n this.resizable.left.set(x);\n this.resizable.width.set(initialRight - x);\n } break;\n }\n }\n\n if (action.top && this.positions()?.includes('bottom')) {\n // Bottom glyph — fixed top edge. action.top.edge = captured rect.top\n const initialTop = action.top.edge;\n const initialBottom = action.top.edge + action.top.size;\n const y = (ev.clientY < initialTop + 10) ? initialTop + 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.top.dragMargin ?? 0;\n this.resizable.height.set(y - initialTop);\n this.resizable.marginBottom.set(initialMargin + (initialBottom - y));\n } break;\n case 'absolute': {\n this.resizable.height.set(y - initialTop);\n } break;\n }\n } else if (action.bottom && this.positions()?.includes('top')) {\n // Top glyph — fixed bottom edge. action.bottom.edge = captured rect.bottom\n const initialBottom = action.bottom.edge;\n const initialTop = action.bottom.edge - action.bottom.size;\n const y = (ev.clientY > initialBottom - 10) ? initialBottom - 10 : ev.clientY;\n switch (this.resizable.positioning()) {\n case 'inline': {\n const initialMargin = action.bottom.dragMargin ?? 0;\n this.resizable.height.set(initialBottom - y);\n this.resizable.marginTop.set(initialMargin + (y - initialTop));\n } break;\n case 'absolute': {\n this.resizable.top.set(y);\n this.resizable.height.set(initialBottom - y);\n } break;\n }\n }\n this.isBusy = false;\n }\n }\n \n onPointerUp() {\n this.resizable.resizeAction = undefined;\n this.activeClass.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, forwardRef, signal } from '@angular/core';\nimport { ResizeAction } from '../interfaces/resize-action';\nimport { RESIZABLE } from '../providers/resizable.provider';\nimport { ResizablePositioning } from '../types/positioning';\nimport { PresetPosition } from '../interfaces/preset-position';\nimport { BsResizeGlyphDirective } from '../resize-glyph/resize-glyph.directive';\n\n@Component({\n selector: 'bs-resizable',\n templateUrl: './resizable.component.html',\n styleUrls: ['./resizable.component.scss'],\n imports: [BsResizeGlyphDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: RESIZABLE, useExisting: forwardRef(() => BsResizableComponent) }\n ],\n host: {\n '[style.margin-left.px]': 'marginLeft()',\n '[style.margin-right.px]': 'marginRight()',\n '[style.margin-top.px]': 'marginTop()',\n '[style.margin-bottom.px]': 'marginBottom()',\n '[style.width.px]': 'width()',\n '[style.height.px]': 'height()',\n '[style.left.px]': 'left()',\n '[style.top.px]': 'top()',\n '[class.d-block]': 'true',\n '[class.border]': 'true',\n '[class]': 'hostPosition()',\n },\n})\nexport class BsResizableComponent {\n element = inject(ElementRef<HTMLElement>);\n\n resizeAction?: ResizeAction;\n positioning = input<ResizablePositioning>('inline');\n horizontal = input(true);\n vertical = input(true);\n corners = input(true);\n\n showCorners = computed(() => this.horizontal() && this.vertical() && this.corners());\n\n hostPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return 'position-absolute';\n case 'inline': return 'position-relative';\n }\n });\n\n wrapperPosition = computed(() => {\n const positioning = this.positioning();\n switch (positioning) {\n case 'absolute': return ['position-relative', 'h-100'];\n case 'inline': return [];\n }\n });\n\n readonly presetPosition = input<PresetPosition | undefined>(undefined);\n\n constructor() {\n effect(() => {\n const value = this.presetPosition();\n if (value) {\n if (this.positioning() === 'inline') {\n throw 'presetPosition currently only supported in absolute positioning';\n }\n this.width.set(value.width);\n this.height.set(value.height);\n this.left.set(value.left);\n this.top.set(value.top);\n this.marginTop.set(undefined);\n this.marginBottom.set(undefined);\n this.marginLeft.set(undefined);\n this.marginRight.set(undefined);\n }\n });\n }\n\n marginLeft = signal<number | undefined>(undefined);\n marginRight = signal<number | undefined>(undefined);\n marginTop = signal<number | undefined>(undefined);\n marginBottom = signal<number | undefined>(undefined);\n width = signal<number | undefined>(undefined);\n height = signal<number | undefined>(undefined);\n left = signal<number | undefined>(undefined);\n top = signal<number | undefined>(undefined);\n}\n","<div [class]=\"wrapperPosition()\" class=\"h-100\">\n @if (showCorners()) {\n <div class=\"cursor-nw-resize\" [bsResizeGlyph]=\"['top', 'start']\"></div>\n <div class=\"cursor-ne-resize\" [bsResizeGlyph]=\"['top', 'end']\"></div>\n <div class=\"cursor-se-resize\" [bsResizeGlyph]=\"['bottom', 'end']\"></div>\n <div class=\"cursor-sw-resize\" [bsResizeGlyph]=\"['bottom', 'start']\"></div>\n }\n @if (vertical()) {\n <div class=\"cursor-n-resize\" [bsResizeGlyph]=\"['top']\"></div>\n <div class=\"cursor-s-resize\" [bsResizeGlyph]=\"['bottom']\"></div>\n }\n @if (horizontal()) {\n <div class=\"cursor-e-resize\" [bsResizeGlyph]=\"['end']\"></div>\n <div class=\"cursor-w-resize\" [bsResizeGlyph]=\"['start']\"></div>\n }\n <ng-content></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injector, viewChild, input, model, output, computed, signal, runInInjectionContext, effect, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import '@mintplayer/scheduler-wc';
4
- export { generateEventId, generateGroupId, generateResourceId } from '@mintplayer/scheduler-core';
3
+ import '@mintplayer/ng-bootstrap/web-components/scheduler';
4
+ export { generateEventId, generateGroupId, generateResourceId } from '@mintplayer/ng-bootstrap/web-components/scheduler-core';
5
5
 
6
6
  /**
7
7
  * Angular wrapper for the mp-scheduler web component using signals
@@ -11,14 +11,14 @@ class BsSchedulerComponent {
11
11
  this.injector = inject(Injector);
12
12
  this.schedulerRef = viewChild.required('scheduler');
13
13
  // Input signals
14
- this.view = input('week', ...(ngDevMode ? [{ debugName: "view" }] : []));
15
- this.date = input(new Date(), ...(ngDevMode ? [{ debugName: "date" }] : []));
16
- this.events = input([], ...(ngDevMode ? [{ debugName: "events" }] : []));
17
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
18
- this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
14
+ this.view = input('week', ...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
15
+ this.date = input(new Date(), ...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
16
+ this.events = input([], ...(ngDevMode ? [{ debugName: "events" }] : /* istanbul ignore next */ []));
17
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
18
+ this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
19
19
  // Two-way binding model signals
20
- this.selectedEvent = model(null, ...(ngDevMode ? [{ debugName: "selectedEvent" }] : []));
21
- this.selectedRange = model(null, ...(ngDevMode ? [{ debugName: "selectedRange" }] : []));
20
+ this.selectedEvent = model(null, ...(ngDevMode ? [{ debugName: "selectedEvent" }] : /* istanbul ignore next */ []));
21
+ this.selectedRange = model(null, ...(ngDevMode ? [{ debugName: "selectedRange" }] : /* istanbul ignore next */ []));
22
22
  // Output signals (events)
23
23
  this.eventClick = output();
24
24
  this.eventDblClick = output();
@@ -36,21 +36,21 @@ class BsSchedulerComponent {
36
36
  d.setDate(d.getDate() - diff);
37
37
  d.setHours(0, 0, 0, 0);
38
38
  return d;
39
- }, ...(ngDevMode ? [{ debugName: "currentWeekStart" }] : []));
39
+ }, ...(ngDevMode ? [{ debugName: "currentWeekStart" }] : /* istanbul ignore next */ []));
40
40
  this.currentWeekEnd = computed(() => {
41
41
  const start = this.currentWeekStart();
42
42
  const end = new Date(start);
43
43
  end.setDate(end.getDate() + 6);
44
44
  end.setHours(23, 59, 59, 999);
45
45
  return end;
46
- }, ...(ngDevMode ? [{ debugName: "currentWeekEnd" }] : []));
46
+ }, ...(ngDevMode ? [{ debugName: "currentWeekEnd" }] : /* istanbul ignore next */ []));
47
47
  this.visibleEvents = computed(() => {
48
48
  const start = this.currentWeekStart();
49
49
  const end = this.currentWeekEnd();
50
50
  return this.events().filter((e) => e.start < end && e.end > start);
51
- }, ...(ngDevMode ? [{ debugName: "visibleEvents" }] : []));
51
+ }, ...(ngDevMode ? [{ debugName: "visibleEvents" }] : /* istanbul ignore next */ []));
52
52
  // Internal state
53
- this.initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : []));
53
+ this.initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
54
54
  this.eventListeners = [];
55
55
  }
56
56
  ngAfterViewInit() {
@@ -210,10 +210,10 @@ class BsSchedulerComponent {
210
210
  refetchEvents() {
211
211
  this.schedulerRef()?.nativeElement?.refetchEvents();
212
212
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsSchedulerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
214
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: BsSchedulerComponent, isStandalone: true, selector: "bs-scheduler", inputs: { view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedEvent: { classPropertyName: "selectedEvent", publicName: "selectedEvent", isSignal: true, isRequired: false, transformFunction: null }, selectedRange: { classPropertyName: "selectedRange", publicName: "selectedRange", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedEvent: "selectedEventChange", selectedRange: "selectedRangeChange", eventClick: "eventClick", eventDblClick: "eventDblClick", eventCreate: "eventCreate", eventUpdate: "eventUpdate", eventDelete: "eventDelete", dateClick: "dateClick", dateSelect: "dateSelect", viewChange: "viewChange" }, viewQueries: [{ propertyName: "schedulerRef", first: true, predicate: ["scheduler"], descendants: true, isSignal: true }], ngImport: i0, template: "<mp-scheduler #scheduler></mp-scheduler>\n", styles: [":host{display:block;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSchedulerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
214
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.11", type: BsSchedulerComponent, isStandalone: true, selector: "bs-scheduler", inputs: { view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedEvent: { classPropertyName: "selectedEvent", publicName: "selectedEvent", isSignal: true, isRequired: false, transformFunction: null }, selectedRange: { classPropertyName: "selectedRange", publicName: "selectedRange", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedEvent: "selectedEventChange", selectedRange: "selectedRangeChange", eventClick: "eventClick", eventDblClick: "eventDblClick", eventCreate: "eventCreate", eventUpdate: "eventUpdate", eventDelete: "eventDelete", dateClick: "dateClick", dateSelect: "dateSelect", viewChange: "viewChange" }, viewQueries: [{ propertyName: "schedulerRef", first: true, predicate: ["scheduler"], descendants: true, isSignal: true }], ngImport: i0, template: "<mp-scheduler #scheduler></mp-scheduler>\n", styles: [":host{display:block;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsSchedulerComponent, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSchedulerComponent, decorators: [{
217
217
  type: Component,
218
218
  args: [{ selector: 'bs-scheduler', changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mp-scheduler #scheduler></mp-scheduler>\n", styles: [":host{display:block;height:100%}\n"] }]
219
219
  }], propDecorators: { schedulerRef: [{ type: i0.ViewChild, args: ['scheduler', { isSignal: true }] }], view: [{ type: i0.Input, args: [{ isSignal: true, alias: "view", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: false }] }], events: [{ type: i0.Input, args: [{ isSignal: true, alias: "events", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], selectedEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedEvent", required: false }] }, { type: i0.Output, args: ["selectedEventChange"] }], selectedRange: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedRange", required: false }] }, { type: i0.Output, args: ["selectedRangeChange"] }], eventClick: [{ type: i0.Output, args: ["eventClick"] }], eventDblClick: [{ type: i0.Output, args: ["eventDblClick"] }], eventCreate: [{ type: i0.Output, args: ["eventCreate"] }], eventUpdate: [{ type: i0.Output, args: ["eventUpdate"] }], eventDelete: [{ type: i0.Output, args: ["eventDelete"] }], dateClick: [{ type: i0.Output, args: ["dateClick"] }], dateSelect: [{ type: i0.Output, args: ["dateSelect"] }], viewChange: [{ type: i0.Output, args: ["viewChange"] }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-scheduler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/mintplayer-ng-bootstrap-scheduler.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n viewChild,\n AfterViewInit,\n OnDestroy,\n ChangeDetectionStrategy,\n CUSTOM_ELEMENTS_SCHEMA,\n input,\n output,\n model,\n computed,\n effect,\n signal,\n Injector,\n inject,\n runInInjectionContext,\n} from '@angular/core';\n\nimport {\n ViewType,\n SchedulerEvent,\n Resource,\n ResourceGroup,\n SchedulerOptions,\n} from '@mintplayer/scheduler-core';\n\n// Import the web component to ensure it gets registered\nimport '@mintplayer/scheduler-wc';\n\n/**\n * Interface for the mp-scheduler web component element\n */\ninterface MpSchedulerElement extends HTMLElement {\n view: ViewType;\n date: Date;\n events: SchedulerEvent[];\n resources: (Resource | ResourceGroup)[];\n options: Partial<SchedulerOptions>;\n selectedEvent: SchedulerEvent | null;\n selectedRange: { start: Date; end: Date } | null;\n next(): void;\n prev(): void;\n today(): void;\n gotoDate(date: Date): void;\n changeView(view: ViewType): void;\n addEvent(event: SchedulerEvent): void;\n updateEvent(event: SchedulerEvent): void;\n removeEvent(eventId: string): void;\n getEventById(eventId: string): SchedulerEvent | null;\n refetchEvents(): void;\n}\n\n/**\n * Event click event detail\n */\nexport interface SchedulerEventClickEvent {\n event: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Event create event detail\n */\nexport interface SchedulerEventCreateEvent {\n event: SchedulerEvent;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * Event update event detail\n */\nexport interface SchedulerEventUpdateEvent {\n event: SchedulerEvent;\n oldEvent: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Event delete event detail\n */\nexport interface SchedulerEventDeleteEvent {\n event: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Date click event detail\n */\nexport interface DateClickEvent {\n date: Date;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * Date select event detail\n */\nexport interface DateSelectEvent {\n start: Date;\n end: Date;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * View change event detail\n */\nexport interface ViewChangeEvent {\n view: ViewType;\n date: Date;\n}\n\n/**\n * Angular wrapper for the mp-scheduler web component using signals\n */\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class BsSchedulerComponent implements AfterViewInit, OnDestroy {\n private readonly injector = inject(Injector);\n\n private readonly schedulerRef = viewChild.required<ElementRef<MpSchedulerElement>>('scheduler');\n\n // Input signals\n readonly view = input<ViewType>('week');\n readonly date = input<Date>(new Date());\n readonly events = input<SchedulerEvent[]>([]);\n readonly resources = input<(Resource | ResourceGroup)[]>([]);\n readonly options = input<Partial<SchedulerOptions>>({});\n\n // Two-way binding model signals\n readonly selectedEvent = model<SchedulerEvent | null>(null);\n readonly selectedRange = model<{ start: Date; end: Date } | null>(null);\n\n // Output signals (events)\n readonly eventClick = output<SchedulerEventClickEvent>();\n readonly eventDblClick = output<SchedulerEventClickEvent>();\n readonly eventCreate = output<SchedulerEventCreateEvent>();\n readonly eventUpdate = output<SchedulerEventUpdateEvent>();\n readonly eventDelete = output<SchedulerEventDeleteEvent>();\n readonly dateClick = output<DateClickEvent>();\n readonly dateSelect = output<DateSelectEvent>();\n readonly viewChange = output<ViewChangeEvent>();\n\n // Computed signals\n readonly currentWeekStart = computed(() => {\n const d = new Date(this.date());\n const day = d.getDay();\n const diff = (day === 0 ? 6 : day - 1); // Adjust for Monday start\n d.setDate(d.getDate() - diff);\n d.setHours(0, 0, 0, 0);\n return d;\n });\n\n readonly currentWeekEnd = computed(() => {\n const start = this.currentWeekStart();\n const end = new Date(start);\n end.setDate(end.getDate() + 6);\n end.setHours(23, 59, 59, 999);\n return end;\n });\n\n readonly visibleEvents = computed(() => {\n const start = this.currentWeekStart();\n const end = this.currentWeekEnd();\n return this.events().filter(\n (e) => e.start < end && e.end > start\n );\n });\n\n // Internal state\n private readonly initialized = signal(false);\n private eventListeners: Array<{ type: string; listener: EventListener }> = [];\n\n ngAfterViewInit(): void {\n runInInjectionContext(this.injector, () => {\n // Set up effects to sync inputs to web component\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.view = this.view();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.date = this.date();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.events = this.events();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.resources = this.resources();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.options = this.options();\n }\n });\n\n // Sync selectedEvent to web component\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.selectedEvent = this.selectedEvent();\n }\n });\n });\n\n // Set up event listeners\n this.setupEventListeners();\n this.initialized.set(true);\n }\n\n ngOnDestroy(): void {\n this.removeEventListeners();\n }\n\n private setupEventListeners(): void {\n const el = this.schedulerRef()?.nativeElement;\n if (!el) return;\n\n const addListener = (type: string, handler: (e: CustomEvent) => void) => {\n const listener = (e: Event) => handler(e as CustomEvent);\n el.addEventListener(type, listener);\n this.eventListeners.push({ type, listener });\n };\n\n addListener('event-click', (e) => {\n this.eventClick.emit(e.detail);\n this.selectedEvent.set(e.detail.event);\n });\n\n addListener('event-dblclick', (e) => {\n this.eventDblClick.emit(e.detail);\n });\n\n addListener('event-create', (e) => {\n this.eventCreate.emit(e.detail);\n });\n\n addListener('event-update', (e) => {\n this.eventUpdate.emit(e.detail);\n });\n\n addListener('event-delete', (e) => {\n this.eventDelete.emit(e.detail);\n });\n\n addListener('date-click', (e) => {\n this.dateClick.emit(e.detail);\n });\n\n addListener('date-select', (e) => {\n this.dateSelect.emit(e.detail);\n this.selectedRange.set({ start: e.detail.start, end: e.detail.end });\n });\n\n addListener('view-change', (e) => {\n this.viewChange.emit(e.detail);\n });\n\n addListener('selection-change', (e) => {\n this.selectedEvent.set(e.detail.selectedEvent);\n });\n }\n\n private removeEventListeners(): void {\n const el = this.schedulerRef()?.nativeElement;\n if (!el) return;\n\n for (const { type, listener } of this.eventListeners) {\n el.removeEventListener(type, listener);\n }\n this.eventListeners = [];\n }\n\n // Public API methods (delegate to web component)\n\n /**\n * Navigate to next period\n */\n next(): void {\n this.schedulerRef()?.nativeElement?.next();\n }\n\n /**\n * Navigate to previous period\n */\n prev(): void {\n this.schedulerRef()?.nativeElement?.prev();\n }\n\n /**\n * Navigate to today\n */\n today(): void {\n this.schedulerRef()?.nativeElement?.today();\n }\n\n /**\n * Navigate to a specific date\n */\n gotoDate(date: Date): void {\n this.schedulerRef()?.nativeElement?.gotoDate(date);\n }\n\n /**\n * Change the current view\n */\n changeView(view: ViewType): void {\n this.schedulerRef()?.nativeElement?.changeView(view);\n }\n\n /**\n * Add an event\n */\n addEvent(event: SchedulerEvent): void {\n this.schedulerRef()?.nativeElement?.addEvent(event);\n }\n\n /**\n * Update an event\n */\n updateEvent(event: SchedulerEvent): void {\n this.schedulerRef()?.nativeElement?.updateEvent(event);\n }\n\n /**\n * Remove an event\n */\n removeEvent(eventId: string): void {\n this.schedulerRef()?.nativeElement?.removeEvent(eventId);\n }\n\n /**\n * Get an event by ID\n */\n getEventById(eventId: string): SchedulerEvent | null {\n return this.schedulerRef()?.nativeElement?.getEventById(eventId) ?? null;\n }\n\n /**\n * Refetch/refresh events\n */\n refetchEvents(): void {\n this.schedulerRef()?.nativeElement?.refetchEvents();\n }\n}\n","<mp-scheduler #scheduler></mp-scheduler>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-scheduler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/mintplayer-ng-bootstrap-scheduler.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n viewChild,\n AfterViewInit,\n OnDestroy,\n ChangeDetectionStrategy,\n CUSTOM_ELEMENTS_SCHEMA,\n input,\n output,\n model,\n computed,\n effect,\n signal,\n Injector,\n inject,\n runInInjectionContext,\n} from '@angular/core';\n\nimport {\n ViewType,\n SchedulerEvent,\n Resource,\n ResourceGroup,\n SchedulerOptions,\n} from '@mintplayer/ng-bootstrap/web-components/scheduler-core';\n\n// Import the web component to ensure it gets registered\nimport '@mintplayer/ng-bootstrap/web-components/scheduler';\n\n/**\n * Interface for the mp-scheduler web component element\n */\ninterface MpSchedulerElement extends HTMLElement {\n view: ViewType;\n date: Date;\n events: SchedulerEvent[];\n resources: (Resource | ResourceGroup)[];\n options: Partial<SchedulerOptions>;\n selectedEvent: SchedulerEvent | null;\n selectedRange: { start: Date; end: Date } | null;\n next(): void;\n prev(): void;\n today(): void;\n gotoDate(date: Date): void;\n changeView(view: ViewType): void;\n addEvent(event: SchedulerEvent): void;\n updateEvent(event: SchedulerEvent): void;\n removeEvent(eventId: string): void;\n getEventById(eventId: string): SchedulerEvent | null;\n refetchEvents(): void;\n}\n\n/**\n * Event click event detail\n */\nexport interface SchedulerEventClickEvent {\n event: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Event create event detail\n */\nexport interface SchedulerEventCreateEvent {\n event: SchedulerEvent;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * Event update event detail\n */\nexport interface SchedulerEventUpdateEvent {\n event: SchedulerEvent;\n oldEvent: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Event delete event detail\n */\nexport interface SchedulerEventDeleteEvent {\n event: SchedulerEvent;\n originalEvent?: Event;\n}\n\n/**\n * Date click event detail\n */\nexport interface DateClickEvent {\n date: Date;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * Date select event detail\n */\nexport interface DateSelectEvent {\n start: Date;\n end: Date;\n resource?: Resource;\n originalEvent?: Event;\n}\n\n/**\n * View change event detail\n */\nexport interface ViewChangeEvent {\n view: ViewType;\n date: Date;\n}\n\n/**\n * Angular wrapper for the mp-scheduler web component using signals\n */\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class BsSchedulerComponent implements AfterViewInit, OnDestroy {\n private readonly injector = inject(Injector);\n\n private readonly schedulerRef = viewChild.required<ElementRef<MpSchedulerElement>>('scheduler');\n\n // Input signals\n readonly view = input<ViewType>('week');\n readonly date = input<Date>(new Date());\n readonly events = input<SchedulerEvent[]>([]);\n readonly resources = input<(Resource | ResourceGroup)[]>([]);\n readonly options = input<Partial<SchedulerOptions>>({});\n\n // Two-way binding model signals\n readonly selectedEvent = model<SchedulerEvent | null>(null);\n readonly selectedRange = model<{ start: Date; end: Date } | null>(null);\n\n // Output signals (events)\n readonly eventClick = output<SchedulerEventClickEvent>();\n readonly eventDblClick = output<SchedulerEventClickEvent>();\n readonly eventCreate = output<SchedulerEventCreateEvent>();\n readonly eventUpdate = output<SchedulerEventUpdateEvent>();\n readonly eventDelete = output<SchedulerEventDeleteEvent>();\n readonly dateClick = output<DateClickEvent>();\n readonly dateSelect = output<DateSelectEvent>();\n readonly viewChange = output<ViewChangeEvent>();\n\n // Computed signals\n readonly currentWeekStart = computed(() => {\n const d = new Date(this.date());\n const day = d.getDay();\n const diff = (day === 0 ? 6 : day - 1); // Adjust for Monday start\n d.setDate(d.getDate() - diff);\n d.setHours(0, 0, 0, 0);\n return d;\n });\n\n readonly currentWeekEnd = computed(() => {\n const start = this.currentWeekStart();\n const end = new Date(start);\n end.setDate(end.getDate() + 6);\n end.setHours(23, 59, 59, 999);\n return end;\n });\n\n readonly visibleEvents = computed(() => {\n const start = this.currentWeekStart();\n const end = this.currentWeekEnd();\n return this.events().filter(\n (e) => e.start < end && e.end > start\n );\n });\n\n // Internal state\n private readonly initialized = signal(false);\n private eventListeners: Array<{ type: string; listener: EventListener }> = [];\n\n ngAfterViewInit(): void {\n runInInjectionContext(this.injector, () => {\n // Set up effects to sync inputs to web component\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.view = this.view();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.date = this.date();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.events = this.events();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.resources = this.resources();\n }\n });\n\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.options = this.options();\n }\n });\n\n // Sync selectedEvent to web component\n effect(() => {\n const el = this.schedulerRef()?.nativeElement;\n if (el) {\n el.selectedEvent = this.selectedEvent();\n }\n });\n });\n\n // Set up event listeners\n this.setupEventListeners();\n this.initialized.set(true);\n }\n\n ngOnDestroy(): void {\n this.removeEventListeners();\n }\n\n private setupEventListeners(): void {\n const el = this.schedulerRef()?.nativeElement;\n if (!el) return;\n\n const addListener = (type: string, handler: (e: CustomEvent) => void) => {\n const listener = (e: Event) => handler(e as CustomEvent);\n el.addEventListener(type, listener);\n this.eventListeners.push({ type, listener });\n };\n\n addListener('event-click', (e) => {\n this.eventClick.emit(e.detail);\n this.selectedEvent.set(e.detail.event);\n });\n\n addListener('event-dblclick', (e) => {\n this.eventDblClick.emit(e.detail);\n });\n\n addListener('event-create', (e) => {\n this.eventCreate.emit(e.detail);\n });\n\n addListener('event-update', (e) => {\n this.eventUpdate.emit(e.detail);\n });\n\n addListener('event-delete', (e) => {\n this.eventDelete.emit(e.detail);\n });\n\n addListener('date-click', (e) => {\n this.dateClick.emit(e.detail);\n });\n\n addListener('date-select', (e) => {\n this.dateSelect.emit(e.detail);\n this.selectedRange.set({ start: e.detail.start, end: e.detail.end });\n });\n\n addListener('view-change', (e) => {\n this.viewChange.emit(e.detail);\n });\n\n addListener('selection-change', (e) => {\n this.selectedEvent.set(e.detail.selectedEvent);\n });\n }\n\n private removeEventListeners(): void {\n const el = this.schedulerRef()?.nativeElement;\n if (!el) return;\n\n for (const { type, listener } of this.eventListeners) {\n el.removeEventListener(type, listener);\n }\n this.eventListeners = [];\n }\n\n // Public API methods (delegate to web component)\n\n /**\n * Navigate to next period\n */\n next(): void {\n this.schedulerRef()?.nativeElement?.next();\n }\n\n /**\n * Navigate to previous period\n */\n prev(): void {\n this.schedulerRef()?.nativeElement?.prev();\n }\n\n /**\n * Navigate to today\n */\n today(): void {\n this.schedulerRef()?.nativeElement?.today();\n }\n\n /**\n * Navigate to a specific date\n */\n gotoDate(date: Date): void {\n this.schedulerRef()?.nativeElement?.gotoDate(date);\n }\n\n /**\n * Change the current view\n */\n changeView(view: ViewType): void {\n this.schedulerRef()?.nativeElement?.changeView(view);\n }\n\n /**\n * Add an event\n */\n addEvent(event: SchedulerEvent): void {\n this.schedulerRef()?.nativeElement?.addEvent(event);\n }\n\n /**\n * Update an event\n */\n updateEvent(event: SchedulerEvent): void {\n this.schedulerRef()?.nativeElement?.updateEvent(event);\n }\n\n /**\n * Remove an event\n */\n removeEvent(eventId: string): void {\n this.schedulerRef()?.nativeElement?.removeEvent(eventId);\n }\n\n /**\n * Get an event by ID\n */\n getEventById(eventId: string): SchedulerEvent | null {\n return this.schedulerRef()?.nativeElement?.getEventById(eventId) ?? null;\n }\n\n /**\n * Refetch/refresh events\n */\n refetchEvents(): void {\n this.schedulerRef()?.nativeElement?.refetchEvents();\n }\n}\n","<mp-scheduler #scheduler></mp-scheduler>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -18,10 +18,10 @@ class BsScrollOffsetService {
18
18
  return this.routerConfig.scrollOffset();
19
19
  }
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollOffsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollOffsetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollOffsetService, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollOffsetService, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root'
@@ -32,10 +32,10 @@ class BsScrollspyDirective {
32
32
  constructor() {
33
33
  this.element = inject(ElementRef);
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollspyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: BsScrollspyDirective, isStandalone: true, selector: "[bsScrollspy]", ngImport: i0 }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollspyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: BsScrollspyDirective, isStandalone: true, selector: "[bsScrollspy]", ngImport: i0 }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollspyDirective, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollspyDirective, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  selector: '[bsScrollspy]',
@@ -46,11 +46,11 @@ class BsScrollspyComponent {
46
46
  constructor() {
47
47
  this.scrollOffsetService = inject(BsScrollOffsetService);
48
48
  this.doc = inject(DOCUMENT);
49
- this.viewInit = signal(false, ...(ngDevMode ? [{ debugName: "viewInit" }] : []));
50
- this.contentInit = signal(false, ...(ngDevMode ? [{ debugName: "contentInit" }] : []));
51
- this.directives = contentChildren(BsScrollspyDirective, { ...(ngDevMode ? { debugName: "directives" } : {}), descendants: true });
52
- this.anchors = viewChildren('anchor', ...(ngDevMode ? [{ debugName: "anchors" }] : []));
53
- this.activeDirective = signal(null, ...(ngDevMode ? [{ debugName: "activeDirective" }] : []));
49
+ this.viewInit = signal(false, ...(ngDevMode ? [{ debugName: "viewInit" }] : /* istanbul ignore next */ []));
50
+ this.contentInit = signal(false, ...(ngDevMode ? [{ debugName: "contentInit" }] : /* istanbul ignore next */ []));
51
+ this.directives = contentChildren(BsScrollspyDirective, { ...(ngDevMode ? { debugName: "directives" } : /* istanbul ignore next */ {}), descendants: true });
52
+ this.anchors = viewChildren('anchor', ...(ngDevMode ? [{ debugName: "anchors" }] : /* istanbul ignore next */ []));
53
+ this.activeDirective = signal(null, ...(ngDevMode ? [{ debugName: "activeDirective" }] : /* istanbul ignore next */ []));
54
54
  effect(() => {
55
55
  const viewInit = this.viewInit();
56
56
  const contentInit = this.contentInit();
@@ -102,10 +102,10 @@ class BsScrollspyComponent {
102
102
  window.scrollTo({ top: y, behavior: 'smooth' });
103
103
  }
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollspyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsScrollspyComponent, isStandalone: true, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll()" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives(); track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective()?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollspyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsScrollspyComponent, isStandalone: true, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll()" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives(); track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective()?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsScrollspyComponent, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsScrollspyComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ selector: 'bs-scrollspy', changeDetection: ChangeDetectionStrategy.OnPush, host: {
111
111
  '(window:scroll)': 'onWindowScroll()',
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-scrollspy.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/scrollspy/mintplayer-ng-bootstrap-scrollspy.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n private routerConfig = inject<ExtraOptions>(ROUTER_CONFIGURATION);\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]',\n})\nexport class BsScrollspyDirective {\n element = inject(ElementRef);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, Component, contentChildren, effect, ElementRef, inject, signal, viewChildren } from '@angular/core';\nimport { BsScrollOffsetService } from '../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(window:scroll)': 'onWindowScroll()',\n },\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit {\n\n private scrollOffsetService = inject(BsScrollOffsetService);\n doc = inject<Document>(DOCUMENT);\n\n private viewInit = signal<boolean>(false);\n private contentInit = signal<boolean>(false);\n\n readonly directives = contentChildren(BsScrollspyDirective, { descendants: true });\n readonly anchors = viewChildren<ElementRef<HTMLSpanElement>>('anchor');\n\n activeDirective = signal<BsScrollspyDirective | null>(null);\n\n constructor() {\n effect(() => {\n const viewInit = this.viewInit();\n const contentInit = this.contentInit();\n if (viewInit && contentInit) {\n this.scrollToCurrentInSpy();\n }\n });\n }\n\n ngAfterViewInit() {\n this.viewInit.set(true);\n }\n\n ngAfterContentInit() {\n this.contentInit.set(true);\n }\n\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const allDirectives = this.directives();\n const dirs = allDirectives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (allDirectives.length === 0) {\n this.activeDirective.set(null);\n } else if (dirs.length === 0) {\n this.activeDirective.set(allDirectives[0] ?? null);\n } else {\n this.activeDirective.set(dirs[dirs.length - 1]);\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective()) {\n const index = this.directives().findIndex((v, i) => v === this.activeDirective());\n const anchor = this.anchors()[index];\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n\n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives(); track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective()?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-scrollspy.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/scrollspy/mintplayer-ng-bootstrap-scrollspy.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n private routerConfig = inject<ExtraOptions>(ROUTER_CONFIGURATION);\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]',\n})\nexport class BsScrollspyDirective {\n element = inject(ElementRef);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, Component, contentChildren, effect, ElementRef, inject, signal, viewChildren } from '@angular/core';\nimport { BsScrollOffsetService } from '../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(window:scroll)': 'onWindowScroll()',\n },\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit {\n\n private scrollOffsetService = inject(BsScrollOffsetService);\n doc = inject<Document>(DOCUMENT);\n\n private viewInit = signal<boolean>(false);\n private contentInit = signal<boolean>(false);\n\n readonly directives = contentChildren(BsScrollspyDirective, { descendants: true });\n readonly anchors = viewChildren<ElementRef<HTMLSpanElement>>('anchor');\n\n activeDirective = signal<BsScrollspyDirective | null>(null);\n\n constructor() {\n effect(() => {\n const viewInit = this.viewInit();\n const contentInit = this.contentInit();\n if (viewInit && contentInit) {\n this.scrollToCurrentInSpy();\n }\n });\n }\n\n ngAfterViewInit() {\n this.viewInit.set(true);\n }\n\n ngAfterContentInit() {\n this.contentInit.set(true);\n }\n\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const allDirectives = this.directives();\n const dirs = allDirectives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (allDirectives.length === 0) {\n this.activeDirective.set(null);\n } else if (dirs.length === 0) {\n this.activeDirective.set(allDirectives[0] ?? null);\n } else {\n this.activeDirective.set(dirs[dirs.length - 1]);\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective()) {\n const index = this.directives().findIndex((v, i) => v === this.activeDirective());\n const anchor = this.anchors()[index];\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n\n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives(); track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective()?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}