@mintplayer/ng-bootstrap 21.29.0 → 21.31.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 (156) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-a11y.mjs +455 -0
  2. package/fesm2022/mintplayer-ng-bootstrap-a11y.mjs.map +1 -0
  3. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +8 -5
  4. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -4
  6. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +7 -4
  8. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +131 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +80 -48
  12. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +4 -1
  14. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +218 -14
  16. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +4 -3
  18. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +2 -2
  20. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +294 -3
  22. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +163 -18
  24. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +179 -7
  26. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +14 -4
  28. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +14 -0
  30. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +2 -1
  32. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +7 -4
  34. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +70 -6
  36. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-multi-range.mjs +693 -0
  38. package/fesm2022/mintplayer-ng-bootstrap-multi-range.mjs.map +1 -0
  39. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +5 -4
  40. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +6 -6
  42. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +45 -13
  44. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +51 -5
  46. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +5 -3
  48. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +18 -4
  50. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +6 -6
  52. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +61 -6
  54. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +19 -4
  56. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +8 -5
  58. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +4 -3
  60. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +34 -4
  62. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs +59 -0
  64. package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs.map +1 -0
  65. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +91 -2
  66. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -5
  68. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +2 -2
  70. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +28 -5
  72. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +4 -3
  74. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +18 -4
  76. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +4 -3
  78. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +2 -2
  80. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -3
  82. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs +143 -29
  84. package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +2 -2
  86. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +7 -4
  88. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +42 -21
  90. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +33 -4
  92. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +17 -7
  94. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +50 -8
  96. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +34 -12
  98. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs +74 -0
  100. package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs.map +1 -0
  101. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +1476 -71
  102. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +194 -2
  104. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -1
  105. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +4 -0
  106. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -1
  107. package/package.json +18 -2
  108. package/types/mintplayer-ng-bootstrap-a11y.d.ts +196 -0
  109. package/types/mintplayer-ng-bootstrap-accordion.d.ts +4 -2
  110. package/types/mintplayer-ng-bootstrap-breadcrumb.d.ts +2 -1
  111. package/types/mintplayer-ng-bootstrap-button-group.d.ts +2 -1
  112. package/types/mintplayer-ng-bootstrap-calendar.d.ts +32 -0
  113. package/types/mintplayer-ng-bootstrap-carousel.d.ts +56 -3
  114. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +1 -0
  115. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +75 -4
  116. package/types/mintplayer-ng-bootstrap-datatable.d.ts +1 -1
  117. package/types/mintplayer-ng-bootstrap-dock.d.ts +51 -0
  118. package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +54 -9
  119. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +57 -2
  120. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +4 -1
  121. package/types/mintplayer-ng-bootstrap-has-overlay.d.ts +14 -0
  122. package/types/mintplayer-ng-bootstrap-marquee.d.ts +2 -1
  123. package/types/mintplayer-ng-bootstrap-modal.d.ts +25 -1
  124. package/types/mintplayer-ng-bootstrap-multi-range.d.ts +170 -0
  125. package/types/mintplayer-ng-bootstrap-multiselect.d.ts +2 -1
  126. package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +4 -2
  127. package/types/mintplayer-ng-bootstrap-navbar.d.ts +25 -1
  128. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +23 -1
  129. package/types/mintplayer-ng-bootstrap-pagination.d.ts +3 -1
  130. package/types/mintplayer-ng-bootstrap-placeholder.d.ts +5 -1
  131. package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +4 -2
  132. package/types/mintplayer-ng-bootstrap-popover.d.ts +21 -1
  133. package/types/mintplayer-ng-bootstrap-priority-nav.d.ts +4 -1
  134. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +4 -2
  135. package/types/mintplayer-ng-bootstrap-range.d.ts +2 -1
  136. package/types/mintplayer-ng-bootstrap-rating.d.ts +3 -0
  137. package/types/mintplayer-ng-bootstrap-reduced-motion.d.ts +36 -0
  138. package/types/mintplayer-ng-bootstrap-resizable.d.ts +4 -0
  139. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +42 -9
  140. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +1 -1
  141. package/types/mintplayer-ng-bootstrap-searchbox.d.ts +8 -1
  142. package/types/mintplayer-ng-bootstrap-select.d.ts +2 -1
  143. package/types/mintplayer-ng-bootstrap-select2.d.ts +3 -0
  144. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +2 -1
  145. package/types/mintplayer-ng-bootstrap-table.d.ts +8 -1
  146. package/types/mintplayer-ng-bootstrap-tile-manager.d.ts +21 -2
  147. package/types/mintplayer-ng-bootstrap-toast.d.ts +6 -1
  148. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +11 -0
  149. package/types/mintplayer-ng-bootstrap-tooltip.d.ts +5 -0
  150. package/types/mintplayer-ng-bootstrap-treeview.d.ts +12 -1
  151. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +11 -3
  152. package/types/mintplayer-ng-bootstrap-virtual-datatable.d.ts +14 -1
  153. package/types/mintplayer-ng-bootstrap-web-components-a11y.d.ts +34 -0
  154. package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +35 -11
  155. package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +246 -0
  156. package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +95 -37
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-multi-range.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/multi-range/src/lib/value-accessor/multi-range-value-accessor.ts","../../../../libs/mintplayer-ng-bootstrap/multi-range/src/lib/components/multi-range.component.ts","../../../../libs/mintplayer-ng-bootstrap/multi-range/src/lib/web-components/mint-multi-range.element.template.ts","../../../../libs/mintplayer-ng-bootstrap/multi-range/src/lib/web-components/mint-multi-range.element.ts","../../../../libs/mintplayer-ng-bootstrap/multi-range/mintplayer-ng-bootstrap-multi-range.ts"],"sourcesContent":["import { Directive, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BsMultiRangeComponent } from '../components/multi-range.component';\n\n@Directive({\n selector: 'bs-multi-range',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsMultiRangeValueAccessor),\n multi: true,\n }],\n host: {\n '(value-input)': 'onInputEvent($event)',\n '(value-change)': 'onTouchEvent()',\n },\n})\nexport class BsMultiRangeValueAccessor implements ControlValueAccessor {\n private host = inject(BsMultiRangeComponent);\n\n private onValueChange?: (value: number[]) => void;\n private onTouched?: () => void;\n\n protected onInputEvent(ev: Event) {\n if (!this.onValueChange) return;\n const detail = (ev as CustomEvent<number[]>).detail;\n if (detail) this.onValueChange([...detail]);\n }\n\n protected onTouchEvent() {\n if (this.onTouched) this.onTouched();\n }\n\n registerOnChange(fn: (value: number[]) => void) {\n this.onValueChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n writeValue(value: number[] | null | undefined) {\n const ref = this.host.elementRef();\n if (!ref) return;\n ref.nativeElement.value = value ?? [];\n }\n\n setDisabledState(isDisabled: boolean) {\n const ref = this.host.elementRef();\n if (!ref) return;\n if (isDisabled) {\n ref.nativeElement.setAttribute('disabled', '');\n } else {\n ref.nativeElement.removeAttribute('disabled');\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n ElementRef,\n computed,\n effect,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport { MintMultiRangeElement } from '../web-components/mint-multi-range.element';\nimport { BsMultiRangeValueAccessor } from '../value-accessor/multi-range-value-accessor';\nimport { MultiRangeOrientation } from '../types/multi-range-orientation';\n\n@Component({\n selector: 'bs-multi-range',\n template: `\n <mp-multi-range\n #el\n class=\"bs-multi-range\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.min-distance]=\"minDistance()\"\n [attr.orientation]=\"orientation()\"\n [attr.disabled]=\"disabledAttr()\"\n [attr.aria-label]=\"label()\"\n (value-input)=\"onValueInput($event)\"\n (value-change)=\"onValueChange($event)\"\n ></mp-multi-range>\n `,\n styles: [`\n :host { display: block; width: 100%; }\n .bs-multi-range { display: block; width: 100%; height: 100%; }\n :host([orientation='vertical']) { width: auto; height: 100%; }\n `],\n host: {\n '[attr.orientation]': 'orientation()',\n },\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [BsMultiRangeValueAccessor],\n})\nexport class BsMultiRangeComponent {\n readonly min = input(0);\n readonly max = input(100);\n readonly step = input(1);\n readonly minDistance = input(0);\n readonly orientation = input<MultiRangeOrientation>('horizontal');\n readonly disabled = input(false);\n readonly formatValue = input<((value: number) => string) | null>(null);\n readonly label = input<string | null>(null);\n\n // Default is `undefined` so the effect doesn't clobber a writeValue() from a\n // form-control binding that hasn't fired yet. Once the model is set (either\n // by [(value)] binding or by user interaction), the effect drives the WC.\n readonly value = model<number[] | undefined>(undefined);\n\n readonly valueChange = output<number[]>();\n readonly valueInput = output<number[]>();\n\n readonly elementRef = viewChild.required<ElementRef<MintMultiRangeElement>>('el');\n\n protected readonly disabledAttr = computed(() => (this.disabled() ? '' : null));\n\n constructor() {\n effect(() => {\n const ref = this.elementRef();\n if (!ref) return;\n const v = this.value();\n if (v === undefined) return;\n ref.nativeElement.value = v;\n });\n effect(() => {\n const ref = this.elementRef();\n if (!ref) return;\n ref.nativeElement.formatValue = this.formatValue();\n });\n }\n\n protected onValueInput(event: Event): void {\n const detail = (event as CustomEvent<number[]>).detail;\n if (!detail) return;\n this.value.set(detail);\n this.valueInput.emit(detail);\n }\n\n protected onValueChange(event: Event): void {\n const detail = (event as CustomEvent<number[]>).detail;\n if (!detail) return;\n this.value.set(detail);\n this.valueChange.emit(detail);\n }\n\n /** Imperatively read the currently-rendered values from the WC. */\n getValues(): number[] {\n const ref = this.elementRef();\n return ref ? ref.nativeElement.getValues() : [];\n }\n}\n","// AUTO-GENERATED — do not edit by hand.\n// Source: mint-multi-range.element.html + mint-multi-range.element.scss\n// Regenerate with the codegen-wc Nx target.\n\nimport { html, unsafeCSS } from 'lit';\n\nexport const template = html`<!-- Track + thumbs are rendered dynamically by render(). This file exists so the\n codegen-wc target produces a \\`styles\\` export from the sibling .scss; the\n \\`template\\` export it generates here is intentionally unused. -->`;\nexport const styles = unsafeCSS(`:host {\n display: block;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n --bs-multi-range-track-bg: var(--bs-tertiary-bg, #e9ecef);\n --bs-multi-range-track-radius: 1rem;\n --bs-multi-range-track-thickness: 0.5rem;\n --bs-multi-range-thumb-bg: var(--bs-primary, #0d6efd);\n --bs-multi-range-thumb-bg-disabled: var(--bs-secondary, #6c757d);\n --bs-multi-range-thumb-size: 1rem;\n --bs-multi-range-thumb-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n --bs-multi-range-fill-bg: var(--bs-primary, #0d6efd);\n --bs-multi-range-fill-bg-disabled: var(--bs-secondary, #6c757d);\n --bs-multi-range-tooltip-bg: var(--bs-dark, #212529);\n --bs-multi-range-tooltip-color: var(--bs-light, #f8f9fa);\n}\n\n:host([orientation=vertical]) {\n width: auto;\n height: 100%;\n min-height: 8rem;\n}\n\n:host([disabled]) {\n cursor: not-allowed;\n}\n\n.track {\n position: relative;\n background: var(--bs-multi-range-track-bg);\n border-radius: var(--bs-multi-range-track-radius);\n touch-action: none;\n}\n\n:host([orientation=horizontal]) .track {\n width: 100%;\n height: var(--bs-multi-range-track-thickness);\n margin: calc(var(--bs-multi-range-thumb-size) / 2) 0;\n}\n\n:host([orientation=vertical]) .track {\n width: var(--bs-multi-range-track-thickness);\n height: 100%;\n margin: 0 calc(var(--bs-multi-range-thumb-size) / 2);\n}\n\n.fill {\n position: absolute;\n background: var(--bs-multi-range-fill-bg);\n border-radius: var(--bs-multi-range-track-radius);\n}\n\n:host([orientation=horizontal]) .fill {\n top: 0;\n bottom: 0;\n}\n\n:host([orientation=vertical]) .fill {\n left: 0;\n right: 0;\n}\n\n:host([disabled]) .fill {\n background: var(--bs-multi-range-fill-bg-disabled);\n}\n\n.thumb {\n position: absolute;\n width: var(--bs-multi-range-thumb-size);\n height: var(--bs-multi-range-thumb-size);\n background: var(--bs-multi-range-thumb-bg);\n border: 0;\n border-radius: 50%;\n box-shadow: var(--bs-multi-range-thumb-shadow);\n cursor: grab;\n touch-action: none;\n padding: 0;\n outline: none;\n transition: transform 100ms ease-out;\n}\n\n.thumb:active {\n cursor: grabbing;\n transform: scale(1.1);\n}\n\n:host([orientation=horizontal]) .thumb {\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n:host([orientation=horizontal]) .thumb:active {\n transform: translate(-50%, -50%) scale(1.1);\n}\n\n:host([orientation=horizontal]:dir(rtl)) .thumb {\n transform: translate(50%, -50%);\n}\n\n:host([orientation=horizontal]:dir(rtl)) .thumb:active {\n transform: translate(50%, -50%) scale(1.1);\n}\n\n:host([orientation=vertical]) .thumb {\n left: 50%;\n transform: translate(-50%, 50%);\n}\n\n:host([orientation=vertical]) .thumb:active {\n transform: translate(-50%, 50%) scale(1.1);\n}\n\n:host([disabled]) .thumb {\n background: var(--bs-multi-range-thumb-bg-disabled);\n cursor: not-allowed;\n}\n\n.thumb:focus-visible {\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.35), var(--bs-multi-range-thumb-shadow);\n}\n\n.tooltip {\n position: absolute;\n background: var(--bs-multi-range-tooltip-bg);\n color: var(--bs-multi-range-tooltip-color);\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1;\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n pointer-events: none;\n white-space: nowrap;\n opacity: 0;\n transition: opacity 120ms ease-out;\n z-index: 2;\n}\n\n:host([orientation=horizontal]) .tooltip {\n bottom: calc(100% + 0.5rem);\n left: 50%;\n transform: translateX(-50%);\n}\n\n:host([orientation=vertical]) .tooltip {\n left: calc(100% + 0.5rem);\n top: 50%;\n transform: translateY(-50%);\n}\n\n.thumb:hover .tooltip,\n.thumb:focus-visible .tooltip,\n.thumb:active .tooltip,\n.thumb[data-dragging=true] .tooltip {\n opacity: 1;\n}\n\n:host([disabled]) .tooltip {\n display: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .thumb,\n .tooltip {\n transition: none;\n }\n}`);\n","import { LitElement, html, nothing, type TemplateResult } from 'lit';\nimport { styles } from './mint-multi-range.element.template';\nimport { MultiRangeOrientation } from '../types/multi-range-orientation';\n\n/**\n * Bootstrap-flavoured multi-thumb range slider.\n *\n * Block-crossing: thumbs cannot pass their neighbours. Identity is by index —\n * value[0] is always the lowest thumb. The value setter normalises input by\n * sorting ascending and clamping each entry to [min, max]; minDistance is\n * enforced only at user-interaction entry points (pointer + keyboard), not on\n * programmatic writes — callers' arrays are preserved verbatim within bounds.\n *\n * Events:\n * - `value-input` fires continuously during drag and on every keyboard step.\n * - `value-change` fires on commit (pointerup) and after every keyboard step.\n *\n * Both bubble and compose so the Angular wrapper's host listeners pick them up.\n */\nexport class MintMultiRangeElement extends LitElement {\n static override styles = [styles];\n\n static override get observedAttributes(): string[] {\n return [\n ...(super.observedAttributes ?? []),\n 'min',\n 'max',\n 'step',\n 'min-distance',\n 'orientation',\n 'disabled',\n ];\n }\n\n static override properties = {\n value: { attribute: false },\n min: { attribute: 'min', type: Number, reflect: true },\n max: { attribute: 'max', type: Number, reflect: true },\n step: { attribute: 'step', type: Number, reflect: true },\n minDistance: { attribute: 'min-distance', type: Number },\n orientation: { attribute: 'orientation', type: String, reflect: true },\n disabled: { attribute: 'disabled', type: Boolean, reflect: true },\n formatValue: { attribute: false },\n };\n\n min = 0;\n max = 100;\n step = 1;\n minDistance = 0;\n orientation: MultiRangeOrientation = 'horizontal';\n disabled = false;\n formatValue: ((value: number) => string) | null = null;\n\n private _value: number[] | null = null;\n private dragState: { thumbIndex: number; pointerId: number } | null = null;\n\n // Cached references / state to keep the per-pointermove path off the hot path\n // for getComputedStyle and querySelector. Track ref is set in firstUpdated()\n // and is stable across renders. RTL is captured at gesture start so a single\n // drag stream sees a coherent direction even if the host's `dir` changes mid-air.\n private trackEl: HTMLElement | null = null;\n private rtlDuringGesture: boolean | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) this.setAttribute('role', 'group');\n }\n\n protected override firstUpdated(): void {\n this.trackEl = this.renderRoot.querySelector<HTMLElement>('.track');\n }\n\n get value(): number[] {\n return this._value ?? [this.min, this.max];\n }\n\n set value(next: number[] | null | undefined) {\n const old = this._value;\n const normalised = this.normalise(next);\n // Skip the update entirely when the incoming array is shallow-equal to the\n // current state — the wrapper's effect re-pushes the value on every\n // value-input event during a drag, so without this we'd queue a redundant\n // Lit update for every pointermove.\n if (this.arraysEqual(old, normalised)) return;\n this._value = normalised;\n this.requestUpdate('value', old);\n }\n\n private arraysEqual(a: number[] | null, b: number[] | null): boolean {\n if (a === b) return true;\n if (a === null || b === null) return false;\n if (a.length !== b.length) return false;\n return a.every((v, i) => v === b[i]);\n }\n\n private normalise(input: number[] | null | undefined): number[] | null {\n if (!input || input.length === 0) return null;\n const clamped = input.map(v => this.clampToBounds(v));\n return [...clamped].sort((a, b) => a - b);\n }\n\n private clampToBounds(v: number): number {\n return Math.min(this.max, Math.max(this.min, v));\n }\n\n private snapToStep(v: number): number {\n if (!this.step || this.step <= 0) return this.clampToBounds(v);\n const snapped = this.min + Math.round((v - this.min) / this.step) * this.step;\n return this.clampToBounds(snapped);\n }\n\n private percent(value: number): number {\n const range = this.max - this.min;\n if (range <= 0) return 0;\n return ((value - this.min) / range) * 100;\n }\n\n private formatThumb(value: number): string {\n if (this.formatValue) {\n try { return this.formatValue(value); } catch { return String(value); }\n }\n return String(value);\n }\n\n private isVertical(): boolean {\n return this.orientation === 'vertical';\n }\n\n /**\n * Returns whether the host renders in RTL. Uses the cached value if a gesture\n * is active (set in startDrag / onTrackPointerDown), otherwise reads\n * getComputedStyle fresh — direction can come from any ancestor's `dir`,\n * so document.dir or our own attribute aren't sufficient.\n */\n private isRtl(): boolean {\n if (this.rtlDuringGesture !== null) return this.rtlDuringGesture;\n return getComputedStyle(this).direction === 'rtl';\n }\n\n /**\n * Apply the Block + minDistance constraint to a candidate value for thumb i.\n * Returns the candidate clamped between its (already-respected) neighbours.\n */\n private constrainThumb(values: number[], i: number, candidate: number): number {\n const lower = i > 0 ? values[i - 1] + this.minDistance : this.min;\n const upper = i < values.length - 1 ? values[i + 1] - this.minDistance : this.max;\n return Math.min(Math.max(candidate, lower), upper);\n }\n\n /** Map a pointer coordinate inside the track rect to a value in [min, max]. */\n private valueFromPointer(clientX: number, clientY: number): number {\n const track = this.trackEl ?? this.renderRoot.querySelector<HTMLElement>('.track');\n if (!track) return this.min;\n const rect = track.getBoundingClientRect();\n let pct: number;\n if (this.isVertical()) {\n pct = (rect.bottom - clientY) / rect.height;\n } else if (this.isRtl()) {\n pct = (rect.right - clientX) / rect.width;\n } else {\n pct = (clientX - rect.left) / rect.width;\n }\n pct = Math.min(1, Math.max(0, pct));\n const raw = this.min + pct * (this.max - this.min);\n return this.snapToStep(raw);\n }\n\n /** Update one thumb in-place; emit `value-input`. Returns true if value changed. */\n private moveThumb(thumbIndex: number, candidate: number): boolean {\n const current = [...this.value];\n const constrained = this.constrainThumb(current, thumbIndex, this.snapToStep(candidate));\n if (constrained === current[thumbIndex]) return false;\n current[thumbIndex] = constrained;\n this._value = current;\n this.requestUpdate('value');\n this.dispatchEvent(new CustomEvent<number[]>('value-input', {\n detail: [...current],\n bubbles: true,\n composed: true,\n }));\n return true;\n }\n\n private dispatchValueChange(): void {\n this.dispatchEvent(new CustomEvent<number[]>('value-change', {\n detail: [...this.value],\n bubbles: true,\n composed: true,\n }));\n }\n\n private startDrag(thumbIndex: number, pointerId: number, target: HTMLElement): void {\n if (this.disabled) return;\n if (this.rtlDuringGesture === null) {\n this.rtlDuringGesture = getComputedStyle(this).direction === 'rtl';\n }\n target.setPointerCapture(pointerId);\n target.focus();\n this.dragState = { thumbIndex, pointerId };\n this.requestUpdate();\n }\n\n private onThumbPointerDown = (thumbIndex: number, ev: PointerEvent): void => {\n if (this.disabled) return;\n this.startDrag(thumbIndex, ev.pointerId, ev.currentTarget as HTMLElement);\n };\n\n private onTrackPointerDown = (ev: PointerEvent): void => {\n if (this.disabled) return;\n // Ignore clicks that originated on a thumb — those are handled by the thumb's own pointerdown.\n const path = ev.composedPath();\n if (path.some(node => node instanceof HTMLElement && node.classList?.contains('thumb'))) return;\n // Capture direction up-front so the first valueFromPointer / nearest-thumb\n // calculation in this gesture sees a consistent value.\n this.rtlDuringGesture = getComputedStyle(this).direction === 'rtl';\n const targetValue = this.valueFromPointer(ev.clientX, ev.clientY);\n const values = this.value;\n const nearestIndex = this.nearestThumbIndex(values, targetValue);\n if (this.moveThumb(nearestIndex, targetValue)) this.dispatchValueChange();\n // Transfer drag to the nearest thumb so a continued press-and-drag keeps moving it.\n const thumbEl = this.renderRoot.querySelector<HTMLElement>(\n `.thumb[data-thumb-index=\"${nearestIndex}\"]`,\n );\n if (thumbEl) this.startDrag(nearestIndex, ev.pointerId, thumbEl);\n };\n\n /**\n * Returns the index of the thumb closest to `target`. Ties (multiple thumbs\n * stacked at the same value) are broken by direction: clicks to the right of\n * the stack pick the highest-index thumb, clicks to the left pick the\n * lowest. Without this, a stack would always select the lowest-index thumb,\n * which is blocked by its higher-indexed neighbours and can't move toward\n * the click — the user would see no response.\n */\n private nearestThumbIndex(values: number[], target: number): number {\n return values.reduce((best, v, i) => {\n const dBest = Math.abs(values[best] - target);\n const dCur = Math.abs(v - target);\n if (dCur < dBest) return i;\n if (dCur > dBest) return best;\n // Tie. Prefer the thumb on the side of the target so it can move toward it.\n return target > v ? i : best;\n }, 0);\n }\n\n private onPointerMove = (ev: PointerEvent): void => {\n if (!this.dragState || ev.pointerId !== this.dragState.pointerId) return;\n const candidate = this.valueFromPointer(ev.clientX, ev.clientY);\n this.moveThumb(this.dragState.thumbIndex, candidate);\n };\n\n private onPointerUp = (ev: PointerEvent): void => {\n if (!this.dragState || ev.pointerId !== this.dragState.pointerId) return;\n const target = ev.target as HTMLElement | null;\n if (target?.releasePointerCapture && target.hasPointerCapture(ev.pointerId)) {\n target.releasePointerCapture(ev.pointerId);\n }\n this.dragState = null;\n this.rtlDuringGesture = null;\n this.requestUpdate();\n this.dispatchValueChange();\n };\n\n private onThumbKeyDown = (thumbIndex: number, ev: KeyboardEvent): void => {\n if (this.disabled) return;\n const target = this.keyboardTarget(thumbIndex, ev.key);\n if (target === null) return;\n ev.preventDefault();\n if (this.moveThumb(thumbIndex, target)) this.dispatchValueChange();\n };\n\n /** Return the target value for a key press, or null if the key isn't bound. */\n private keyboardTarget(thumbIndex: number, key: string): number | null {\n const step = this.step || 1;\n const big = step * 10;\n const current = this.value[thumbIndex];\n const rtl = !this.isVertical() && this.isRtl();\n switch (key) {\n case 'ArrowRight': return current + (rtl ? -step : step);\n case 'ArrowLeft': return current + (rtl ? step : -step);\n case 'ArrowUp': return current + step;\n case 'ArrowDown': return current - step;\n case 'PageUp': return current + big;\n case 'PageDown': return current - big;\n case 'Home': return this.min;\n case 'End': return this.max;\n default: return null;\n }\n }\n\n protected override render(): TemplateResult {\n const values = this.value;\n const vertical = this.isVertical();\n const fills = values.slice(0, -1).map((v, i) => ({\n from: this.percent(v),\n to: this.percent(values[i + 1]),\n }));\n\n return html`\n <div\n class=\"track\"\n part=\"track\"\n @pointerdown=${this.onTrackPointerDown}\n @pointermove=${this.onPointerMove}\n @pointerup=${this.onPointerUp}\n @pointercancel=${this.onPointerUp}\n >\n ${fills.map(f => this.renderFill(f, vertical))}\n ${values.map((v, i) => this.renderThumb(v, i, vertical))}\n </div>\n `;\n }\n\n private renderFill(\n segment: { from: number; to: number },\n vertical: boolean,\n ): TemplateResult {\n // Use logical `inset-inline-start` so the fill flips correctly in RTL;\n // works as `left` in LTR and `right` in RTL.\n const style = vertical\n ? `bottom: ${segment.from}%; height: ${segment.to - segment.from}%;`\n : `inset-inline-start: ${segment.from}%; width: ${segment.to - segment.from}%;`;\n return html`<div class=\"fill\" part=\"fill\" style=${style}></div>`;\n }\n\n private renderThumb(value: number, index: number, vertical: boolean): TemplateResult {\n const pct = this.percent(value);\n // Logical `inset-inline-start` so the thumb position flips in RTL.\n const style = vertical ? `bottom: ${pct}%;` : `inset-inline-start: ${pct}%;`;\n const formatted = this.formatThumb(value);\n const isDragging = this.dragState?.thumbIndex === index;\n // aria-valuetext only when formatValue is provided — otherwise aria-valuenow alone is read out.\n const valueText = this.formatValue ? formatted : null;\n return html`\n <button\n class=\"thumb\"\n part=\"thumb\"\n type=\"button\"\n role=\"slider\"\n data-thumb-index=${index}\n data-dragging=${isDragging ? 'true' : 'false'}\n aria-valuemin=${this.min}\n aria-valuemax=${this.max}\n aria-valuenow=${value}\n aria-orientation=${this.orientation}\n aria-valuetext=${valueText ?? nothing}\n ?disabled=${this.disabled}\n style=${style}\n @pointerdown=${(ev: PointerEvent) => this.onThumbPointerDown(index, ev)}\n @keydown=${(ev: KeyboardEvent) => this.onThumbKeyDown(index, ev)}\n >\n <span class=\"tooltip\" part=\"tooltip\">${formatted}</span>\n </button>\n `;\n }\n\n /** Returns a copy of the current values. */\n getValues(): number[] {\n return [...this.value];\n }\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('mp-multi-range')) {\n customElements.define('mp-multi-range', MintMultiRangeElement);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mp-multi-range': MintMultiRangeElement;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsMultiRangeValueAccessor"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, model, viewChild, computed, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive, input, effect } from '@angular/core';
2
+ import { signal, model, input, viewChild, computed, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive, effect } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
@@ -18,6 +18,7 @@ class BsMultiselectComponent {
18
18
  this.colors = Color;
19
19
  this.items = model([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
20
20
  this.selectedItems = model([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
21
+ this.ariaLabel = input('Select options', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
21
22
  this.defaultButtonTemplate = viewChild.required('defaultButtonTemplate');
22
23
  this.defaultItemTemplate = viewChild.required('defaultItemTemplate');
23
24
  this.resolvedButtonTemplate = computed(() => this.buttonTemplate() ?? this.defaultButtonTemplate(), ...(ngDevMode ? [{ debugName: "resolvedButtonTemplate" }] : /* istanbul ignore next */ []));
@@ -32,12 +33,12 @@ class BsMultiselectComponent {
32
33
  }
33
34
  }
34
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsMultiselectComponent, isStandalone: true, selector: "bs-multiselect", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", selectedItems: "selectedItemsChange" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true, isSignal: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "directive", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: ["type", "isToggled", "name", "value", "group"], outputs: ["isToggledChange"] }, { kind: "directive", type: BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsMultiselectComponent, isStandalone: true, selector: "bs-multiselect", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", selectedItems: "selectedItemsChange" }, viewQueries: [{ propertyName: "defaultButtonTemplate", first: true, predicate: ["defaultButtonTemplate"], descendants: true, isSignal: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\" [attr.aria-label]=\"ariaLabel()\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu [attr.aria-label]=\"ariaLabel()\" class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "directive", type: BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen", "popupRole"], outputs: ["isOpenChange"], exportAs: ["bsDropdown"] }, { kind: "directive", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: ["type", "isToggled", "name", "value", "group"], outputs: ["isToggledChange"] }, { kind: "directive", type: BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
37
  }
37
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsMultiselectComponent, decorators: [{
38
39
  type: Component,
39
- args: [{ selector: 'bs-multiselect', imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"] }]
40
- }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], defaultButtonTemplate: [{ type: i0.ViewChild, args: ['defaultButtonTemplate', { isSignal: true }] }], defaultItemTemplate: [{ type: i0.ViewChild, args: ['defaultItemTemplate', { isSignal: true }] }] } });
40
+ args: [{ selector: 'bs-multiselect', imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\" [attr.aria-label]=\"ariaLabel()\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu [attr.aria-label]=\"ariaLabel()\" class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n", styles: [".mw-250px{min-width:250px}\n"] }]
41
+ }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: false }] }, { type: i0.Output, args: ["selectedItemsChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], defaultButtonTemplate: [{ type: i0.ViewChild, args: ['defaultButtonTemplate', { isSignal: true }] }], defaultItemTemplate: [{ type: i0.ViewChild, args: ['defaultItemTemplate', { isSignal: true }] }] } });
41
42
 
42
43
  class BsHeaderTemplateDirective {
43
44
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-multiselect.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/mintplayer-ng-bootstrap-multiselect.ts"],"sourcesContent":["import { Component, computed, model, signal, TemplateRef, viewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsToggleButtonComponent } from '@mintplayer/ng-bootstrap/toggle-button';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss'],\n imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsMultiselectComponent<T> {\n\n readonly headerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly footerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly buttonTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly itemTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly colors = Color;\n\n readonly items = model<T[]>([]);\n readonly selectedItems = model<T[]>([]);\n readonly defaultButtonTemplate = viewChild.required<TemplateRef<any>>('defaultButtonTemplate');\n readonly defaultItemTemplate = viewChild.required<TemplateRef<any>>('defaultItemTemplate');\n\n readonly resolvedButtonTemplate = computed(() => this.buttonTemplate() ?? this.defaultButtonTemplate());\n readonly resolvedItemTemplate = computed(() => this.itemTemplate() ?? this.defaultItemTemplate());\n\n itemChange(item: T, value: boolean | null) {\n if (value) {\n this.selectedItems.update(v => [...v, item]);\n } else {\n this.selectedItems.update(v => v.filter(i => i !== item));\n }\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]',\n})\nexport class BsHeaderTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.headerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]',\n})\nexport class BsFooterTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.footerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]',\n})\nexport class BsButtonTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.buttonTemplate.set(template);\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsButtonTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRButtonTemplateContext {\n return true;\n }\n\n}\n\nexport class BsRButtonTemplateContext {\n public $implicit: number = null!;\n}\n","import { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsItemTemplate]',\n})\nexport class BsItemTemplateDirective<T> {\n private multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n\n constructor() {\n const template = inject(TemplateRef);\n this.multiselect.itemTemplate.set(template);\n\n effect(() => {\n const value = this.bsItemTemplateOf();\n if (value) {\n this.multiselect.items.set(value);\n }\n });\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsItemTemplateDirective<TData>,\n ctx: any\n ): ctx is BsItemTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>> {\n return true;\n }\n\n /** Pass the items array — forwards to BsMultiselectComponent.items */\n readonly bsItemTemplateOf = input<T[] | undefined>(undefined);\n}\n\nexport class BsItemTemplateContext<T> {\n public $implicit: T = null!;\n}\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-multiselect.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/component/multiselect.component.html","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/header-template/header-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/footer-template/footer-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/button-template/button-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/src/directives/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/multiselect/mintplayer-ng-bootstrap-multiselect.ts"],"sourcesContent":["import { Component, computed, input, model, signal, TemplateRef, viewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsToggleButtonComponent } from '@mintplayer/ng-bootstrap/toggle-button';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss'],\n imports: [NgTemplateOutlet, FormsModule, BsHasOverlayComponent, BsDropdownDirective, BsDropdownToggleDirective, BsDropdownMenuDirective, BsToggleButtonComponent, BsButtonTypeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsMultiselectComponent<T> {\n\n readonly headerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly footerTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly buttonTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly itemTemplate = signal<TemplateRef<any> | undefined>(undefined);\n readonly colors = Color;\n\n readonly items = model<T[]>([]);\n readonly selectedItems = model<T[]>([]);\n readonly ariaLabel = input<string>('Select options');\n readonly defaultButtonTemplate = viewChild.required<TemplateRef<any>>('defaultButtonTemplate');\n readonly defaultItemTemplate = viewChild.required<TemplateRef<any>>('defaultItemTemplate');\n\n readonly resolvedButtonTemplate = computed(() => this.buttonTemplate() ?? this.defaultButtonTemplate());\n readonly resolvedItemTemplate = computed(() => this.itemTemplate() ?? this.defaultItemTemplate());\n\n itemChange(item: T, value: boolean | null) {\n if (value) {\n this.selectedItems.update(v => [...v, item]);\n } else {\n this.selectedItems.update(v => v.filter(i => i !== item));\n }\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [hasBackdrop]=\"true\" [closeOnClickOutside]=\"true\">\n <button type=\"button\" bsDropdownToggle [color]=\"colors.primary\" [attr.aria-label]=\"ariaLabel()\">\n <ng-container *ngTemplateOutlet=\"resolvedButtonTemplate(); context: { $implicit: selectedItems().length }\"></ng-container>\n </button>\n <div *bsDropdownMenu [attr.aria-label]=\"ariaLabel()\" class=\"bg-white mw-250px p-3 border rounded shadow\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if (headerTemplate()) {\n <hr class=\"my-2\">\n }\n @for (item of items(); track item) {\n <bs-toggle-button [ngModel]=\"selectedItems().indexOf(item) > -1\" (ngModelChange)=\"itemChange(item, $event)\" class=\"d-block\"><ng-container *ngTemplateOutlet=\"resolvedItemTemplate(); context: { $implicit: item }\"></ng-container></bs-toggle-button>\n }\n @if (footerTemplate()) {\n <hr class=\"my-2\">\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n</div>\n<ng-template #defaultButtonTemplate let-count>\n {{ count }} selected\n</ng-template>\n<ng-template #defaultItemTemplate let-item>{{ item }}</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsHeaderTemplate]',\n})\nexport class BsHeaderTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.headerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsFooterTemplate]',\n})\nexport class BsFooterTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.footerTemplate.set(template);\n }\n\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsButtonTemplate]',\n})\nexport class BsButtonTemplateDirective<T> {\n\n constructor() {\n const template = inject(TemplateRef);\n const multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n multiselect.buttonTemplate.set(template);\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsButtonTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRButtonTemplateContext {\n return true;\n }\n\n}\n\nexport class BsRButtonTemplateContext {\n public $implicit: number = null!;\n}\n","import { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { BsMultiselectComponent } from '../../component/multiselect.component';\n\n@Directive({\n selector: '[bsItemTemplate]',\n})\nexport class BsItemTemplateDirective<T> {\n private multiselect = inject<BsMultiselectComponent<T>>(BsMultiselectComponent);\n\n constructor() {\n const template = inject(TemplateRef);\n this.multiselect.itemTemplate.set(template);\n\n effect(() => {\n const value = this.bsItemTemplateOf();\n if (value) {\n this.multiselect.items.set(value);\n }\n });\n }\n\n public static ngTemplateContextGuard<TData>(\n dir: BsItemTemplateDirective<TData>,\n ctx: any\n ): ctx is BsItemTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>> {\n return true;\n }\n\n /** Pass the items array — forwards to BsMultiselectComponent.items */\n readonly bsItemTemplateOf = input<T[] | undefined>(undefined);\n}\n\nexport class BsItemTemplateContext<T> {\n public $implicit: T = null!;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,21 +5,21 @@ class BsNavbarTogglerComponent {
5
5
  constructor() {
6
6
  this.state = model(false, ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
7
7
  this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : /* istanbul ignore next */ []));
8
+ this.ariaLabel = input('Toggle navigation', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
9
+ this.controls = input(null, ...(ngDevMode ? [{ debugName: "controls" }] : /* istanbul ignore next */ []));
8
10
  }
9
- toggleState(ev) {
11
+ toggleState() {
10
12
  if (this.toggleOnClick()) {
11
13
  this.state.update(v => !v);
12
14
  }
13
15
  }
14
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsNavbarTogglerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsNavbarTogglerComponent, isStandalone: true, selector: "bs-navbar-toggler", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, host: { listeners: { "click": "toggleState($event)" } }, ngImport: i0, template: "<div class=\"navbar-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>\n", styles: [":host{align-self:start;top:0;right:0}.navbar-toggler{padding:.75rem 1rem;border:none}.navbar-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.navbar-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.navbar-toggler.open>div:nth-of-type(2){opacity:0}.navbar-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsNavbarTogglerComponent, isStandalone: true, selector: "bs-navbar-toggler", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"navbar-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n", styles: [":host{align-self:start;top:0;right:0}.navbar-toggler{padding:.75rem 1rem;border:none;background:transparent;cursor:pointer}.navbar-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.navbar-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.navbar-toggler.open>div:nth-of-type(2){opacity:0}.navbar-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
18
  }
17
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsNavbarTogglerComponent, decorators: [{
18
20
  type: Component,
19
- args: [{ selector: 'bs-navbar-toggler', changeDetection: ChangeDetectionStrategy.OnPush, host: {
20
- '(click)': 'toggleState($event)',
21
- }, template: "<div class=\"navbar-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>\n", styles: [":host{align-self:start;top:0;right:0}.navbar-toggler{padding:.75rem 1rem;border:none}.navbar-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.navbar-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.navbar-toggler.open>div:nth-of-type(2){opacity:0}.navbar-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}\n"] }]
22
- }], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }] } });
21
+ args: [{ selector: 'bs-navbar-toggler', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"navbar-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n", styles: [":host{align-self:start;top:0;right:0}.navbar-toggler{padding:.75rem 1rem;border:none;background:transparent;cursor:pointer}.navbar-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.navbar-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.navbar-toggler.open>div:nth-of-type(2){opacity:0}.navbar-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}\n"] }]
22
+ }], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }] } });
23
23
 
24
24
  /**
25
25
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-navbar-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/src/navbar-toggler/navbar-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/src/navbar-toggler/navbar-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/mintplayer-ng-bootstrap-navbar-toggler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-toggler',\n templateUrl: './navbar-toggler.component.html',\n styleUrls: ['./navbar-toggler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(click)': 'toggleState($event)',\n },\n})\nexport class BsNavbarTogglerComponent {\n state = model<boolean>(false);\n toggleOnClick = input<boolean>(true);\n\n toggleState(ev: MouseEvent) {\n if (this.toggleOnClick()) {\n this.state.update(v => !v);\n }\n }\n}\n","<div class=\"navbar-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAWa,wBAAwB,CAAA;AATrC,IAAA,WAAA,GAAA;AAUE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,KAAK,4EAAC;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,IAAI,oFAAC;AAOrC,IAAA;AALC,IAAA,WAAW,CAAC,EAAc,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B;IACF;+GARW,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,SAAA,EAAA,IAAA,EAAA,wBAAwB,6bCXrC,iIAKA,EAAA,MAAA,EAAA,CAAA,qfAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDMa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,SAAS,EAAE,qBAAqB;AACjC,qBAAA,EAAA,QAAA,EAAA,iIAAA,EAAA,MAAA,EAAA,CAAA,qfAAA,CAAA,EAAA;;;AETH;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-navbar-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/src/navbar-toggler/navbar-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/src/navbar-toggler/navbar-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/navbar-toggler/mintplayer-ng-bootstrap-navbar-toggler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-navbar-toggler',\n templateUrl: './navbar-toggler.component.html',\n styleUrls: ['./navbar-toggler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsNavbarTogglerComponent {\n state = model<boolean>(false);\n toggleOnClick = input<boolean>(true);\n ariaLabel = input<string>('Toggle navigation');\n controls = input<string | null>(null);\n\n toggleState() {\n if (this.toggleOnClick()) {\n this.state.update(v => !v);\n }\n }\n}\n","<button\n type=\"button\"\n class=\"navbar-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAQa,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;AAOE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,KAAK,4EAAC;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,IAAI,oFAAC;AACpC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,mBAAmB,gFAAC;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AAOtC,IAAA;IALC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B;IACF;+GAVW,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,SAAA,EAAA,IAAA,EAAA,wBAAwB,yoBCRrC,4TAYA,EAAA,MAAA,EAAA,CAAA,2hBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDJa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4TAAA,EAAA,MAAA,EAAA,CAAA,2hBAAA,CAAA,EAAA;;;AENjD;;AAEG;;;;"}