@mintplayer/ng-bootstrap 21.22.0 → 21.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +20 -20
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +8 -8
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
- package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-card.mjs +8 -8
- package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +58 -58
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +20 -20
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +789 -1175
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +15 -15
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-enum.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-for.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-form.mjs +11 -11
- package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +26 -26
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +14 -14
- package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs +4 -4
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -12
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +24 -24
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +24 -24
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +58 -58
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -8
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +40 -40
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +12 -12
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +5 -5
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +20 -20
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +30 -30
- package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +17 -17
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +9 -9
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +25 -25
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -16
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +14 -14
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +24 -24
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +19 -19
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +20 -20
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +11 -11
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +57 -67
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +8 -8
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +24 -24
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +22 -22
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +14 -14
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +10 -10
- package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs +1356 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +3819 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +731 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +549 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
- package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
- package/package.json +20 -6
- package/types/mintplayer-ng-bootstrap-dock.d.ts +55 -19
- package/types/mintplayer-ng-bootstrap-scheduler.d.ts +2 -2
- package/types/mintplayer-ng-bootstrap-tab-control.d.ts +7 -11
- package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +890 -0
- package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +354 -0
- package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +165 -0
- package/types/mintplayer-ng-bootstrap-web-components-tab-control.d.ts +95 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, input, model, output, signal, TemplateRef, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuComponent, BsDropdownItemComponent } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n imports: [\n NgTemplateOutlet,\n FormsModule,\n BsHasOverlayComponent,\n BsDropdownDirective,\n BsDropdownMenuDirective,\n BsDropdownMenuComponent,\n BsDropdownItemComponent,\n BsInListPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.focus]': 'isFocused()',\n '(click)': 'focus()',\n },\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = model(false);\n isLoading = signal<boolean>(false);\n\n suggestions = model<T[]>([]);\n\n readonly defaultItemTemplate = viewChild.required<TemplateRef<any>>('defaultItemTemplate');\n readonly searchBox = viewChild.required<ElementRef<HTMLInputElement>>('searchBox');\n readonly itemsBox = viewChild.required<ElementRef<HTMLDivElement>>('itemsBox');\n searchterm = model('');\n provideSuggestions = output<string>();\n isFocused = signal(false);\n\n selectedItems = model<T[]>([]);\n\n private readonly charWidth = 10;\n searchWidth = signal(20);\n readonly itemTemplate = signal<TemplateRef<T> | undefined>(undefined);\n readonly suggestionTemplate = signal<TemplateRef<T> | undefined>(undefined);\n\n constructor() {\n effect(() => {\n const suggestions = this.suggestions();\n if (suggestions) {\n this.isLoading.set(false);\n }\n });\n }\n\n onProvideSuggestions(value: string) {\n this.searchterm.set(value);\n this.searchWidth.set(this.charWidth * (value.length + 2));\n if (value === '') {\n this.isOpen.set(false);\n } else {\n this.isLoading.set(true);\n this.isOpen.set(true);\n this.provideSuggestions.emit(value);\n }\n }\n\n onSuggestionClicked(suggestion: T) {\n this.searchterm.set('');\n this.isOpen.set(false);\n\n const currentItems = this.selectedItems();\n const existing = currentItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.set([...currentItems, suggestion]);\n } else {\n this.selectedItems.set(currentItems.filter(item => item.id !== suggestion.id));\n }\n\n this.searchBox().nativeElement.focus();\n }\n\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n const currentItems = this.selectedItems();\n this.selectedItems.set(currentItems.filter(i => i.id !== item.id));\n this.focus();\n }\n\n public focus() {\n this.searchBox().nativeElement.focus();\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\" role=\"combobox\" [attr.aria-expanded]=\"isOpen()\">\n @for (item of selectedItems(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate() ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [ngModel]=\"searchterm()\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused.set(true)\"\n (blur)=\"isFocused.set(false)\"\n [style.width.px]=\"searchWidth()\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\" role=\"listbox\">\n @for (suggestion of suggestions(); track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems() | bsInList:suggestion.id\" role=\"option\" [attr.aria-selected]=\"(selectedItems() | bsInList:suggestion.id) || null\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate() ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <button type=\"button\" (click)=\"select2.onRemoveItem(item,$event)\" aria-label=\"Remove item\" class=\"btn-close-inline\">×</button>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>\n","import { Directive, effect, inject, input, isSignal, TemplateRef, untracked, WritableSignal } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]',\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n private templateRef = inject<TemplateRef<T>>(TemplateRef);\n private sourceSignal?: WritableSignal<T[]>;\n private lastSourceValue?: T[];\n\n constructor() {\n this.select2component.itemTemplate.set(this.templateRef);\n\n // Sync input value to component\n effect(() => {\n const value = this.bsItemTemplateOf();\n if (value) {\n if (isSignal(value)) {\n // Store the signal reference for two-way binding\n this.sourceSignal = value as WritableSignal<T[]>;\n this.lastSourceValue = value();\n this.select2component.selectedItems.set(value());\n } else {\n // Plain array - one-way binding (backward compatible)\n this.sourceSignal = undefined;\n this.select2component.selectedItems.set(value as T[]);\n }\n }\n });\n\n // Sync changes from component back to source signal\n effect(() => {\n const componentValue = this.select2component.selectedItems();\n if (this.sourceSignal) {\n const sourceValue = untracked(() => this.sourceSignal!());\n if (componentValue !== sourceValue) {\n this.sourceSignal.set(componentValue);\n }\n }\n });\n\n // Sync changes from source signal to component\n effect(() => {\n if (this.sourceSignal) {\n const sourceValue = this.sourceSignal();\n if (sourceValue !== this.lastSourceValue) {\n this.lastSourceValue = sourceValue;\n const componentValue = untracked(() => this.select2component.selectedItems());\n if (sourceValue !== componentValue) {\n this.select2component.selectedItems.set(sourceValue);\n }\n }\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n readonly bsItemTemplateOf = input<T[] | WritableSignal<T[]> | undefined>(undefined);\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n\n constructor() {\n const templateRef = inject<TemplateRef<T>>(TemplateRef);\n this.select2component.suggestionTemplate.set(templateRef);\n\n effect(() => {\n const value = this.bsSuggestionTemplateOf();\n if (value) {\n this.select2component.suggestions.set(value);\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n readonly bsSuggestionTemplateOf = input<T[] | undefined>(undefined);\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\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-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, input, model, output, signal, TemplateRef, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsDropdownDirective, BsDropdownMenuDirective } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuComponent, BsDropdownItemComponent } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n imports: [\n NgTemplateOutlet,\n FormsModule,\n BsHasOverlayComponent,\n BsDropdownDirective,\n BsDropdownMenuDirective,\n BsDropdownMenuComponent,\n BsDropdownItemComponent,\n BsInListPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.focus]': 'isFocused()',\n '(click)': 'focus()',\n },\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = model(false);\n isLoading = signal<boolean>(false);\n\n suggestions = model<T[]>([]);\n\n readonly defaultItemTemplate = viewChild.required<TemplateRef<any>>('defaultItemTemplate');\n readonly searchBox = viewChild.required<ElementRef<HTMLInputElement>>('searchBox');\n readonly itemsBox = viewChild.required<ElementRef<HTMLDivElement>>('itemsBox');\n searchterm = model('');\n provideSuggestions = output<string>();\n isFocused = signal(false);\n\n selectedItems = model<T[]>([]);\n\n private readonly charWidth = 10;\n searchWidth = signal(20);\n readonly itemTemplate = signal<TemplateRef<T> | undefined>(undefined);\n readonly suggestionTemplate = signal<TemplateRef<T> | undefined>(undefined);\n\n constructor() {\n effect(() => {\n const suggestions = this.suggestions();\n if (suggestions) {\n this.isLoading.set(false);\n }\n });\n }\n\n onProvideSuggestions(value: string) {\n this.searchterm.set(value);\n this.searchWidth.set(this.charWidth * (value.length + 2));\n if (value === '') {\n this.isOpen.set(false);\n } else {\n this.isLoading.set(true);\n this.isOpen.set(true);\n this.provideSuggestions.emit(value);\n }\n }\n\n onSuggestionClicked(suggestion: T) {\n this.searchterm.set('');\n this.isOpen.set(false);\n\n const currentItems = this.selectedItems();\n const existing = currentItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.set([...currentItems, suggestion]);\n } else {\n this.selectedItems.set(currentItems.filter(item => item.id !== suggestion.id));\n }\n\n this.searchBox().nativeElement.focus();\n }\n\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n const currentItems = this.selectedItems();\n this.selectedItems.set(currentItems.filter(i => i.id !== item.id));\n this.focus();\n }\n\n public focus() {\n this.searchBox().nativeElement.focus();\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\" role=\"combobox\" [attr.aria-expanded]=\"isOpen()\">\n @for (item of selectedItems(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate() ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [ngModel]=\"searchterm()\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused.set(true)\"\n (blur)=\"isFocused.set(false)\"\n [style.width.px]=\"searchWidth()\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\" role=\"listbox\">\n @for (suggestion of suggestions(); track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems() | bsInList:suggestion.id\" role=\"option\" [attr.aria-selected]=\"(selectedItems() | bsInList:suggestion.id) || null\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate() ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <button type=\"button\" (click)=\"select2.onRemoveItem(item,$event)\" aria-label=\"Remove item\" class=\"btn-close-inline\">×</button>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>\n","import { Directive, effect, inject, input, isSignal, TemplateRef, untracked, WritableSignal } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]',\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n private templateRef = inject<TemplateRef<T>>(TemplateRef);\n private sourceSignal?: WritableSignal<T[]>;\n private lastSourceValue?: T[];\n\n constructor() {\n this.select2component.itemTemplate.set(this.templateRef);\n\n // Sync input value to component\n effect(() => {\n const value = this.bsItemTemplateOf();\n if (value) {\n if (isSignal(value)) {\n // Store the signal reference for two-way binding\n this.sourceSignal = value as WritableSignal<T[]>;\n this.lastSourceValue = value();\n this.select2component.selectedItems.set(value());\n } else {\n // Plain array - one-way binding (backward compatible)\n this.sourceSignal = undefined;\n this.select2component.selectedItems.set(value as T[]);\n }\n }\n });\n\n // Sync changes from component back to source signal\n effect(() => {\n const componentValue = this.select2component.selectedItems();\n if (this.sourceSignal) {\n const sourceValue = untracked(() => this.sourceSignal!());\n if (componentValue !== sourceValue) {\n this.sourceSignal.set(componentValue);\n }\n }\n });\n\n // Sync changes from source signal to component\n effect(() => {\n if (this.sourceSignal) {\n const sourceValue = this.sourceSignal();\n if (sourceValue !== this.lastSourceValue) {\n this.lastSourceValue = sourceValue;\n const componentValue = untracked(() => this.select2component.selectedItems());\n if (sourceValue !== componentValue) {\n this.select2component.selectedItems.set(sourceValue);\n }\n }\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n readonly bsItemTemplateOf = input<T[] | WritableSignal<T[]> | undefined>(undefined);\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, effect, inject, input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n\n constructor() {\n const templateRef = inject<TemplateRef<T>>(TemplateRef);\n this.select2component.suggestionTemplate.set(templateRef);\n\n effect(() => {\n const value = this.bsSuggestionTemplateOf();\n if (value) {\n this.select2component.suggestions.set(value);\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n readonly bsSuggestionTemplateOf = input<T[] | undefined>(undefined);\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,26 +4,26 @@ import { signal, viewChild, input, computed, ChangeDetectionStrategy, Component,
|
|
|
4
4
|
|
|
5
5
|
class BsShellComponent {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.sidebarTemplate = signal(null, ...(ngDevMode ? [{ debugName: "sidebarTemplate" }] : []));
|
|
7
|
+
this.sidebarTemplate = signal(null, ...(ngDevMode ? [{ debugName: "sidebarTemplate" }] : /* istanbul ignore next */ []));
|
|
8
8
|
this.rootElement = viewChild.required('root');
|
|
9
|
-
this.state = input('auto', ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
10
|
-
this.breakpoint = input('md', ...(ngDevMode ? [{ debugName: "breakpoint" }] : []));
|
|
9
|
+
this.state = input('auto', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
10
|
+
this.breakpoint = input('md', ...(ngDevMode ? [{ debugName: "breakpoint" }] : /* istanbul ignore next */ []));
|
|
11
11
|
this.stateClass = computed(() => {
|
|
12
12
|
const state = this.state();
|
|
13
13
|
if (state === 'auto')
|
|
14
14
|
return null;
|
|
15
15
|
else
|
|
16
16
|
return state;
|
|
17
|
-
}, ...(ngDevMode ? [{ debugName: "stateClass" }] : []));
|
|
18
|
-
this.breakpointClass = computed(() => `shell-${this.breakpoint()}`, ...(ngDevMode ? [{ debugName: "breakpointClass" }] : []));
|
|
17
|
+
}, ...(ngDevMode ? [{ debugName: "stateClass" }] : /* istanbul ignore next */ []));
|
|
18
|
+
this.breakpointClass = computed(() => `shell-${this.breakpoint()}`, ...(ngDevMode ? [{ debugName: "breakpointClass" }] : /* istanbul ignore next */ []));
|
|
19
19
|
}
|
|
20
20
|
setSize(size) {
|
|
21
21
|
this.rootElement().nativeElement.style.setProperty('--size', size);
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.11", type: BsShellComponent, isStandalone: true, selector: "bs-shell", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, breakpoint: { classPropertyName: "breakpoint", publicName: "breakpoint", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "rootElement", first: true, predicate: ["root"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"sidebar-root\" [class]=\"[stateClass(), breakpointClass()]\" #root>\n <div class=\"sidebar position-fixed pe-none\">\n <div class=\"sidebar-body d-flex flex-column pe-all\">\n <ng-container *ngTemplateOutlet=\"sidebarTemplate()\"></ng-container>\n </div>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".pe-all{pointer-events:all!important}.sidebar-root{--size: 15rem;transition:margin-left .3s ease-in-out}.sidebar-root .sidebar{top:0;bottom:0;left:0;width:var(--size);z-index:500;transition:margin-left .3s,width .3s}.sidebar-root .sidebar .sidebar-body{background:#333}.sidebar-root.shell-xs.show{margin-left:0}.sidebar-root.shell-xs.show .sidebar{width:100%;margin-left:0}.sidebar-root.shell-xs.show{margin-left:var(--size)}.sidebar-root.shell-xs.show .sidebar{width:var(--size);margin-left:0}.sidebar-root.shell-xs.hide .sidebar{width:100%;margin-left:-100%}.sidebar-root.shell-xs.hide{margin-left:0}.sidebar-root.shell-xs.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}.sidebar-root.shell-xs:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xs:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}.sidebar-root.shell-xs:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xs:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}@media(max-width:575.98px){.sidebar-root.shell-sm.show{margin-left:0}.sidebar-root.shell-sm.show .sidebar{width:100%;margin-left:0}}@media(min-width:576px){.sidebar-root.shell-sm.show{margin-left:var(--size)}.sidebar-root.shell-sm.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:575.98px){.sidebar-root.shell-sm.hide{margin-left:0}.sidebar-root.shell-sm.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:576px){.sidebar-root.shell-sm.hide{margin-left:0}.sidebar-root.shell-sm.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:575.98px){.sidebar-root.shell-sm:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-sm:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:576px){.sidebar-root.shell-sm:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-sm:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:767.98px){.sidebar-root.shell-md.show{margin-left:0}.sidebar-root.shell-md.show .sidebar{width:100%;margin-left:0}}@media(min-width:768px){.sidebar-root.shell-md.show{margin-left:var(--size)}.sidebar-root.shell-md.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:767.98px){.sidebar-root.shell-md.hide{margin-left:0}.sidebar-root.shell-md.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:768px){.sidebar-root.shell-md.hide{margin-left:0}.sidebar-root.shell-md.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:767.98px){.sidebar-root.shell-md:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-md:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:768px){.sidebar-root.shell-md:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-md:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:991.98px){.sidebar-root.shell-lg.show{margin-left:0}.sidebar-root.shell-lg.show .sidebar{width:100%;margin-left:0}}@media(min-width:992px){.sidebar-root.shell-lg.show{margin-left:var(--size)}.sidebar-root.shell-lg.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:991.98px){.sidebar-root.shell-lg.hide{margin-left:0}.sidebar-root.shell-lg.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:992px){.sidebar-root.shell-lg.hide{margin-left:0}.sidebar-root.shell-lg.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:991.98px){.sidebar-root.shell-lg:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-lg:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:992px){.sidebar-root.shell-lg:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-lg:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:1199.98px){.sidebar-root.shell-xl.show{margin-left:0}.sidebar-root.shell-xl.show .sidebar{width:100%;margin-left:0}}@media(min-width:1200px){.sidebar-root.shell-xl.show{margin-left:var(--size)}.sidebar-root.shell-xl.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:1199.98px){.sidebar-root.shell-xl.hide{margin-left:0}.sidebar-root.shell-xl.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:1200px){.sidebar-root.shell-xl.hide{margin-left:0}.sidebar-root.shell-xl.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:1199.98px){.sidebar-root.shell-xl:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xl:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:1200px){.sidebar-root.shell-xl:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xl:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:1399.98px){.sidebar-root.shell-xxl.show{margin-left:0}.sidebar-root.shell-xxl.show .sidebar{width:100%;margin-left:0}}@media(min-width:1400px){.sidebar-root.shell-xxl.show{margin-left:var(--size)}.sidebar-root.shell-xxl.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:1399.98px){.sidebar-root.shell-xxl.hide{margin-left:0}.sidebar-root.shell-xxl.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:1400px){.sidebar-root.shell-xxl.hide{margin-left:0}.sidebar-root.shell-xxl.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:1399.98px){.sidebar-root.shell-xxl:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xxl:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:1400px){.sidebar-root.shell-xxl:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xxl:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsShellComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: 'bs-shell', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sidebar-root\" [class]=\"[stateClass(), breakpointClass()]\" #root>\n <div class=\"sidebar position-fixed pe-none\">\n <div class=\"sidebar-body d-flex flex-column pe-all\">\n <ng-container *ngTemplateOutlet=\"sidebarTemplate()\"></ng-container>\n </div>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".pe-all{pointer-events:all!important}.sidebar-root{--size: 15rem;transition:margin-left .3s ease-in-out}.sidebar-root .sidebar{top:0;bottom:0;left:0;width:var(--size);z-index:500;transition:margin-left .3s,width .3s}.sidebar-root .sidebar .sidebar-body{background:#333}.sidebar-root.shell-xs.show{margin-left:0}.sidebar-root.shell-xs.show .sidebar{width:100%;margin-left:0}.sidebar-root.shell-xs.show{margin-left:var(--size)}.sidebar-root.shell-xs.show .sidebar{width:var(--size);margin-left:0}.sidebar-root.shell-xs.hide .sidebar{width:100%;margin-left:-100%}.sidebar-root.shell-xs.hide{margin-left:0}.sidebar-root.shell-xs.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}.sidebar-root.shell-xs:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xs:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}.sidebar-root.shell-xs:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xs:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}@media(max-width:575.98px){.sidebar-root.shell-sm.show{margin-left:0}.sidebar-root.shell-sm.show .sidebar{width:100%;margin-left:0}}@media(min-width:576px){.sidebar-root.shell-sm.show{margin-left:var(--size)}.sidebar-root.shell-sm.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:575.98px){.sidebar-root.shell-sm.hide{margin-left:0}.sidebar-root.shell-sm.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:576px){.sidebar-root.shell-sm.hide{margin-left:0}.sidebar-root.shell-sm.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:575.98px){.sidebar-root.shell-sm:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-sm:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:576px){.sidebar-root.shell-sm:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-sm:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:767.98px){.sidebar-root.shell-md.show{margin-left:0}.sidebar-root.shell-md.show .sidebar{width:100%;margin-left:0}}@media(min-width:768px){.sidebar-root.shell-md.show{margin-left:var(--size)}.sidebar-root.shell-md.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:767.98px){.sidebar-root.shell-md.hide{margin-left:0}.sidebar-root.shell-md.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:768px){.sidebar-root.shell-md.hide{margin-left:0}.sidebar-root.shell-md.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:767.98px){.sidebar-root.shell-md:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-md:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:768px){.sidebar-root.shell-md:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-md:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:991.98px){.sidebar-root.shell-lg.show{margin-left:0}.sidebar-root.shell-lg.show .sidebar{width:100%;margin-left:0}}@media(min-width:992px){.sidebar-root.shell-lg.show{margin-left:var(--size)}.sidebar-root.shell-lg.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:991.98px){.sidebar-root.shell-lg.hide{margin-left:0}.sidebar-root.shell-lg.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:992px){.sidebar-root.shell-lg.hide{margin-left:0}.sidebar-root.shell-lg.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:991.98px){.sidebar-root.shell-lg:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-lg:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:992px){.sidebar-root.shell-lg:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-lg:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:1199.98px){.sidebar-root.shell-xl.show{margin-left:0}.sidebar-root.shell-xl.show .sidebar{width:100%;margin-left:0}}@media(min-width:1200px){.sidebar-root.shell-xl.show{margin-left:var(--size)}.sidebar-root.shell-xl.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:1199.98px){.sidebar-root.shell-xl.hide{margin-left:0}.sidebar-root.shell-xl.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:1200px){.sidebar-root.shell-xl.hide{margin-left:0}.sidebar-root.shell-xl.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:1199.98px){.sidebar-root.shell-xl:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xl:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:1200px){.sidebar-root.shell-xl:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xl:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}@media(max-width:1399.98px){.sidebar-root.shell-xxl.show{margin-left:0}.sidebar-root.shell-xxl.show .sidebar{width:100%;margin-left:0}}@media(min-width:1400px){.sidebar-root.shell-xxl.show{margin-left:var(--size)}.sidebar-root.shell-xxl.show .sidebar{width:var(--size);margin-left:0}}@media(max-width:1399.98px){.sidebar-root.shell-xxl.hide{margin-left:0}.sidebar-root.shell-xxl.hide .sidebar{width:100%;margin-left:-100%}}@media(min-width:1400px){.sidebar-root.shell-xxl.hide{margin-left:0}.sidebar-root.shell-xxl.hide .sidebar{width:var(--size);margin-left:calc(-1 * var(--size))}}@media(max-width:1399.98px){.sidebar-root.shell-xxl:not(.show):not(.hide){margin-left:0}.sidebar-root.shell-xxl:not(.show):not(.hide) .sidebar{width:100%;margin-left:-100%}}@media(min-width:1400px){.sidebar-root.shell-xxl:not(.show):not(.hide){margin-left:var(--size)}.sidebar-root.shell-xxl:not(.show):not(.hide) .sidebar{width:var(--size);margin-left:0}}\n"] }]
|
|
29
29
|
}], propDecorators: { rootElement: [{ type: i0.ViewChild, args: ['root', { isSignal: true }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], breakpoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakpoint", required: false }] }] } });
|
|
@@ -34,10 +34,10 @@ class BsShellSidebarDirective {
|
|
|
34
34
|
const template = inject(TemplateRef);
|
|
35
35
|
shell.sidebarTemplate.set(template);
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsShellSidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: BsShellSidebarDirective, isStandalone: true, selector: "[bsShellSidebar]", ngImport: i0 }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsShellSidebarDirective, decorators: [{
|
|
41
41
|
type: Directive,
|
|
42
42
|
args: [{
|
|
43
43
|
selector: '[bsShellSidebar]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-shell.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/shell/src/shell/shell.component.ts","../../../../libs/mintplayer-ng-bootstrap/shell/src/shell/shell.component.html","../../../../libs/mintplayer-ng-bootstrap/shell/src/shell-sidebar/shell-sidebar.directive.ts","../../../../libs/mintplayer-ng-bootstrap/shell/mintplayer-ng-bootstrap-shell.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, input, signal, TemplateRef, viewChild } from '@angular/core';\nimport { BsShellState } from '../shell-state';\nimport { Breakpoint } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-shell',\n templateUrl: './shell.component.html',\n styleUrl: './shell.component.scss',\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsShellComponent {\n\n sidebarTemplate = signal<TemplateRef<any> | null>(null);\n readonly rootElement = viewChild.required<ElementRef<HTMLDivElement>>('root');\n\n state = input<BsShellState>('auto');\n breakpoint = input<Breakpoint>('md');\n\n stateClass = computed(() => {\n const state = this.state();\n if (state === 'auto') return null;\n else return state;\n });\n\n breakpointClass = computed(() => `shell-${this.breakpoint()}`);\n\n public setSize(size: string) {\n this.rootElement().nativeElement.style.setProperty('--size', size);\n }\n}\n","<div class=\"sidebar-root\" [class]=\"[stateClass(), breakpointClass()]\" #root>\n <div class=\"sidebar position-fixed pe-none\">\n <div class=\"sidebar-body d-flex flex-column pe-all\">\n <ng-container *ngTemplateOutlet=\"sidebarTemplate()\"></ng-container>\n </div>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsShellComponent } from '../shell/shell.component';\n\n@Directive({\n selector: '[bsShellSidebar]',\n})\nexport class BsShellSidebarDirective {\n constructor() {\n const shell = inject(BsShellComponent);\n const template = inject(TemplateRef);\n shell.sidebarTemplate.set(template);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,gBAAgB,CAAA;AAP7B,IAAA,WAAA,GAAA;AASE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAA0B,IAAI,
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-shell.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/shell/src/shell/shell.component.ts","../../../../libs/mintplayer-ng-bootstrap/shell/src/shell/shell.component.html","../../../../libs/mintplayer-ng-bootstrap/shell/src/shell-sidebar/shell-sidebar.directive.ts","../../../../libs/mintplayer-ng-bootstrap/shell/mintplayer-ng-bootstrap-shell.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, input, signal, TemplateRef, viewChild } from '@angular/core';\nimport { BsShellState } from '../shell-state';\nimport { Breakpoint } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-shell',\n templateUrl: './shell.component.html',\n styleUrl: './shell.component.scss',\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsShellComponent {\n\n sidebarTemplate = signal<TemplateRef<any> | null>(null);\n readonly rootElement = viewChild.required<ElementRef<HTMLDivElement>>('root');\n\n state = input<BsShellState>('auto');\n breakpoint = input<Breakpoint>('md');\n\n stateClass = computed(() => {\n const state = this.state();\n if (state === 'auto') return null;\n else return state;\n });\n\n breakpointClass = computed(() => `shell-${this.breakpoint()}`);\n\n public setSize(size: string) {\n this.rootElement().nativeElement.style.setProperty('--size', size);\n }\n}\n","<div class=\"sidebar-root\" [class]=\"[stateClass(), breakpointClass()]\" #root>\n <div class=\"sidebar position-fixed pe-none\">\n <div class=\"sidebar-body d-flex flex-column pe-all\">\n <ng-container *ngTemplateOutlet=\"sidebarTemplate()\"></ng-container>\n </div>\n </div>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsShellComponent } from '../shell/shell.component';\n\n@Directive({\n selector: '[bsShellSidebar]',\n})\nexport class BsShellSidebarDirective {\n constructor() {\n const shell = inject(BsShellComponent);\n const template = inject(TemplateRef);\n shell.sidebarTemplate.set(template);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { model, input, signal, viewChild, ChangeDetectionStrategy, Component } f
|
|
|
3
3
|
|
|
4
4
|
class BsSignaturePadComponent {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.signature = model({ strokes: [] }, ...(ngDevMode ? [{ debugName: "signature" }] : []));
|
|
7
|
-
this.width = input(500, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
8
|
-
this.height = input(300, ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
6
|
+
this.signature = model({ strokes: [] }, ...(ngDevMode ? [{ debugName: "signature" }] : /* istanbul ignore next */ []));
|
|
7
|
+
this.width = input(500, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
8
|
+
this.height = input(300, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
9
9
|
this.minHeight = 5;
|
|
10
|
-
this.isDrawing = signal(false, ...(ngDevMode ? [{ debugName: "isDrawing" }] : []));
|
|
10
|
+
this.isDrawing = signal(false, ...(ngDevMode ? [{ debugName: "isDrawing" }] : /* istanbul ignore next */ []));
|
|
11
11
|
this.canvas = viewChild.required('canvas');
|
|
12
12
|
this.context = null;
|
|
13
13
|
}
|
|
@@ -52,10 +52,10 @@ class BsSignaturePadComponent {
|
|
|
52
52
|
this.isDrawing.set(false);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSignaturePadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.11", type: BsSignaturePadComponent, isStandalone: true, selector: "bs-signature-pad", inputs: { signature: { classPropertyName: "signature", publicName: "signature", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { signature: "signatureChange" }, host: { listeners: { "touchmove": "onTouchMove($event)", "pointerdown": "onPointerStart($event)", "pointermove": "onPointerMove($event)", "window:pointerup": "onPointerEnd($event)" }, properties: { "style.min-height.rem": "minHeight" }, classAttribute: "border d-inline-block" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, isSignal: true }], ngImport: i0, template: "<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSignaturePadComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
60
|
args: [{ selector: 'bs-signature-pad', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
61
61
|
'class': 'border d-inline-block',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-signature-pad.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.ts","../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.html","../../../../libs/mintplayer-ng-bootstrap/signature-pad/mintplayer-ng-bootstrap-signature-pad.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, model, signal, viewChild } from '@angular/core';\nimport { Signature } from '../interfaces/signature';\n\n@Component({\n selector: 'bs-signature-pad',\n templateUrl: './signature-pad.component.html',\n styleUrls: ['./signature-pad.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'border d-inline-block',\n '[style.min-height.rem]': 'minHeight',\n '(touchmove)': 'onTouchMove($event)',\n '(pointerdown)': 'onPointerStart($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(window:pointerup)': 'onPointerEnd($event)',\n },\n})\nexport class BsSignaturePadComponent implements AfterViewInit {\n\n signature = model<Signature>({ strokes: [] });\n width = input(500);\n height = input(300);\n\n readonly minHeight = 5;\n readonly isDrawing = signal<boolean>(false);\n readonly canvas = viewChild.required<ElementRef<HTMLCanvasElement>>('canvas');\n context: CanvasRenderingContext2D | null = null;\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.context = this.canvas().nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n onTouchMove(ev: TouchEvent) {\n if (this.isDrawing()) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n\n onPointerStart(ev: PointerEvent) {\n ev.preventDefault();\n this.isDrawing.set(true);\n if (this.context) {\n const sig = this.signature();\n sig.strokes.push({\n points: [{ x: ev.offsetX, y: ev.offsetY }]\n });\n this.signature.set({ ...sig });\n\n this.context.fillStyle = 'black';\n this.context.beginPath();\n this.context.moveTo(ev.offsetX, ev.offsetY);\n }\n }\n\n onPointerMove(ev: PointerEvent) {\n if (this.isDrawing() && this.context) {\n ev.preventDefault();\n\n const sig = this.signature();\n sig.strokes.at(-1)?.points.push({ x: ev.offsetX, y: ev.offsetY });\n this.signature.set({ ...sig });\n\n this.context.lineTo(ev.offsetX, ev.offsetY);\n this.context.stroke();\n }\n }\n\n onPointerEnd(ev: PointerEvent) {\n if (this.isDrawing()) {\n ev.preventDefault();\n this.isDrawing.set(false);\n }\n }\n}\n","<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAiBa,uBAAuB,CAAA;AAdpC,IAAA,WAAA,GAAA;QAgBE,IAAA,CAAA,SAAS,GAAG,KAAK,CAAY,EAAE,OAAO,EAAE,EAAE,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-signature-pad.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.ts","../../../../libs/mintplayer-ng-bootstrap/signature-pad/src/component/signature-pad.component.html","../../../../libs/mintplayer-ng-bootstrap/signature-pad/mintplayer-ng-bootstrap-signature-pad.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, model, signal, viewChild } from '@angular/core';\nimport { Signature } from '../interfaces/signature';\n\n@Component({\n selector: 'bs-signature-pad',\n templateUrl: './signature-pad.component.html',\n styleUrls: ['./signature-pad.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'border d-inline-block',\n '[style.min-height.rem]': 'minHeight',\n '(touchmove)': 'onTouchMove($event)',\n '(pointerdown)': 'onPointerStart($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(window:pointerup)': 'onPointerEnd($event)',\n },\n})\nexport class BsSignaturePadComponent implements AfterViewInit {\n\n signature = model<Signature>({ strokes: [] });\n width = input(500);\n height = input(300);\n\n readonly minHeight = 5;\n readonly isDrawing = signal<boolean>(false);\n readonly canvas = viewChild.required<ElementRef<HTMLCanvasElement>>('canvas');\n context: CanvasRenderingContext2D | null = null;\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.context = this.canvas().nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n onTouchMove(ev: TouchEvent) {\n if (this.isDrawing()) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n\n onPointerStart(ev: PointerEvent) {\n ev.preventDefault();\n this.isDrawing.set(true);\n if (this.context) {\n const sig = this.signature();\n sig.strokes.push({\n points: [{ x: ev.offsetX, y: ev.offsetY }]\n });\n this.signature.set({ ...sig });\n\n this.context.fillStyle = 'black';\n this.context.beginPath();\n this.context.moveTo(ev.offsetX, ev.offsetY);\n }\n }\n\n onPointerMove(ev: PointerEvent) {\n if (this.isDrawing() && this.context) {\n ev.preventDefault();\n\n const sig = this.signature();\n sig.strokes.at(-1)?.points.push({ x: ev.offsetX, y: ev.offsetY });\n this.signature.set({ ...sig });\n\n this.context.lineTo(ev.offsetX, ev.offsetY);\n this.context.stroke();\n }\n }\n\n onPointerEnd(ev: PointerEvent) {\n if (this.isDrawing()) {\n ev.preventDefault();\n this.isDrawing.set(false);\n }\n }\n}\n","<canvas [width]=\"width()\" [height]=\"height()\" class=\"d-block\" #canvas></canvas>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,10 @@ class BsSlugifyPipe {
|
|
|
11
11
|
.replace(/^-+/, '') // Trim - from start of text
|
|
12
12
|
.replace(/-+$/, ''); // Trim - from end of text
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
15
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSlugifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
15
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: BsSlugifyPipe, isStandalone: true, name: "bsSlugify" }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSlugifyPipe, decorators: [{
|
|
18
18
|
type: Pipe,
|
|
19
19
|
args: [{
|
|
20
20
|
name: 'bsSlugify',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-slugify.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/slugify/src/slugify.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/slugify/mintplayer-ng-bootstrap-slugify.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsSlugify',\n pure: true,\n})\nexport class BsSlugifyPipe implements PipeTransform {\n transform(value: string) {\n return value.toString().toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // Remove diacritics\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW;AAChC,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAChD,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACxB,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-slugify.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/slugify/src/slugify.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/slugify/mintplayer-ng-bootstrap-slugify.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsSlugify',\n pure: true,\n})\nexport class BsSlugifyPipe implements PipeTransform {\n transform(value: string) {\n return value.toString().toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") // Remove diacritics\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW;AAChC,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAChD,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACxB,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB;+GATW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -5,15 +5,15 @@ import { Color } from '@mintplayer/ng-bootstrap';
|
|
|
5
5
|
class BsSpinnerComponent {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.colors = Color;
|
|
8
|
-
this.type = input('border', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
9
|
-
this.color = input(Color.dark, ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
10
|
-
this.spinnerClass = computed(() => `spinner-${this.type()}`, ...(ngDevMode ? [{ debugName: "spinnerClass" }] : []));
|
|
11
|
-
this.colorClass = computed(() => `text-${this.colors[this.color()]}`, ...(ngDevMode ? [{ debugName: "colorClass" }] : []));
|
|
8
|
+
this.type = input('border', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
9
|
+
this.color = input(Color.dark, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
10
|
+
this.spinnerClass = computed(() => `spinner-${this.type()}`, ...(ngDevMode ? [{ debugName: "spinnerClass" }] : /* istanbul ignore next */ []));
|
|
11
|
+
this.colorClass = computed(() => `text-${this.colors[this.color()]}`, ...(ngDevMode ? [{ debugName: "colorClass" }] : /* istanbul ignore next */ []));
|
|
12
12
|
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsSpinnerComponent, isStandalone: true, selector: "bs-spinner", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n", styles: [":host ::ng-deep .spinner-grow,:host ::ng-deep .spinner-border{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}:host ::ng-deep .spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}:host ::ng-deep .spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}:host ::ng-deep .spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}:host ::ng-deep .spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion:reduce){:host ::ng-deep .spinner-border,:host ::ng-deep .spinner-grow{--bs-spinner-animation-speed: 1.5s}}:host ::ng-deep .spinner-border{animation:.75s linear infinite spinner-border}:host ::ng-deep .spinner-grow{animation:.75s linear infinite spinner-grow}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSpinnerComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: 'bs-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n", styles: [":host ::ng-deep .spinner-grow,:host ::ng-deep .spinner-border{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}:host ::ng-deep .spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}:host ::ng-deep .spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}:host ::ng-deep .spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}:host ::ng-deep .spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion:reduce){:host ::ng-deep .spinner-border,:host ::ng-deep .spinner-grow{--bs-spinner-animation-speed: 1.5s}}:host ::ng-deep .spinner-border{animation:.75s linear infinite spinner-border}:host ::ng-deep .spinner-grow{animation:.75s linear infinite spinner-grow}\n"] }]
|
|
19
19
|
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-spinner.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.ts","../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.html","../../../../libs/mintplayer-ng-bootstrap/spinner/mintplayer-ng-bootstrap-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSpinnerComponent {\n readonly colors = Color;\n\n type = input<'border' | 'grow'>('border');\n color = input<Color>(Color.dark);\n\n spinnerClass = computed(() => `spinner-${this.type()}`);\n colorClass = computed(() => `text-${this.colors[this.color()]}`);\n}\n","<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,MAAM,GAAG,KAAK;AAEvB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,QAAQ,
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-spinner.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.ts","../../../../libs/mintplayer-ng-bootstrap/spinner/src/spinner.component.html","../../../../libs/mintplayer-ng-bootstrap/spinner/mintplayer-ng-bootstrap-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Color } from '@mintplayer/ng-bootstrap';\n\n@Component({\n selector: 'bs-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSpinnerComponent {\n readonly colors = Color;\n\n type = input<'border' | 'grow'>('border');\n color = input<Color>(Color.dark);\n\n spinnerClass = computed(() => `spinner-${this.type()}`);\n colorClass = computed(() => `text-${this.colors[this.color()]}`);\n}\n","<div [class]=\"[spinnerClass(), colorClass()]\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,MAAM,GAAG,KAAK;AAEvB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,QAAQ,2EAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAQ,KAAK,CAAC,IAAI,4EAAC;AAEhC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,mFAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA,CAAE,iFAAC;AACjE,IAAA;+GARY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,+TCT/B,mIAGA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mIAAA,EAAA,MAAA,EAAA,CAAA,09CAAA,CAAA,EAAA;;;AEPjD;;AAEG;;;;"}
|
|
@@ -6,10 +6,10 @@ class BsSplitStringPipe {
|
|
|
6
6
|
return value.split(seperator)
|
|
7
7
|
.filter(line => !removeEmptyEntries || (line !== ''));
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSplitStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: BsSplitStringPipe, isStandalone: true, name: "bsSplitString" }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsSplitStringPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{
|
|
15
15
|
name: 'bsSplitString',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-split-string.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/split-string/src/split-string.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/split-string/mintplayer-ng-bootstrap-split-string.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsSplitString',\n pure: true,\n})\nexport class BsSplitStringPipe implements PipeTransform {\n transform(value: string, seperator = '\\n', removeEmptyEntries = true): string[] {\n return value.split(seperator)\n .filter(line => !removeEmptyEntries || (line !== ''));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,iBAAiB,CAAA;IAC5B,SAAS,CAAC,KAAa,EAAE,SAAS,GAAG,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAA;AAClE,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS;AACzB,aAAA,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IACzD
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-split-string.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/split-string/src/split-string.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/split-string/mintplayer-ng-bootstrap-split-string.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsSplitString',\n pure: true,\n})\nexport class BsSplitStringPipe implements PipeTransform {\n transform(value: string, seperator = '\\n', removeEmptyEntries = true): string[] {\n return value.split(seperator)\n .filter(line => !removeEmptyEntries || (line !== ''));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,iBAAiB,CAAA;IAC5B,SAAS,CAAC,KAAa,EAAE,SAAS,GAAG,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAA;AAClE,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS;AACzB,aAAA,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IACzD;+GAJW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -3,10 +3,10 @@ import { Directive, viewChild, effect, ChangeDetectionStrategy, Component } from
|
|
|
3
3
|
import { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';
|
|
4
4
|
|
|
5
5
|
class BsStickyFooterParentDirective {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
7
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsStickyFooterParentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: BsStickyFooterParentDirective, isStandalone: true, selector: "[bsStickyFooterParent]", host: { properties: { "style.margin-bottom.px": "marginBottom" } }, ngImport: i0 }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsStickyFooterParentDirective, decorators: [{
|
|
10
10
|
type: Directive,
|
|
11
11
|
args: [{
|
|
12
12
|
selector: '[bsStickyFooterParent]',
|
|
@@ -30,10 +30,10 @@ class BsStickyFooterComponent {
|
|
|
30
30
|
}
|
|
31
31
|
}, { injector: this.injector });
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsStickyFooterComponent, deps: [{ token: BsStickyFooterParentDirective }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.11", type: BsStickyFooterComponent, isStandalone: true, selector: "bs-sticky-footer", viewQueries: [{ propertyName: "sizeObserver", first: true, predicate: ["sizeObserver"], descendants: true, isSignal: true }], ngImport: i0, template: "<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>", styles: [".footer{bottom:0;left:0;right:0}::ng-deep html{position:relative;min-height:100%}\n"], dependencies: [{ kind: "directive", type: BsObserveSizeDirective, selector: "[bsObserveSize]", exportAs: ["bsObserveSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsStickyFooterComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{ selector: 'bs-sticky-footer', imports: [BsObserveSizeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>", styles: [".footer{bottom:0;left:0;right:0}::ng-deep html{position:relative;min-height:100%}\n"] }]
|
|
39
39
|
}], ctorParameters: () => [{ type: BsStickyFooterParentDirective }, { type: i0.Injector }], propDecorators: { sizeObserver: [{ type: i0.ViewChild, args: ['sizeObserver', { isSignal: true }] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-sticky-footer.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.html","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/mintplayer-ng-bootstrap-sticky-footer.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsStickyFooterParent]',\n host: {\n '[style.margin-bottom.px]': 'marginBottom',\n },\n})\nexport class BsStickyFooterParentDirective {\n marginBottom?: number;\n}\n","import { AfterViewInit, Component, effect, Injector, viewChild, ChangeDetectionStrategy} from '@angular/core';\nimport { BsStickyFooterParentDirective } from '../sticky-footer-parent/sticky-footer-parent.directive';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\n\n@Component({\n selector: 'bs-sticky-footer',\n templateUrl: './sticky-footer.component.html',\n styleUrls: ['./sticky-footer.component.scss'],\n imports: [BsObserveSizeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsStickyFooterComponent implements AfterViewInit {\n constructor(\n private parent: BsStickyFooterParentDirective,\n private injector: Injector\n ) {}\n\n ngAfterViewInit() {\n effect(() => {\n const height = this.sizeObserver().height();\n if (height !== undefined) {\n this.parent.marginBottom = height;\n }\n }, { injector: this.injector });\n }\n\n readonly sizeObserver = viewChild.required<BsObserveSizeDirective>('sizeObserver');\n}\n","<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsStickyFooterParentDirective"],"mappings":";;;;MAQa,6BAA6B,CAAA
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-sticky-footer.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.html","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/mintplayer-ng-bootstrap-sticky-footer.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsStickyFooterParent]',\n host: {\n '[style.margin-bottom.px]': 'marginBottom',\n },\n})\nexport class BsStickyFooterParentDirective {\n marginBottom?: number;\n}\n","import { AfterViewInit, Component, effect, Injector, viewChild, ChangeDetectionStrategy} from '@angular/core';\nimport { BsStickyFooterParentDirective } from '../sticky-footer-parent/sticky-footer-parent.directive';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\n\n@Component({\n selector: 'bs-sticky-footer',\n templateUrl: './sticky-footer.component.html',\n styleUrls: ['./sticky-footer.component.scss'],\n imports: [BsObserveSizeDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsStickyFooterComponent implements AfterViewInit {\n constructor(\n private parent: BsStickyFooterParentDirective,\n private injector: Injector\n ) {}\n\n ngAfterViewInit() {\n effect(() => {\n const height = this.sizeObserver().height();\n if (height !== undefined) {\n this.parent.marginBottom = height;\n }\n }, { injector: this.injector });\n }\n\n readonly sizeObserver = viewChild.required<BsObserveSizeDirective>('sizeObserver');\n}\n","<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsStickyFooterParentDirective"],"mappings":";;;;MAQa,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,0BAA0B,EAAE,cAAc;AAC3C,qBAAA;AACF,iBAAA;;;MCIY,uBAAuB,CAAA;IAClC,WAAA,CACU,MAAqC,EACrC,QAAkB,EAAA;QADlB,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAYT,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAyB,cAAc,CAAC;IAX/E;IAEH,eAAe,GAAA;QACb,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE;AAC3C,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM;YACnC;QACF,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC;+GAbW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,qIAES,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDMG,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAGrB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,WAGnB,CAAC,sBAAsB,CAAC,EAAA,eAAA,EAChB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA;kKAiBoB,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE1BnF;;AAEG;;;;"}
|