@bravobit/bb-foundation 0.45.1 → 0.45.3
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/collections/lib/collection.d.ts +0 -2
- package/collections/lib/interfaces/collection.interface.d.ts +4 -0
- package/collections/lib/providers/api-collection.provider.d.ts +3 -2
- package/collections/lib/providers/collection.provider.d.ts +5 -2
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +6 -3
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +7 -3
- package/esm2022/collections/lib/collection.mjs +3 -13
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +3 -3
- package/esm2022/collections/lib/interfaces/collection.interface.mjs +1 -1
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +16 -7
- package/esm2022/collections/lib/providers/collection.provider.mjs +27 -1
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +19 -13
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +2 -2
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +20 -11
- package/esm2022/elements/lib/spinner/spinner.component.mjs +4 -4
- package/esm2022/select/lib/select/select.component.mjs +48 -5
- package/fesm2022/bravobit-bb-foundation-collections.mjs +45 -20
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +34 -22
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +3 -3
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +47 -4
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/package.json +12 -12
- package/select/lib/select/select.component.d.ts +7 -1
- package/styles/theme.scss +5 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, EventEmitter, booleanAttribute, numberAttribute, forwardRef, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ViewChild, Input, Output, makeEnvironmentProviders, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, inject, ElementRef, EventEmitter, booleanAttribute, numberAttribute, forwardRef, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ViewChild, Input, Output, makeEnvironmentProviders, NgModule } from '@angular/core';
|
|
3
3
|
import { NgSelectComponent, NgOptionTemplateDirective, NgLabelTemplateDirective, NgMultiLabelTemplateDirective, NgOptgroupTemplateDirective, SELECTION_MODEL_FACTORY, DefaultSelectionModelFactory } from '@ng-select/ng-select';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
5
|
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { Subscription, fromEvent, throttleTime, takeUntil } from 'rxjs';
|
|
7
|
+
import { WINDOW, observableAttribute } from '@bravobit/bb-foundation';
|
|
6
8
|
import { BbFormError } from '@bravobit/bb-foundation/elements';
|
|
7
9
|
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
8
|
-
import { observableAttribute } from '@bravobit/bb-foundation';
|
|
9
10
|
import { BbLocalize } from '@bravobit/bb-foundation/localize';
|
|
10
11
|
import { BbTemplate } from '@bravobit/bb-foundation/utils';
|
|
11
|
-
import {
|
|
12
|
+
import { switchMap, filter, map } from 'rxjs/operators';
|
|
12
13
|
|
|
13
14
|
class BbSelectOptionGroup {
|
|
14
15
|
template;
|
|
@@ -76,6 +77,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
76
77
|
|
|
77
78
|
let nextUniqueId = 0;
|
|
78
79
|
class BbSelect {
|
|
80
|
+
// Dependencies.
|
|
81
|
+
_elementRef = inject(ElementRef);
|
|
82
|
+
_window = inject(WINDOW, { optional: true });
|
|
79
83
|
// Readonly data.
|
|
80
84
|
labelId = `bb-select-${nextUniqueId++}`;
|
|
81
85
|
control = new FormControl();
|
|
@@ -106,6 +110,7 @@ class BbSelect {
|
|
|
106
110
|
selectOnTab = false;
|
|
107
111
|
hideSelected = false;
|
|
108
112
|
maxSelectedItems = null;
|
|
113
|
+
disablePanelScrolling = false;
|
|
109
114
|
bindLabel = null;
|
|
110
115
|
bindValue = null;
|
|
111
116
|
placeholder = null;
|
|
@@ -143,6 +148,7 @@ class BbSelect {
|
|
|
143
148
|
_subscription = new Subscription();
|
|
144
149
|
ngOnInit() {
|
|
145
150
|
this.handleValueChanges();
|
|
151
|
+
this.handleScrolling();
|
|
146
152
|
}
|
|
147
153
|
ngOnDestroy() {
|
|
148
154
|
this._subscription?.unsubscribe();
|
|
@@ -167,8 +173,42 @@ class BbSelect {
|
|
|
167
173
|
.subscribe(value => this.onChangeCallback?.(value));
|
|
168
174
|
this._subscription.add(subscription);
|
|
169
175
|
}
|
|
176
|
+
handleScrolling() {
|
|
177
|
+
if (this.appendTo === null || !this.selectComponent || this.disablePanelScrolling) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const scrollableElement = this.getScrollableContainer(this._elementRef?.nativeElement);
|
|
181
|
+
if (!scrollableElement) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const subscription = this.selectComponent.openEvent.pipe(switchMap(() => {
|
|
185
|
+
const initialScrollTop = scrollableElement?.scrollTop ?? 0;
|
|
186
|
+
return fromEvent(scrollableElement, 'scroll').pipe(throttleTime(4), filter(() => this.selectComponent?.isOpen), map(() => {
|
|
187
|
+
const offset = Math.abs(initialScrollTop - (scrollableElement?.scrollTop ?? 0));
|
|
188
|
+
return offset > 24
|
|
189
|
+
? this.selectComponent?.close?.()
|
|
190
|
+
: this.selectComponent?.dropdownPanel?.adjustPosition?.();
|
|
191
|
+
}), takeUntil(this.selectComponent.closeEvent));
|
|
192
|
+
})).subscribe();
|
|
193
|
+
this._subscription.add(subscription);
|
|
194
|
+
}
|
|
195
|
+
getScrollableContainer(element) {
|
|
196
|
+
if (!this._window || !element) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
let currentElement = element;
|
|
200
|
+
while (currentElement) {
|
|
201
|
+
const overflowY = this._window.getComputedStyle(currentElement).overflowY;
|
|
202
|
+
const isScrollable = (overflowY === 'auto' || overflowY === 'scroll');
|
|
203
|
+
if (isScrollable && currentElement.scrollHeight > currentElement.clientHeight) {
|
|
204
|
+
return currentElement;
|
|
205
|
+
}
|
|
206
|
+
currentElement = currentElement.parentElement;
|
|
207
|
+
}
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
170
210
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
171
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbSelect, isStandalone: true, selector: "bb-select", inputs: { label: "label", hint: "hint", data: ["data", "data", observableAttribute], required: ["required", "required", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], grouped: ["grouped", "grouped", booleanAttribute], hideErrors: ["hideErrors", "hideErrors", booleanAttribute], loading: ["loading", "loading", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], clearable: ["clearable", "clearable", booleanAttribute], searchable: ["searchable", "searchable", booleanAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], selectableGroup: ["selectableGroup", "selectableGroup", booleanAttribute], selectableGroupAsModel: ["selectableGroupAsModel", "selectableGroupAsModel", booleanAttribute], hideArrow: ["hideArrow", "hideArrow", booleanAttribute], selectOnTab: ["selectOnTab", "selectOnTab", booleanAttribute], hideSelected: ["hideSelected", "hideSelected", booleanAttribute], maxSelectedItems: ["maxSelectedItems", "maxSelectedItems", numberAttribute], bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", typeahead: "typeahead", trackByFn: "trackByFn", groupBy: "groupBy", isOpen: "isOpen", clearSearchOnAdd: "clearSearchOnAdd", addTag: "addTag", appendTo: "appendTo", disabled: ["disabled", "disabled", booleanAttribute], value: "value" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onChange: "onChange" }, host: { properties: { "class.required": "required", "class.readonly": "readonly", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error", "class.hide-arrow": "hideArrow" }, classAttribute: "bb-select" }, providers: [{
|
|
211
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbSelect, isStandalone: true, selector: "bb-select", inputs: { label: "label", hint: "hint", data: ["data", "data", observableAttribute], required: ["required", "required", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], grouped: ["grouped", "grouped", booleanAttribute], hideErrors: ["hideErrors", "hideErrors", booleanAttribute], loading: ["loading", "loading", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], clearable: ["clearable", "clearable", booleanAttribute], searchable: ["searchable", "searchable", booleanAttribute], virtualScroll: ["virtualScroll", "virtualScroll", booleanAttribute], closeOnSelect: ["closeOnSelect", "closeOnSelect", booleanAttribute], selectableGroup: ["selectableGroup", "selectableGroup", booleanAttribute], selectableGroupAsModel: ["selectableGroupAsModel", "selectableGroupAsModel", booleanAttribute], hideArrow: ["hideArrow", "hideArrow", booleanAttribute], selectOnTab: ["selectOnTab", "selectOnTab", booleanAttribute], hideSelected: ["hideSelected", "hideSelected", booleanAttribute], maxSelectedItems: ["maxSelectedItems", "maxSelectedItems", numberAttribute], disablePanelScrolling: ["disablePanelScrolling", "disablePanelScrolling", booleanAttribute], bindLabel: "bindLabel", bindValue: "bindValue", placeholder: "placeholder", typeahead: "typeahead", trackByFn: "trackByFn", groupBy: "groupBy", isOpen: "isOpen", clearSearchOnAdd: "clearSearchOnAdd", addTag: "addTag", appendTo: "appendTo", disabled: ["disabled", "disabled", booleanAttribute], value: "value" }, outputs: { valueChange: "valueChange", onBlur: "onBlur", onChange: "onChange" }, host: { properties: { "class.required": "required", "class.readonly": "readonly", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error", "class.hide-arrow": "hideArrow" }, classAttribute: "bb-select" }, providers: [{
|
|
172
212
|
provide: NG_VALUE_ACCESSOR,
|
|
173
213
|
useExisting: forwardRef(() => BbSelect),
|
|
174
214
|
multi: true
|
|
@@ -271,6 +311,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
271
311
|
}], maxSelectedItems: [{
|
|
272
312
|
type: Input,
|
|
273
313
|
args: [{ transform: numberAttribute }]
|
|
314
|
+
}], disablePanelScrolling: [{
|
|
315
|
+
type: Input,
|
|
316
|
+
args: [{ transform: booleanAttribute }]
|
|
274
317
|
}], bindLabel: [{
|
|
275
318
|
type: Input
|
|
276
319
|
}], bindValue: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bravobit-bb-foundation-select.mjs","sources":["../../../projects/bb-foundation/select/src/lib/select-option-group.directive.ts","../../../projects/bb-foundation/select/src/lib/select-multi-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select-option.directive.ts","../../../projects/bb-foundation/select/src/lib/select-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.html","../../../projects/bb-foundation/select/src/lib/select.config.ts","../../../projects/bb-foundation/select/src/lib/select.module.ts","../../../projects/bb-foundation/select/src/bravobit-bb-foundation-select.ts"],"sourcesContent":["import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectOptionGroup]',\n standalone: true\n})\nexport class BbSelectOptionGroup {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectMultiLabel]',\n standalone: true\n})\nexport class BbSelectMultiLabel {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectOption]',\n standalone: true\n})\nexport class BbSelectOption {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectLabel]',\n standalone: true\n})\nexport class BbSelectLabel {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {NgLabelTemplateDirective, NgMultiLabelTemplateDirective, NgOptgroupTemplateDirective, NgOptionTemplateDirective, NgSelectComponent} from '@ng-select/ng-select';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {BbSelectOptionGroup} from '../select-option-group.directive';\nimport {BbSelectMultiLabel} from '../select-multi-label.directive';\nimport {BbFormError} from '@bravobit/bb-foundation/elements';\nimport {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {observableAttribute} from '@bravobit/bb-foundation';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbSelectOption} from '../select-option.directive';\nimport {BbTemplate} from '@bravobit/bb-foundation/utils';\nimport {BbSelectLabel} from '../select-label.directive';\nimport {Observable, Subject, Subscription} from 'rxjs';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbSelect),\n multi: true\n }],\n host: {\n 'class': 'bb-select',\n '[class.required]': 'required',\n '[class.readonly]': 'readonly',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.error]': 'error',\n '[class.hide-arrow]': 'hideArrow'\n },\n preserveWhitespaces: false,\n standalone: true,\n imports: [\n ReactiveFormsModule,\n AsyncPipe,\n NgTemplateOutlet,\n BbTemplate,\n BbFormError,\n BbLocalize,\n NgSelectComponent,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgOptgroupTemplateDirective\n ]\n})\nexport class BbSelect<T> implements ControlValueAccessor, OnInit, OnDestroy {\n\n // Readonly data.\n readonly labelId = `bb-select-${nextUniqueId++}`;\n readonly control = new FormControl();\n\n // Content children.\n @ContentChild(BbSelectOption, {read: TemplateRef}) optionTemplate: TemplateRef<any>;\n @ContentChild(BbSelectOptionGroup, {read: TemplateRef}) optionGroupTemplate: TemplateRef<any>;\n @ContentChild(BbSelectLabel, {read: TemplateRef}) labelTemplate: TemplateRef<any>;\n @ContentChild(BbSelectMultiLabel, {read: TemplateRef}) multiLabelTemplate: TemplateRef<any>;\n\n // View children.\n @ViewChild(NgSelectComponent, {static: true}) selectComponent: NgSelectComponent;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input({transform: observableAttribute}) data: Observable<T[]> | null = null;\n @Input({transform: booleanAttribute}) required: boolean = false;\n @Input({transform: booleanAttribute}) readonly: boolean = false;\n @Input({transform: booleanAttribute}) grouped: boolean = false;\n @Input({transform: booleanAttribute}) hideErrors: boolean = false;\n @Input({transform: booleanAttribute}) loading: boolean = false;\n @Input({transform: booleanAttribute}) multiple: boolean = false;\n @Input({transform: booleanAttribute}) clearable: boolean = true;\n @Input({transform: booleanAttribute}) searchable: boolean = true;\n @Input({transform: booleanAttribute}) virtualScroll: boolean = true;\n @Input({transform: booleanAttribute}) closeOnSelect: boolean = true;\n @Input({transform: booleanAttribute}) selectableGroup: boolean = false;\n @Input({transform: booleanAttribute}) selectableGroupAsModel: boolean = false;\n @Input({transform: booleanAttribute}) hideArrow: boolean = false;\n @Input({transform: booleanAttribute}) selectOnTab: boolean = false;\n @Input({transform: booleanAttribute}) hideSelected: boolean = false;\n @Input({transform: numberAttribute}) maxSelectedItems: number | null = null;\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() placeholder: string | null = null;\n @Input() typeahead: Subject<string> | null = null;\n @Input() trackByFn: any | null = null;\n @Input() groupBy: string | null = null;\n @Input() isOpen: boolean = null;\n @Input() clearSearchOnAdd: boolean = null;\n @Input() addTag: boolean | ((term: string) => any | Promise<any>) = false;\n @Input() appendTo: string | null = 'body';\n\n @Input({transform: booleanAttribute})\n set disabled(value: boolean) {\n this._disabled = value;\n this._disabled ? this.control?.disable() : this.control?.enable();\n }\n\n get disabled() {\n return this._disabled;\n }\n\n @Input()\n get value() {\n return this.control.value;\n }\n\n @Output() valueChange = new EventEmitter<any | null>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n @Output() onChange = new EventEmitter<any | null>();\n\n set value(value: any | null) {\n this.control.setValue(value);\n this.valueChange.emit(value);\n }\n\n // State.\n error: boolean = false;\n private _disabled: boolean = false;\n\n // Callbacks.\n onTouchedCallback: () => void = () => ({});\n onChangeCallback: (_: T | null) => void = () => ({});\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleValueChanges();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n writeValue(value: T | null) {\n this.control.patchValue(value, {emitEvent: false});\n }\n\n registerOnChange(method: (_: T | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n private handleValueChanges() {\n const subscription = this.control.valueChanges\n .subscribe(value => this.onChangeCallback?.(value));\n this._subscription.add(subscription);\n }\n\n}\n","<!-- Label of the form control. -->\n@if (label; as labelContent) {\n <label [attr.for]=\"labelId\"\n class=\"bb-select-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<ng-select [formControl]=\"control\"\n [notFoundText]=\"'select.not_found_text' | bbLocalize\"\n [clearAllText]=\"'select.clear_all_text' | bbLocalize\"\n [loadingText]=\"'select.loading_text' | bbLocalize\"\n [typeToSearchText]=\"'select.type_to_search_text' | bbLocalize\"\n [addTagText]=\"'select.add_tag_text' | bbLocalize\"\n [virtualScroll]=\"virtualScroll\"\n [items]=\"data | async\"\n [multiple]=\"multiple\"\n [loading]=\"loading\"\n [labelForId]=\"labelId\"\n [searchable]=\"searchable\"\n [placeholder]=\"placeholder\"\n [clearable]=\"clearable\"\n [closeOnSelect]=\"closeOnSelect\"\n [trackByFn]=\"trackByFn\"\n [typeahead]=\"typeahead\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [hideSelected]=\"hideSelected\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [isOpen]=\"isOpen\"\n [readonly]=\"readonly\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n (blur)=\"onBlur?.emit($event)\"\n (change)=\"onChange?.emit($event)\">\n @if (optionTemplate) {\n <ng-template ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"optionTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n @if (labelTemplate) {\n <ng-template ng-label-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"labelTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n @if (multiLabelTemplate) {\n <ng-template ng-multi-label-tmp\n let-items=\"items\"\n let-clear=\"clear\">\n <ng-container *ngTemplateOutlet=\"multiLabelTemplate; context: {items: items, clear: clear}\"></ng-container>\n </ng-template>\n }\n @if (optionGroupTemplate) {\n <ng-template ng-optgroup-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"optionGroupTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n</ng-select>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The form control hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-select-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n","import {DefaultSelectionModelFactory, SELECTION_MODEL_FACTORY} from '@ng-select/ng-select';\nimport {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\n\nexport function provideSelectConfig(): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory}\n ]);\n}\n","import {BbSelectOptionGroup} from './select-option-group.directive';\nimport {BbSelectMultiLabel} from './select-multi-label.directive';\nimport {BbSelectOption} from './select-option.directive';\nimport {BbSelectLabel} from './select-label.directive';\nimport {provideSelectConfig} from './select.config';\nimport {BbSelect} from './select/select.component';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [\n BbSelect,\n BbSelectLabel,\n BbSelectOption,\n BbSelectOptionGroup,\n BbSelectMultiLabel\n ],\n exports: [\n BbSelect,\n BbSelectLabel,\n BbSelectOption,\n BbSelectOptionGroup,\n BbSelectMultiLabel\n ],\n providers: [\n provideSelectConfig()\n ]\n})\nexport class SelectModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bravobit-bb-foundation-select.mjs","sources":["../../../projects/bb-foundation/select/src/lib/select-option-group.directive.ts","../../../projects/bb-foundation/select/src/lib/select-multi-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select-option.directive.ts","../../../projects/bb-foundation/select/src/lib/select-label.directive.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.ts","../../../projects/bb-foundation/select/src/lib/select/select.component.html","../../../projects/bb-foundation/select/src/lib/select.config.ts","../../../projects/bb-foundation/select/src/lib/select.module.ts","../../../projects/bb-foundation/select/src/bravobit-bb-foundation-select.ts"],"sourcesContent":["import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectOptionGroup]',\n standalone: true\n})\nexport class BbSelectOptionGroup {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectMultiLabel]',\n standalone: true\n})\nexport class BbSelectMultiLabel {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectOption]',\n standalone: true\n})\nexport class BbSelectOption {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[bbSelectLabel]',\n standalone: true\n})\nexport class BbSelectLabel {\n\n constructor(public template: TemplateRef<any>) {\n }\n\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {NgLabelTemplateDirective, NgMultiLabelTemplateDirective, NgOptgroupTemplateDirective, NgOptionTemplateDirective, NgSelectComponent} from '@ng-select/ng-select';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {fromEvent, Observable, Subject, Subscription, takeUntil, throttleTime} from 'rxjs';\nimport {BbSelectOptionGroup} from '../select-option-group.directive';\nimport {observableAttribute, WINDOW} from '@bravobit/bb-foundation';\nimport {BbSelectMultiLabel} from '../select-multi-label.directive';\nimport {BbFormError} from '@bravobit/bb-foundation/elements';\nimport {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbSelectOption} from '../select-option.directive';\nimport {BbTemplate} from '@bravobit/bb-foundation/utils';\nimport {BbSelectLabel} from '../select-label.directive';\nimport {filter, map, switchMap} from 'rxjs/operators';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbSelect),\n multi: true\n }],\n host: {\n 'class': 'bb-select',\n '[class.required]': 'required',\n '[class.readonly]': 'readonly',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.error]': 'error',\n '[class.hide-arrow]': 'hideArrow'\n },\n preserveWhitespaces: false,\n standalone: true,\n imports: [\n ReactiveFormsModule,\n AsyncPipe,\n NgTemplateOutlet,\n BbTemplate,\n BbFormError,\n BbLocalize,\n NgSelectComponent,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgOptgroupTemplateDirective\n ]\n})\nexport class BbSelect<T> implements ControlValueAccessor, OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n private readonly _window?: Window = inject(WINDOW, {optional: true});\n\n // Readonly data.\n readonly labelId = `bb-select-${nextUniqueId++}`;\n readonly control = new FormControl();\n\n // Content children.\n @ContentChild(BbSelectOption, {read: TemplateRef}) optionTemplate: TemplateRef<any>;\n @ContentChild(BbSelectOptionGroup, {read: TemplateRef}) optionGroupTemplate: TemplateRef<any>;\n @ContentChild(BbSelectLabel, {read: TemplateRef}) labelTemplate: TemplateRef<any>;\n @ContentChild(BbSelectMultiLabel, {read: TemplateRef}) multiLabelTemplate: TemplateRef<any>;\n\n // View children.\n @ViewChild(NgSelectComponent, {static: true}) selectComponent: NgSelectComponent;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input({transform: observableAttribute}) data: Observable<T[]> | null = null;\n @Input({transform: booleanAttribute}) required: boolean = false;\n @Input({transform: booleanAttribute}) readonly: boolean = false;\n @Input({transform: booleanAttribute}) grouped: boolean = false;\n @Input({transform: booleanAttribute}) hideErrors: boolean = false;\n @Input({transform: booleanAttribute}) loading: boolean = false;\n @Input({transform: booleanAttribute}) multiple: boolean = false;\n @Input({transform: booleanAttribute}) clearable: boolean = true;\n @Input({transform: booleanAttribute}) searchable: boolean = true;\n @Input({transform: booleanAttribute}) virtualScroll: boolean = true;\n @Input({transform: booleanAttribute}) closeOnSelect: boolean = true;\n @Input({transform: booleanAttribute}) selectableGroup: boolean = false;\n @Input({transform: booleanAttribute}) selectableGroupAsModel: boolean = false;\n @Input({transform: booleanAttribute}) hideArrow: boolean = false;\n @Input({transform: booleanAttribute}) selectOnTab: boolean = false;\n @Input({transform: booleanAttribute}) hideSelected: boolean = false;\n @Input({transform: numberAttribute}) maxSelectedItems: number | null = null;\n @Input({transform: booleanAttribute}) disablePanelScrolling: boolean = false;\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() placeholder: string | null = null;\n @Input() typeahead: Subject<string> | null = null;\n @Input() trackByFn: any | null = null;\n @Input() groupBy: string | null = null;\n @Input() isOpen: boolean = null;\n @Input() clearSearchOnAdd: boolean = null;\n @Input() addTag: boolean | ((term: string) => any | Promise<any>) = false;\n @Input() appendTo: string | null = 'body';\n\n @Input({transform: booleanAttribute})\n set disabled(value: boolean) {\n this._disabled = value;\n this._disabled ? this.control?.disable() : this.control?.enable();\n }\n\n get disabled() {\n return this._disabled;\n }\n\n @Input()\n get value() {\n return this.control.value;\n }\n\n @Output() valueChange = new EventEmitter<any | null>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n @Output() onChange = new EventEmitter<any | null>();\n\n set value(value: any | null) {\n this.control.setValue(value);\n this.valueChange.emit(value);\n }\n\n // State.\n error: boolean = false;\n private _disabled: boolean = false;\n\n // Callbacks.\n onTouchedCallback: () => void = () => ({});\n onChangeCallback: (_: T | null) => void = () => ({});\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleValueChanges();\n this.handleScrolling();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n writeValue(value: T | null) {\n this.control.patchValue(value, {emitEvent: false});\n }\n\n registerOnChange(method: (_: T | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n private handleValueChanges() {\n const subscription = this.control.valueChanges\n .subscribe(value => this.onChangeCallback?.(value));\n this._subscription.add(subscription);\n }\n\n private handleScrolling() {\n if (this.appendTo === null || !this.selectComponent || this.disablePanelScrolling) {\n return;\n }\n\n const scrollableElement = this.getScrollableContainer(this._elementRef?.nativeElement);\n if (!scrollableElement) {\n return;\n }\n\n const subscription = this.selectComponent.openEvent.pipe(\n switchMap(() => {\n const initialScrollTop = scrollableElement?.scrollTop ?? 0;\n return fromEvent(scrollableElement, 'scroll').pipe(\n throttleTime(4),\n filter(() => this.selectComponent?.isOpen),\n map(() => {\n const offset = Math.abs(initialScrollTop - (scrollableElement?.scrollTop ?? 0));\n return offset > 24\n ? this.selectComponent?.close?.()\n : this.selectComponent?.dropdownPanel?.adjustPosition?.();\n }),\n takeUntil(this.selectComponent.closeEvent)\n );\n })\n ).subscribe();\n this._subscription.add(subscription);\n }\n\n private getScrollableContainer(element: HTMLElement) {\n if (!this._window || !element) {\n return null;\n }\n\n let currentElement = element;\n\n while (currentElement) {\n const overflowY = this._window.getComputedStyle(currentElement).overflowY;\n const isScrollable = (overflowY === 'auto' || overflowY === 'scroll');\n\n if (isScrollable && currentElement.scrollHeight > currentElement.clientHeight) {\n return currentElement;\n }\n\n currentElement = currentElement.parentElement;\n }\n\n return null;\n }\n\n}\n","<!-- Label of the form control. -->\n@if (label; as labelContent) {\n <label [attr.for]=\"labelId\"\n class=\"bb-select-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n </label>\n}\n\n<ng-select [formControl]=\"control\"\n [notFoundText]=\"'select.not_found_text' | bbLocalize\"\n [clearAllText]=\"'select.clear_all_text' | bbLocalize\"\n [loadingText]=\"'select.loading_text' | bbLocalize\"\n [typeToSearchText]=\"'select.type_to_search_text' | bbLocalize\"\n [addTagText]=\"'select.add_tag_text' | bbLocalize\"\n [virtualScroll]=\"virtualScroll\"\n [items]=\"data | async\"\n [multiple]=\"multiple\"\n [loading]=\"loading\"\n [labelForId]=\"labelId\"\n [searchable]=\"searchable\"\n [placeholder]=\"placeholder\"\n [clearable]=\"clearable\"\n [closeOnSelect]=\"closeOnSelect\"\n [trackByFn]=\"trackByFn\"\n [typeahead]=\"typeahead\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [hideSelected]=\"hideSelected\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [groupBy]=\"groupBy\"\n [isOpen]=\"isOpen\"\n [readonly]=\"readonly\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n (blur)=\"onBlur?.emit($event)\"\n (change)=\"onChange?.emit($event)\">\n @if (optionTemplate) {\n <ng-template ng-option-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"optionTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n @if (labelTemplate) {\n <ng-template ng-label-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"labelTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n @if (multiLabelTemplate) {\n <ng-template ng-multi-label-tmp\n let-items=\"items\"\n let-clear=\"clear\">\n <ng-container *ngTemplateOutlet=\"multiLabelTemplate; context: {items: items, clear: clear}\"></ng-container>\n </ng-template>\n }\n @if (optionGroupTemplate) {\n <ng-template ng-optgroup-tmp\n let-item=\"item\"\n let-item$=\"item$\"\n let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"optionGroupTemplate; context: {item: item, item$: item$, index: index}\"></ng-container>\n </ng-template>\n }\n</ng-select>\n\n@if (!hideErrors) {\n <bb-form-error (errorChange)=\"onErrorChange($event)\"></bb-form-error>\n}\n\n<!-- The form control hint. -->\n@if (hint; as hintContent) {\n <p class=\"bb-select-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n </p>\n}\n","import {DefaultSelectionModelFactory, SELECTION_MODEL_FACTORY} from '@ng-select/ng-select';\nimport {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\n\nexport function provideSelectConfig(): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory}\n ]);\n}\n","import {BbSelectOptionGroup} from './select-option-group.directive';\nimport {BbSelectMultiLabel} from './select-multi-label.directive';\nimport {BbSelectOption} from './select-option.directive';\nimport {BbSelectLabel} from './select-label.directive';\nimport {provideSelectConfig} from './select.config';\nimport {BbSelect} from './select/select.component';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [\n BbSelect,\n BbSelectLabel,\n BbSelectOption,\n BbSelectOptionGroup,\n BbSelectMultiLabel\n ],\n exports: [\n BbSelect,\n BbSelectLabel,\n BbSelectOption,\n BbSelectOptionGroup,\n BbSelectMultiLabel\n ],\n providers: [\n provideSelectConfig()\n ]\n})\nexport class SelectModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAMa,mBAAmB,CAAA;AAET,IAAA,QAAA,CAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAC5C;wGAHQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,kBAAkB,CAAA;AAER,IAAA,QAAA,CAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAC5C;wGAHQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAEJ,IAAA,QAAA,CAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAC5C;wGAHQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AAEH,IAAA,QAAA,CAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAC5C;wGAHQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;AC2BD,IAAI,YAAY,GAAG,CAAC,CAAC;MAsCR,QAAQ,CAAA;;AAGA,IAAA,WAAW,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO,GAAY,MAAM,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;;AAG5D,IAAA,OAAO,GAAG,CAAA,UAAA,EAAa,YAAY,EAAE,EAAE,CAAC;AACxC,IAAA,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;;AAGc,IAAA,cAAc,CAAmB;AAC5B,IAAA,mBAAmB,CAAmB;AAC5C,IAAA,aAAa,CAAmB;AAC3B,IAAA,kBAAkB,CAAmB;;AAG9C,IAAA,eAAe,CAAoB;;IAGxE,KAAK,GAAqC,IAAI,CAAC;IAC/C,IAAI,GAAqC,IAAI,CAAC;IACd,IAAI,GAA2B,IAAI,CAAC;IACvC,QAAQ,GAAY,KAAK,CAAC;IAC1B,QAAQ,GAAY,KAAK,CAAC;IAC1B,OAAO,GAAY,KAAK,CAAC;IACzB,UAAU,GAAY,KAAK,CAAC;IAC5B,OAAO,GAAY,KAAK,CAAC;IACzB,QAAQ,GAAY,KAAK,CAAC;IAC1B,SAAS,GAAY,IAAI,CAAC;IAC1B,UAAU,GAAY,IAAI,CAAC;IAC3B,aAAa,GAAY,IAAI,CAAC;IAC9B,aAAa,GAAY,IAAI,CAAC;IAC9B,eAAe,GAAY,KAAK,CAAC;IACjC,sBAAsB,GAAY,KAAK,CAAC;IACxC,SAAS,GAAY,KAAK,CAAC;IAC3B,WAAW,GAAY,KAAK,CAAC;IAC7B,YAAY,GAAY,KAAK,CAAC;IAC/B,gBAAgB,GAAkB,IAAI,CAAC;IACtC,qBAAqB,GAAY,KAAK,CAAC;IACpE,SAAS,GAAkB,IAAI,CAAC;IAChC,SAAS,GAAkB,IAAI,CAAC;IAChC,WAAW,GAAkB,IAAI,CAAC;IAClC,SAAS,GAA2B,IAAI,CAAC;IACzC,SAAS,GAAe,IAAI,CAAC;IAC7B,OAAO,GAAkB,IAAI,CAAC;IAC9B,MAAM,GAAY,IAAI,CAAC;IACvB,gBAAgB,GAAY,IAAI,CAAC;IACjC,MAAM,GAAqD,KAAK,CAAC;IACjE,QAAQ,GAAkB,MAAM,CAAC;IAE1C,IACI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;KACrE;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,IACI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC7B;AAES,IAAA,WAAW,GAAG,IAAI,YAAY,EAAc,CAAC;AAC7C,IAAA,MAAM,GAAG,IAAI,YAAY,EAAc,CAAC;AACxC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;IAEpD,IAAI,KAAK,CAAC,KAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;;IAGD,KAAK,GAAY,KAAK,CAAC;IACf,SAAS,GAAY,KAAK,CAAC;;AAGnC,IAAA,iBAAiB,GAAe,OAAO,EAAE,CAAC,CAAC;AAC3C,IAAA,gBAAgB,GAA0B,OAAO,EAAE,CAAC,CAAC;;AAG7C,IAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;IAE3C,QAAQ,GAAA;QACJ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;KACrC;AAED,IAAA,UAAU,CAAC,KAAe,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;KACtD;AAED,IAAA,gBAAgB,CAAC,MAA6B,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,MAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;KACnC;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAA2C,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KACxB;IAEO,kBAAkB,GAAA;AACtB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;AACzC,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KACxC;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/E,OAAO;SACV;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACvF,IAAI,CAAC,iBAAiB,EAAE;YACpB,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CACpD,SAAS,CAAC,MAAK;AACX,YAAA,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,SAAS,IAAI,CAAC,CAAC;AAC3D,YAAA,OAAO,SAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC9C,YAAY,CAAC,CAAC,CAAC,EACf,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAC1C,GAAG,CAAC,MAAK;AACL,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,iBAAiB,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChF,OAAO,MAAM,GAAG,EAAE;AACd,sBAAE,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;sBAC/B,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,IAAI,CAAC;aACjE,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAC7C,CAAC;AACN,SAAC,CAAC,CACL,CAAC,SAAS,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KACxC;AAEO,IAAA,sBAAsB,CAAC,OAAoB,EAAA;QAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC;SACf;QAED,IAAI,cAAc,GAAG,OAAO,CAAC;QAE7B,OAAO,cAAc,EAAE;AACnB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,YAAY,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC;YAEtE,IAAI,YAAY,IAAI,cAAc,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE;AAC3E,gBAAA,OAAO,cAAc,CAAC;aACzB;AAED,YAAA,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC;SACjD;AAED,QAAA,OAAO,IAAI,CAAC;KACf;wGAzKQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,4GAsBE,mBAAmB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EACnB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAChB,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CAChB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,mCAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAChB,gBAAgB,CAChB,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,4CAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAChB,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAgB,gFAChB,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAChB,gBAAgB,CAChB,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,CAChB,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,gBAAgB,8DAChB,eAAe,CAAA,EAAA,qBAAA,EAAA,CAAA,uBAAA,EAAA,uBAAA,EACf,gBAAgB,CAYhB,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,uVAjFxB,CAAC;AACR,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,QAAQ,CAAC;AACvC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,sEAqCY,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAS,WAAW,EAClC,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,2BAAS,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvC,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAS,WAAW,EACjC,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,2BAAS,WAAW,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGzC,iBAAiB,ECvFhC,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u0GAqFA,ED5BQ,MAAA,EAAA,CAAA,sqSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,qTACnB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,iFACV,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACX,UAAU,EACV,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,26BACjB,yBAAyB,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,wBAAwB,EACxB,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,6BAA6B,iEAC7B,2BAA2B,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGtB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBApCpB,SAAS;+BACI,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC;AACR,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC;AACvC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA,CAAC,EACI,IAAA,EAAA;AACF,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,iBAAiB,EAAE,SAAS;AAC5B,wBAAA,eAAe,EAAE,OAAO;AACxB,wBAAA,oBAAoB,EAAE,WAAW;qBACpC,EACoB,mBAAA,EAAA,KAAK,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,mBAAmB;wBACnB,SAAS;wBACT,gBAAgB;wBAChB,UAAU;wBACV,WAAW;wBACX,UAAU;wBACV,iBAAiB;wBACjB,yBAAyB;wBACzB,wBAAwB;wBACxB,6BAA6B;wBAC7B,2BAA2B;AAC9B,qBAAA,EAAA,QAAA,EAAA,u0GAAA,EAAA,MAAA,EAAA,CAAA,sqSAAA,CAAA,EAAA,CAAA;8BAakD,cAAc,EAAA,CAAA;sBAAhE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBACO,mBAAmB,EAAA,CAAA;sBAA1E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBACJ,aAAa,EAAA,CAAA;sBAA9D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBACO,kBAAkB,EAAA,CAAA;sBAAxE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBAGP,eAAe,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;gBAGnC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACmC,IAAI,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAC,SAAS,EAAE,mBAAmB,EAAC,CAAA;gBACD,QAAQ,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,OAAO,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,UAAU,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,OAAO,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,SAAS,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,UAAU,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,eAAe,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,sBAAsB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,SAAS,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,WAAW,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACE,YAAY,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBACC,gBAAgB,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAC,SAAS,EAAE,eAAe,EAAC,CAAA;gBACG,qBAAqB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBAC3B,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC,CAAA;gBAWhC,KAAK,EAAA,CAAA;sBADR,KAAK;gBAKI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;SEvIK,mBAAmB,GAAA;AAC/B,IAAA,OAAO,wBAAwB,CAAC;AAC5B,QAAA,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,4BAA4B,EAAC;AAC7E,KAAA,CAAC,CAAC;AACP;;MCoBa,YAAY,CAAA;wGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAjBjB,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;AACnB,YAAA,kBAAkB,aAGlB,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAMb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJV,SAAA,EAAA;AACP,YAAA,mBAAmB,EAAE;AACxB,SAAA,EAAA,OAAA,EAAA,CAfG,QAAQ,CAAA,EAAA,CAAA,CAAA;;4FAiBH,YAAY,EAAA,UAAA,EAAA,CAAA;kBAnBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,QAAQ;wBACR,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,kBAAkB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,QAAQ;wBACR,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,kBAAkB;AACrB,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA,mBAAmB,EAAE;AACxB,qBAAA;AACJ,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bravobit/bb-foundation",
|
|
3
|
-
"version": "0.45.
|
|
3
|
+
"version": "0.45.3",
|
|
4
4
|
"description": "The Angular core foundation of the Bravobit team.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Stan van Heumen",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"esm": "./esm2022/collections/bravobit-bb-foundation-collections.mjs",
|
|
44
44
|
"default": "./fesm2022/bravobit-bb-foundation-collections.mjs"
|
|
45
45
|
},
|
|
46
|
-
"./
|
|
47
|
-
"types": "./
|
|
48
|
-
"esm2022": "./esm2022/
|
|
49
|
-
"esm": "./esm2022/
|
|
50
|
-
"default": "./fesm2022/bravobit-bb-foundation-
|
|
46
|
+
"./combobox": {
|
|
47
|
+
"types": "./combobox/index.d.ts",
|
|
48
|
+
"esm2022": "./esm2022/combobox/bravobit-bb-foundation-combobox.mjs",
|
|
49
|
+
"esm": "./esm2022/combobox/bravobit-bb-foundation-combobox.mjs",
|
|
50
|
+
"default": "./fesm2022/bravobit-bb-foundation-combobox.mjs"
|
|
51
51
|
},
|
|
52
52
|
"./dialog": {
|
|
53
53
|
"types": "./dialog/index.d.ts",
|
|
@@ -55,18 +55,18 @@
|
|
|
55
55
|
"esm": "./esm2022/dialog/bravobit-bb-foundation-dialog.mjs",
|
|
56
56
|
"default": "./fesm2022/bravobit-bb-foundation-dialog.mjs"
|
|
57
57
|
},
|
|
58
|
+
"./dashboard": {
|
|
59
|
+
"types": "./dashboard/index.d.ts",
|
|
60
|
+
"esm2022": "./esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs",
|
|
61
|
+
"esm": "./esm2022/dashboard/bravobit-bb-foundation-dashboard.mjs",
|
|
62
|
+
"default": "./fesm2022/bravobit-bb-foundation-dashboard.mjs"
|
|
63
|
+
},
|
|
58
64
|
"./elements": {
|
|
59
65
|
"types": "./elements/index.d.ts",
|
|
60
66
|
"esm2022": "./esm2022/elements/bravobit-bb-foundation-elements.mjs",
|
|
61
67
|
"esm": "./esm2022/elements/bravobit-bb-foundation-elements.mjs",
|
|
62
68
|
"default": "./fesm2022/bravobit-bb-foundation-elements.mjs"
|
|
63
69
|
},
|
|
64
|
-
"./combobox": {
|
|
65
|
-
"types": "./combobox/index.d.ts",
|
|
66
|
-
"esm2022": "./esm2022/combobox/bravobit-bb-foundation-combobox.mjs",
|
|
67
|
-
"esm": "./esm2022/combobox/bravobit-bb-foundation-combobox.mjs",
|
|
68
|
-
"default": "./fesm2022/bravobit-bb-foundation-combobox.mjs"
|
|
69
|
-
},
|
|
70
70
|
"./http": {
|
|
71
71
|
"types": "./http/index.d.ts",
|
|
72
72
|
"esm2022": "./esm2022/http/bravobit-bb-foundation-http.mjs",
|
|
@@ -4,6 +4,8 @@ import { ControlValueAccessor, FormControl } from '@angular/forms';
|
|
|
4
4
|
import { Observable, Subject } from 'rxjs';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class BbSelect<T> implements ControlValueAccessor, OnInit, OnDestroy {
|
|
7
|
+
private readonly _elementRef;
|
|
8
|
+
private readonly _window?;
|
|
7
9
|
readonly labelId: string;
|
|
8
10
|
readonly control: FormControl<any>;
|
|
9
11
|
optionTemplate: TemplateRef<any>;
|
|
@@ -30,6 +32,7 @@ export declare class BbSelect<T> implements ControlValueAccessor, OnInit, OnDest
|
|
|
30
32
|
selectOnTab: boolean;
|
|
31
33
|
hideSelected: boolean;
|
|
32
34
|
maxSelectedItems: number | null;
|
|
35
|
+
disablePanelScrolling: boolean;
|
|
33
36
|
bindLabel: string | null;
|
|
34
37
|
bindValue: string | null;
|
|
35
38
|
placeholder: string | null;
|
|
@@ -63,8 +66,10 @@ export declare class BbSelect<T> implements ControlValueAccessor, OnInit, OnDest
|
|
|
63
66
|
data?: any;
|
|
64
67
|
} | null): void;
|
|
65
68
|
private handleValueChanges;
|
|
69
|
+
private handleScrolling;
|
|
70
|
+
private getScrollableContainer;
|
|
66
71
|
static ɵfac: i0.ɵɵFactoryDeclaration<BbSelect<any>, never>;
|
|
67
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BbSelect<any>, "bb-select", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "data": { "alias": "data"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "grouped": { "alias": "grouped"; "required": false; }; "hideErrors": { "alias": "hideErrors"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "selectableGroup": { "alias": "selectableGroup"; "required": false; }; "selectableGroupAsModel": { "alias": "selectableGroupAsModel"; "required": false; }; "hideArrow": { "alias": "hideArrow"; "required": false; }; "selectOnTab": { "alias": "selectOnTab"; "required": false; }; "hideSelected": { "alias": "hideSelected"; "required": false; }; "maxSelectedItems": { "alias": "maxSelectedItems"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "typeahead": { "alias": "typeahead"; "required": false; }; "trackByFn": { "alias": "trackByFn"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "clearSearchOnAdd": { "alias": "clearSearchOnAdd"; "required": false; }; "addTag": { "alias": "addTag"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "onBlur": "onBlur"; "onChange": "onChange"; }, ["optionTemplate", "optionGroupTemplate", "labelTemplate", "multiLabelTemplate"], never, true, never>;
|
|
72
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BbSelect<any>, "bb-select", never, { "label": { "alias": "label"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "data": { "alias": "data"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "grouped": { "alias": "grouped"; "required": false; }; "hideErrors": { "alias": "hideErrors"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "selectableGroup": { "alias": "selectableGroup"; "required": false; }; "selectableGroupAsModel": { "alias": "selectableGroupAsModel"; "required": false; }; "hideArrow": { "alias": "hideArrow"; "required": false; }; "selectOnTab": { "alias": "selectOnTab"; "required": false; }; "hideSelected": { "alias": "hideSelected"; "required": false; }; "maxSelectedItems": { "alias": "maxSelectedItems"; "required": false; }; "disablePanelScrolling": { "alias": "disablePanelScrolling"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "typeahead": { "alias": "typeahead"; "required": false; }; "trackByFn": { "alias": "trackByFn"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "clearSearchOnAdd": { "alias": "clearSearchOnAdd"; "required": false; }; "addTag": { "alias": "addTag"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "onBlur": "onBlur"; "onChange": "onChange"; }, ["optionTemplate", "optionGroupTemplate", "labelTemplate", "multiLabelTemplate"], never, true, never>;
|
|
68
73
|
static ngAcceptInputType_data: unknown;
|
|
69
74
|
static ngAcceptInputType_required: unknown;
|
|
70
75
|
static ngAcceptInputType_readonly: unknown;
|
|
@@ -82,5 +87,6 @@ export declare class BbSelect<T> implements ControlValueAccessor, OnInit, OnDest
|
|
|
82
87
|
static ngAcceptInputType_selectOnTab: unknown;
|
|
83
88
|
static ngAcceptInputType_hideSelected: unknown;
|
|
84
89
|
static ngAcceptInputType_maxSelectedItems: unknown;
|
|
90
|
+
static ngAcceptInputType_disablePanelScrolling: unknown;
|
|
85
91
|
static ngAcceptInputType_disabled: unknown;
|
|
86
92
|
}
|
package/styles/theme.scss
CHANGED
|
@@ -97,6 +97,11 @@
|
|
|
97
97
|
|
|
98
98
|
// Collections table label.
|
|
99
99
|
--bb-collections-table-label-color: var(--bb-primary-color-550);
|
|
100
|
+
--bb-collections-table-loader-color: var(--bb-primary-color-500);
|
|
101
|
+
|
|
102
|
+
// Spinner.
|
|
103
|
+
--bb-spinner-color: var(--bb-primary-color-500);
|
|
104
|
+
--bb-spinner-background-color: #f2f4f6;
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
|