@leanix/components 0.3.102 → 0.3.104
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/esm2020/index.mjs +3 -1
- package/esm2020/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.mjs +42 -0
- package/esm2020/lib/forms-ui/components/select-list/select-list.component.mjs +164 -0
- package/esm2020/lib/forms-ui/forms-ui.module.mjs +11 -1
- package/fesm2015/leanix-components.mjs +223 -25
- package/fesm2015/leanix-components.mjs.map +1 -1
- package/fesm2020/leanix-components.mjs +222 -25
- package/fesm2020/leanix-components.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.d.ts +16 -0
- package/lib/forms-ui/components/select-list/select-list.component.d.ts +29 -0
- package/lib/forms-ui/forms-ui.module.d.ts +48 -46
- package/package.json +1 -1
|
@@ -3631,6 +3631,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
3631
3631
|
type: Input
|
|
3632
3632
|
}] } });
|
|
3633
3633
|
|
|
3634
|
+
class ExpandedDropdownComponent extends KeyboardSelectDirective {
|
|
3635
|
+
constructor() {
|
|
3636
|
+
super(...arguments);
|
|
3637
|
+
this.NAME = 'BasicDropdownComponent';
|
|
3638
|
+
this.options = [];
|
|
3639
|
+
this.defaultOptions = [];
|
|
3640
|
+
this.onChooseItem = new EventEmitter();
|
|
3641
|
+
this.onItemSelected = new EventEmitter();
|
|
3642
|
+
}
|
|
3643
|
+
selectOption(option) {
|
|
3644
|
+
this.onItemSelected.emit(this.defaultOptions.findIndex((element) => element == option));
|
|
3645
|
+
}
|
|
3646
|
+
chooseItem() {
|
|
3647
|
+
this.onChooseItem.emit();
|
|
3648
|
+
}
|
|
3649
|
+
}
|
|
3650
|
+
ExpandedDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ExpandedDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3651
|
+
ExpandedDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ExpandedDropdownComponent, selector: "lx-expanded-dropdown", inputs: { options: "options", defaultOptions: "defaultOptions", searchKey: "searchKey" }, outputs: { onChooseItem: "onChooseItem", onItemSelected: "onItemSelected" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul class=\"options lxThinScrollbar\" #keyboardSelectContainer>\n <li *ngIf=\"searchKey && options?.length === 0\" tabindex=\"-1\" id=\"noOption\" class=\"option noOptionsAvailable\">\n {{ NAME + '.noResults' | translate }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\"></ng-container>\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span [title]=\"option.name\">\n {{ option.name }}\n </span>\n </ng-template>\n <div class=\"iconContainer\" *ngIf=\"isItemSelected(item, (selectedItem$ | async)?.element) && !searchKey\" (click)=\"chooseItem()\">\n <svg\n width=\"32px\"\n height=\"32px\"\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>Button/Text/Primary/Medium</title>\n <g id=\"choose-workspace-D\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"choose-a-workspace-D\" transform=\"translate(-911.000000, -429.000000)\">\n <g id=\"Group-3\" transform=\"translate(471.000000, 249.000000)\">\n <g id=\"Button/Text/Primary/Medium\" transform=\"translate(440.000000, 180.000000)\">\n <g id=\"UI/Shape/Rectangle-rounded-2px\" fill=\"#1666EE\">\n <circle id=\"\uD83C\uDFA8-Style\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n </g>\n <g id=\"Icons/basic/refresh\" transform=\"translate(7.000000, 11.000000)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <g id=\"arrow-right\" transform=\"translate(3.772240, 0.000000)\">\n <path\n d=\"M5.41769476,0.0873198725 L4.92588162,0.579133017 C4.80947996,0.695534673 4.80947996,0.88427129 4.92588162,1.00069779 L8.77935771,4.85414904 L0.298083627,4.85414904 C0.133466944,4.85414904 0,4.98761598 0,5.15223266 L0,5.84776113 C0,6.01237781 0.133466944,6.14584475 0.298083627,6.14584475 L8.77935771,6.14584475 L4.92588162,9.99932084 C4.80947996,10.1157225 4.80947996,10.3044591 4.92588162,10.4208856 L5.41769476,10.9126988 C5.53409642,11.0291004 5.72283304,11.0291004 5.83925953,10.9126988 L11.0411666,5.7107917 C11.1575682,5.59439004 11.1575682,5.40565343 11.0411666,5.28922693 L5.83923469,0.0873198725 C5.72283304,-0.0291066242 5.53409642,-0.0291066242 5.41769476,0.0873198725 Z\"\n id=\"Path\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n </li>\n</ul>\n", styles: [".options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:200px}.optionSearch{padding:2px}.option{cursor:pointer;display:flex;justify-content:space-between;font-size:14px;height:40px;align-items:center;padding:4px 12px;border-bottom:1px solid #e1e5eb}.option:hover{background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconContainer{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3652
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ExpandedDropdownComponent, decorators: [{
|
|
3653
|
+
type: Component,
|
|
3654
|
+
args: [{ selector: 'lx-expanded-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"options lxThinScrollbar\" #keyboardSelectContainer>\n <li *ngIf=\"searchKey && options?.length === 0\" tabindex=\"-1\" id=\"noOption\" class=\"option noOptionsAvailable\">\n {{ NAME + '.noResults' | translate }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\"></ng-container>\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span [title]=\"option.name\">\n {{ option.name }}\n </span>\n </ng-template>\n <div class=\"iconContainer\" *ngIf=\"isItemSelected(item, (selectedItem$ | async)?.element) && !searchKey\" (click)=\"chooseItem()\">\n <svg\n width=\"32px\"\n height=\"32px\"\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>Button/Text/Primary/Medium</title>\n <g id=\"choose-workspace-D\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"choose-a-workspace-D\" transform=\"translate(-911.000000, -429.000000)\">\n <g id=\"Group-3\" transform=\"translate(471.000000, 249.000000)\">\n <g id=\"Button/Text/Primary/Medium\" transform=\"translate(440.000000, 180.000000)\">\n <g id=\"UI/Shape/Rectangle-rounded-2px\" fill=\"#1666EE\">\n <circle id=\"\uD83C\uDFA8-Style\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n </g>\n <g id=\"Icons/basic/refresh\" transform=\"translate(7.000000, 11.000000)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <g id=\"arrow-right\" transform=\"translate(3.772240, 0.000000)\">\n <path\n d=\"M5.41769476,0.0873198725 L4.92588162,0.579133017 C4.80947996,0.695534673 4.80947996,0.88427129 4.92588162,1.00069779 L8.77935771,4.85414904 L0.298083627,4.85414904 C0.133466944,4.85414904 0,4.98761598 0,5.15223266 L0,5.84776113 C0,6.01237781 0.133466944,6.14584475 0.298083627,6.14584475 L8.77935771,6.14584475 L4.92588162,9.99932084 C4.80947996,10.1157225 4.80947996,10.3044591 4.92588162,10.4208856 L5.41769476,10.9126988 C5.53409642,11.0291004 5.72283304,11.0291004 5.83925953,10.9126988 L11.0411666,5.7107917 C11.1575682,5.59439004 11.1575682,5.40565343 11.0411666,5.28922693 L5.83923469,0.0873198725 C5.72283304,-0.0291066242 5.53409642,-0.0291066242 5.41769476,0.0873198725 Z\"\n id=\"Path\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n </li>\n</ul>\n", styles: [".options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:200px}.optionSearch{padding:2px}.option{cursor:pointer;display:flex;justify-content:space-between;font-size:14px;height:40px;align-items:center;padding:4px 12px;border-bottom:1px solid #e1e5eb}.option:hover{background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconContainer{display:flex}\n"] }]
|
|
3655
|
+
}], propDecorators: { options: [{
|
|
3656
|
+
type: Input
|
|
3657
|
+
}], defaultOptions: [{
|
|
3658
|
+
type: Input
|
|
3659
|
+
}], searchKey: [{
|
|
3660
|
+
type: Input
|
|
3661
|
+
}], onChooseItem: [{
|
|
3662
|
+
type: Output
|
|
3663
|
+
}], onItemSelected: [{
|
|
3664
|
+
type: Output
|
|
3665
|
+
}], optionTemplateRef: [{
|
|
3666
|
+
type: ContentChild,
|
|
3667
|
+
args: ['optionTemplate']
|
|
3668
|
+
}] } });
|
|
3669
|
+
|
|
3634
3670
|
class FormErrorComponent {
|
|
3635
3671
|
constructor() {
|
|
3636
3672
|
this.translationKeys = [];
|
|
@@ -5028,30 +5064,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
5028
5064
|
args: [PillItemComponent, { emitDistinctChangesOnly: true }]
|
|
5029
5065
|
}] } });
|
|
5030
5066
|
|
|
5031
|
-
/**
|
|
5032
|
-
* This directive is supposed to be used in combination with a single-select in
|
|
5033
|
-
* order to mark a ng-template as the template to be rendered within the select to
|
|
5034
|
-
* display the currently selected option.
|
|
5035
|
-
*
|
|
5036
|
-
* Example:
|
|
5037
|
-
*
|
|
5038
|
-
* ```
|
|
5039
|
-
* <lx-single-select>
|
|
5040
|
-
* <ng-template lxSelectedOption>{{ someValue }}</ng-template>
|
|
5041
|
-
* </lx-single-select>
|
|
5042
|
-
* ```
|
|
5043
|
-
*/
|
|
5044
|
-
class SelectedOptionDirective {
|
|
5045
|
-
}
|
|
5046
|
-
SelectedOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5047
|
-
SelectedOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: SelectedOptionDirective, selector: "[lxSelectedOption]", ngImport: i0 });
|
|
5048
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedOptionDirective, decorators: [{
|
|
5049
|
-
type: Directive,
|
|
5050
|
-
args: [{
|
|
5051
|
-
selector: '[lxSelectedOption]'
|
|
5052
|
-
}]
|
|
5053
|
-
}] });
|
|
5054
|
-
|
|
5055
5067
|
function getKeyboardNavigationEvents(sourceElement, destroyed$) {
|
|
5056
5068
|
const inputKeyboardEvents$ = fromEvent(sourceElement, 'keydown').pipe(takeUntil(destroyed$));
|
|
5057
5069
|
const verticalNavigation$ = inputKeyboardEvents$.pipe(filter((event) => includes(event.keyCode, [ARROW_UP, ARROW_DOWN])));
|
|
@@ -5085,6 +5097,183 @@ function stopKeyboardEventPropagation(evt) {
|
|
|
5085
5097
|
evt.stopImmediatePropagation();
|
|
5086
5098
|
}
|
|
5087
5099
|
|
|
5100
|
+
class SelectListComponent extends BaseSelectDirective {
|
|
5101
|
+
constructor() {
|
|
5102
|
+
super(...arguments);
|
|
5103
|
+
this.searchPlaceholder = 'Search';
|
|
5104
|
+
this.options = [];
|
|
5105
|
+
this.selectionChange = new EventEmitter();
|
|
5106
|
+
this.onChooseItem = new EventEmitter();
|
|
5107
|
+
this.highlightedIndex = 0;
|
|
5108
|
+
this.destroyed$ = new Subject();
|
|
5109
|
+
}
|
|
5110
|
+
get dropdownTmpl() {
|
|
5111
|
+
return this.explicitDropdown || this.implicitDropdown;
|
|
5112
|
+
}
|
|
5113
|
+
resetInput() {
|
|
5114
|
+
this.queryControl.reset('', { emitEvent: false });
|
|
5115
|
+
}
|
|
5116
|
+
focus() {
|
|
5117
|
+
this.searchInput.nativeElement.focus();
|
|
5118
|
+
}
|
|
5119
|
+
focusAndOpen() {
|
|
5120
|
+
this.focus();
|
|
5121
|
+
this.open.next(true);
|
|
5122
|
+
}
|
|
5123
|
+
ngOnDestroy() {
|
|
5124
|
+
super.ngOnDestroy();
|
|
5125
|
+
this.destroyed$.next();
|
|
5126
|
+
}
|
|
5127
|
+
ngAfterViewInit() {
|
|
5128
|
+
super.ngAfterViewInit();
|
|
5129
|
+
this.open
|
|
5130
|
+
.pipe(distinctUntilChanged(), filter(() => !!this.dropdownComponent), map(() => this.selection), takeUntil(this.destroyed$))
|
|
5131
|
+
.subscribe((selection) => {
|
|
5132
|
+
if (selection) {
|
|
5133
|
+
const index = this.determineHighlightIndex(this.dropdownComponent.options, selection);
|
|
5134
|
+
if (index > -1) {
|
|
5135
|
+
this.dropdownComponent.select(index);
|
|
5136
|
+
}
|
|
5137
|
+
else {
|
|
5138
|
+
this.dropdownComponent.select(0);
|
|
5139
|
+
}
|
|
5140
|
+
}
|
|
5141
|
+
else {
|
|
5142
|
+
this.dropdownComponent.select(0);
|
|
5143
|
+
}
|
|
5144
|
+
});
|
|
5145
|
+
// keyboard event handling
|
|
5146
|
+
const sourceElement = this.searchInput.nativeElement;
|
|
5147
|
+
const keyboardEvents = getKeyboardNavigationEvents(sourceElement, this.destroyed$);
|
|
5148
|
+
keyboardEvents.verticalNavigation$.subscribe((event) => {
|
|
5149
|
+
event.preventDefault();
|
|
5150
|
+
const currentIndex = this.determineHighlightIndex(this.options, this.selection);
|
|
5151
|
+
// keyboard selection while not searching
|
|
5152
|
+
if (this.searchInput.nativeElement.value === '') {
|
|
5153
|
+
if (event.key === 'ArrowDown') {
|
|
5154
|
+
if (currentIndex !== this.options.length - 1) {
|
|
5155
|
+
this.selectOption(currentIndex + 1);
|
|
5156
|
+
}
|
|
5157
|
+
else {
|
|
5158
|
+
this.selectOption(0);
|
|
5159
|
+
}
|
|
5160
|
+
}
|
|
5161
|
+
else {
|
|
5162
|
+
if (currentIndex !== 0) {
|
|
5163
|
+
this.selectOption(currentIndex - 1);
|
|
5164
|
+
}
|
|
5165
|
+
else {
|
|
5166
|
+
this.selectOption(this.options.length - 1);
|
|
5167
|
+
}
|
|
5168
|
+
}
|
|
5169
|
+
}
|
|
5170
|
+
else {
|
|
5171
|
+
if (event.key === 'ArrowDown') {
|
|
5172
|
+
if (this.highlightedIndex !== this.dropdownComponent.options.length - 1) {
|
|
5173
|
+
this.highlightedIndex = this.highlightedIndex + 1;
|
|
5174
|
+
}
|
|
5175
|
+
else {
|
|
5176
|
+
this.highlightedIndex = 0;
|
|
5177
|
+
}
|
|
5178
|
+
}
|
|
5179
|
+
else {
|
|
5180
|
+
if (this.highlightedIndex !== 0) {
|
|
5181
|
+
this.highlightedIndex = this.highlightedIndex - 1;
|
|
5182
|
+
}
|
|
5183
|
+
else {
|
|
5184
|
+
this.highlightedIndex = this.dropdownComponent.options.length - 1;
|
|
5185
|
+
}
|
|
5186
|
+
}
|
|
5187
|
+
this.dropdownComponent.select(this.highlightedIndex);
|
|
5188
|
+
}
|
|
5189
|
+
});
|
|
5190
|
+
keyboardEvents.enter$.subscribe(() => {
|
|
5191
|
+
if (this.searchInput.nativeElement.value === '') {
|
|
5192
|
+
this.onChooseItem.emit();
|
|
5193
|
+
}
|
|
5194
|
+
else {
|
|
5195
|
+
const newSelectedIndex = this.determineHighlightIndex(this.options, this.dropdownComponent.options[this.highlightedIndex]);
|
|
5196
|
+
this.selectOption(newSelectedIndex);
|
|
5197
|
+
}
|
|
5198
|
+
});
|
|
5199
|
+
this.focusAndOpen();
|
|
5200
|
+
}
|
|
5201
|
+
selectOption(index) {
|
|
5202
|
+
this.selection = this.options[index];
|
|
5203
|
+
this.selectionChange.emit(this.options[index]);
|
|
5204
|
+
this.open.next(false);
|
|
5205
|
+
this.focusAndOpen();
|
|
5206
|
+
this.dropdownComponent?.select(index);
|
|
5207
|
+
}
|
|
5208
|
+
searchKeyChanged(event) {
|
|
5209
|
+
if (event.target.value === '' || event.key === 'Escape') {
|
|
5210
|
+
this.selectOption(this.options.findIndex((option) => option == this.selection));
|
|
5211
|
+
}
|
|
5212
|
+
else if (event.key.length === 1 || ['Backspace', 'Delete'].includes(event.key)) {
|
|
5213
|
+
this.highlightedIndex = 0;
|
|
5214
|
+
this.dropdownComponent.select(0);
|
|
5215
|
+
}
|
|
5216
|
+
}
|
|
5217
|
+
determineHighlightIndex(options, selection) {
|
|
5218
|
+
return options.findIndex((option) => isEqual(selection, option));
|
|
5219
|
+
}
|
|
5220
|
+
}
|
|
5221
|
+
SelectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5222
|
+
SelectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: SelectListComponent, selector: "lx-select-list", inputs: { searchPlaceholder: "searchPlaceholder", selection: "selection", options: "options" }, outputs: { selectionChange: "selectionChange", onChooseItem: "onChooseItem" }, queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "dropdownComponent", first: true, predicate: ExpandedDropdownComponent, descendants: true }], viewQueries: [{ propertyName: "implicitSelectedOption", first: true, predicate: ["selectedOption"], descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"selectContainer focused\">\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div class=\"searchWrapper\">\n <input\n #searchInput\n id=\"searchInput\"\n class=\"searchInput\"\n type=\"text\"\n (keyup)=\"searchKeyChanged($event)\"\n [formControl]=\"queryControl\"\n [placeholder]=\"searchPlaceholder\"\n />\n <label for=\"searchInput\" class=\"fa fa-search\"></label>\n </div>\n </div>\n </div>\n <div class=\"optionsContainer\" #optionsContainer>\n <ng-container>\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [".selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;z-index:1049;background:#fff;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0;border:none;box-shadow:none;font-size:14px}.selectContainer .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0;border:none;border-top:1px solid #e1e5eb;box-shadow:none;margin-top:1px}.selectContainer .inputContainer,.selectContainer .searchInput,.selectContainer .selection,.selectContainer .iconContainer{height:29px}.selectContainer .inputContainer{line-height:29px}.selectContainer .selectionContainer{min-height:29px}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.searchInput{width:100%;-webkit-appearance:none;appearance:none;padding-left:27px;border:0;background:transparent;position:relative;cursor:inherit}.searchInput::-ms-clear{display:none}.searchInput:focus{outline:0}.iconContainer{display:flex;align-items:center;text-align:center}.fa-search{position:absolute;left:3px;top:calc(50% - .5em);color:#526179}.searchWrapper{position:relative}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
5223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectListComponent, decorators: [{
|
|
5224
|
+
type: Component,
|
|
5225
|
+
args: [{ selector: 'lx-select-list', template: "<div class=\"selectContainer focused\">\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div class=\"searchWrapper\">\n <input\n #searchInput\n id=\"searchInput\"\n class=\"searchInput\"\n type=\"text\"\n (keyup)=\"searchKeyChanged($event)\"\n [formControl]=\"queryControl\"\n [placeholder]=\"searchPlaceholder\"\n />\n <label for=\"searchInput\" class=\"fa fa-search\"></label>\n </div>\n </div>\n </div>\n <div class=\"optionsContainer\" #optionsContainer>\n <ng-container>\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [".selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;z-index:1049;background:#fff;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0;border:none;box-shadow:none;font-size:14px}.selectContainer .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0;border:none;border-top:1px solid #e1e5eb;box-shadow:none;margin-top:1px}.selectContainer .inputContainer,.selectContainer .searchInput,.selectContainer .selection,.selectContainer .iconContainer{height:29px}.selectContainer .inputContainer{line-height:29px}.selectContainer .selectionContainer{min-height:29px}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.searchInput{width:100%;-webkit-appearance:none;appearance:none;padding-left:27px;border:0;background:transparent;position:relative;cursor:inherit}.searchInput::-ms-clear{display:none}.searchInput:focus{outline:0}.iconContainer{display:flex;align-items:center;text-align:center}.fa-search{position:absolute;left:3px;top:calc(50% - .5em);color:#526179}.searchWrapper{position:relative}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}\n"] }]
|
|
5226
|
+
}], propDecorators: { searchPlaceholder: [{
|
|
5227
|
+
type: Input
|
|
5228
|
+
}], selection: [{
|
|
5229
|
+
type: Input
|
|
5230
|
+
}], options: [{
|
|
5231
|
+
type: Input
|
|
5232
|
+
}], selectionChange: [{
|
|
5233
|
+
type: Output
|
|
5234
|
+
}], onChooseItem: [{
|
|
5235
|
+
type: Output
|
|
5236
|
+
}], explicitDropdown: [{
|
|
5237
|
+
type: ContentChild,
|
|
5238
|
+
args: [SelectDropdownDirective, { read: TemplateRef, static: true }]
|
|
5239
|
+
}], dropdownComponent: [{
|
|
5240
|
+
type: ContentChild,
|
|
5241
|
+
args: [ExpandedDropdownComponent, { static: false }]
|
|
5242
|
+
}], implicitSelectedOption: [{
|
|
5243
|
+
type: ViewChild,
|
|
5244
|
+
args: ['selectedOption', { static: true }]
|
|
5245
|
+
}], implicitDropdown: [{
|
|
5246
|
+
type: ViewChild,
|
|
5247
|
+
args: ['dropdown', { static: true }]
|
|
5248
|
+
}], searchInput: [{
|
|
5249
|
+
type: ViewChild,
|
|
5250
|
+
args: ['searchInput', { static: true }]
|
|
5251
|
+
}] } });
|
|
5252
|
+
|
|
5253
|
+
/**
|
|
5254
|
+
* This directive is supposed to be used in combination with a single-select in
|
|
5255
|
+
* order to mark a ng-template as the template to be rendered within the select to
|
|
5256
|
+
* display the currently selected option.
|
|
5257
|
+
*
|
|
5258
|
+
* Example:
|
|
5259
|
+
*
|
|
5260
|
+
* ```
|
|
5261
|
+
* <lx-single-select>
|
|
5262
|
+
* <ng-template lxSelectedOption>{{ someValue }}</ng-template>
|
|
5263
|
+
* </lx-single-select>
|
|
5264
|
+
* ```
|
|
5265
|
+
*/
|
|
5266
|
+
class SelectedOptionDirective {
|
|
5267
|
+
}
|
|
5268
|
+
SelectedOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5269
|
+
SelectedOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: SelectedOptionDirective, selector: "[lxSelectedOption]", ngImport: i0 });
|
|
5270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedOptionDirective, decorators: [{
|
|
5271
|
+
type: Directive,
|
|
5272
|
+
args: [{
|
|
5273
|
+
selector: '[lxSelectedOption]'
|
|
5274
|
+
}]
|
|
5275
|
+
}] });
|
|
5276
|
+
|
|
5088
5277
|
class SingleSelectComponent extends BaseSelectDirective {
|
|
5089
5278
|
constructor(cd) {
|
|
5090
5279
|
super();
|
|
@@ -5696,6 +5885,7 @@ class LxFormsModule {
|
|
|
5696
5885
|
}
|
|
5697
5886
|
LxFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LxFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5698
5887
|
LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: LxFormsModule, declarations: [BasicDropdownComponent,
|
|
5888
|
+
ExpandedDropdownComponent,
|
|
5699
5889
|
BasicDropdownItemComponent,
|
|
5700
5890
|
BreadcrumbComponent,
|
|
5701
5891
|
CurrencyInputComponent,
|
|
@@ -5725,6 +5915,7 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
5725
5915
|
SelectedOptionDirective,
|
|
5726
5916
|
SelectDropdownDirective,
|
|
5727
5917
|
SingleSelectComponent,
|
|
5918
|
+
SelectListComponent,
|
|
5728
5919
|
SliderToggleComponent,
|
|
5729
5920
|
SortingDropdownComponent,
|
|
5730
5921
|
SortingDropdownTriggerComponent,
|
|
@@ -5739,6 +5930,7 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
5739
5930
|
OverlayModule,
|
|
5740
5931
|
LxCoreUiModule,
|
|
5741
5932
|
LxDragAndDropListModule], exports: [BasicDropdownComponent,
|
|
5933
|
+
ExpandedDropdownComponent,
|
|
5742
5934
|
BasicDropdownItemComponent,
|
|
5743
5935
|
BreadcrumbComponent,
|
|
5744
5936
|
CurrencyInputComponent,
|
|
@@ -5767,6 +5959,7 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
5767
5959
|
SelectableItemDirective,
|
|
5768
5960
|
SelectDropdownDirective,
|
|
5769
5961
|
SelectedOptionDirective,
|
|
5962
|
+
SelectListComponent,
|
|
5770
5963
|
SingleSelectComponent,
|
|
5771
5964
|
SliderToggleComponent,
|
|
5772
5965
|
SortingDropdownComponent,
|
|
@@ -5790,6 +5983,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
5790
5983
|
args: [{
|
|
5791
5984
|
declarations: [
|
|
5792
5985
|
BasicDropdownComponent,
|
|
5986
|
+
ExpandedDropdownComponent,
|
|
5793
5987
|
BasicDropdownItemComponent,
|
|
5794
5988
|
BreadcrumbComponent,
|
|
5795
5989
|
CurrencyInputComponent,
|
|
@@ -5819,6 +6013,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
5819
6013
|
SelectedOptionDirective,
|
|
5820
6014
|
SelectDropdownDirective,
|
|
5821
6015
|
SingleSelectComponent,
|
|
6016
|
+
SelectListComponent,
|
|
5822
6017
|
SliderToggleComponent,
|
|
5823
6018
|
SortingDropdownComponent,
|
|
5824
6019
|
SortingDropdownTriggerComponent,
|
|
@@ -5841,6 +6036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
5841
6036
|
],
|
|
5842
6037
|
exports: [
|
|
5843
6038
|
BasicDropdownComponent,
|
|
6039
|
+
ExpandedDropdownComponent,
|
|
5844
6040
|
BasicDropdownItemComponent,
|
|
5845
6041
|
BreadcrumbComponent,
|
|
5846
6042
|
CurrencyInputComponent,
|
|
@@ -5869,6 +6065,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
5869
6065
|
SelectableItemDirective,
|
|
5870
6066
|
SelectDropdownDirective,
|
|
5871
6067
|
SelectedOptionDirective,
|
|
6068
|
+
SelectListComponent,
|
|
5872
6069
|
SingleSelectComponent,
|
|
5873
6070
|
SliderToggleComponent,
|
|
5874
6071
|
SortingDropdownComponent,
|
|
@@ -6687,5 +6884,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
|
|
|
6687
6884
|
* Generated bundle index. Do not edit.
|
|
6688
6885
|
*/
|
|
6689
6886
|
|
|
6690
|
-
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContrastColorPipe, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HighlightRangePipe, HighlightTermPipe, HtmlDirective, IconComponent, IconScaleComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTooltipModule, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
|
|
6887
|
+
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContrastColorPipe, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, ExpandedDropdownComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HighlightRangePipe, HighlightTermPipe, HtmlDirective, IconComponent, IconScaleComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTooltipModule, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectListComponent, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
|
|
6691
6888
|
//# sourceMappingURL=leanix-components.mjs.map
|