@mintplayer/ng-bootstrap 21.6.0 → 21.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +34 -73
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +10 -31
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +4 -4
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +12 -29
  8. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +5 -5
  10. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +17 -19
  12. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -11
  14. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +5 -5
  16. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +14 -41
  18. package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +47 -89
  20. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +4 -4
  22. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +10 -13
  24. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +294 -383
  26. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +5 -5
  28. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +10 -44
  30. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +16 -23
  32. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +24 -74
  34. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +6 -8
  36. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +43 -73
  38. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +8 -12
  40. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +23 -60
  42. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +34 -86
  44. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +9 -12
  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-file-upload.mjs +35 -96
  49. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  50. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +9 -10
  51. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  52. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -4
  53. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  54. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +23 -26
  55. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  56. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +29 -54
  57. package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
  58. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +35 -67
  59. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  60. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +5 -5
  61. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  62. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -4
  63. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  64. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -4
  65. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  66. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +5 -5
  67. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  68. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +75 -114
  69. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
  70. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +16 -15
  71. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  72. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -4
  73. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  74. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +17 -44
  75. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  76. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -16
  77. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  78. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +5 -5
  79. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  80. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +74 -160
  81. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  82. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +25 -87
  83. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  84. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -9
  85. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  86. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +136 -232
  87. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  88. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +40 -68
  89. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  90. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +11 -15
  91. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  92. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +70 -138
  93. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  94. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -4
  95. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  96. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +4 -4
  97. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  98. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +5 -5
  99. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
  100. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +16 -39
  101. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  102. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -9
  103. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  104. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +40 -70
  105. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  106. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +28 -97
  107. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  108. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +30 -58
  109. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  110. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +10 -17
  111. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  112. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +96 -153
  113. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  114. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +26 -41
  115. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  116. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +30 -61
  117. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  118. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +59 -108
  119. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  120. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +99 -131
  121. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  122. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +63 -106
  123. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  124. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +15 -33
  125. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  126. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +16 -33
  127. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  128. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -4
  129. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  130. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +4 -4
  131. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  132. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -4
  133. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  134. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +16 -35
  135. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  136. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +39 -81
  137. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  138. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +4 -4
  139. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  140. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +13 -17
  141. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  142. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +80 -154
  143. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  144. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +116 -153
  145. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  146. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +25 -62
  147. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  148. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +16 -33
  149. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  150. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -4
  151. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  152. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +13 -20
  153. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  154. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -4
  155. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  156. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +14 -26
  157. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  158. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs +6 -9
  159. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs.map +1 -1
  160. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -4
  161. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  162. package/package.json +4 -4
  163. package/types/mintplayer-ng-bootstrap-accordion.d.ts +20 -30
  164. package/types/mintplayer-ng-bootstrap-alert.d.ts +3 -9
  165. package/types/mintplayer-ng-bootstrap-breadcrumb.d.ts +3 -10
  166. package/types/mintplayer-ng-bootstrap-button-type.d.ts +4 -4
  167. package/types/mintplayer-ng-bootstrap-card.d.ts +5 -12
  168. package/types/mintplayer-ng-bootstrap-carousel.d.ts +6 -14
  169. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +3 -3
  170. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +43 -54
  171. package/types/mintplayer-ng-bootstrap-context-menu.d.ts +2 -11
  172. package/types/mintplayer-ng-bootstrap-copy.d.ts +5 -7
  173. package/types/mintplayer-ng-bootstrap-datatable.d.ts +7 -18
  174. package/types/mintplayer-ng-bootstrap-dock.d.ts +18 -31
  175. package/types/mintplayer-ng-bootstrap-dropdown-divider.d.ts +0 -1
  176. package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +11 -22
  177. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +16 -28
  178. package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -2
  179. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +16 -27
  180. package/types/mintplayer-ng-bootstrap-floating-labels.d.ts +2 -3
  181. package/types/mintplayer-ng-bootstrap-for.d.ts +3 -3
  182. package/types/mintplayer-ng-bootstrap-form.d.ts +11 -20
  183. package/types/mintplayer-ng-bootstrap-grid.d.ts +23 -35
  184. package/types/mintplayer-ng-bootstrap-instance-of.d.ts +34 -41
  185. package/types/mintplayer-ng-bootstrap-let.d.ts +3 -2
  186. package/types/mintplayer-ng-bootstrap-list-group.d.ts +4 -13
  187. package/types/mintplayer-ng-bootstrap-modal.d.ts +13 -29
  188. package/types/mintplayer-ng-bootstrap-multiselect.d.ts +8 -21
  189. package/types/mintplayer-ng-bootstrap-navbar.d.ts +38 -51
  190. package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +8 -15
  191. package/types/mintplayer-ng-bootstrap-no-noscript.d.ts +1 -1
  192. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +20 -30
  193. package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -11
  194. package/types/mintplayer-ng-bootstrap-popover.d.ts +18 -31
  195. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +9 -27
  196. package/types/mintplayer-ng-bootstrap-range.d.ts +14 -22
  197. package/types/mintplayer-ng-bootstrap-rating.d.ts +0 -2
  198. package/types/mintplayer-ng-bootstrap-resizable.d.ts +23 -32
  199. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +3 -9
  200. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +7 -16
  201. package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -34
  202. package/types/mintplayer-ng-bootstrap-select.d.ts +24 -30
  203. package/types/mintplayer-ng-bootstrap-select2.d.ts +21 -33
  204. package/types/mintplayer-ng-bootstrap-shell.d.ts +12 -19
  205. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +2 -3
  206. package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +4 -12
  207. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +9 -21
  208. package/types/mintplayer-ng-bootstrap-timepicker.d.ts +3 -3
  209. package/types/mintplayer-ng-bootstrap-toast.d.ts +12 -20
  210. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +20 -29
  211. package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -24
  212. package/types/mintplayer-ng-bootstrap-treeview.d.ts +13 -21
  213. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +3 -3
  214. package/types/mintplayer-ng-bootstrap-user-agent.d.ts +2 -3
  215. package/types/mintplayer-ng-bootstrap-viewport.d.ts +2 -2
@@ -20,10 +20,10 @@ class EnumService {
20
20
  };
21
21
  });
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EnumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EnumService, providedIn: 'root' }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: EnumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: EnumService, providedIn: 'root' }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EnumService, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: EnumService, decorators: [{
27
27
  type: Injectable,
28
28
  args: [{
29
29
  providedIn: 'root'
@@ -1,15 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, EventEmitter, HostListener, Output, Input, Component, inject, TemplateRef, Directive, NgModule } from '@angular/core';
3
- import { Color } from '@mintplayer/ng-bootstrap';
4
- import * as i1 from '@angular/common';
2
+ import { Pipe, input, signal, model, output, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive } from '@angular/core';
5
3
  import { NgTemplateOutlet } from '@angular/common';
6
- import * as i2 from '@mintplayer/ng-bootstrap/for';
7
4
  import { BsForDirective } from '@mintplayer/ng-bootstrap/for';
8
- import * as i3 from '@mintplayer/ng-bootstrap/progress-bar';
9
- import { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';
10
- import * as i4 from '@mintplayer/ng-bootstrap/list-group';
11
- import { BsListGroupModule } from '@mintplayer/ng-bootstrap/list-group';
12
- import { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';
5
+ import { BsListGroupComponent, BsListGroupItemComponent } from '@mintplayer/ng-bootstrap/list-group';
6
+ import { BsProgressComponent, BsProgressBarComponent } from '@mintplayer/ng-bootstrap/progress-bar';
7
+ import { Color } from '@mintplayer/ng-bootstrap';
13
8
 
14
9
  class BsFormatBytesPipe {
15
10
  transform(value, decimals = 2) {
@@ -22,27 +17,26 @@ class BsFormatBytesPipe {
22
17
  const i = Math.floor(Math.log(value) / Math.log(k));
23
18
  return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
24
19
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFormatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BsFormatBytesPipe, isStandalone: false, name: "bsFormatBytes" }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFormatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.6", ngImport: i0, type: BsFormatBytesPipe, isStandalone: true, name: "bsFormatBytes" }); }
27
22
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFormatBytesPipe, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFormatBytesPipe, decorators: [{
29
24
  type: Pipe,
30
25
  args: [{
31
26
  name: 'bsFormatBytes',
32
- standalone: false,
33
27
  pure: true,
34
28
  }]
35
29
  }] });
36
30
 
37
31
  class BsFileUploadComponent {
38
32
  constructor() {
39
- this.dropFilesCaption = 'Drop your files here';
40
- this.browseFilesCaption = 'Browse for files';
41
- this.placeholder = 'Drop files to upload';
33
+ this.dropFilesCaption = input('Drop your files here', ...(ngDevMode ? [{ debugName: "dropFilesCaption" }] : []));
34
+ this.browseFilesCaption = input('Browse for files', ...(ngDevMode ? [{ debugName: "browseFilesCaption" }] : []));
35
+ this.placeholder = input('Drop files to upload', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
42
36
  this.colors = Color;
43
- this.isDraggingFile = false;
44
- this.files = [];
45
- this.filesDropped = new EventEmitter();
37
+ this.isDraggingFile = signal(false, ...(ngDevMode ? [{ debugName: "isDraggingFile" }] : []));
38
+ this.files = model([], ...(ngDevMode ? [{ debugName: "files" }] : []));
39
+ this.filesDropped = output();
46
40
  }
47
41
  onChange(event) {
48
42
  if (!event.target)
@@ -60,19 +54,19 @@ class BsFileUploadComponent {
60
54
  event.preventDefault();
61
55
  event.stopPropagation();
62
56
  if (event.dataTransfer) {
63
- this.isDraggingFile = true;
57
+ this.isDraggingFile.set(true);
64
58
  event.dataTransfer.effectAllowed = "copy";
65
59
  }
66
60
  }
67
61
  onDragLeave(event) {
68
62
  event.preventDefault();
69
63
  event.stopPropagation();
70
- this.isDraggingFile = false;
64
+ this.isDraggingFile.set(false);
71
65
  }
72
66
  onDrop(event) {
73
67
  event.preventDefault();
74
68
  event.stopPropagation();
75
- this.isDraggingFile = false;
69
+ this.isDraggingFile.set(false);
76
70
  if (event.dataTransfer && event.dataTransfer.files) {
77
71
  this.processDroppedFiles(event.dataTransfer.files);
78
72
  }
@@ -81,107 +75,52 @@ class BsFileUploadComponent {
81
75
  const newFiles = [...Array(fileList.length).keys()]
82
76
  .map(i => fileList.item(i))
83
77
  .filter(f => !!f)
84
- .map((file, index) => ({ file, progress: 0, index: this.files.length + index }));
85
- this.files.push(...newFiles);
78
+ .map((file, index) => ({ file, progress: 0, index: this.files().length + index }));
79
+ this.files.update(f => [...f, ...newFiles]);
86
80
  this.filesDropped.emit(newFiles);
87
81
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsFileUploadComponent, isStandalone: false, selector: "bs-file-upload", inputs: { dropFilesCaption: "dropFilesCaption", browseFilesCaption: "browseFilesCaption", placeholder: "placeholder", files: "files" }, outputs: { filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files; track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsForDirective, selector: "label[bsFor]", inputs: ["bsFor"] }, { kind: "component", type: i3.BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "component", type: i3.BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "component", type: i4.BsListGroupComponent, selector: "bs-list-group" }, { kind: "component", type: i4.BsListGroupItemComponent, selector: "bs-list-group-item" }, { kind: "pipe", type: BsFormatBytesPipe, name: "bsFormatBytes" }] }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsFileUploadComponent, isStandalone: true, selector: "bs-file-upload", inputs: { dropFilesCaption: { classPropertyName: "dropFilesCaption", publicName: "dropFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, browseFilesCaption: { classPropertyName: "browseFilesCaption", publicName: "browseFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { files: "filesChange", filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BsForDirective, selector: "label[bsFor]", inputs: ["bsFor"] }, { kind: "component", type: BsListGroupComponent, selector: "bs-list-group" }, { kind: "component", type: BsListGroupItemComponent, selector: "bs-list-group-item" }, { kind: "component", type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "component", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "pipe", type: BsFormatBytesPipe, name: "bsFormatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
84
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadComponent, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadComponent, decorators: [{
92
86
  type: Component,
93
- args: [{ selector: 'bs-file-upload', standalone: false, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files; track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"] }]
94
- }], propDecorators: { dropFilesCaption: [{
95
- type: Input
96
- }], browseFilesCaption: [{
97
- type: Input
98
- }], placeholder: [{
99
- type: Input
100
- }], files: [{
101
- type: Input
102
- }], filesDropped: [{
103
- type: Output
104
- }], onDragOver: [{
105
- type: HostListener,
106
- args: ['dragover', ['$event']]
107
- }], onDragLeave: [{
108
- type: HostListener,
109
- args: ['dragleave', ['$event']]
110
- }], onDrop: [{
111
- type: HostListener,
112
- args: ['drop', ['$event']]
113
- }] } });
87
+ args: [{ selector: 'bs-file-upload', imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsFormatBytesPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
88
+ '(dragover)': 'onDragOver($event)',
89
+ '(dragleave)': 'onDragLeave($event)',
90
+ '(drop)': 'onDrop($event)',
91
+ }, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"] }]
92
+ }], propDecorators: { dropFilesCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropFilesCaption", required: false }] }], browseFilesCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "browseFilesCaption", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], files: [{ type: i0.Input, args: [{ isSignal: true, alias: "files", required: false }] }, { type: i0.Output, args: ["filesChange"] }], filesDropped: [{ type: i0.Output, args: ["filesDropped"] }] } });
114
93
 
115
94
  class BsFileUploadTemplateDirective {
116
95
  constructor() {
117
96
  this.fileUploadComponent = inject(BsFileUploadComponent);
97
+ this.bsFileUploadTemplateOf = input(undefined, ...(ngDevMode ? [{ debugName: "bsFileUploadTemplateOf" }] : []));
118
98
  const templateRef = inject(TemplateRef);
119
99
  this.fileUploadComponent.fileTemplate = templateRef;
120
- }
121
- set bsFileUploadTemplateOf(value) {
122
- this.fileUploadComponent.files = value;
100
+ // TODO: fileUploadComponent.files is now an input() signal and cannot be assigned from the directive.
101
+ // Consider converting files to model() on BsFileUploadComponent to restore this functionality.
123
102
  }
124
103
  static ngTemplateContextGuard(dir, ctx) {
125
104
  return true;
126
105
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
128
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsFileUploadTemplateDirective, isStandalone: false, selector: "[bsFileUploadTemplate]", inputs: { bsFileUploadTemplateOf: "bsFileUploadTemplateOf" }, ngImport: i0 }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
107
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: BsFileUploadTemplateDirective, isStandalone: true, selector: "[bsFileUploadTemplate]", inputs: { bsFileUploadTemplateOf: { classPropertyName: "bsFileUploadTemplateOf", publicName: "bsFileUploadTemplateOf", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
129
108
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadTemplateDirective, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadTemplateDirective, decorators: [{
131
110
  type: Directive,
132
111
  args: [{
133
112
  selector: '[bsFileUploadTemplate]',
134
- standalone: false,
135
113
  }]
136
- }], ctorParameters: () => [], propDecorators: { bsFileUploadTemplateOf: [{
137
- type: Input
138
- }] } });
114
+ }], ctorParameters: () => [], propDecorators: { bsFileUploadTemplateOf: [{ type: i0.Input, args: [{ isSignal: true, alias: "bsFileUploadTemplateOf", required: false }] }] } });
139
115
  class BsFileUploadTemplateContext {
140
116
  constructor() {
141
117
  this.$implicit = null;
142
118
  }
143
119
  }
144
120
 
145
- class BsFileUploadModule {
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
147
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadModule, declarations: [BsFileUploadComponent,
148
- BsFileUploadTemplateDirective,
149
- BsFormatBytesPipe], imports: [NgTemplateOutlet,
150
- BsForDirective,
151
- BsProgressBarModule,
152
- BsListGroupModule,
153
- BsButtonTypeDirective], exports: [BsFileUploadComponent,
154
- BsFileUploadTemplateDirective,
155
- BsFormatBytesPipe] }); }
156
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadModule, imports: [BsProgressBarModule,
157
- BsListGroupModule] }); }
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFileUploadModule, decorators: [{
160
- type: NgModule,
161
- args: [{
162
- declarations: [
163
- BsFileUploadComponent,
164
- BsFileUploadTemplateDirective,
165
- BsFormatBytesPipe
166
- ],
167
- imports: [
168
- NgTemplateOutlet,
169
- BsForDirective,
170
- BsProgressBarModule,
171
- BsListGroupModule,
172
- BsButtonTypeDirective,
173
- ],
174
- exports: [
175
- BsFileUploadComponent,
176
- BsFileUploadTemplateDirective,
177
- BsFormatBytesPipe
178
- ]
179
- }]
180
- }] });
181
-
182
121
  /**
183
122
  * Generated bundle index. Do not edit.
184
123
  */
185
124
 
186
- export { BsFileUploadComponent, BsFileUploadModule, BsFileUploadTemplateContext, BsFileUploadTemplateDirective, BsFormatBytesPipe };
125
+ export { BsFileUploadComponent, BsFileUploadTemplateContext, BsFileUploadTemplateDirective, BsFormatBytesPipe };
187
126
  //# sourceMappingURL=mintplayer-ng-bootstrap-file-upload.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-file-upload.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/file-upload/src/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/file-upload.module.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/mintplayer-ng-bootstrap-file-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes',\n standalone: false,\n pure: true,\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, EventEmitter, HostListener, Input, Output, TemplateRef } from '@angular/core';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { FileUpload } from '../file-upload';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: false,\n})\nexport class BsFileUploadComponent {\n\n @Input() public dropFilesCaption = 'Drop your files here';\n @Input() public browseFilesCaption = 'Browse for files';\n @Input() public placeholder = 'Drop files to upload';\n\n colors = Color;\n isDraggingFile = false;\n fileTemplate?: TemplateRef<FileUpload>;\n @Input() public files: FileUpload[] = [];\n @Output() public filesDropped = new EventEmitter<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n \n this.processDroppedFiles(files);\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n \n if (event.dataTransfer) {\n this.isDraggingFile = true;\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map((file, index) => <FileUpload>{ file, progress: 0, index: this.files.length + index });\n \n this.files.push(...newFiles);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder\" [placeholder]=\"placeholder\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files; track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\nimport { FileUpload } from '../file-upload';\n\n@Directive({\n selector: '[bsFileUploadTemplate]',\n standalone: false,\n})\nexport class BsFileUploadTemplateDirective {\n private fileUploadComponent = inject(BsFileUploadComponent);\n\n constructor() {\n const templateRef = inject(TemplateRef);\n this.fileUploadComponent.fileTemplate = templateRef;\n }\n\n @Input() set bsFileUploadTemplateOf(value: FileUpload[]) {\n this.fileUploadComponent.files = value;\n }\n\n static ngTemplateContextGuard(dir: BsFileUploadTemplateDirective, ctx: any): ctx is BsFileUploadTemplateContext {\n return true;\n }\n\n}\n\nexport class BsFileUploadTemplateContext {\n $implicit: FileUpload = null!;\n}","import { NgModule } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsForDirective } from '@mintplayer/ng-bootstrap/for';\nimport { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsListGroupModule } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { BsFileUploadComponent } from './component/file-upload.component';\nimport { BsFileUploadTemplateDirective } from './directive/file-upload-template.directive';\nimport { BsFormatBytesPipe } from './pipes/format-bytes/format-bytes.pipe';\n\n@NgModule({\n declarations: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective,\n BsFormatBytesPipe\n ],\n imports: [\n NgTemplateOutlet,\n BsForDirective,\n BsProgressBarModule,\n BsListGroupModule,\n BsButtonTypeDirective,\n ],\n exports: [\n BsFileUploadComponent,\n BsFileUploadTemplateDirective,\n BsFormatBytesPipe\n ]\n})\nexport class BsFileUploadModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5.BsFormatBytesPipe"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-file-upload.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/file-upload/src/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/mintplayer-ng-bootstrap-file-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes',\n pure: true,\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, input, model, output, signal, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsForDirective } from '@mintplayer/ng-bootstrap/for';\nimport { BsListGroupComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsListGroupItemComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsProgressComponent, BsProgressBarComponent } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { FileUpload } from '../file-upload';\nimport { BsFormatBytesPipe } from '../pipes/format-bytes/format-bytes.pipe';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsFormatBytesPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class BsFileUploadComponent {\n\n readonly dropFilesCaption = input('Drop your files here');\n readonly browseFilesCaption = input('Browse for files');\n readonly placeholder = input('Drop files to upload');\n\n colors = Color;\n isDraggingFile = signal(false);\n fileTemplate?: TemplateRef<FileUpload>;\n readonly files = model<FileUpload[]>([]);\n readonly filesDropped = output<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n\n this.processDroppedFiles(files);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.dataTransfer) {\n this.isDraggingFile.set(true);\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile.set(false);\n }\n\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile.set(false);\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map((file, index) => <FileUpload>{ file, progress: 0, index: this.files().length + index });\n\n this.files.update(f => [...f, ...newFiles]);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\nimport { FileUpload } from '../file-upload';\n\n@Directive({\n selector: '[bsFileUploadTemplate]',\n})\nexport class BsFileUploadTemplateDirective {\n private fileUploadComponent = inject(BsFileUploadComponent);\n\n constructor() {\n const templateRef = inject(TemplateRef);\n this.fileUploadComponent.fileTemplate = templateRef;\n\n // TODO: fileUploadComponent.files is now an input() signal and cannot be assigned from the directive.\n // Consider converting files to model() on BsFileUploadComponent to restore this functionality.\n }\n\n readonly bsFileUploadTemplateOf = input<FileUpload[] | undefined>(undefined);\n\n static ngTemplateContextGuard(dir: BsFileUploadTemplateDirective, ctx: any): ctx is BsFileUploadTemplateContext {\n return true;\n }\n\n}\n\nexport class BsFileUploadTemplateContext {\n $implicit: FileUpload = null!;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,22 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Optional, Component } from '@angular/core';
3
- import * as i1 from '@mintplayer/ng-bootstrap/form';
2
+ import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { BsFormComponent } from '@mintplayer/ng-bootstrap/form';
4
4
 
5
5
  class BsFloatingLabelComponent {
6
- constructor(bsForm) {
6
+ constructor() {
7
+ const bsForm = inject(BsFormComponent, { optional: true });
7
8
  if (!bsForm) {
8
9
  throw '<bs-floating-label> must be inside a <bs-form>';
9
10
  }
10
11
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFloatingLabelComponent, deps: [{ token: i1.BsFormComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsFloatingLabelComponent, isStandalone: true, selector: "bs-floating-label", ngImport: i0, template: "<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>", styles: [":host ::ng-deep .form-floating{position:relative}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext,:host ::ng-deep .form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}:host ::ng-deep .form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .form-floating>label{transition:none}}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext{padding:1rem .75rem}:host ::ng-deep .form-floating>.form-control::placeholder,:host ::ng-deep .form-floating>.form-control-plaintext::placeholder{color:transparent}:host ::ng-deep .form-floating>.form-control:focus,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown),:host ::ng-deep .form-floating>.form-control-plaintext:focus,:host ::ng-deep .form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-control:-webkit-autofill,:host ::ng-deep .form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}:host ::ng-deep .form-floating>.form-control:focus~label,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown)~label,:host ::ng-deep .form-floating>.form-control-plaintext~label,:host ::ng-deep .form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>textarea:focus~label:after,:host ::ng-deep .form-floating>textarea:not(:placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}:host ::ng-deep .form-floating>textarea:disabled~label:after{background-color:var(--bs-secondary-bg)}:host ::ng-deep .form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}:host ::ng-deep .form-floating>:disabled~label,:host ::ng-deep .form-floating>.form-control:disabled~label{color:#6c757d}\n"] }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFloatingLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.6", type: BsFloatingLabelComponent, isStandalone: true, selector: "bs-floating-label", ngImport: i0, template: "<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>", styles: [":host ::ng-deep .form-floating{position:relative}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext,:host ::ng-deep .form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}:host ::ng-deep .form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .form-floating>label{transition:none}}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext{padding:1rem .75rem}:host ::ng-deep .form-floating>.form-control::placeholder,:host ::ng-deep .form-floating>.form-control-plaintext::placeholder{color:transparent}:host ::ng-deep .form-floating>.form-control:focus,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown),:host ::ng-deep .form-floating>.form-control-plaintext:focus,:host ::ng-deep .form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-control:-webkit-autofill,:host ::ng-deep .form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}:host ::ng-deep .form-floating>.form-control:focus~label,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown)~label,:host ::ng-deep .form-floating>.form-control-plaintext~label,:host ::ng-deep .form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>textarea:focus~label:after,:host ::ng-deep .form-floating>textarea:not(:placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}:host ::ng-deep .form-floating>textarea:disabled~label:after{background-color:var(--bs-secondary-bg)}:host ::ng-deep .form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}:host ::ng-deep .form-floating>:disabled~label,:host ::ng-deep .form-floating>.form-control:disabled~label{color:#6c757d}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
14
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFloatingLabelComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFloatingLabelComponent, decorators: [{
15
16
  type: Component,
16
- args: [{ selector: 'bs-floating-label', standalone: true, template: "<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>", styles: [":host ::ng-deep .form-floating{position:relative}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext,:host ::ng-deep .form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}:host ::ng-deep .form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .form-floating>label{transition:none}}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext{padding:1rem .75rem}:host ::ng-deep .form-floating>.form-control::placeholder,:host ::ng-deep .form-floating>.form-control-plaintext::placeholder{color:transparent}:host ::ng-deep .form-floating>.form-control:focus,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown),:host ::ng-deep .form-floating>.form-control-plaintext:focus,:host ::ng-deep .form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-control:-webkit-autofill,:host ::ng-deep .form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}:host ::ng-deep .form-floating>.form-control:focus~label,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown)~label,:host ::ng-deep .form-floating>.form-control-plaintext~label,:host ::ng-deep .form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>textarea:focus~label:after,:host ::ng-deep .form-floating>textarea:not(:placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}:host ::ng-deep .form-floating>textarea:disabled~label:after{background-color:var(--bs-secondary-bg)}:host ::ng-deep .form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}:host ::ng-deep .form-floating>:disabled~label,:host ::ng-deep .form-floating>.form-control:disabled~label{color:#6c757d}\n"] }]
17
- }], ctorParameters: () => [{ type: i1.BsFormComponent, decorators: [{
18
- type: Optional
19
- }] }] });
17
+ args: [{ selector: 'bs-floating-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>", styles: [":host ::ng-deep .form-floating{position:relative}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext,:host ::ng-deep .form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}:host ::ng-deep .form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .form-floating>label{transition:none}}:host ::ng-deep .form-floating>.form-control,:host ::ng-deep .form-floating>.form-control-plaintext{padding:1rem .75rem}:host ::ng-deep .form-floating>.form-control::placeholder,:host ::ng-deep .form-floating>.form-control-plaintext::placeholder{color:transparent}:host ::ng-deep .form-floating>.form-control:focus,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown),:host ::ng-deep .form-floating>.form-control-plaintext:focus,:host ::ng-deep .form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-control:-webkit-autofill,:host ::ng-deep .form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}:host ::ng-deep .form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}:host ::ng-deep .form-floating>.form-control:focus~label,:host ::ng-deep .form-floating>.form-control:not(:placeholder-shown)~label,:host ::ng-deep .form-floating>.form-control-plaintext~label,:host ::ng-deep .form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}:host ::ng-deep .form-floating>textarea:focus~label:after,:host ::ng-deep .form-floating>textarea:not(:placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}:host ::ng-deep .form-floating>textarea:disabled~label:after{background-color:var(--bs-secondary-bg)}:host ::ng-deep .form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}:host ::ng-deep .form-floating>:disabled~label,:host ::ng-deep .form-floating>.form-control:disabled~label{color:#6c757d}\n"] }]
18
+ }], ctorParameters: () => [] });
20
19
 
21
20
  /**
22
21
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-floating-labels.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/floating-labels/src/floating-label/floating-label.component.ts","../../../../libs/mintplayer-ng-bootstrap/floating-labels/src/floating-label/floating-label.component.html","../../../../libs/mintplayer-ng-bootstrap/floating-labels/mintplayer-ng-bootstrap-floating-labels.ts"],"sourcesContent":["import { Optional, Component, ContentChild, ElementRef } from '@angular/core';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\n\n@Component({\n selector: 'bs-floating-label',\n standalone: true,\n templateUrl: './floating-label.component.html',\n styleUrls: ['./floating-label.component.scss'],\n})\nexport class BsFloatingLabelComponent {\n constructor(@Optional() bsForm: BsFormComponent) {\n if (!bsForm) {\n throw '<bs-floating-label> must be inside a <bs-form>';\n }\n }\n\n // @ContentChild(BsFloatingFormControlDirective, { read: ElementRef }) input!: ElementRef<HTMLInputElement>;\n\n // ngAfterContentInit() {\n // this.input.nativeElement.classList.add('form-control');\n // }\n}\n","<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,wBAAwB,CAAA;AACnC,IAAA,WAAA,CAAwB,MAAuB,EAAA;QAC7C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,gDAAgD;QACxD;IACF;8GALW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6ECTrC,uIAGM,EAAA,MAAA,EAAA,CAAA,soFAAA,CAAA,EAAA,CAAA,CAAA;;2FDMO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,QAAA,EAAA,uIAAA,EAAA,MAAA,EAAA,CAAA,soFAAA,CAAA,EAAA;;0BAKH;;;AEVf;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-floating-labels.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/floating-labels/src/floating-label/floating-label.component.ts","../../../../libs/mintplayer-ng-bootstrap/floating-labels/src/floating-label/floating-label.component.html","../../../../libs/mintplayer-ng-bootstrap/floating-labels/mintplayer-ng-bootstrap-floating-labels.ts"],"sourcesContent":["import { Component, inject, ChangeDetectionStrategy} from '@angular/core';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\n\n@Component({\n selector: 'bs-floating-label',\n templateUrl: './floating-label.component.html',\n styleUrls: ['./floating-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsFloatingLabelComponent {\n constructor() {\n const bsForm = inject(BsFormComponent, { optional: true });\n if (!bsForm) {\n throw '<bs-floating-label> must be inside a <bs-form>';\n }\n }\n}\n","<div class=\"form-floating\">\n <ng-content select=\"input\"></ng-content>\n <ng-content select=\"label\"></ng-content>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,wBAAwB,CAAA;AACnC,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,gDAAgD;QACxD;IACF;8GANW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6ECTrC,uIAGM,EAAA,MAAA,EAAA,CAAA,soFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDMO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uIAAA,EAAA,MAAA,EAAA,CAAA,soFAAA,CAAA,EAAA;;;AEPjD;;AAEG;;;;"}
@@ -15,14 +15,13 @@ class BsFontColorPipe {
15
15
  const CONTRAST_HEX = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';
16
16
  return CONTRAST_HEX;
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFontColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BsFontColorPipe, isStandalone: true, name: "bsFontColor" }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFontColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.6", ngImport: i0, type: BsFontColorPipe, isStandalone: true, name: "bsFontColor" }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsFontColorPipe, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFontColorPipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{
24
24
  name: 'bsFontColor',
25
- standalone: true,
26
25
  pure: true,
27
26
  }]
28
27
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-font-color.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/font-color/src/font-color.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/font-color/mintplayer-ng-bootstrap-font-color.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFontColor',\n standalone: true,\n pure: true,\n})\nexport class BsFontColorPipe implements PipeTransform {\n\n transform(color_hex: any, defaultColor = '#FFFFFF'): any {\n if (color_hex === undefined || color_hex === null || color_hex.length < 7 || typeof (color_hex) !== 'string') {\n return defaultColor;\n }\n const R_HEX: string = color_hex.substr(1, 2);\n const G_HEX: string = color_hex.substr(3, 2);\n const B_HEX: string = color_hex.substr(5, 2);\n const R_DEC: number = parseInt(R_HEX, 16);\n const G_DEC: number = parseInt(G_HEX, 16);\n const B_DEC: number = parseInt(B_HEX, 16);\n const CONTRAST_HEX: string = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';\n return CONTRAST_HEX;\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAOa,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,SAAc,EAAE,YAAY,GAAG,SAAS,EAAA;QAChD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,SAAS,CAAC,KAAK,QAAQ,EAAE;AAC5G,YAAA,OAAO,YAAY;QACrB;QACA,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,YAAY,GAAW,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS;AACxG,QAAA,OAAO,YAAY;IACrB;8GAdW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-font-color.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/font-color/src/font-color.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/font-color/mintplayer-ng-bootstrap-font-color.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFontColor',\n pure: true,\n})\nexport class BsFontColorPipe implements PipeTransform {\n\n transform(color_hex: any, defaultColor = '#FFFFFF'): any {\n if (color_hex === undefined || color_hex === null || color_hex.length < 7 || typeof (color_hex) !== 'string') {\n return defaultColor;\n }\n const R_HEX: string = color_hex.substr(1, 2);\n const G_HEX: string = color_hex.substr(3, 2);\n const B_HEX: string = color_hex.substr(5, 2);\n const R_DEC: number = parseInt(R_HEX, 16);\n const G_DEC: number = parseInt(G_HEX, 16);\n const B_DEC: number = parseInt(B_HEX, 16);\n const CONTRAST_HEX: string = R_DEC * 0.299 + G_DEC * 0.587 + B_DEC * 0.114 > 186 ? '#000000' : '#FFFFFF';\n return CONTRAST_HEX;\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,SAAc,EAAE,YAAY,GAAG,SAAS,EAAA;QAChD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,SAAS,CAAC,KAAK,QAAQ,EAAE;AAC5G,YAAA,OAAO,YAAY;QACrB;QACA,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,MAAM,YAAY,GAAW,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS;AACxG,QAAA,OAAO,YAAY;IACrB;8GAdW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;AAEG;;;;"}
@@ -1,40 +1,37 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Input, Directive } from '@angular/core';
2
+ import { input, effect, Directive } from '@angular/core';
3
3
 
4
4
  class BsForDirective {
5
- constructor() {
6
- this.defaultCursor = true;
7
- }
8
5
  static { this.counter = 1; }
9
- set bsFor(value) {
10
- this.target = value;
11
- if (this.target instanceof HTMLElement) {
12
- if (!this.target.id) {
13
- const count = BsForDirective.counter++;
14
- this.target.id = `for-target-${count}`;
6
+ constructor() {
7
+ this.bsFor = input(undefined, ...(ngDevMode ? [{ debugName: "bsFor" }] : []));
8
+ effect(() => {
9
+ const value = this.bsFor();
10
+ if (value !== undefined) {
11
+ this.target = value;
12
+ if (this.target instanceof HTMLElement) {
13
+ if (!this.target.id) {
14
+ const count = BsForDirective.counter++;
15
+ this.target.id = `for-target-${count}`;
16
+ }
17
+ this.forValue = this.target.id;
18
+ }
15
19
  }
16
- this.forValue = this.target.id;
17
- }
18
- // console.log('target', this.target);
20
+ });
19
21
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsForDirective, isStandalone: true, selector: "label[bsFor]", inputs: { bsFor: "bsFor" }, host: { properties: { "class.cursor-default": "this.defaultCursor", "attr.for": "this.forValue" } }, ngImport: i0 }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: BsForDirective, isStandalone: true, selector: "label[bsFor]", inputs: { bsFor: { classPropertyName: "bsFor", publicName: "bsFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.cursor-default": "true", "attr.for": "forValue" } }, ngImport: i0 }); }
22
24
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsForDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsForDirective, decorators: [{
24
26
  type: Directive,
25
27
  args: [{
26
28
  selector: 'label[bsFor]',
27
- standalone: true,
29
+ host: {
30
+ '[class.cursor-default]': 'true',
31
+ '[attr.for]': 'forValue',
32
+ },
28
33
  }]
29
- }], propDecorators: { defaultCursor: [{
30
- type: HostBinding,
31
- args: ['class.cursor-default']
32
- }], bsFor: [{
33
- type: Input
34
- }], forValue: [{
35
- type: HostBinding,
36
- args: ['attr.for']
37
- }] } });
34
+ }], ctorParameters: () => [], propDecorators: { bsFor: [{ type: i0.Input, args: [{ isSignal: true, alias: "bsFor", required: false }] }] } });
38
35
 
39
36
  /**
40
37
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-for.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/for/src/for.directive.ts","../../../../libs/mintplayer-ng-bootstrap/for/mintplayer-ng-bootstrap-for.ts"],"sourcesContent":["import { Directive, HostBinding, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'label[bsFor]',\n standalone: true,\n})\nexport class BsForDirective {\n\n @HostBinding('class.cursor-default') defaultCursor = true;\n\n static counter = 1;\n private target: any;\n @Input() public set bsFor(value: any) {\n this.target = value;\n if (this.target instanceof HTMLElement) {\n if (!this.target.id) {\n const count = BsForDirective.counter++;\n this.target.id = `for-target-${count}`;\n }\n this.forValue = this.target.id;\n }\n // console.log('target', this.target);\n }\n\n @HostBinding('attr.for') forValue?: string;\n \n // @HostListener('click') onMouseClick() {\n // if (!('tagName' in this.target)) {\n // // Not a form-control, let's just assume the class has some \"focus\" method\n // this.target.focus();\n // } else if (this.target.tagName.toLowerCase() !== 'input') {\n // // HTML element, but not an input, probably a textarea\n // this.target.focus();\n // } else if (this.target.type.toLowerCase() === 'file') {\n // // HtmlInputElement for a file\n // this.target.click();\n // } else {\n // // HtmlInputElement\n // this.target.focus();\n // }\n // }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;QAMuC,IAAA,CAAA,aAAa,GAAG,IAAI;AAkC1D,IAAA;aAhCQ,IAAA,CAAA,OAAO,GAAG,CAAH,CAAK;IAEnB,IAAoB,KAAK,CAAC,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;AACnB,gBAAA,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAA,WAAA,EAAc,KAAK,EAAE;YACxC;YACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;QAChC;;IAEF;8GAhBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAGE,WAAW;uBAAC,sBAAsB;;sBAIlC;;sBAYA,WAAW;uBAAC,UAAU;;;ACxBzB;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-for.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/for/src/for.directive.ts","../../../../libs/mintplayer-ng-bootstrap/for/mintplayer-ng-bootstrap-for.ts"],"sourcesContent":["import { Directive, effect, input } from '@angular/core';\n\n@Directive({\n selector: 'label[bsFor]',\n host: {\n '[class.cursor-default]': 'true',\n '[attr.for]': 'forValue',\n },\n})\nexport class BsForDirective {\n\n static counter = 1;\n private target: any;\n readonly bsFor = input<any>(undefined);\n\n constructor() {\n effect(() => {\n const value = this.bsFor();\n if (value !== undefined) {\n this.target = value;\n if (this.target instanceof HTMLElement) {\n if (!this.target.id) {\n const count = BsForDirective.counter++;\n this.target.id = `for-target-${count}`;\n }\n this.forValue = this.target.id;\n }\n }\n });\n }\n\n forValue?: string;\n\n // @HostListener('click') onMouseClick() {\n // if (!('tagName' in this.target)) {\n // // Not a form-control, let's just assume the class has some \"focus\" method\n // this.target.focus();\n // } else if (this.target.tagName.toLowerCase() !== 'input') {\n // // HTML element, but not an input, probably a textarea\n // this.target.focus();\n // } else if (this.target.type.toLowerCase() === 'file') {\n // // HtmlInputElement for a file\n // this.target.click();\n // } else {\n // // HtmlInputElement\n // this.target.focus();\n // }\n // }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MASa,cAAc,CAAA;aAElB,IAAA,CAAA,OAAO,GAAG,CAAH,CAAK;AAInB,IAAA,WAAA,GAAA;AAFS,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAM,SAAS,iDAAC;QAGpC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,gBAAA,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,EAAE;AACtC,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;AACnB,wBAAA,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE;wBACtC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAA,WAAA,EAAc,KAAK,EAAE;oBACxC;oBACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;gBAChC;YACF;AACF,QAAA,CAAC,CAAC;IACJ;8GApBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACJ,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,YAAY,EAAE,UAAU;AACzB,qBAAA;AACF,iBAAA;;;ACRD;;AAEG;;;;"}