ngx-bsl 0.0.11 → 0.0.16
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/ngx-bsl.mjs +332 -387
- package/fesm2022/ngx-bsl.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/components/{button.scss → _button.scss} +2 -2
- package/styles/components/{input.scss → _input.scss} +0 -29
- package/styles/components/_list-box.scss +10 -0
- package/styles/index.scss +1 -0
- package/types/ngx-bsl.d.ts +89 -91
package/fesm2022/ngx-bsl.mjs
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ViewEncapsulation, ChangeDetectionStrategy, Component, input,
|
|
2
|
+
import { ViewEncapsulation, ChangeDetectionStrategy, Component, input, contentChildren, ElementRef, signal, Directive, inject, DestroyRef, output, model, computed, effect, forwardRef, HostListener, afterNextRender, viewChild, Renderer2, DOCUMENT } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
5
|
import { CdkOverlayOrigin, CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
5
7
|
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
6
8
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
7
9
|
|
|
8
|
-
class IdGenerator {
|
|
9
|
-
id = 0;
|
|
10
|
-
nextId() {
|
|
11
|
-
return this.id++;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
10
|
/*
|
|
16
11
|
eslint-disable max-len,
|
|
17
12
|
@typescript-eslint/no-extraneous-class
|
|
@@ -36,16 +31,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
36
31
|
class ListBoxOptionComponent {
|
|
37
32
|
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
38
33
|
id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
39
|
-
optionIdGenerator = inject(IdGenerator);
|
|
40
|
-
listBoxOptionId = computed(() => {
|
|
41
|
-
const id = this.optionIdGenerator.nextId();
|
|
42
|
-
return `${this.id()}-${id}`;
|
|
43
|
-
}, ...(ngDevMode ? [{ debugName: "listBoxOptionId" }] : []));
|
|
44
34
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: ListBoxOptionComponent, isStandalone: true, selector: "ngx-bsl-list-box-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "option" }, properties: { "attr.id": "
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: ListBoxOptionComponent, isStandalone: true, selector: "ngx-bsl-list-box-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "option" }, properties: { "attr.id": "id()" } }, ngImport: i0, template: `
|
|
46
36
|
<ng-content></ng-content>
|
|
47
37
|
<ngx-bsl-icon-check></ngx-bsl-icon-check>
|
|
48
|
-
`, isInline: true, styles: ["ngx-bsl-list-box-option{position:relative;padding:.375rem 1.25rem .375rem
|
|
38
|
+
`, isInline: true, styles: ["ngx-bsl-list-box-option{position:relative;padding:.375rem 1.25rem .375rem 1rem;border-radius:4px;font:var(--bsl-font-sm);color:var(--bsl-textColor);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ngx-bsl-list-box-option:hover,ngx-bsl-list-box-option.visual-focus{background-color:var(--bsl-list-box-backgroundColor-hover)}ngx-bsl-list-box-option[aria-selected=true] ngx-bsl-icon-check{display:inline;visibility:visible}ngx-bsl-list-box-option ngx-bsl-icon-check{display:none;visibility:hidden;position:absolute;right:0;color:var(--bsl-textColor)}\n"], dependencies: [{ kind: "component", type: IconCheckComponent, selector: "ngx-bsl-icon-check" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
49
39
|
}
|
|
50
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxOptionComponent, decorators: [{
|
|
51
41
|
type: Component,
|
|
@@ -56,33 +46,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
56
46
|
<ngx-bsl-icon-check></ngx-bsl-icon-check>
|
|
57
47
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
58
48
|
'role': 'option',
|
|
59
|
-
'[attr.id]': '
|
|
60
|
-
}, styles: ["ngx-bsl-list-box-option{position:relative;padding:.375rem 1.25rem .375rem
|
|
49
|
+
'[attr.id]': 'id()',
|
|
50
|
+
}, styles: ["ngx-bsl-list-box-option{position:relative;padding:.375rem 1.25rem .375rem 1rem;border-radius:4px;font:var(--bsl-font-sm);color:var(--bsl-textColor);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ngx-bsl-list-box-option:hover,ngx-bsl-list-box-option.visual-focus{background-color:var(--bsl-list-box-backgroundColor-hover)}ngx-bsl-list-box-option[aria-selected=true] ngx-bsl-icon-check{display:inline;visibility:visible}ngx-bsl-list-box-option ngx-bsl-icon-check{display:none;visibility:hidden;position:absolute;right:0;color:var(--bsl-textColor)}\n"] }]
|
|
61
51
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }] } });
|
|
62
52
|
|
|
63
|
-
class
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
initialFocusedOptionIndex = input(null, ...(ngDevMode ? [{ debugName: "initialFocusedOptionIndex" }] : []));
|
|
71
|
-
selectOption = output();
|
|
72
|
-
listBoxOptions = contentChildren((ListBoxOptionComponent), ...(ngDevMode ? [{ debugName: "listBoxOptions" }] : []));
|
|
53
|
+
class ListBoxDirective {
|
|
54
|
+
listBoxId = input(...(ngDevMode ? [undefined, { debugName: "listBoxId" }] : []));
|
|
55
|
+
listBoxAriaLabel = input(...(ngDevMode ? [undefined, { debugName: "listBoxAriaLabel" }] : []));
|
|
56
|
+
listBoxAriaLabelledby = input(...(ngDevMode ? [undefined, { debugName: "listBoxAriaLabelledby" }] : []));
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
optionValueEquality = input((value, optionValue) => value === optionValue, ...(ngDevMode ? [{ debugName: "optionValueEquality" }] : []));
|
|
59
|
+
listBoxOptions = contentChildren((ListBoxOptionComponent), ...(ngDevMode ? [{ debugName: "listBoxOptions", descendants: true }] : [{ descendants: true }]));
|
|
73
60
|
listBoxOptionRefs = contentChildren(ListBoxOptionComponent, ...(ngDevMode ? [{ debugName: "listBoxOptionRefs", descendants: true, read: (ElementRef) }] : [{ descendants: true, read: (ElementRef) }]));
|
|
74
61
|
ariaActiveDescendant = signal(null, ...(ngDevMode ? [{ debugName: "ariaActiveDescendant" }] : []));
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
selectOption = new Subject();
|
|
63
|
+
hasAriaSelected = true;
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
setVisualMarkups(value) {
|
|
66
|
+
this.clearVisualFocus();
|
|
67
|
+
this.removeSelectedAttribute();
|
|
68
|
+
const optionIndex = this.listBoxOptions()
|
|
69
|
+
.findIndex(option => this.optionValueEquality()(value, option.value()));
|
|
70
|
+
if (optionIndex !== -1) {
|
|
71
|
+
this.setSelectedAttribute(optionIndex);
|
|
72
|
+
this.setVisualFocus(optionIndex);
|
|
73
|
+
return true;
|
|
82
74
|
}
|
|
83
|
-
|
|
84
|
-
ngAfterContentInit() {
|
|
85
|
-
this.initSelectedOption();
|
|
75
|
+
return false;
|
|
86
76
|
}
|
|
87
77
|
onClick(event) {
|
|
88
78
|
const element = event.target;
|
|
@@ -93,9 +83,7 @@ class ListBoxComponent {
|
|
|
93
83
|
const optionIndex = this.listBoxOptionRefs().findIndex(o => o.nativeElement.id === element.id);
|
|
94
84
|
this.setSelectedAttribute(optionIndex);
|
|
95
85
|
this.setVisualFocus(optionIndex);
|
|
96
|
-
this.
|
|
97
|
-
this.onChange(this.value);
|
|
98
|
-
this.selectOption.emit(this.value);
|
|
86
|
+
this.selectOption.next(this.listBoxOptions()[optionIndex].value());
|
|
99
87
|
}
|
|
100
88
|
}
|
|
101
89
|
onKeydown(event) {
|
|
@@ -110,35 +98,19 @@ class ListBoxComponent {
|
|
|
110
98
|
return;
|
|
111
99
|
}
|
|
112
100
|
}
|
|
113
|
-
initSelectedOption() {
|
|
114
|
-
const optionIndex = this.listBoxOptions().findIndex(o => this.equalsToCurrentValue(o.value()));
|
|
115
|
-
if (optionIndex !== -1) {
|
|
116
|
-
this.setSelectedAttribute(optionIndex);
|
|
117
|
-
this.setVisualFocus(optionIndex);
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
if (this.initialFocusedOptionIndex() !== null) {
|
|
121
|
-
this.setVisualFocus(this.initialFocusedOptionIndex());
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
equalsToCurrentValue(value) {
|
|
125
|
-
const comparisonField = this.comparisonField();
|
|
126
|
-
return comparisonField && this.value && typeof this.value === 'object' && comparisonField in this.value
|
|
127
|
-
? this.value[comparisonField] === value[comparisonField]
|
|
128
|
-
: this.value === value;
|
|
129
|
-
}
|
|
130
101
|
handleSelectionKeys() {
|
|
131
|
-
const optionIndex = this.
|
|
102
|
+
const optionIndex = this.getVisuallyFocusedOptionRefIndex();
|
|
132
103
|
if (optionIndex !== -1) {
|
|
133
104
|
this.removeSelectedAttribute();
|
|
134
105
|
this.setSelectedAttribute(optionIndex);
|
|
135
|
-
this.
|
|
136
|
-
|
|
137
|
-
|
|
106
|
+
this.selectOption.next(this.listBoxOptions()[optionIndex].value());
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.selectOption.next(null);
|
|
138
110
|
}
|
|
139
111
|
}
|
|
140
112
|
handleArrowKeys(event) {
|
|
141
|
-
const optionIndex = this.
|
|
113
|
+
const optionIndex = this.getVisuallyFocusedOptionRefIndex();
|
|
142
114
|
const firstOption = 0;
|
|
143
115
|
const lastOption = this.listBoxOptionRefs().length - 1;
|
|
144
116
|
if (optionIndex === -1) {
|
|
@@ -168,7 +140,7 @@ class ListBoxComponent {
|
|
|
168
140
|
}
|
|
169
141
|
}
|
|
170
142
|
}
|
|
171
|
-
|
|
143
|
+
getVisuallyFocusedOptionRefIndex() {
|
|
172
144
|
return this.listBoxOptionRefs().findIndex(r => r.nativeElement.classList.contains('visual-focus'));
|
|
173
145
|
}
|
|
174
146
|
setVisualFocus(optionIndex) {
|
|
@@ -181,150 +153,82 @@ class ListBoxComponent {
|
|
|
181
153
|
this.ariaActiveDescendant.set(null);
|
|
182
154
|
}
|
|
183
155
|
clearVisualFocus() {
|
|
184
|
-
const optionIndex = this.
|
|
156
|
+
const optionIndex = this.getVisuallyFocusedOptionRefIndex();
|
|
185
157
|
if (optionIndex !== -1) {
|
|
186
158
|
this.removeVisualFocus(optionIndex);
|
|
187
159
|
}
|
|
188
160
|
}
|
|
189
161
|
setSelectedAttribute(optionIndex) {
|
|
162
|
+
if (!this.hasAriaSelected)
|
|
163
|
+
return;
|
|
190
164
|
this.listBoxOptionRefs()[optionIndex].nativeElement.setAttribute('aria-selected', 'true');
|
|
191
165
|
}
|
|
192
166
|
removeSelectedAttribute() {
|
|
167
|
+
if (!this.hasAriaSelected)
|
|
168
|
+
return;
|
|
193
169
|
this.listBoxOptionRefs()
|
|
194
|
-
.find(o => o.nativeElement.hasAttribute('aria-selected'))
|
|
195
|
-
?.nativeElement.removeAttribute('aria-selected');
|
|
170
|
+
.find(o => o.nativeElement.hasAttribute('aria-selected'))?.nativeElement.removeAttribute('aria-selected');
|
|
196
171
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
registerOnTouched(onTouch) {
|
|
201
|
-
this.onTouch = onTouch;
|
|
202
|
-
}
|
|
203
|
-
writeValue(value) {
|
|
204
|
-
this.value = value;
|
|
205
|
-
}
|
|
206
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.0", type: ListBoxComponent, isStandalone: true, selector: "ngx-bsl-list-box", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, exposeAriaActiveDescendant: { classPropertyName: "exposeAriaActiveDescendant", publicName: "exposeAriaActiveDescendant", isSignal: true, isRequired: false, transformFunction: null }, comparisonField: { classPropertyName: "comparisonField", publicName: "comparisonField", isSignal: true, isRequired: false, transformFunction: null }, initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null }, initialFocusedOptionIndex: { classPropertyName: "initialFocusedOptionIndex", publicName: "initialFocusedOptionIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectOption: "selectOption" }, host: { attributes: { "role": "listbox" }, listeners: { "click": "onClick($event)", "keydown": "onKeydown($event)" }, properties: { "attr.id": "id()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.aria-activedescendant": "exposeAriaActiveDescendant() ? null : ariaActiveDescendant()" } }, providers: [
|
|
208
|
-
IdGenerator,
|
|
209
|
-
{
|
|
210
|
-
provide: NG_VALUE_ACCESSOR,
|
|
211
|
-
useExisting: forwardRef(() => ListBoxComponent),
|
|
212
|
-
multi: true,
|
|
213
|
-
},
|
|
214
|
-
], queries: [{ propertyName: "listBoxOptions", predicate: (ListBoxOptionComponent), isSignal: true }, { propertyName: "listBoxOptionRefs", predicate: ListBoxOptionComponent, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["ngx-bsl-list-box{width:100%;display:flex;flex-direction:column;padding:4px;border:1px solid var(--bsl-list-box-borderColor);border-radius:6px;background-color:var(--bsl-list-box-backgroundColor);overflow:hidden}ngx-bsl-list-box .list-box-no-options-message{padding:4px;display:flex;justify-content:center;font:var(--bsl-font-sm);color:var(--bsl-textColor)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
172
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
173
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.0.0", type: ListBoxDirective, isStandalone: true, selector: "[ngxBslListBox]", inputs: { listBoxId: { classPropertyName: "listBoxId", publicName: "listBoxId", isSignal: true, isRequired: false, transformFunction: null }, listBoxAriaLabel: { classPropertyName: "listBoxAriaLabel", publicName: "listBoxAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, listBoxAriaLabelledby: { classPropertyName: "listBoxAriaLabelledby", publicName: "listBoxAriaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, optionValueEquality: { classPropertyName: "optionValueEquality", publicName: "optionValueEquality", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "listBoxOptions", predicate: (ListBoxOptionComponent), descendants: true, isSignal: true }, { propertyName: "listBoxOptionRefs", predicate: ListBoxOptionComponent, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 });
|
|
215
174
|
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type:
|
|
217
|
-
type:
|
|
218
|
-
args: [{ selector: '
|
|
219
|
-
|
|
220
|
-
{
|
|
221
|
-
provide: NG_VALUE_ACCESSOR,
|
|
222
|
-
useExisting: forwardRef(() => ListBoxComponent),
|
|
223
|
-
multi: true,
|
|
224
|
-
},
|
|
225
|
-
], host: {
|
|
226
|
-
'role': 'listbox',
|
|
227
|
-
'[attr.id]': 'id()',
|
|
228
|
-
'[attr.aria-label]': 'ariaLabel()',
|
|
229
|
-
'[attr.aria-labelledby]': 'ariaLabelledby()',
|
|
230
|
-
'[attr.aria-activedescendant]': 'exposeAriaActiveDescendant() ? null : ariaActiveDescendant()',
|
|
231
|
-
}, styles: ["ngx-bsl-list-box{width:100%;display:flex;flex-direction:column;padding:4px;border:1px solid var(--bsl-list-box-borderColor);border-radius:6px;background-color:var(--bsl-list-box-backgroundColor);overflow:hidden}ngx-bsl-list-box .list-box-no-options-message{padding:4px;display:flex;justify-content:center;font:var(--bsl-font-sm);color:var(--bsl-textColor)}\n"] }]
|
|
232
|
-
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], exposeAriaActiveDescendant: [{ type: i0.Input, args: [{ isSignal: true, alias: "exposeAriaActiveDescendant", required: false }] }], comparisonField: [{ type: i0.Input, args: [{ isSignal: true, alias: "comparisonField", required: false }] }], initialValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialValue", required: false }] }], initialFocusedOptionIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialFocusedOptionIndex", required: false }] }], selectOption: [{ type: i0.Output, args: ["selectOption"] }], listBoxOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ListBoxOptionComponent), { isSignal: true }] }], listBoxOptionRefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ListBoxOptionComponent), { ...{ descendants: true, read: (ElementRef) }, isSignal: true }] }], onClick: [{
|
|
233
|
-
type: HostListener,
|
|
234
|
-
args: ['click', ['$event']]
|
|
235
|
-
}], onKeydown: [{
|
|
236
|
-
type: HostListener,
|
|
237
|
-
args: ['keydown', ['$event']]
|
|
238
|
-
}] } });
|
|
239
|
-
|
|
240
|
-
class ListBoxGroupComponent {
|
|
241
|
-
title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
242
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
243
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: ListBoxGroupComponent, isStandalone: true, selector: "ngx-bsl-list-box-group", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
244
|
-
@if (title()) {
|
|
245
|
-
<div class="group-title">{{ title() }}</div>
|
|
246
|
-
}
|
|
247
|
-
<ng-content></ng-content>
|
|
248
|
-
`, isInline: true, styles: [".group-title{padding:.375rem .5rem;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted);font-weight:500}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
249
|
-
}
|
|
250
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxGroupComponent, decorators: [{
|
|
251
|
-
type: Component,
|
|
252
|
-
args: [{ selector: 'ngx-bsl-list-box-group', imports: [], template: `
|
|
253
|
-
@if (title()) {
|
|
254
|
-
<div class="group-title">{{ title() }}</div>
|
|
255
|
-
}
|
|
256
|
-
<ng-content></ng-content>
|
|
257
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".group-title{padding:.375rem .5rem;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted);font-weight:500}\n"] }]
|
|
258
|
-
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }] } });
|
|
259
|
-
|
|
260
|
-
class ListBoxOptionValueConverterPipe {
|
|
261
|
-
transform(value, bindLabel) {
|
|
262
|
-
if (!value) {
|
|
263
|
-
return '';
|
|
264
|
-
}
|
|
265
|
-
if (typeof value === 'string') {
|
|
266
|
-
return value;
|
|
267
|
-
}
|
|
268
|
-
if (typeof value === 'number') {
|
|
269
|
-
return value.toString();
|
|
270
|
-
}
|
|
271
|
-
if (typeof value === 'object' && bindLabel) {
|
|
272
|
-
if (bindLabel in value) {
|
|
273
|
-
return value[bindLabel];
|
|
274
|
-
}
|
|
275
|
-
throw new Error('Provided label is incorrect');
|
|
276
|
-
}
|
|
277
|
-
throw new Error('Cannot parse the value');
|
|
278
|
-
}
|
|
279
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxOptionValueConverterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
280
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: ListBoxOptionValueConverterPipe, isStandalone: true, name: "listBoxOptionValueConverter" });
|
|
281
|
-
}
|
|
282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxOptionValueConverterPipe, decorators: [{
|
|
283
|
-
type: Pipe,
|
|
284
|
-
args: [{ name: 'listBoxOptionValueConverter' }]
|
|
285
|
-
}] });
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxDirective, decorators: [{
|
|
176
|
+
type: Directive,
|
|
177
|
+
args: [{ selector: '[ngxBslListBox]' }]
|
|
178
|
+
}], propDecorators: { listBoxId: [{ type: i0.Input, args: [{ isSignal: true, alias: "listBoxId", required: false }] }], listBoxAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "listBoxAriaLabel", required: false }] }], listBoxAriaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "listBoxAriaLabelledby", required: false }] }], optionValueEquality: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionValueEquality", required: false }] }], listBoxOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ListBoxOptionComponent), { ...{ descendants: true }, isSignal: true }] }], listBoxOptionRefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ListBoxOptionComponent), { ...{ descendants: true, read: (ElementRef) }, isSignal: true }] }] } });
|
|
286
179
|
|
|
287
180
|
class ComboboxComponent {
|
|
181
|
+
listBox = inject((ListBoxDirective));
|
|
182
|
+
destroyRef = inject(DestroyRef);
|
|
288
183
|
id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
289
|
-
options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
290
|
-
bindLabel = input(...(ngDevMode ? [undefined, { debugName: "bindLabel" }] : []));
|
|
291
|
-
groupBy = input(...(ngDevMode ? [undefined, { debugName: "groupBy" }] : []));
|
|
292
|
-
comparisonField = input(...(ngDevMode ? [undefined, { debugName: "comparisonField" }] : []));
|
|
293
184
|
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
294
185
|
ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : []));
|
|
295
186
|
ariaLabelledBy = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : []));
|
|
187
|
+
optionValueParse = input((option) => option, ...(ngDevMode ? [{ debugName: "optionValueParse" }] : []));
|
|
296
188
|
confirmSelection = output();
|
|
297
|
-
listBox = viewChild(ListBoxComponent, ...(ngDevMode ? [{ debugName: "listBox" }] : []));
|
|
298
189
|
onChange = (_value) => { };
|
|
299
190
|
onTouch = () => { };
|
|
300
|
-
value =
|
|
191
|
+
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
301
192
|
open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
302
|
-
ariaActiveDescendant = computed(() => this.listBox
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const groupByKey = this.groupBy();
|
|
306
|
-
if (groupByKey) {
|
|
307
|
-
return this.groupDataBy(groupByKey, this.options());
|
|
308
|
-
}
|
|
309
|
-
return [];
|
|
310
|
-
}, ...(ngDevMode ? [{ debugName: "groupedOptions" }] : []));
|
|
311
|
-
ignoreOptionsUpdate = false;
|
|
193
|
+
ariaActiveDescendant = computed(() => this.listBox.ariaActiveDescendant() ?? null, ...(ngDevMode ? [{ debugName: "ariaActiveDescendant" }] : []));
|
|
194
|
+
optionSelecting = false;
|
|
195
|
+
optionChangedBy = null;
|
|
312
196
|
constructor() {
|
|
313
197
|
effect(() => {
|
|
314
|
-
|
|
315
|
-
|
|
198
|
+
const hasOptions = this.listBox.listBoxOptions().length;
|
|
199
|
+
if (this.optionChangedBy === 'input' && hasOptions) {
|
|
200
|
+
this.showListBox();
|
|
201
|
+
// Must be set after option components initialization.
|
|
202
|
+
setTimeout(() => this.listBox.setVisualMarkups(this.value()));
|
|
203
|
+
}
|
|
204
|
+
else if (this.optionChangedBy === 'selection' || !hasOptions) {
|
|
316
205
|
this.hideListBox();
|
|
317
206
|
}
|
|
318
|
-
|
|
319
|
-
|
|
207
|
+
this.optionChangedBy = null;
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
ngOnInit() {
|
|
211
|
+
this.listBox.hasAriaSelected = false;
|
|
212
|
+
this.subscribeSelectOption();
|
|
213
|
+
}
|
|
214
|
+
subscribeSelectOption() {
|
|
215
|
+
this.listBox.selectOption.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(option => {
|
|
216
|
+
if (option) {
|
|
217
|
+
this.optionChangedBy = 'selection';
|
|
218
|
+
this.value.set(this.optionValueParse()(option));
|
|
219
|
+
this.onChange(this.value());
|
|
320
220
|
}
|
|
221
|
+
this.hideListBox();
|
|
321
222
|
});
|
|
322
223
|
}
|
|
323
224
|
showListBox() {
|
|
225
|
+
if (this.open())
|
|
226
|
+
return;
|
|
324
227
|
this.open.set(true);
|
|
325
228
|
}
|
|
326
229
|
hideListBox() {
|
|
327
|
-
this.
|
|
230
|
+
if (!this.open())
|
|
231
|
+
return;
|
|
328
232
|
this.open.set(false);
|
|
329
233
|
}
|
|
330
234
|
onClick() {
|
|
@@ -332,73 +236,50 @@ class ComboboxComponent {
|
|
|
332
236
|
this.hideListBox();
|
|
333
237
|
}
|
|
334
238
|
else {
|
|
335
|
-
if (this.
|
|
239
|
+
if (this.listBox.listBoxOptions().length) {
|
|
336
240
|
this.showListBox();
|
|
241
|
+
this.listBox.setVisualMarkups(this.value());
|
|
337
242
|
}
|
|
338
243
|
}
|
|
339
244
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
valueToSet = value;
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
const comparisonField = this.comparisonField();
|
|
347
|
-
if (comparisonField) {
|
|
348
|
-
if (typeof value[comparisonField] === 'string') {
|
|
349
|
-
valueToSet = value[comparisonField];
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
throw new Error('Type of property pointed by comparisonField must be a string.');
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
throw new Error('comparisonField is not provided.');
|
|
357
|
-
}
|
|
245
|
+
onBlur() {
|
|
246
|
+
if (!this.optionSelecting) {
|
|
247
|
+
this.hideListBox();
|
|
358
248
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
this.
|
|
249
|
+
}
|
|
250
|
+
onListBoxPointerDown(event) {
|
|
251
|
+
event.preventDefault();
|
|
252
|
+
this.optionSelecting = true;
|
|
253
|
+
}
|
|
254
|
+
onListBoxClick(event) {
|
|
255
|
+
this.listBox.onClick(event);
|
|
256
|
+
this.optionSelecting = false;
|
|
363
257
|
}
|
|
364
258
|
onInputChange(event) {
|
|
365
259
|
const value = event.target.value;
|
|
366
260
|
this.value.set(value);
|
|
261
|
+
this.optionChangedBy = 'input';
|
|
262
|
+
if (this.listBox.listBoxOptions().length) {
|
|
263
|
+
this.showListBox();
|
|
264
|
+
this.listBox.setVisualMarkups(this.value());
|
|
265
|
+
}
|
|
367
266
|
this.onChange(this.value());
|
|
368
267
|
}
|
|
369
268
|
onKeydown(event) {
|
|
370
269
|
event.preventDefault();
|
|
371
|
-
if (
|
|
372
|
-
|
|
373
|
-
if (!this.options().length)
|
|
374
|
-
return;
|
|
375
|
-
this.initialFocusedOptionIndex.set(this.options().length - 1);
|
|
376
|
-
this.showListBox();
|
|
377
|
-
}
|
|
378
|
-
else if (event.code === 'ArrowDown') {
|
|
379
|
-
if (!this.options().length)
|
|
380
|
-
return;
|
|
381
|
-
this.initialFocusedOptionIndex.set(0);
|
|
382
|
-
this.showListBox();
|
|
383
|
-
}
|
|
384
|
-
else if (event.code === 'Enter') {
|
|
385
|
-
this.confirmSelection.emit();
|
|
386
|
-
}
|
|
270
|
+
if (this.open()) {
|
|
271
|
+
this.listBox.onKeydown(event);
|
|
387
272
|
}
|
|
388
|
-
else {
|
|
389
|
-
this.
|
|
273
|
+
else if (event.code === 'Enter') {
|
|
274
|
+
this.confirmSelection.emit();
|
|
390
275
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
map.set(key, []);
|
|
276
|
+
else {
|
|
277
|
+
this.showListBox();
|
|
278
|
+
const markupsSet = this.listBox.setVisualMarkups(this.value());
|
|
279
|
+
if (!markupsSet) {
|
|
280
|
+
this.listBox.onKeydown(event);
|
|
397
281
|
}
|
|
398
|
-
|
|
399
|
-
return map;
|
|
400
|
-
}, new Map);
|
|
401
|
-
return Array.from(groupsMap, ([group, data]) => ({ group, data }));
|
|
282
|
+
}
|
|
402
283
|
}
|
|
403
284
|
registerOnChange(onChange) {
|
|
404
285
|
this.onChange = onChange;
|
|
@@ -410,36 +291,37 @@ class ComboboxComponent {
|
|
|
410
291
|
this.value.set(value);
|
|
411
292
|
}
|
|
412
293
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
413
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: ComboboxComponent, isStandalone: true, selector: "ngx-bsl-combobox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, optionValueParse: { classPropertyName: "optionValueParse", publicName: "optionValueParse", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirmSelection: "confirmSelection", value: "valueChange" }, providers: [
|
|
414
295
|
{
|
|
415
296
|
provide: NG_VALUE_ACCESSOR,
|
|
416
297
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
417
298
|
multi: true,
|
|
418
299
|
},
|
|
419
|
-
],
|
|
300
|
+
], hostDirectives: [{ directive: ListBoxDirective, inputs: ["listBoxId", "listBoxId", "listBoxAriaLabel", "listBoxAriaLabel", "listBoxAriaLabelledby", "listBoxAriaLabelledby", "optionValueEquality", "optionValueEquality"] }], ngImport: i0, template: "<input\n type=\"text\"\n role=\"combobox\"\n #comboboxInput\n cdkOverlayOrigin\n [value]=\"value()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n (input)=\"onInputChange($any($event))\"\n (blur)=\"onBlur()\"\n (click)=\"onClick()\"\n (keydown.enter)=\"onKeydown($any($event))\"\n (keydown.arrowUp)=\"onKeydown($any($event))\"\n (keydown.arrowDown)=\"onKeydown($any($event))\"\n (keydown.escape)=\"hideListBox()\"\n>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"comboboxInput\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayWidth]=\"comboboxInput.offsetWidth\"\n (overlayOutsideClick)=\"hideListBox()\">\n <!-- eslint-disable-next-line\n @angular-eslint/template/interactive-supports-focus,\n @angular-eslint/template/click-events-have-key-events -->\n <div\n role=\"listbox\"\n class=\"ngx-bsl-list-box\"\n [id]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"listBox.listBoxAriaLabel()\"\n [attr.aria-labelledby]=\"listBox.listBoxAriaLabelledby()\"\n [attr.aria-activedescendant]=\"listBox.ariaActiveDescendant()\"\n (pointerdown)=\"onListBoxPointerDown($event)\"\n (click)=\"onListBoxClick($event)\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
420
301
|
}
|
|
421
302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
422
303
|
type: Component,
|
|
423
304
|
args: [{ selector: 'ngx-bsl-combobox', imports: [
|
|
424
305
|
CdkOverlayOrigin,
|
|
425
306
|
CdkConnectedOverlay,
|
|
426
|
-
ListBoxComponent,
|
|
427
|
-
ListBoxOptionComponent,
|
|
428
|
-
ListBoxGroupComponent,
|
|
429
|
-
ListBoxOptionValueConverterPipe,
|
|
430
307
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
431
308
|
{
|
|
432
309
|
provide: NG_VALUE_ACCESSOR,
|
|
433
310
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
434
311
|
multi: true,
|
|
435
312
|
},
|
|
436
|
-
],
|
|
437
|
-
|
|
313
|
+
], hostDirectives: [
|
|
314
|
+
{
|
|
315
|
+
directive: ListBoxDirective,
|
|
316
|
+
inputs: ['listBoxId', 'listBoxAriaLabel', 'listBoxAriaLabelledby', 'optionValueEquality'],
|
|
317
|
+
},
|
|
318
|
+
], template: "<input\n type=\"text\"\n role=\"combobox\"\n #comboboxInput\n cdkOverlayOrigin\n [value]=\"value()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n (input)=\"onInputChange($any($event))\"\n (blur)=\"onBlur()\"\n (click)=\"onClick()\"\n (keydown.enter)=\"onKeydown($any($event))\"\n (keydown.arrowUp)=\"onKeydown($any($event))\"\n (keydown.arrowDown)=\"onKeydown($any($event))\"\n (keydown.escape)=\"hideListBox()\"\n>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"comboboxInput\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayWidth]=\"comboboxInput.offsetWidth\"\n (overlayOutsideClick)=\"hideListBox()\">\n <!-- eslint-disable-next-line\n @angular-eslint/template/interactive-supports-focus,\n @angular-eslint/template/click-events-have-key-events -->\n <div\n role=\"listbox\"\n class=\"ngx-bsl-list-box\"\n [id]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"listBox.listBoxAriaLabel()\"\n [attr.aria-labelledby]=\"listBox.listBoxAriaLabelledby()\"\n [attr.aria-activedescendant]=\"listBox.ariaActiveDescendant()\"\n (pointerdown)=\"onListBoxPointerDown($event)\"\n (click)=\"onListBoxClick($event)\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n" }]
|
|
319
|
+
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], optionValueParse: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionValueParse", required: false }] }], confirmSelection: [{ type: i0.Output, args: ["confirmSelection"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
438
320
|
|
|
439
321
|
class CheckboxComponent {
|
|
440
322
|
id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
323
|
+
disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
441
324
|
checked = signal(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
|
|
442
|
-
disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
443
325
|
onChange = (_value) => { };
|
|
444
326
|
onTouch = () => { };
|
|
445
327
|
registerOnChange(onChange) {
|
|
@@ -465,13 +347,13 @@ class CheckboxComponent {
|
|
|
465
347
|
this.onChange(this.checked());
|
|
466
348
|
}
|
|
467
349
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
468
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: CheckboxComponent, isStandalone: true, selector: "ngx-bsl-checkbox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "keydown.enter": "onKeydown($event)", "keydown.space": "onKeydown($event)", "click": "onSelect()", "keyup.enter": "onSelect()", "keyup.space": "onSelect()" } }, providers: [
|
|
350
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: CheckboxComponent, isStandalone: true, selector: "ngx-bsl-checkbox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange" }, host: { listeners: { "keydown.enter": "onKeydown($event)", "keydown.space": "onKeydown($event)", "click": "onSelect()", "keyup.enter": "onSelect()", "keyup.space": "onSelect()" } }, providers: [
|
|
469
351
|
{
|
|
470
352
|
provide: NG_VALUE_ACCESSOR,
|
|
471
353
|
multi: true,
|
|
472
354
|
useExisting: CheckboxComponent,
|
|
473
355
|
},
|
|
474
|
-
], ngImport: i0, template: "<span role=\"checkbox\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n [id]=\"id()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n class=\"bsl-checkbox\">\n @if (checked()) {\n <ngx-bsl-icon-check></ngx-bsl-icon-check>\n }\n</span>\n\n<span [id]=\"id() + '-label'\">\n <ng-content></ng-content>\n</span>\n", styles: ["ngx-bsl-checkbox{width:fit-content;display:flex;align-items:center;gap:.5rem;font:var(--bsl-font-sm);cursor:default}.bsl-checkbox{width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;background-color:var(--bsl-checkbox-backgroundColor);border:1px solid var(--bsl-checkbox-borderColor);border-radius:4px;color:var(--bsl-checkbox-textColor)}.bsl-checkbox:focus-visible{outline-offset:2px}.bsl-checkbox:hover{border-color:var(--bsl-checkbox-borderColor-hover)}.bsl-checkbox.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "component", type: IconCheckComponent, selector: "ngx-bsl-icon-check" }], encapsulation: i0.ViewEncapsulation.None });
|
|
356
|
+
], ngImport: i0, template: "<span role=\"checkbox\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n [id]=\"id()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n class=\"bsl-checkbox\">\n @if (checked()) {\n <ngx-bsl-icon-check></ngx-bsl-icon-check>\n }\n</span>\n\n<span [id]=\"id() + '-label'\">\n <ng-content></ng-content>\n</span>\n", styles: ["ngx-bsl-checkbox{width:fit-content;display:flex;align-items:center;gap:.5rem;font:var(--bsl-font-sm);cursor:default}.bsl-checkbox{width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;background-color:var(--bsl-checkbox-backgroundColor);border:1px solid var(--bsl-checkbox-borderColor);border-radius:4px;color:var(--bsl-checkbox-textColor)}.bsl-checkbox:focus-visible{outline-offset:2px}.bsl-checkbox:hover{border-color:var(--bsl-checkbox-borderColor-hover)}.bsl-checkbox.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "component", type: IconCheckComponent, selector: "ngx-bsl-icon-check" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
475
357
|
}
|
|
476
358
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
477
359
|
type: Component,
|
|
@@ -483,8 +365,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
483
365
|
multi: true,
|
|
484
366
|
useExisting: CheckboxComponent,
|
|
485
367
|
},
|
|
486
|
-
], encapsulation: ViewEncapsulation.None, template: "<span role=\"checkbox\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n [id]=\"id()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n class=\"bsl-checkbox\">\n @if (checked()) {\n <ngx-bsl-icon-check></ngx-bsl-icon-check>\n }\n</span>\n\n<span [id]=\"id() + '-label'\">\n <ng-content></ng-content>\n</span>\n", styles: ["ngx-bsl-checkbox{width:fit-content;display:flex;align-items:center;gap:.5rem;font:var(--bsl-font-sm);cursor:default}.bsl-checkbox{width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;background-color:var(--bsl-checkbox-backgroundColor);border:1px solid var(--bsl-checkbox-borderColor);border-radius:4px;color:var(--bsl-checkbox-textColor)}.bsl-checkbox:focus-visible{outline-offset:2px}.bsl-checkbox:hover{border-color:var(--bsl-checkbox-borderColor-hover)}.bsl-checkbox.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}\n"] }]
|
|
487
|
-
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], onKeydown: [{
|
|
368
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span role=\"checkbox\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"id() + '-label'\"\n [id]=\"id()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n class=\"bsl-checkbox\">\n @if (checked()) {\n <ngx-bsl-icon-check></ngx-bsl-icon-check>\n }\n</span>\n\n<span [id]=\"id() + '-label'\">\n <ng-content></ng-content>\n</span>\n", styles: ["ngx-bsl-checkbox{width:fit-content;display:flex;align-items:center;gap:.5rem;font:var(--bsl-font-sm);cursor:default}.bsl-checkbox{width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;background-color:var(--bsl-checkbox-backgroundColor);border:1px solid var(--bsl-checkbox-borderColor);border-radius:4px;color:var(--bsl-checkbox-textColor)}.bsl-checkbox:focus-visible{outline-offset:2px}.bsl-checkbox:hover{border-color:var(--bsl-checkbox-borderColor-hover)}.bsl-checkbox.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}\n"] }]
|
|
369
|
+
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], onKeydown: [{
|
|
488
370
|
type: HostListener,
|
|
489
371
|
args: ['keydown.enter', ['$event']]
|
|
490
372
|
}, {
|
|
@@ -538,6 +420,7 @@ class DrawerComponent {
|
|
|
538
420
|
}
|
|
539
421
|
close() {
|
|
540
422
|
this.isClosed.set(true);
|
|
423
|
+
this.closed.emit();
|
|
541
424
|
}
|
|
542
425
|
onTransitionEnd(event) {
|
|
543
426
|
if (this.elementRef.nativeElement === event.target) {
|
|
@@ -547,22 +430,42 @@ class DrawerComponent {
|
|
|
547
430
|
}
|
|
548
431
|
}
|
|
549
432
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
550
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: DrawerComponent, isStandalone: true, selector: "ngx-bsl-drawer", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, host: { attributes: { "role": "dialog", "aria-modal": "true" }, listeners: { "transitionend": "onTransitionEnd($event)" }, properties: { "attr.aria-label": "title()", "class.
|
|
433
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: DrawerComponent, isStandalone: true, selector: "ngx-bsl-drawer", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, host: { attributes: { "role": "dialog", "aria-modal": "true" }, listeners: { "transitionend": "onTransitionEnd($event)" }, properties: { "attr.aria-label": "title()", "class.bsl-drawer-closed": "isClosed()" } }, ngImport: i0, template: "<div cdkTrapFocus\n cdkTrapFocusAutoCapture=\"true\"\n class=\"bsl-drawer-container\">\n <header class=\"bsl-drawer-header\">\n <button class=\"bsl-button-icon\"\n (click)=\"close()\">\n <ngx-bsl-icon-x-mark></ngx-bsl-icon-x-mark>\n </button>\n @if (title()) {\n <h2 class=\"text-ellipsis\">{{ title() }}</h2>\n }\n </header>\n <div class=\"bsl-drawer-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["ngx-bsl-drawer{position:fixed;left:0;right:0;bottom:0;max-height:95vh;height:100%;transform:translateY(0);transition:transform .15s cubic-bezier(0,0,.2,1)}ngx-bsl-drawer.bsl-drawer-closed{transform:translateY(100%)}.bsl-drawer-container{height:100%;padding:24px;display:flex;flex-direction:column;background-color:var(--bsl-backgroundColor);border:1px solid var(--bsl-borderColor-emphasis);border-top-left-radius:1rem;border-top-right-radius:1rem}.bsl-drawer-header{margin-bottom:1rem;display:flex;justify-content:space-between;flex-direction:row-reverse}.bsl-drawer-content{overflow-y:auto;height:100%}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: IconXMarkComponent, selector: "ngx-bsl-icon-x-mark" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
551
434
|
}
|
|
552
435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
553
436
|
type: Component,
|
|
554
437
|
args: [{ selector: 'ngx-bsl-drawer', imports: [
|
|
555
438
|
CdkTrapFocus,
|
|
556
439
|
IconXMarkComponent,
|
|
557
|
-
], host: {
|
|
440
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
558
441
|
'role': 'dialog',
|
|
559
442
|
'aria-modal': 'true',
|
|
560
443
|
'[attr.aria-label]': 'title()',
|
|
561
|
-
'[class.
|
|
444
|
+
'[class.bsl-drawer-closed]': 'isClosed()',
|
|
562
445
|
'(transitionend)': 'onTransitionEnd($event)',
|
|
563
|
-
}, template: "<div cdkTrapFocus\n cdkTrapFocusAutoCapture=\"true\"\n class=\"
|
|
446
|
+
}, template: "<div cdkTrapFocus\n cdkTrapFocusAutoCapture=\"true\"\n class=\"bsl-drawer-container\">\n <header class=\"bsl-drawer-header\">\n <button class=\"bsl-button-icon\"\n (click)=\"close()\">\n <ngx-bsl-icon-x-mark></ngx-bsl-icon-x-mark>\n </button>\n @if (title()) {\n <h2 class=\"text-ellipsis\">{{ title() }}</h2>\n }\n </header>\n <div class=\"bsl-drawer-content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: ["ngx-bsl-drawer{position:fixed;left:0;right:0;bottom:0;max-height:95vh;height:100%;transform:translateY(0);transition:transform .15s cubic-bezier(0,0,.2,1)}ngx-bsl-drawer.bsl-drawer-closed{transform:translateY(100%)}.bsl-drawer-container{height:100%;padding:24px;display:flex;flex-direction:column;background-color:var(--bsl-backgroundColor);border:1px solid var(--bsl-borderColor-emphasis);border-top-left-radius:1rem;border-top-right-radius:1rem}.bsl-drawer-header{margin-bottom:1rem;display:flex;justify-content:space-between;flex-direction:row-reverse}.bsl-drawer-content{overflow-y:auto;height:100%}\n"] }]
|
|
564
447
|
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
565
448
|
|
|
449
|
+
class ListBoxGroupComponent {
|
|
450
|
+
title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
451
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
452
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: ListBoxGroupComponent, isStandalone: true, selector: "ngx-bsl-list-box-group", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
453
|
+
@if (title()) {
|
|
454
|
+
<div class="ngx-bsl-list-box-group-title">{{ title() }}</div>
|
|
455
|
+
}
|
|
456
|
+
<ng-content></ng-content>
|
|
457
|
+
`, isInline: true, styles: ["ngx-bsl-list-box-group{display:flex;flex-direction:column;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted)}.ngx-bsl-list-box-group-title{padding:.375rem .5rem;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted);font-weight:500}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
458
|
+
}
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxGroupComponent, decorators: [{
|
|
460
|
+
type: Component,
|
|
461
|
+
args: [{ selector: 'ngx-bsl-list-box-group', imports: [], template: `
|
|
462
|
+
@if (title()) {
|
|
463
|
+
<div class="ngx-bsl-list-box-group-title">{{ title() }}</div>
|
|
464
|
+
}
|
|
465
|
+
<ng-content></ng-content>
|
|
466
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ngx-bsl-list-box-group{display:flex;flex-direction:column;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted)}.ngx-bsl-list-box-group-title{padding:.375rem .5rem;font:var(--bsl-font-xs);color:var(--bsl-textColor-muted);font-weight:500}\n"] }]
|
|
467
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }] } });
|
|
468
|
+
|
|
566
469
|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
567
470
|
class ListBoxSeparatorComponent {
|
|
568
471
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ListBoxSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -573,6 +476,114 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
573
476
|
args: [{ selector: 'ngx-bsl-list-box-separator', imports: [], template: '', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ngx-bsl-list-box-separator{display:block;height:1px;background-color:var(--bsl-list-box-borderColor)}\n"] }]
|
|
574
477
|
}] });
|
|
575
478
|
|
|
479
|
+
/*
|
|
480
|
+
eslint-disable max-len,
|
|
481
|
+
@typescript-eslint/no-extraneous-class
|
|
482
|
+
*/
|
|
483
|
+
class IconArrowLeftComponent {
|
|
484
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
485
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowLeftComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-left", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
486
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" >
|
|
487
|
+
<path fill="currentColor" d="M 16.453 0.282 C 16.536 0.195 16.636 0.124 16.744 0.075 C 16.853 0.025 16.971 0 17.091 0 C 17.211 0 17.331 0.025 17.439 0.075 C 17.547 0.124 17.647 0.195 17.731 0.282 C 17.902 0.469 17.997 0.714 17.997 0.975 C 17.997 1.23 17.902 1.48 17.731 1.662 L 8.166 11.995 L 17.731 22.333 C 17.817 22.425 17.883 22.536 17.931 22.657 C 17.979 22.777 18.003 22.905 18 23.032 C 17.997 23.161 17.971 23.293 17.922 23.413 C 17.874 23.532 17.803 23.641 17.715 23.728 C 17.631 23.815 17.535 23.883 17.425 23.928 C 17.314 23.976 17.199 24 17.079 24 C 16.962 23.995 16.849 23.968 16.741 23.92 C 16.633 23.871 16.533 23.8 16.453 23.713 L 6.279 12.718 C 6.102 12.525 6 12.267 6 11.995 C 6 11.727 6.102 11.467 6.279 11.274 L 16.453 0.282 Z"></path>
|
|
488
|
+
</svg>
|
|
489
|
+
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
490
|
+
}
|
|
491
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftComponent, decorators: [{
|
|
492
|
+
type: Component,
|
|
493
|
+
args: [{ selector: 'ngx-bsl-icon-arrow-left', imports: [], template: `
|
|
494
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" >
|
|
495
|
+
<path fill="currentColor" d="M 16.453 0.282 C 16.536 0.195 16.636 0.124 16.744 0.075 C 16.853 0.025 16.971 0 17.091 0 C 17.211 0 17.331 0.025 17.439 0.075 C 17.547 0.124 17.647 0.195 17.731 0.282 C 17.902 0.469 17.997 0.714 17.997 0.975 C 17.997 1.23 17.902 1.48 17.731 1.662 L 8.166 11.995 L 17.731 22.333 C 17.817 22.425 17.883 22.536 17.931 22.657 C 17.979 22.777 18.003 22.905 18 23.032 C 17.997 23.161 17.971 23.293 17.922 23.413 C 17.874 23.532 17.803 23.641 17.715 23.728 C 17.631 23.815 17.535 23.883 17.425 23.928 C 17.314 23.976 17.199 24 17.079 24 C 16.962 23.995 16.849 23.968 16.741 23.92 C 16.633 23.871 16.533 23.8 16.453 23.713 L 6.279 12.718 C 6.102 12.525 6 12.267 6 11.995 C 6 11.727 6.102 11.467 6.279 11.274 L 16.453 0.282 Z"></path>
|
|
496
|
+
</svg>
|
|
497
|
+
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
498
|
+
}] });
|
|
499
|
+
|
|
500
|
+
/*
|
|
501
|
+
eslint-disable max-len,
|
|
502
|
+
@typescript-eslint/no-extraneous-class
|
|
503
|
+
*/
|
|
504
|
+
class IconArrowRightComponent {
|
|
505
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
506
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowRightComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-right", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
507
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
508
|
+
<path fill="currentColor" d="M 7.547 0.284 C 7.464 0.194 7.364 0.123 7.255 0.074 C 7.145 0.025 7.026 0 6.907 0 C 6.788 0 6.67 0.025 6.56 0.074 C 6.45 0.123 6.35 0.194 6.267 0.284 C 6.096 0.469 6.001 0.716 6.001 0.974 C 6.001 1.231 6.096 1.479 6.267 1.663 L 15.834 11.998 L 6.267 22.334 C 6.181 22.427 6.113 22.537 6.067 22.657 C 6.021 22.778 5.999 22.907 6 23.036 C 6.001 23.166 6.027 23.294 6.076 23.414 C 6.124 23.533 6.195 23.641 6.283 23.732 C 6.367 23.818 6.466 23.886 6.575 23.932 C 6.684 23.978 6.801 24.001 6.918 24 C 7.036 23.998 7.152 23.972 7.26 23.923 C 7.368 23.875 7.465 23.804 7.547 23.715 L 17.721 12.719 C 17.9 12.526 18 12.267 18 11.998 C 18 11.728 17.9 11.469 17.721 11.276 L 7.547 0.284 Z"></path>
|
|
509
|
+
</svg>
|
|
510
|
+
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
511
|
+
}
|
|
512
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightComponent, decorators: [{
|
|
513
|
+
type: Component,
|
|
514
|
+
args: [{ selector: 'ngx-bsl-icon-arrow-right', imports: [], template: `
|
|
515
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
516
|
+
<path fill="currentColor" d="M 7.547 0.284 C 7.464 0.194 7.364 0.123 7.255 0.074 C 7.145 0.025 7.026 0 6.907 0 C 6.788 0 6.67 0.025 6.56 0.074 C 6.45 0.123 6.35 0.194 6.267 0.284 C 6.096 0.469 6.001 0.716 6.001 0.974 C 6.001 1.231 6.096 1.479 6.267 1.663 L 15.834 11.998 L 6.267 22.334 C 6.181 22.427 6.113 22.537 6.067 22.657 C 6.021 22.778 5.999 22.907 6 23.036 C 6.001 23.166 6.027 23.294 6.076 23.414 C 6.124 23.533 6.195 23.641 6.283 23.732 C 6.367 23.818 6.466 23.886 6.575 23.932 C 6.684 23.978 6.801 24.001 6.918 24 C 7.036 23.998 7.152 23.972 7.26 23.923 C 7.368 23.875 7.465 23.804 7.547 23.715 L 17.721 12.719 C 17.9 12.526 18 12.267 18 11.998 C 18 11.728 17.9 11.469 17.721 11.276 L 7.547 0.284 Z"></path>
|
|
517
|
+
</svg>
|
|
518
|
+
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
519
|
+
}] });
|
|
520
|
+
|
|
521
|
+
/*
|
|
522
|
+
eslint-disable max-len,
|
|
523
|
+
@typescript-eslint/no-extraneous-class
|
|
524
|
+
*/
|
|
525
|
+
class IconArrowLeftDoubleComponent {
|
|
526
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftDoubleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
527
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowLeftDoubleComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-left-double", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
528
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
529
|
+
<path fill="currentColor" d="M 12.529 0.284 C 12.614 0.194 12.714 0.123 12.825 0.074 C 12.936 0.025 13.055 0 13.175 0 C 13.295 0 13.414 0.025 13.524 0.074 C 13.636 0.123 13.736 0.194 13.82 0.284 C 13.992 0.469 14.087 0.716 14.087 0.974 C 14.087 1.232 13.992 1.479 13.82 1.664 L 4.181 11.998 L 13.82 22.334 C 13.906 22.427 13.975 22.537 14.021 22.657 C 14.067 22.778 14.089 22.907 14.088 23.037 C 14.087 23.166 14.061 23.295 14.013 23.414 C 13.963 23.533 13.893 23.641 13.803 23.732 C 13.719 23.818 13.619 23.887 13.509 23.933 C 13.399 23.979 13.282 24.001 13.163 24 C 13.045 23.998 12.928 23.972 12.82 23.924 C 12.711 23.875 12.613 23.804 12.529 23.715 L 2.281 12.72 C 2.101 12.526 2 12.268 2 11.998 C 2 11.728 2.101 11.469 2.281 11.276 L 12.529 0.284 Z M 20.441 0.284 C 20.525 0.194 20.625 0.123 20.736 0.074 C 20.847 0.025 20.966 0 21.086 0 C 21.206 0 21.325 0.025 21.436 0.074 C 21.546 0.123 21.647 0.194 21.729 0.284 C 21.903 0.469 21.999 0.716 21.999 0.974 C 21.999 1.232 21.903 1.479 21.729 1.664 L 12.093 11.998 L 21.729 22.334 C 21.818 22.427 21.886 22.537 21.933 22.657 C 21.978 22.778 22.001 22.907 22 23.037 C 21.999 23.166 21.973 23.295 21.923 23.414 C 21.875 23.533 21.804 23.641 21.715 23.732 C 21.629 23.818 21.529 23.887 21.42 23.933 C 21.309 23.979 21.194 24.001 21.075 24 C 20.957 23.998 20.84 23.972 20.729 23.924 C 20.622 23.875 20.524 23.804 20.441 23.715 L 10.193 12.72 C 10.013 12.526 9.912 12.268 9.912 11.998 C 9.912 11.728 10.013 11.469 10.193 11.276 L 20.441 0.284 Z"></path>
|
|
530
|
+
</svg>
|
|
531
|
+
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
532
|
+
}
|
|
533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftDoubleComponent, decorators: [{
|
|
534
|
+
type: Component,
|
|
535
|
+
args: [{ selector: 'ngx-bsl-icon-arrow-left-double', imports: [], template: `
|
|
536
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
537
|
+
<path fill="currentColor" d="M 12.529 0.284 C 12.614 0.194 12.714 0.123 12.825 0.074 C 12.936 0.025 13.055 0 13.175 0 C 13.295 0 13.414 0.025 13.524 0.074 C 13.636 0.123 13.736 0.194 13.82 0.284 C 13.992 0.469 14.087 0.716 14.087 0.974 C 14.087 1.232 13.992 1.479 13.82 1.664 L 4.181 11.998 L 13.82 22.334 C 13.906 22.427 13.975 22.537 14.021 22.657 C 14.067 22.778 14.089 22.907 14.088 23.037 C 14.087 23.166 14.061 23.295 14.013 23.414 C 13.963 23.533 13.893 23.641 13.803 23.732 C 13.719 23.818 13.619 23.887 13.509 23.933 C 13.399 23.979 13.282 24.001 13.163 24 C 13.045 23.998 12.928 23.972 12.82 23.924 C 12.711 23.875 12.613 23.804 12.529 23.715 L 2.281 12.72 C 2.101 12.526 2 12.268 2 11.998 C 2 11.728 2.101 11.469 2.281 11.276 L 12.529 0.284 Z M 20.441 0.284 C 20.525 0.194 20.625 0.123 20.736 0.074 C 20.847 0.025 20.966 0 21.086 0 C 21.206 0 21.325 0.025 21.436 0.074 C 21.546 0.123 21.647 0.194 21.729 0.284 C 21.903 0.469 21.999 0.716 21.999 0.974 C 21.999 1.232 21.903 1.479 21.729 1.664 L 12.093 11.998 L 21.729 22.334 C 21.818 22.427 21.886 22.537 21.933 22.657 C 21.978 22.778 22.001 22.907 22 23.037 C 21.999 23.166 21.973 23.295 21.923 23.414 C 21.875 23.533 21.804 23.641 21.715 23.732 C 21.629 23.818 21.529 23.887 21.42 23.933 C 21.309 23.979 21.194 24.001 21.075 24 C 20.957 23.998 20.84 23.972 20.729 23.924 C 20.622 23.875 20.524 23.804 20.441 23.715 L 10.193 12.72 C 10.013 12.526 9.912 12.268 9.912 11.998 C 9.912 11.728 10.013 11.469 10.193 11.276 L 20.441 0.284 Z"></path>
|
|
538
|
+
</svg>
|
|
539
|
+
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
540
|
+
}] });
|
|
541
|
+
|
|
542
|
+
/*
|
|
543
|
+
eslint-disable max-len,
|
|
544
|
+
@typescript-eslint/no-extraneous-class
|
|
545
|
+
*/
|
|
546
|
+
class IconArrowRightDoubleComponent {
|
|
547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightDoubleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowRightDoubleComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-right-double", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
549
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
550
|
+
<path fill="currentColor" d="M 12.523 0.284 C 12.448 0.194 12.358 0.123 12.257 0.074 C 12.158 0.025 12.051 0 11.943 0 C 11.835 0 11.728 0.025 11.628 0.074 C 11.528 0.123 11.438 0.194 11.362 0.284 C 11.208 0.469 11.121 0.716 11.121 0.974 C 11.121 1.232 11.208 1.479 11.362 1.664 L 20.037 11.998 L 11.362 22.334 C 11.284 22.427 11.223 22.537 11.181 22.657 C 11.139 22.778 11.119 22.907 11.12 23.037 C 11.121 23.166 11.145 23.295 11.189 23.414 C 11.233 23.533 11.297 23.641 11.376 23.732 C 11.453 23.818 11.543 23.887 11.641 23.933 C 11.741 23.979 11.846 24.001 11.953 24 C 12.059 23.998 12.164 23.972 12.262 23.924 C 12.361 23.875 12.449 23.804 12.523 23.715 L 21.747 12.72 C 21.909 12.526 22 12.268 22 11.998 C 22 11.728 21.909 11.469 21.747 11.276 L 12.523 0.284 Z M 5.403 0.284 C 5.327 0.194 5.237 0.123 5.138 0.074 C 5.037 0.025 4.93 0 4.822 0 C 4.714 0 4.607 0.025 4.508 0.074 C 4.408 0.123 4.317 0.194 4.243 0.284 C 4.087 0.469 4.001 0.716 4.001 0.974 C 4.001 1.232 4.087 1.479 4.243 1.664 L 12.917 11.998 L 4.243 22.334 C 4.164 22.427 4.102 22.537 4.061 22.657 C 4.02 22.778 3.999 22.907 4 23.037 C 4.001 23.166 4.025 23.295 4.069 23.414 C 4.113 23.533 4.176 23.641 4.257 23.732 C 4.333 23.818 4.423 23.887 4.522 23.933 C 4.621 23.979 4.726 24.001 4.833 24 C 4.939 23.998 5.044 23.972 5.143 23.924 C 5.24 23.875 5.328 23.804 5.403 23.715 L 14.627 12.72 C 14.789 12.526 14.88 12.268 14.88 11.998 C 14.88 11.728 14.789 11.469 14.627 11.276 L 5.403 0.284 Z"></path>
|
|
551
|
+
</svg>
|
|
552
|
+
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
553
|
+
}
|
|
554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightDoubleComponent, decorators: [{
|
|
555
|
+
type: Component,
|
|
556
|
+
args: [{ selector: 'ngx-bsl-icon-arrow-right-double', imports: [], template: `
|
|
557
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
558
|
+
<path fill="currentColor" d="M 12.523 0.284 C 12.448 0.194 12.358 0.123 12.257 0.074 C 12.158 0.025 12.051 0 11.943 0 C 11.835 0 11.728 0.025 11.628 0.074 C 11.528 0.123 11.438 0.194 11.362 0.284 C 11.208 0.469 11.121 0.716 11.121 0.974 C 11.121 1.232 11.208 1.479 11.362 1.664 L 20.037 11.998 L 11.362 22.334 C 11.284 22.427 11.223 22.537 11.181 22.657 C 11.139 22.778 11.119 22.907 11.12 23.037 C 11.121 23.166 11.145 23.295 11.189 23.414 C 11.233 23.533 11.297 23.641 11.376 23.732 C 11.453 23.818 11.543 23.887 11.641 23.933 C 11.741 23.979 11.846 24.001 11.953 24 C 12.059 23.998 12.164 23.972 12.262 23.924 C 12.361 23.875 12.449 23.804 12.523 23.715 L 21.747 12.72 C 21.909 12.526 22 12.268 22 11.998 C 22 11.728 21.909 11.469 21.747 11.276 L 12.523 0.284 Z M 5.403 0.284 C 5.327 0.194 5.237 0.123 5.138 0.074 C 5.037 0.025 4.93 0 4.822 0 C 4.714 0 4.607 0.025 4.508 0.074 C 4.408 0.123 4.317 0.194 4.243 0.284 C 4.087 0.469 4.001 0.716 4.001 0.974 C 4.001 1.232 4.087 1.479 4.243 1.664 L 12.917 11.998 L 4.243 22.334 C 4.164 22.427 4.102 22.537 4.061 22.657 C 4.02 22.778 3.999 22.907 4 23.037 C 4.001 23.166 4.025 23.295 4.069 23.414 C 4.113 23.533 4.176 23.641 4.257 23.732 C 4.333 23.818 4.423 23.887 4.522 23.933 C 4.621 23.979 4.726 24.001 4.833 24 C 4.939 23.998 5.044 23.972 5.143 23.924 C 5.24 23.875 5.328 23.804 5.403 23.715 L 14.627 12.72 C 14.789 12.526 14.88 12.268 14.88 11.998 C 14.88 11.728 14.789 11.469 14.627 11.276 L 5.403 0.284 Z"></path>
|
|
559
|
+
</svg>
|
|
560
|
+
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
561
|
+
}] });
|
|
562
|
+
|
|
563
|
+
/*
|
|
564
|
+
eslint-disable @typescript-eslint/no-extraneous-class
|
|
565
|
+
*/
|
|
566
|
+
class IconBurgerComponent {
|
|
567
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconBurgerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
568
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconBurgerComponent, isStandalone: true, selector: "ngx-bsl-icon-burger", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
569
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
570
|
+
<path d="M4 18L20 18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
571
|
+
<path d="M4 12L20 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
572
|
+
<path d="M4 6L20 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
573
|
+
</svg>
|
|
574
|
+
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
575
|
+
}
|
|
576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconBurgerComponent, decorators: [{
|
|
577
|
+
type: Component,
|
|
578
|
+
args: [{ selector: 'ngx-bsl-icon-burger', imports: [], template: `
|
|
579
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
580
|
+
<path d="M4 18L20 18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
581
|
+
<path d="M4 12L20 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
582
|
+
<path d="M4 6L20 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
583
|
+
</svg>
|
|
584
|
+
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
585
|
+
}] });
|
|
586
|
+
|
|
576
587
|
/*
|
|
577
588
|
eslint-disable max-len,
|
|
578
589
|
@typescript-eslint/no-extraneous-class
|
|
@@ -727,90 +738,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
727
738
|
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
728
739
|
}] });
|
|
729
740
|
|
|
730
|
-
/*
|
|
731
|
-
eslint-disable max-len,
|
|
732
|
-
@typescript-eslint/no-extraneous-class
|
|
733
|
-
*/
|
|
734
|
-
class IconArrowLeftComponent {
|
|
735
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
736
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowLeftComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-left", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
737
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" >
|
|
738
|
-
<path fill="currentColor" d="M 16.453 0.282 C 16.536 0.195 16.636 0.124 16.744 0.075 C 16.853 0.025 16.971 0 17.091 0 C 17.211 0 17.331 0.025 17.439 0.075 C 17.547 0.124 17.647 0.195 17.731 0.282 C 17.902 0.469 17.997 0.714 17.997 0.975 C 17.997 1.23 17.902 1.48 17.731 1.662 L 8.166 11.995 L 17.731 22.333 C 17.817 22.425 17.883 22.536 17.931 22.657 C 17.979 22.777 18.003 22.905 18 23.032 C 17.997 23.161 17.971 23.293 17.922 23.413 C 17.874 23.532 17.803 23.641 17.715 23.728 C 17.631 23.815 17.535 23.883 17.425 23.928 C 17.314 23.976 17.199 24 17.079 24 C 16.962 23.995 16.849 23.968 16.741 23.92 C 16.633 23.871 16.533 23.8 16.453 23.713 L 6.279 12.718 C 6.102 12.525 6 12.267 6 11.995 C 6 11.727 6.102 11.467 6.279 11.274 L 16.453 0.282 Z"></path>
|
|
739
|
-
</svg>
|
|
740
|
-
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
741
|
-
}
|
|
742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftComponent, decorators: [{
|
|
743
|
-
type: Component,
|
|
744
|
-
args: [{ selector: 'ngx-bsl-icon-arrow-left', imports: [], template: `
|
|
745
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" >
|
|
746
|
-
<path fill="currentColor" d="M 16.453 0.282 C 16.536 0.195 16.636 0.124 16.744 0.075 C 16.853 0.025 16.971 0 17.091 0 C 17.211 0 17.331 0.025 17.439 0.075 C 17.547 0.124 17.647 0.195 17.731 0.282 C 17.902 0.469 17.997 0.714 17.997 0.975 C 17.997 1.23 17.902 1.48 17.731 1.662 L 8.166 11.995 L 17.731 22.333 C 17.817 22.425 17.883 22.536 17.931 22.657 C 17.979 22.777 18.003 22.905 18 23.032 C 17.997 23.161 17.971 23.293 17.922 23.413 C 17.874 23.532 17.803 23.641 17.715 23.728 C 17.631 23.815 17.535 23.883 17.425 23.928 C 17.314 23.976 17.199 24 17.079 24 C 16.962 23.995 16.849 23.968 16.741 23.92 C 16.633 23.871 16.533 23.8 16.453 23.713 L 6.279 12.718 C 6.102 12.525 6 12.267 6 11.995 C 6 11.727 6.102 11.467 6.279 11.274 L 16.453 0.282 Z"></path>
|
|
747
|
-
</svg>
|
|
748
|
-
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
749
|
-
}] });
|
|
750
|
-
|
|
751
|
-
/*
|
|
752
|
-
eslint-disable max-len,
|
|
753
|
-
@typescript-eslint/no-extraneous-class
|
|
754
|
-
*/
|
|
755
|
-
class IconArrowRightComponent {
|
|
756
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
757
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowRightComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-right", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
758
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
759
|
-
<path fill="currentColor" d="M 7.547 0.284 C 7.464 0.194 7.364 0.123 7.255 0.074 C 7.145 0.025 7.026 0 6.907 0 C 6.788 0 6.67 0.025 6.56 0.074 C 6.45 0.123 6.35 0.194 6.267 0.284 C 6.096 0.469 6.001 0.716 6.001 0.974 C 6.001 1.231 6.096 1.479 6.267 1.663 L 15.834 11.998 L 6.267 22.334 C 6.181 22.427 6.113 22.537 6.067 22.657 C 6.021 22.778 5.999 22.907 6 23.036 C 6.001 23.166 6.027 23.294 6.076 23.414 C 6.124 23.533 6.195 23.641 6.283 23.732 C 6.367 23.818 6.466 23.886 6.575 23.932 C 6.684 23.978 6.801 24.001 6.918 24 C 7.036 23.998 7.152 23.972 7.26 23.923 C 7.368 23.875 7.465 23.804 7.547 23.715 L 17.721 12.719 C 17.9 12.526 18 12.267 18 11.998 C 18 11.728 17.9 11.469 17.721 11.276 L 7.547 0.284 Z"></path>
|
|
760
|
-
</svg>
|
|
761
|
-
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
762
|
-
}
|
|
763
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightComponent, decorators: [{
|
|
764
|
-
type: Component,
|
|
765
|
-
args: [{ selector: 'ngx-bsl-icon-arrow-right', imports: [], template: `
|
|
766
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
767
|
-
<path fill="currentColor" d="M 7.547 0.284 C 7.464 0.194 7.364 0.123 7.255 0.074 C 7.145 0.025 7.026 0 6.907 0 C 6.788 0 6.67 0.025 6.56 0.074 C 6.45 0.123 6.35 0.194 6.267 0.284 C 6.096 0.469 6.001 0.716 6.001 0.974 C 6.001 1.231 6.096 1.479 6.267 1.663 L 15.834 11.998 L 6.267 22.334 C 6.181 22.427 6.113 22.537 6.067 22.657 C 6.021 22.778 5.999 22.907 6 23.036 C 6.001 23.166 6.027 23.294 6.076 23.414 C 6.124 23.533 6.195 23.641 6.283 23.732 C 6.367 23.818 6.466 23.886 6.575 23.932 C 6.684 23.978 6.801 24.001 6.918 24 C 7.036 23.998 7.152 23.972 7.26 23.923 C 7.368 23.875 7.465 23.804 7.547 23.715 L 17.721 12.719 C 17.9 12.526 18 12.267 18 11.998 C 18 11.728 17.9 11.469 17.721 11.276 L 7.547 0.284 Z"></path>
|
|
768
|
-
</svg>
|
|
769
|
-
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
770
|
-
}] });
|
|
771
|
-
|
|
772
|
-
/*
|
|
773
|
-
eslint-disable max-len,
|
|
774
|
-
@typescript-eslint/no-extraneous-class
|
|
775
|
-
*/
|
|
776
|
-
class IconArrowLeftDoubleComponent {
|
|
777
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftDoubleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
778
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowLeftDoubleComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-left-double", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
779
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
780
|
-
<path fill="currentColor" d="M 12.529 0.284 C 12.614 0.194 12.714 0.123 12.825 0.074 C 12.936 0.025 13.055 0 13.175 0 C 13.295 0 13.414 0.025 13.524 0.074 C 13.636 0.123 13.736 0.194 13.82 0.284 C 13.992 0.469 14.087 0.716 14.087 0.974 C 14.087 1.232 13.992 1.479 13.82 1.664 L 4.181 11.998 L 13.82 22.334 C 13.906 22.427 13.975 22.537 14.021 22.657 C 14.067 22.778 14.089 22.907 14.088 23.037 C 14.087 23.166 14.061 23.295 14.013 23.414 C 13.963 23.533 13.893 23.641 13.803 23.732 C 13.719 23.818 13.619 23.887 13.509 23.933 C 13.399 23.979 13.282 24.001 13.163 24 C 13.045 23.998 12.928 23.972 12.82 23.924 C 12.711 23.875 12.613 23.804 12.529 23.715 L 2.281 12.72 C 2.101 12.526 2 12.268 2 11.998 C 2 11.728 2.101 11.469 2.281 11.276 L 12.529 0.284 Z M 20.441 0.284 C 20.525 0.194 20.625 0.123 20.736 0.074 C 20.847 0.025 20.966 0 21.086 0 C 21.206 0 21.325 0.025 21.436 0.074 C 21.546 0.123 21.647 0.194 21.729 0.284 C 21.903 0.469 21.999 0.716 21.999 0.974 C 21.999 1.232 21.903 1.479 21.729 1.664 L 12.093 11.998 L 21.729 22.334 C 21.818 22.427 21.886 22.537 21.933 22.657 C 21.978 22.778 22.001 22.907 22 23.037 C 21.999 23.166 21.973 23.295 21.923 23.414 C 21.875 23.533 21.804 23.641 21.715 23.732 C 21.629 23.818 21.529 23.887 21.42 23.933 C 21.309 23.979 21.194 24.001 21.075 24 C 20.957 23.998 20.84 23.972 20.729 23.924 C 20.622 23.875 20.524 23.804 20.441 23.715 L 10.193 12.72 C 10.013 12.526 9.912 12.268 9.912 11.998 C 9.912 11.728 10.013 11.469 10.193 11.276 L 20.441 0.284 Z"></path>
|
|
781
|
-
</svg>
|
|
782
|
-
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
783
|
-
}
|
|
784
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowLeftDoubleComponent, decorators: [{
|
|
785
|
-
type: Component,
|
|
786
|
-
args: [{ selector: 'ngx-bsl-icon-arrow-left-double', imports: [], template: `
|
|
787
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
788
|
-
<path fill="currentColor" d="M 12.529 0.284 C 12.614 0.194 12.714 0.123 12.825 0.074 C 12.936 0.025 13.055 0 13.175 0 C 13.295 0 13.414 0.025 13.524 0.074 C 13.636 0.123 13.736 0.194 13.82 0.284 C 13.992 0.469 14.087 0.716 14.087 0.974 C 14.087 1.232 13.992 1.479 13.82 1.664 L 4.181 11.998 L 13.82 22.334 C 13.906 22.427 13.975 22.537 14.021 22.657 C 14.067 22.778 14.089 22.907 14.088 23.037 C 14.087 23.166 14.061 23.295 14.013 23.414 C 13.963 23.533 13.893 23.641 13.803 23.732 C 13.719 23.818 13.619 23.887 13.509 23.933 C 13.399 23.979 13.282 24.001 13.163 24 C 13.045 23.998 12.928 23.972 12.82 23.924 C 12.711 23.875 12.613 23.804 12.529 23.715 L 2.281 12.72 C 2.101 12.526 2 12.268 2 11.998 C 2 11.728 2.101 11.469 2.281 11.276 L 12.529 0.284 Z M 20.441 0.284 C 20.525 0.194 20.625 0.123 20.736 0.074 C 20.847 0.025 20.966 0 21.086 0 C 21.206 0 21.325 0.025 21.436 0.074 C 21.546 0.123 21.647 0.194 21.729 0.284 C 21.903 0.469 21.999 0.716 21.999 0.974 C 21.999 1.232 21.903 1.479 21.729 1.664 L 12.093 11.998 L 21.729 22.334 C 21.818 22.427 21.886 22.537 21.933 22.657 C 21.978 22.778 22.001 22.907 22 23.037 C 21.999 23.166 21.973 23.295 21.923 23.414 C 21.875 23.533 21.804 23.641 21.715 23.732 C 21.629 23.818 21.529 23.887 21.42 23.933 C 21.309 23.979 21.194 24.001 21.075 24 C 20.957 23.998 20.84 23.972 20.729 23.924 C 20.622 23.875 20.524 23.804 20.441 23.715 L 10.193 12.72 C 10.013 12.526 9.912 12.268 9.912 11.998 C 9.912 11.728 10.013 11.469 10.193 11.276 L 20.441 0.284 Z"></path>
|
|
789
|
-
</svg>
|
|
790
|
-
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
791
|
-
}] });
|
|
792
|
-
|
|
793
|
-
/*
|
|
794
|
-
eslint-disable max-len,
|
|
795
|
-
@typescript-eslint/no-extraneous-class
|
|
796
|
-
*/
|
|
797
|
-
class IconArrowRightDoubleComponent {
|
|
798
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightDoubleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
799
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IconArrowRightDoubleComponent, isStandalone: true, selector: "ngx-bsl-icon-arrow-right-double", host: { properties: { "class.bsl-icon": "true" } }, ngImport: i0, template: `
|
|
800
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
801
|
-
<path fill="currentColor" d="M 12.523 0.284 C 12.448 0.194 12.358 0.123 12.257 0.074 C 12.158 0.025 12.051 0 11.943 0 C 11.835 0 11.728 0.025 11.628 0.074 C 11.528 0.123 11.438 0.194 11.362 0.284 C 11.208 0.469 11.121 0.716 11.121 0.974 C 11.121 1.232 11.208 1.479 11.362 1.664 L 20.037 11.998 L 11.362 22.334 C 11.284 22.427 11.223 22.537 11.181 22.657 C 11.139 22.778 11.119 22.907 11.12 23.037 C 11.121 23.166 11.145 23.295 11.189 23.414 C 11.233 23.533 11.297 23.641 11.376 23.732 C 11.453 23.818 11.543 23.887 11.641 23.933 C 11.741 23.979 11.846 24.001 11.953 24 C 12.059 23.998 12.164 23.972 12.262 23.924 C 12.361 23.875 12.449 23.804 12.523 23.715 L 21.747 12.72 C 21.909 12.526 22 12.268 22 11.998 C 22 11.728 21.909 11.469 21.747 11.276 L 12.523 0.284 Z M 5.403 0.284 C 5.327 0.194 5.237 0.123 5.138 0.074 C 5.037 0.025 4.93 0 4.822 0 C 4.714 0 4.607 0.025 4.508 0.074 C 4.408 0.123 4.317 0.194 4.243 0.284 C 4.087 0.469 4.001 0.716 4.001 0.974 C 4.001 1.232 4.087 1.479 4.243 1.664 L 12.917 11.998 L 4.243 22.334 C 4.164 22.427 4.102 22.537 4.061 22.657 C 4.02 22.778 3.999 22.907 4 23.037 C 4.001 23.166 4.025 23.295 4.069 23.414 C 4.113 23.533 4.176 23.641 4.257 23.732 C 4.333 23.818 4.423 23.887 4.522 23.933 C 4.621 23.979 4.726 24.001 4.833 24 C 4.939 23.998 5.044 23.972 5.143 23.924 C 5.24 23.875 5.328 23.804 5.403 23.715 L 14.627 12.72 C 14.789 12.526 14.88 12.268 14.88 11.998 C 14.88 11.728 14.789 11.469 14.627 11.276 L 5.403 0.284 Z"></path>
|
|
802
|
-
</svg>
|
|
803
|
-
`, isInline: true, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
804
|
-
}
|
|
805
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IconArrowRightDoubleComponent, decorators: [{
|
|
806
|
-
type: Component,
|
|
807
|
-
args: [{ selector: 'ngx-bsl-icon-arrow-right-double', imports: [], template: `
|
|
808
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
809
|
-
<path fill="currentColor" d="M 12.523 0.284 C 12.448 0.194 12.358 0.123 12.257 0.074 C 12.158 0.025 12.051 0 11.943 0 C 11.835 0 11.728 0.025 11.628 0.074 C 11.528 0.123 11.438 0.194 11.362 0.284 C 11.208 0.469 11.121 0.716 11.121 0.974 C 11.121 1.232 11.208 1.479 11.362 1.664 L 20.037 11.998 L 11.362 22.334 C 11.284 22.427 11.223 22.537 11.181 22.657 C 11.139 22.778 11.119 22.907 11.12 23.037 C 11.121 23.166 11.145 23.295 11.189 23.414 C 11.233 23.533 11.297 23.641 11.376 23.732 C 11.453 23.818 11.543 23.887 11.641 23.933 C 11.741 23.979 11.846 24.001 11.953 24 C 12.059 23.998 12.164 23.972 12.262 23.924 C 12.361 23.875 12.449 23.804 12.523 23.715 L 21.747 12.72 C 21.909 12.526 22 12.268 22 11.998 C 22 11.728 21.909 11.469 21.747 11.276 L 12.523 0.284 Z M 5.403 0.284 C 5.327 0.194 5.237 0.123 5.138 0.074 C 5.037 0.025 4.93 0 4.822 0 C 4.714 0 4.607 0.025 4.508 0.074 C 4.408 0.123 4.317 0.194 4.243 0.284 C 4.087 0.469 4.001 0.716 4.001 0.974 C 4.001 1.232 4.087 1.479 4.243 1.664 L 12.917 11.998 L 4.243 22.334 C 4.164 22.427 4.102 22.537 4.061 22.657 C 4.02 22.778 3.999 22.907 4 23.037 C 4.001 23.166 4.025 23.295 4.069 23.414 C 4.113 23.533 4.176 23.641 4.257 23.732 C 4.333 23.818 4.423 23.887 4.522 23.933 C 4.621 23.979 4.726 24.001 4.833 24 C 4.939 23.998 5.044 23.972 5.143 23.924 C 5.24 23.875 5.328 23.804 5.403 23.715 L 14.627 12.72 C 14.789 12.526 14.88 12.268 14.88 11.998 C 14.88 11.728 14.789 11.469 14.627 11.276 L 5.403 0.284 Z"></path>
|
|
810
|
-
</svg>
|
|
811
|
-
`, host: { '[class.bsl-icon]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".bsl-icon{display:inline-flex;justify-content:center;align-items:center}.bsl-icon svg{width:1rem;height:1rem}\n"] }]
|
|
812
|
-
}] });
|
|
813
|
-
|
|
814
741
|
class PaginationComponent {
|
|
815
742
|
page = model(1, ...(ngDevMode ? [{ debugName: "page" }] : []));
|
|
816
743
|
total = input(1, ...(ngDevMode ? [{ debugName: "total" }] : []));
|
|
@@ -871,7 +798,7 @@ class PaginationComponent {
|
|
|
871
798
|
}
|
|
872
799
|
}
|
|
873
800
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
874
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.0", type: PaginationComponent, isStandalone: true, selector: "ngx-bsl-pagination", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, nextPageAriaLabel: { classPropertyName: "nextPageAriaLabel", publicName: "nextPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, previousPageAriaLabel: { classPropertyName: "previousPageAriaLabel", publicName: "previousPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, firstPageAriaLabel: { classPropertyName: "firstPageAriaLabel", publicName: "firstPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, lastPageAriaLabel: { classPropertyName: "lastPageAriaLabel", publicName: "lastPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, selectPageAriaLabel: { classPropertyName: "selectPageAriaLabel", publicName: "selectPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, selectPageAriaLabelledBy: { classPropertyName: "selectPageAriaLabelledBy", publicName: "selectPageAriaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageChanged: "pageChanged" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"firstPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onFirstPage($any($event))\">\n <ngx-bsl-icon-arrow-left-double></ngx-bsl-icon-arrow-left-double>\n</button>\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"previousPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onPreviousPage($any($event))\">\n <ngx-bsl-icon-arrow-left></ngx-bsl-icon-arrow-left>\n</button>\n\n<input\n type=\"number\"\n [attr.aria-label]=\"selectPageAriaLabel()\"\n [attr.aria-labelledby]=\"selectPageAriaLabelledBy()\"\n [disabled]=\"disabled()\"\n [min]=\"1\"\n [max]=\"pages()\"\n [value]=\"page()\"\n (blur)=\"onInputBlur($any($event.target).valueAsNumber)\"\n (keydown.enter)=\"onInputEnter()\">\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"nextPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onNextPage($any($event))\">\n <ngx-bsl-icon-arrow-right></ngx-bsl-icon-arrow-right>\n</button>\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"lastPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onLastPage($any($event))\">\n <ngx-bsl-icon-arrow-right-double></ngx-bsl-icon-arrow-right-double>\n</button>\n", styles: ["ngx-bsl-pagination{display:flex;
|
|
801
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.0", type: PaginationComponent, isStandalone: true, selector: "ngx-bsl-pagination", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, nextPageAriaLabel: { classPropertyName: "nextPageAriaLabel", publicName: "nextPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, previousPageAriaLabel: { classPropertyName: "previousPageAriaLabel", publicName: "previousPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, firstPageAriaLabel: { classPropertyName: "firstPageAriaLabel", publicName: "firstPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, lastPageAriaLabel: { classPropertyName: "lastPageAriaLabel", publicName: "lastPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, selectPageAriaLabel: { classPropertyName: "selectPageAriaLabel", publicName: "selectPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, selectPageAriaLabelledBy: { classPropertyName: "selectPageAriaLabelledBy", publicName: "selectPageAriaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", pageChanged: "pageChanged" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"firstPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onFirstPage($any($event))\">\n <ngx-bsl-icon-arrow-left-double></ngx-bsl-icon-arrow-left-double>\n</button>\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"previousPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onPreviousPage($any($event))\">\n <ngx-bsl-icon-arrow-left></ngx-bsl-icon-arrow-left>\n</button>\n\n<input\n type=\"number\"\n [attr.aria-label]=\"selectPageAriaLabel()\"\n [attr.aria-labelledby]=\"selectPageAriaLabelledBy()\"\n [disabled]=\"disabled()\"\n [min]=\"1\"\n [max]=\"pages()\"\n [value]=\"page()\"\n (blur)=\"onInputBlur($any($event.target).valueAsNumber)\"\n (keydown.enter)=\"onInputEnter()\">\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"nextPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onNextPage($any($event))\">\n <ngx-bsl-icon-arrow-right></ngx-bsl-icon-arrow-right>\n</button>\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"lastPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onLastPage($any($event))\">\n <ngx-bsl-icon-arrow-right-double></ngx-bsl-icon-arrow-right-double>\n</button>\n", styles: ["ngx-bsl-pagination{display:flex;align-items:center;gap:12px}ngx-bsl-pagination input[type=number]{width:3.5rem;height:2.25rem;padding:.5rem;text-align:center}\n"], dependencies: [{ kind: "component", type: IconArrowLeftComponent, selector: "ngx-bsl-icon-arrow-left" }, { kind: "component", type: IconArrowRightComponent, selector: "ngx-bsl-icon-arrow-right" }, { kind: "component", type: IconArrowLeftDoubleComponent, selector: "ngx-bsl-icon-arrow-left-double" }, { kind: "component", type: IconArrowRightDoubleComponent, selector: "ngx-bsl-icon-arrow-right-double" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
875
802
|
}
|
|
876
803
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
877
804
|
type: Component,
|
|
@@ -880,7 +807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
880
807
|
IconArrowRightComponent,
|
|
881
808
|
IconArrowLeftDoubleComponent,
|
|
882
809
|
IconArrowRightDoubleComponent,
|
|
883
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"firstPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onFirstPage($any($event))\">\n <ngx-bsl-icon-arrow-left-double></ngx-bsl-icon-arrow-left-double>\n</button>\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"previousPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onPreviousPage($any($event))\">\n <ngx-bsl-icon-arrow-left></ngx-bsl-icon-arrow-left>\n</button>\n\n<input\n type=\"number\"\n [attr.aria-label]=\"selectPageAriaLabel()\"\n [attr.aria-labelledby]=\"selectPageAriaLabelledBy()\"\n [disabled]=\"disabled()\"\n [min]=\"1\"\n [max]=\"pages()\"\n [value]=\"page()\"\n (blur)=\"onInputBlur($any($event.target).valueAsNumber)\"\n (keydown.enter)=\"onInputEnter()\">\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"nextPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onNextPage($any($event))\">\n <ngx-bsl-icon-arrow-right></ngx-bsl-icon-arrow-right>\n</button>\n\n<button\n type=\"button\"\n class=\"button-icon\"\n [attr.aria-label]=\"lastPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onLastPage($any($event))\">\n <ngx-bsl-icon-arrow-right-double></ngx-bsl-icon-arrow-right-double>\n</button>\n", styles: ["ngx-bsl-pagination{display:flex;
|
|
810
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"firstPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onFirstPage($any($event))\">\n <ngx-bsl-icon-arrow-left-double></ngx-bsl-icon-arrow-left-double>\n</button>\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"previousPageAriaLabel()\"\n [disabled]=\"disabled() || page() === 1\"\n (click)=\"onPreviousPage($any($event))\">\n <ngx-bsl-icon-arrow-left></ngx-bsl-icon-arrow-left>\n</button>\n\n<input\n type=\"number\"\n [attr.aria-label]=\"selectPageAriaLabel()\"\n [attr.aria-labelledby]=\"selectPageAriaLabelledBy()\"\n [disabled]=\"disabled()\"\n [min]=\"1\"\n [max]=\"pages()\"\n [value]=\"page()\"\n (blur)=\"onInputBlur($any($event.target).valueAsNumber)\"\n (keydown.enter)=\"onInputEnter()\">\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"nextPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onNextPage($any($event))\">\n <ngx-bsl-icon-arrow-right></ngx-bsl-icon-arrow-right>\n</button>\n\n<button\n type=\"button\"\n class=\"bsl-button-icon\"\n [attr.aria-label]=\"lastPageAriaLabel()\"\n [disabled]=\"disabled() || page() === pages()\"\n (click)=\"onLastPage($any($event))\">\n <ngx-bsl-icon-arrow-right-double></ngx-bsl-icon-arrow-right-double>\n</button>\n", styles: ["ngx-bsl-pagination{display:flex;align-items:center;gap:12px}ngx-bsl-pagination input[type=number]{width:3.5rem;height:2.25rem;padding:.5rem;text-align:center}\n"] }]
|
|
884
811
|
}], propDecorators: { page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], total: [{ type: i0.Input, args: [{ isSignal: true, alias: "total", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], nextPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextPageAriaLabel", required: false }] }], previousPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousPageAriaLabel", required: false }] }], firstPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstPageAriaLabel", required: false }] }], lastPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastPageAriaLabel", required: false }] }], selectPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectPageAriaLabel", required: false }] }], selectPageAriaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectPageAriaLabelledBy", required: false }] }], pageChanged: [{ type: i0.Output, args: ["pageChanged"] }], inputRef: [{ type: i0.ViewChild, args: ['inputRef', { isSignal: true }] }] } });
|
|
885
812
|
|
|
886
813
|
var RangeMoveDirection;
|
|
@@ -939,21 +866,21 @@ class RangeThumbComponent {
|
|
|
939
866
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: RangeThumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
940
867
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: RangeThumbComponent, isStandalone: true, selector: "ngx-bsl-range-thumb", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { positionChanged: "positionChanged" }, host: { listeners: { "keydown.arrowLeft": "positionChanged.emit(RangeMoveDirection.BACKWARD)", "keydown.arrowRight": "positionChanged.emit(RangeMoveDirection.FORWARD)", "pointerdown": "onPointerDown($event)" } }, ngImport: i0, template: `
|
|
941
868
|
@if (showLabel()) {
|
|
942
|
-
<span class="thumb-label">{{value()}}</span>
|
|
869
|
+
<span class="bsl-range-thumb-label">{{value()}}</span>
|
|
943
870
|
}
|
|
944
|
-
`, isInline: true, styles: ["
|
|
871
|
+
`, isInline: true, styles: ["ngx-bsl-range-thumb{position:absolute;width:.75rem;height:.75rem;border-radius:.375rem;background-color:var(--bsl-range-thumb-backgroundColor);cursor:pointer;touch-action:none}ngx-bsl-range-thumb.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-thumb-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font:var(--bsl-font-sm)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
945
872
|
}
|
|
946
873
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: RangeThumbComponent, decorators: [{
|
|
947
874
|
type: Component,
|
|
948
875
|
args: [{ selector: 'ngx-bsl-range-thumb', imports: [], template: `
|
|
949
876
|
@if (showLabel()) {
|
|
950
|
-
<span class="thumb-label">{{value()}}</span>
|
|
877
|
+
<span class="bsl-range-thumb-label">{{value()}}</span>
|
|
951
878
|
}
|
|
952
|
-
`, host: {
|
|
879
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
953
880
|
'(keydown.arrowLeft)': 'positionChanged.emit(RangeMoveDirection.BACKWARD)',
|
|
954
881
|
'(keydown.arrowRight)': 'positionChanged.emit(RangeMoveDirection.FORWARD)',
|
|
955
882
|
'(pointerdown)': 'onPointerDown($event)',
|
|
956
|
-
}, styles: ["
|
|
883
|
+
}, styles: ["ngx-bsl-range-thumb{position:absolute;width:.75rem;height:.75rem;border-radius:.375rem;background-color:var(--bsl-range-thumb-backgroundColor);cursor:pointer;touch-action:none}ngx-bsl-range-thumb.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-thumb-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font:var(--bsl-font-sm)}\n"] }]
|
|
957
884
|
}], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], positionChanged: [{ type: i0.Output, args: ["positionChanged"] }] } });
|
|
958
885
|
|
|
959
886
|
function round(value, digits = 0) {
|
|
@@ -1169,7 +1096,7 @@ class RangeComponent {
|
|
|
1169
1096
|
multi: true,
|
|
1170
1097
|
useExisting: RangeComponent,
|
|
1171
1098
|
},
|
|
1172
|
-
], viewQueries: [{ propertyName: "thumbFromRef", first: true, predicate: ["thumbFrom"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "thumbToRef", first: true, predicate: ["thumbTo"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"range\">\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/click-events-have-key-events -->\n <div class=\"rail\"\n [class.disabled]=\"disabled()\"\n (click)=\"onRailClick($event)\">\n </div>\n\n <div class=\"tracker\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"trackerLeft()\"\n [style.right]=\"trackerRight()\">\n </div>\n\n <ngx-bsl-range-thumb\n #thumbFrom\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"value().to\"\n [attr.aria-valuenow]=\"value().from\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbFromPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'from' ? 1 : 0\"\n [value]=\"value().from\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.FROM)\"\n (positionChanged)=\"onPositionChangedThumbFrom($event)\">\n </ngx-bsl-range-thumb>\n\n <ngx-bsl-range-thumb\n #thumbTo\n role=\"slider\"\n [attr.aria-valuemin]=\"value().from\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value().to\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbToPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'to' ? 1 : 0\"\n [value]=\"value().to\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.TO)\"\n (positionChanged)=\"onPositionChangedThumbTo($event)\">\n </ngx-bsl-range-thumb>\n</div>\n\n<div class=\"limits\">\n <span>{{ min() }}</span>\n <span>{{ max() }}</span>\n</div>\n", styles: ["
|
|
1099
|
+
], viewQueries: [{ propertyName: "thumbFromRef", first: true, predicate: ["thumbFrom"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "thumbToRef", first: true, predicate: ["thumbTo"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"bsl-range-container\">\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/click-events-have-key-events -->\n <div class=\"bsl-range-rail\"\n [class.disabled]=\"disabled()\"\n (click)=\"onRailClick($event)\">\n </div>\n\n <div class=\"bsl-range-tracker\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"trackerLeft()\"\n [style.right]=\"trackerRight()\">\n </div>\n\n <ngx-bsl-range-thumb\n #thumbFrom\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"value().to\"\n [attr.aria-valuenow]=\"value().from\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbFromPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'from' ? 1 : 0\"\n [value]=\"value().from\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.FROM)\"\n (positionChanged)=\"onPositionChangedThumbFrom($event)\">\n </ngx-bsl-range-thumb>\n\n <ngx-bsl-range-thumb\n #thumbTo\n role=\"slider\"\n [attr.aria-valuemin]=\"value().from\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value().to\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbToPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'to' ? 1 : 0\"\n [value]=\"value().to\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.TO)\"\n (positionChanged)=\"onPositionChangedThumbTo($event)\">\n </ngx-bsl-range-thumb>\n</div>\n\n<div class=\"bsl-range-limits\">\n <span>{{ min() }}</span>\n <span>{{ max() }}</span>\n</div>\n", styles: ["ngx-bsl-range{display:flex;align-items:center;flex-direction:column}.bsl-range-container{position:relative;height:.75rem;width:100%;display:flex;align-items:center}.bsl-range-rail{height:.25rem;width:100%;border-radius:.125rem;background-color:var(--bsl-range-rail-backgroundColor);cursor:pointer}.bsl-range-rail.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-tracker{position:absolute;height:.25rem;background-color:var(--bsl-range-tracker-backgroundColor);pointer-events:none}.bsl-range-tracker.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-limits{width:100%;display:flex;justify-content:space-between;font:var(--bsl-font-sm)}\n"], dependencies: [{ kind: "component", type: RangeThumbComponent, selector: "ngx-bsl-range-thumb", inputs: ["ratio", "value", "showLabel"], outputs: ["positionChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1173
1100
|
}
|
|
1174
1101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: RangeComponent, decorators: [{
|
|
1175
1102
|
type: Component,
|
|
@@ -1181,35 +1108,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
1181
1108
|
multi: true,
|
|
1182
1109
|
useExisting: RangeComponent,
|
|
1183
1110
|
},
|
|
1184
|
-
], host: {
|
|
1111
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1185
1112
|
'[attr.aria-label]': 'null',
|
|
1186
1113
|
'[attr.aria-labelledby]': 'null',
|
|
1187
|
-
}, template: "<div class=\"range\">\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/click-events-have-key-events -->\n <div class=\"rail\"\n [class.disabled]=\"disabled()\"\n (click)=\"onRailClick($event)\">\n </div>\n\n <div class=\"tracker\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"trackerLeft()\"\n [style.right]=\"trackerRight()\">\n </div>\n\n <ngx-bsl-range-thumb\n #thumbFrom\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"value().to\"\n [attr.aria-valuenow]=\"value().from\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbFromPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'from' ? 1 : 0\"\n [value]=\"value().from\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.FROM)\"\n (positionChanged)=\"onPositionChangedThumbFrom($event)\">\n </ngx-bsl-range-thumb>\n\n <ngx-bsl-range-thumb\n #thumbTo\n role=\"slider\"\n [attr.aria-valuemin]=\"value().from\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value().to\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbToPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'to' ? 1 : 0\"\n [value]=\"value().to\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.TO)\"\n (positionChanged)=\"onPositionChangedThumbTo($event)\">\n </ngx-bsl-range-thumb>\n</div>\n\n<div class=\"limits\">\n <span>{{ min() }}</span>\n <span>{{ max() }}</span>\n</div>\n", styles: ["
|
|
1114
|
+
}, template: "<div class=\"bsl-range-container\">\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/click-events-have-key-events -->\n <div class=\"bsl-range-rail\"\n [class.disabled]=\"disabled()\"\n (click)=\"onRailClick($event)\">\n </div>\n\n <div class=\"bsl-range-tracker\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"trackerLeft()\"\n [style.right]=\"trackerRight()\">\n </div>\n\n <ngx-bsl-range-thumb\n #thumbFrom\n role=\"slider\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"value().to\"\n [attr.aria-valuenow]=\"value().from\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbFromPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'from' ? 1 : 0\"\n [value]=\"value().from\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.FROM)\"\n (positionChanged)=\"onPositionChangedThumbFrom($event)\">\n </ngx-bsl-range-thumb>\n\n <ngx-bsl-range-thumb\n #thumbTo\n role=\"slider\"\n [attr.aria-valuemin]=\"value().from\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value().to\"\n [attr.aria-valuetext]=\"value().from + ' - ' + value().to\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [class.disabled]=\"disabled()\"\n [style.left]=\"thumbToPosition() + 'px'\"\n [style.z-index]=\"overlappingThumb() === 'to' ? 1 : 0\"\n [value]=\"value().to\"\n [ratio]=\"this.ratio()\"\n [showLabel]=\"showThumbLabels()\"\n (focus)=\"overlappingThumb.set(Thumb.TO)\"\n (positionChanged)=\"onPositionChangedThumbTo($event)\">\n </ngx-bsl-range-thumb>\n</div>\n\n<div class=\"bsl-range-limits\">\n <span>{{ min() }}</span>\n <span>{{ max() }}</span>\n</div>\n", styles: ["ngx-bsl-range{display:flex;align-items:center;flex-direction:column}.bsl-range-container{position:relative;height:.75rem;width:100%;display:flex;align-items:center}.bsl-range-rail{height:.25rem;width:100%;border-radius:.125rem;background-color:var(--bsl-range-rail-backgroundColor);cursor:pointer}.bsl-range-rail.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-tracker{position:absolute;height:.25rem;background-color:var(--bsl-range-tracker-backgroundColor);pointer-events:none}.bsl-range-tracker.disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.bsl-range-limits{width:100%;display:flex;justify-content:space-between;font:var(--bsl-font-sm)}\n"] }]
|
|
1188
1115
|
}], propDecorators: { min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], showThumbLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showThumbLabels", required: false }] }], thumbFromRef: [{ type: i0.ViewChild, args: ['thumbFrom', { ...{ read: (ElementRef) }, isSignal: true }] }], thumbToRef: [{ type: i0.ViewChild, args: ['thumbTo', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
|
|
1189
1116
|
|
|
1190
1117
|
class SelectComponent {
|
|
1118
|
+
listBox = inject((ListBoxDirective));
|
|
1119
|
+
destroyRef = inject(DestroyRef);
|
|
1191
1120
|
id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
1192
|
-
options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
1193
|
-
bindLabel = input(...(ngDevMode ? [undefined, { debugName: "bindLabel" }] : []));
|
|
1194
1121
|
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
1195
1122
|
ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : []));
|
|
1196
1123
|
ariaLabelledBy = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : []));
|
|
1197
|
-
comparisonField = input(...(ngDevMode ? [undefined, { debugName: "comparisonField" }] : []));
|
|
1198
1124
|
iconMode = input(false, ...(ngDevMode ? [{ debugName: "iconMode" }] : []));
|
|
1199
1125
|
customIcon = input(false, ...(ngDevMode ? [{ debugName: "customIcon" }] : []));
|
|
1200
1126
|
dropdownWidth = input(...(ngDevMode ? [undefined, { debugName: "dropdownWidth" }] : []));
|
|
1201
|
-
|
|
1127
|
+
optionValueParse = input((option) => option, ...(ngDevMode ? [{ debugName: "optionValueParse" }] : []));
|
|
1128
|
+
displayLabel = input(...(ngDevMode ? [undefined, { debugName: "displayLabel" }] : []));
|
|
1202
1129
|
onChange = (_value) => { };
|
|
1203
1130
|
onTouch = () => { };
|
|
1204
1131
|
value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
1205
1132
|
open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
1206
|
-
ariaActiveDescendant = computed(() => this.listBox
|
|
1207
|
-
|
|
1133
|
+
ariaActiveDescendant = computed(() => this.listBox.ariaActiveDescendant() ?? null, ...(ngDevMode ? [{ debugName: "ariaActiveDescendant" }] : []));
|
|
1134
|
+
displayValue = computed(() => {
|
|
1135
|
+
const displayLabel = this.displayLabel();
|
|
1136
|
+
const value = this.value();
|
|
1137
|
+
if (displayLabel && value && typeof value === 'object' && displayLabel in value) {
|
|
1138
|
+
return value[displayLabel];
|
|
1139
|
+
}
|
|
1140
|
+
else {
|
|
1141
|
+
return value;
|
|
1142
|
+
}
|
|
1143
|
+
}, ...(ngDevMode ? [{ debugName: "displayValue" }] : []));
|
|
1144
|
+
ngOnInit() {
|
|
1145
|
+
this.listBox.hasAriaSelected = true;
|
|
1146
|
+
this.subscribeSelectOption();
|
|
1147
|
+
}
|
|
1148
|
+
subscribeSelectOption() {
|
|
1149
|
+
this.listBox.selectOption.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(option => {
|
|
1150
|
+
if (option) {
|
|
1151
|
+
this.value.set(this.optionValueParse()(option));
|
|
1152
|
+
this.onChange(this.value());
|
|
1153
|
+
this.hideListBox();
|
|
1154
|
+
}
|
|
1155
|
+
});
|
|
1156
|
+
}
|
|
1208
1157
|
showListBox() {
|
|
1158
|
+
if (this.open())
|
|
1159
|
+
return;
|
|
1209
1160
|
this.open.set(true);
|
|
1210
1161
|
}
|
|
1211
1162
|
hideListBox() {
|
|
1212
|
-
this.
|
|
1163
|
+
if (!this.open())
|
|
1164
|
+
return;
|
|
1213
1165
|
this.open.set(false);
|
|
1214
1166
|
}
|
|
1215
1167
|
onClick() {
|
|
@@ -1217,27 +1169,26 @@ class SelectComponent {
|
|
|
1217
1169
|
this.hideListBox();
|
|
1218
1170
|
}
|
|
1219
1171
|
else {
|
|
1220
|
-
this.
|
|
1172
|
+
if (this.listBox.listBoxOptions().length) {
|
|
1173
|
+
this.showListBox();
|
|
1174
|
+
this.listBox.setVisualMarkups(this.value());
|
|
1175
|
+
}
|
|
1221
1176
|
}
|
|
1222
1177
|
}
|
|
1223
|
-
|
|
1224
|
-
this.
|
|
1225
|
-
this.onChange(value);
|
|
1226
|
-
this.hideListBox();
|
|
1178
|
+
onListBoxClick(event) {
|
|
1179
|
+
this.listBox.onClick(event);
|
|
1227
1180
|
}
|
|
1228
1181
|
onKeydown(event) {
|
|
1229
1182
|
event.preventDefault();
|
|
1230
|
-
if (
|
|
1231
|
-
this.
|
|
1232
|
-
if (event.code === 'ArrowUp') {
|
|
1233
|
-
this.initialFocusedOptionIndex.set(this.options().length - 1);
|
|
1234
|
-
}
|
|
1235
|
-
else if (event.code === 'ArrowDown') {
|
|
1236
|
-
this.initialFocusedOptionIndex.set(0);
|
|
1237
|
-
}
|
|
1183
|
+
if (this.open()) {
|
|
1184
|
+
this.listBox.onKeydown(event);
|
|
1238
1185
|
}
|
|
1239
1186
|
else {
|
|
1240
|
-
this.
|
|
1187
|
+
this.showListBox();
|
|
1188
|
+
const markupsSet = this.listBox.setVisualMarkups(this.value());
|
|
1189
|
+
if (!markupsSet) {
|
|
1190
|
+
this.listBox.onKeydown(event);
|
|
1191
|
+
}
|
|
1241
1192
|
}
|
|
1242
1193
|
}
|
|
1243
1194
|
registerOnChange(onChange) {
|
|
@@ -1250,13 +1201,13 @@ class SelectComponent {
|
|
|
1250
1201
|
this.value.set(value);
|
|
1251
1202
|
}
|
|
1252
1203
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1253
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: SelectComponent, isStandalone: true, selector: "ngx-bsl-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null },
|
|
1204
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: SelectComponent, isStandalone: true, selector: "ngx-bsl-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, iconMode: { classPropertyName: "iconMode", publicName: "iconMode", isSignal: true, isRequired: false, transformFunction: null }, customIcon: { classPropertyName: "customIcon", publicName: "customIcon", isSignal: true, isRequired: false, transformFunction: null }, dropdownWidth: { classPropertyName: "dropdownWidth", publicName: "dropdownWidth", isSignal: true, isRequired: false, transformFunction: null }, optionValueParse: { classPropertyName: "optionValueParse", publicName: "optionValueParse", isSignal: true, isRequired: false, transformFunction: null }, displayLabel: { classPropertyName: "displayLabel", publicName: "displayLabel", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
|
|
1254
1205
|
{
|
|
1255
1206
|
provide: NG_VALUE_ACCESSOR,
|
|
1256
1207
|
useExisting: forwardRef(() => SelectComponent),
|
|
1257
1208
|
multi: true,
|
|
1258
1209
|
},
|
|
1259
|
-
],
|
|
1210
|
+
], hostDirectives: [{ directive: ListBoxDirective, inputs: ["listBoxId", "listBoxId", "listBoxAriaLabel", "listBoxAriaLabel", "listBoxAriaLabelledby", "listBoxAriaLabelledby", "optionValueEquality", "optionValueEquality"] }], ngImport: i0, template: "<button\n type=\"button\"\n role=\"combobox\"\n #selectButton\n class=\"ngx-bsl-select-button\"\n cdkOverlayOrigin\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n [class.button-icon]=\"iconMode()\"\n (click)=\"onClick()\"\n (keydown.enter)=\"onKeydown($any($event))\"\n (keydown.space)=\"onKeydown($any($event))\"\n (keydown.arrowUp)=\"onKeydown($any($event))\"\n (keydown.arrowDown)=\"onKeydown($any($event))\"\n (keydown.escape)=\"hideListBox()\">\n @if (iconMode()) {\n <ng-content select=\"[data-custom-icon]\"></ng-content>\n } @else {\n <span>{{ displayValue() }}</span>\n\n @if (customIcon()) {\n <ng-content select=\"[data-custom-icon]\"></ng-content>\n } @else {\n <ngx-bsl-icon-chevron-down></ngx-bsl-icon-chevron-down>\n }\n }\n</button>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectButton\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayWidth]=\"dropdownWidth() || selectButton.offsetWidth\"\n (overlayOutsideClick)=\"hideListBox()\">\n <!-- eslint-disable-next-line\n @angular-eslint/template/interactive-supports-focus,\n @angular-eslint/template/click-events-have-key-events -->\n <div\n role=\"listbox\"\n class=\"ngx-bsl-list-box\"\n [id]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"listBox.listBoxAriaLabel()\"\n [attr.aria-labelledby]=\"listBox.listBoxAriaLabelledby()\"\n [attr.aria-activedescendant]=\"listBox.ariaActiveDescendant()\"\n (click)=\"onListBoxClick($event)\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["ngx-bsl-select{display:block}.ngx-bsl-select-button{width:100%;justify-content:space-between;gap:.5rem}.ngx-bsl-select-button span{min-height:var(--bsl-line-height-sm);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: IconChevronDownComponent, selector: "ngx-bsl-icon-chevron-down" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1260
1211
|
}
|
|
1261
1212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
1262
1213
|
type: Component,
|
|
@@ -1264,48 +1215,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
1264
1215
|
CdkOverlayOrigin,
|
|
1265
1216
|
CdkConnectedOverlay,
|
|
1266
1217
|
IconChevronDownComponent,
|
|
1267
|
-
ListBoxComponent,
|
|
1268
|
-
ListBoxOptionComponent,
|
|
1269
|
-
ListBoxOptionValueConverterPipe,
|
|
1270
1218
|
], providers: [
|
|
1271
1219
|
{
|
|
1272
1220
|
provide: NG_VALUE_ACCESSOR,
|
|
1273
1221
|
useExisting: forwardRef(() => SelectComponent),
|
|
1274
1222
|
multi: true,
|
|
1275
1223
|
},
|
|
1276
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None,
|
|
1277
|
-
|
|
1224
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [
|
|
1225
|
+
{
|
|
1226
|
+
directive: ListBoxDirective,
|
|
1227
|
+
inputs: ['listBoxId', 'listBoxAriaLabel', 'listBoxAriaLabelledby', 'optionValueEquality'],
|
|
1228
|
+
},
|
|
1229
|
+
], template: "<button\n type=\"button\"\n role=\"combobox\"\n #selectButton\n class=\"ngx-bsl-select-button\"\n cdkOverlayOrigin\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n [class.button-icon]=\"iconMode()\"\n (click)=\"onClick()\"\n (keydown.enter)=\"onKeydown($any($event))\"\n (keydown.space)=\"onKeydown($any($event))\"\n (keydown.arrowUp)=\"onKeydown($any($event))\"\n (keydown.arrowDown)=\"onKeydown($any($event))\"\n (keydown.escape)=\"hideListBox()\">\n @if (iconMode()) {\n <ng-content select=\"[data-custom-icon]\"></ng-content>\n } @else {\n <span>{{ displayValue() }}</span>\n\n @if (customIcon()) {\n <ng-content select=\"[data-custom-icon]\"></ng-content>\n } @else {\n <ngx-bsl-icon-chevron-down></ngx-bsl-icon-chevron-down>\n }\n }\n</button>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectButton\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayWidth]=\"dropdownWidth() || selectButton.offsetWidth\"\n (overlayOutsideClick)=\"hideListBox()\">\n <!-- eslint-disable-next-line\n @angular-eslint/template/interactive-supports-focus,\n @angular-eslint/template/click-events-have-key-events -->\n <div\n role=\"listbox\"\n class=\"ngx-bsl-list-box\"\n [id]=\"listBox.listBoxId() || id() + '-list-box'\"\n [attr.aria-label]=\"listBox.listBoxAriaLabel()\"\n [attr.aria-labelledby]=\"listBox.listBoxAriaLabelledby()\"\n [attr.aria-activedescendant]=\"listBox.ariaActiveDescendant()\"\n (click)=\"onListBoxClick($event)\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["ngx-bsl-select{display:block}.ngx-bsl-select-button{width:100%;justify-content:space-between;gap:.5rem}.ngx-bsl-select-button span{min-height:var(--bsl-line-height-sm);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"] }]
|
|
1230
|
+
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], iconMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconMode", required: false }] }], customIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "customIcon", required: false }] }], dropdownWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownWidth", required: false }] }], optionValueParse: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionValueParse", required: false }] }], displayLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayLabel", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
1278
1231
|
|
|
1279
1232
|
class TooltipComponent {
|
|
1280
|
-
message = '';
|
|
1233
|
+
message = signal('', ...(ngDevMode ? [{ debugName: "message" }] : []));
|
|
1281
1234
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1282
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: TooltipComponent, isStandalone: true, selector: "ngx-bsl-tooltip", host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: '{{message}}', isInline: true, styles: ["
|
|
1235
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: TooltipComponent, isStandalone: true, selector: "ngx-bsl-tooltip", host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: '{{message()}}', isInline: true, styles: ["ngx-bsl-tooltip{padding:4px 8px;border-radius:4px;background-color:var(--bsl-tooltip-backgroundColor);font:var(--bsl-font-xs);color:var(--bsl-tooltip-textColor)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1283
1236
|
}
|
|
1284
1237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
1285
1238
|
type: Component,
|
|
1286
|
-
args: [{ selector: 'ngx-bsl-tooltip', imports: [], template: '{{message}}', host: { 'role': 'tooltip' }, styles: ["
|
|
1239
|
+
args: [{ selector: 'ngx-bsl-tooltip', imports: [], template: '{{message()}}', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'role': 'tooltip' }, styles: ["ngx-bsl-tooltip{padding:4px 8px;border-radius:4px;background-color:var(--bsl-tooltip-backgroundColor);font:var(--bsl-font-xs);color:var(--bsl-tooltip-textColor)}\n"] }]
|
|
1287
1240
|
}] });
|
|
1288
1241
|
|
|
1289
1242
|
const TOOLTIP_OVERLAY_POSITION = {
|
|
1290
|
-
|
|
1243
|
+
top: {
|
|
1291
1244
|
originX: 'center',
|
|
1292
1245
|
originY: 'top',
|
|
1293
1246
|
overlayX: 'center',
|
|
1294
1247
|
overlayY: 'bottom',
|
|
1295
1248
|
},
|
|
1296
|
-
|
|
1249
|
+
bottom: {
|
|
1297
1250
|
originX: 'center',
|
|
1298
1251
|
originY: 'bottom',
|
|
1299
1252
|
overlayX: 'center',
|
|
1300
1253
|
overlayY: 'top',
|
|
1301
1254
|
},
|
|
1302
|
-
|
|
1255
|
+
left: {
|
|
1303
1256
|
originX: 'start',
|
|
1304
1257
|
originY: 'center',
|
|
1305
1258
|
overlayX: 'end',
|
|
1306
1259
|
overlayY: 'center',
|
|
1307
1260
|
},
|
|
1308
|
-
|
|
1261
|
+
right: {
|
|
1309
1262
|
originX: 'end',
|
|
1310
1263
|
originY: 'center',
|
|
1311
1264
|
overlayX: 'start',
|
|
@@ -1313,17 +1266,9 @@ const TOOLTIP_OVERLAY_POSITION = {
|
|
|
1313
1266
|
},
|
|
1314
1267
|
};
|
|
1315
1268
|
|
|
1316
|
-
var TooltipPosition;
|
|
1317
|
-
(function (TooltipPosition) {
|
|
1318
|
-
TooltipPosition["TOP"] = "TOP";
|
|
1319
|
-
TooltipPosition["BOTTOM"] = "BOTTOM";
|
|
1320
|
-
TooltipPosition["LEFT"] = "LEFT";
|
|
1321
|
-
TooltipPosition["RIGHT"] = "RIGHT";
|
|
1322
|
-
})(TooltipPosition || (TooltipPosition = {}));
|
|
1323
|
-
|
|
1324
1269
|
class TooltipDirective {
|
|
1325
1270
|
message = input.required(...(ngDevMode ? [{ debugName: "message", alias: 'ngxBslTooltip' }] : [{ alias: 'ngxBslTooltip' }]));
|
|
1326
|
-
position = input(
|
|
1271
|
+
position = input('top', ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
1327
1272
|
overlay = inject(Overlay);
|
|
1328
1273
|
elementRef = inject(ElementRef);
|
|
1329
1274
|
overlayRef = null;
|
|
@@ -1334,7 +1279,7 @@ class TooltipDirective {
|
|
|
1334
1279
|
this.overlayRef = this.overlay.create({ positionStrategy });
|
|
1335
1280
|
const componentPortal = new ComponentPortal(TooltipComponent);
|
|
1336
1281
|
const componentInstance = this.overlayRef.attach(componentPortal);
|
|
1337
|
-
componentInstance.instance.message
|
|
1282
|
+
componentInstance.instance.message.set(this.message());
|
|
1338
1283
|
}
|
|
1339
1284
|
}
|
|
1340
1285
|
hide() {
|
|
@@ -1350,16 +1295,16 @@ class TooltipDirective {
|
|
|
1350
1295
|
.withPositions([TOOLTIP_OVERLAY_POSITION[this.position()]]);
|
|
1351
1296
|
const tooltipOffset = 8;
|
|
1352
1297
|
switch (this.position()) {
|
|
1353
|
-
case
|
|
1298
|
+
case 'top':
|
|
1354
1299
|
positionStrategy.withDefaultOffsetY(-tooltipOffset);
|
|
1355
1300
|
break;
|
|
1356
|
-
case
|
|
1301
|
+
case 'bottom':
|
|
1357
1302
|
positionStrategy.withDefaultOffsetY(tooltipOffset);
|
|
1358
1303
|
break;
|
|
1359
|
-
case
|
|
1304
|
+
case 'left':
|
|
1360
1305
|
positionStrategy.withDefaultOffsetX(-tooltipOffset);
|
|
1361
1306
|
break;
|
|
1362
|
-
case
|
|
1307
|
+
case 'right':
|
|
1363
1308
|
positionStrategy.withDefaultOffsetX(tooltipOffset);
|
|
1364
1309
|
break;
|
|
1365
1310
|
default:
|
|
@@ -1387,5 +1332,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
1387
1332
|
* Generated bundle index. Do not edit.
|
|
1388
1333
|
*/
|
|
1389
1334
|
|
|
1390
|
-
export { CheckboxComponent, ComboboxComponent, DrawerComponent, IconCheckComponent, IconChevronDownComponent, IconCompanyComponent, IconLanguageComponent, IconLocationComponent, IconMoonComponent, IconSunComponent, IconXMarkComponent,
|
|
1335
|
+
export { CheckboxComponent, ComboboxComponent, DrawerComponent, IconArrowLeftComponent, IconArrowLeftDoubleComponent, IconArrowRightComponent, IconArrowRightDoubleComponent, IconBurgerComponent, IconCheckComponent, IconChevronDownComponent, IconCompanyComponent, IconLanguageComponent, IconLocationComponent, IconMoonComponent, IconSunComponent, IconXMarkComponent, ListBoxDirective, ListBoxGroupComponent, ListBoxOptionComponent, ListBoxSeparatorComponent, PaginationComponent, RangeComponent, SelectComponent, TooltipDirective };
|
|
1391
1336
|
//# sourceMappingURL=ngx-bsl.mjs.map
|