@leanix/components 0.2.98 → 0.2.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bundles/leanix-components.umd.js +58 -39
  2. package/bundles/leanix-components.umd.js.map +1 -1
  3. package/esm2015/lib/core-ui/directives/autoclose-group.service.js.map +1 -1
  4. package/esm2015/lib/core-ui/directives/html.directive.js +2 -1
  5. package/esm2015/lib/core-ui/directives/html.directive.js.map +1 -1
  6. package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +1 -1
  7. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js.map +1 -1
  8. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js.map +1 -1
  9. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js +0 -1
  10. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js.map +1 -1
  11. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js +4 -4
  12. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js.map +1 -1
  13. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js +4 -4
  14. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js.map +1 -1
  15. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js +9 -6
  16. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js.map +1 -1
  17. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +1 -0
  18. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js.map +1 -1
  19. package/esm2015/lib/forms-ui/components/icon/icon.component.js.map +1 -1
  20. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js +3 -2
  21. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js.map +1 -1
  22. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js +3 -1
  23. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js.map +1 -1
  24. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js +2 -3
  25. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js.map +1 -1
  26. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js +1 -1
  27. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js.map +1 -1
  28. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js +8 -6
  29. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js.map +1 -1
  30. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js +2 -0
  31. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js.map +1 -1
  32. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js +2 -0
  33. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js.map +1 -1
  34. package/esm2015/lib/forms-ui/models/base-select.directive.js +1 -1
  35. package/esm2015/lib/forms-ui/models/base-select.directive.js.map +1 -1
  36. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js +1 -1
  37. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js.map +1 -1
  38. package/esm2015/lib/shared/date-helpers.js.map +1 -1
  39. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js +12 -5
  40. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js.map +1 -1
  41. package/fesm2015/leanix-components.js +56 -37
  42. package/fesm2015/leanix-components.js.map +1 -1
  43. package/lib/core-ui/directives/html.directive.d.ts +1 -1
  44. package/lib/forms-ui/components/date-input/date-input.component.d.ts +6 -6
  45. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +2 -2
  46. package/lib/forms-ui/components/keyboard-select.directive.d.ts +1 -1
  47. package/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.d.ts +2 -2
  48. package/lib/forms-ui/directives/keyboard-action-source.directive.d.ts +1 -1
  49. package/lib/forms-ui/helpers/keyboard-navigation.helpers.d.ts +1 -1
  50. package/lib/forms-ui/models/base-select.directive.d.ts +1 -1
  51. package/package.json +1 -1
@@ -338,7 +338,6 @@
338
338
  case 'right':
339
339
  return 6;
340
340
  }
341
- break;
342
341
  case 'top':
343
342
  case 'bottom':
344
343
  switch (position.x) {
@@ -428,17 +427,17 @@
428
427
  });
429
428
  TooltipDirective.prototype.ngOnChanges = function (changes) {
430
429
  var _a, _b;
431
- if (this.overlayRef && changes.lxTooltipPosition) {
430
+ if (this.overlayRef && changes['lxTooltipPosition']) {
432
431
  this.overlayRef.updatePositionStrategy(this.positionStrategy);
433
432
  }
434
433
  if (this.tooltipRef) {
435
- if (changes.lxTooltipPosition) {
434
+ if (changes['lxTooltipPosition']) {
436
435
  this.tooltipRef.instance.position = this.position;
437
436
  }
438
- if (changes.lxTooltipIsHtmlContent) {
437
+ if (changes['lxTooltipIsHtmlContent']) {
439
438
  this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
440
439
  }
441
- if (changes.content) {
440
+ if (changes['content']) {
442
441
  if (this.content) {
443
442
  this.tooltipRef.instance.content = this.content;
444
443
  (_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.updatePosition();
@@ -582,8 +581,9 @@
582
581
  this.lxHtml = '';
583
582
  }
584
583
  HtmlDirective.prototype.ngOnChanges = function (changes) {
584
+ var _a;
585
585
  if ('lxHtml' in changes) {
586
- var html = this.sanitizer.sanitize(i0.SecurityContext.HTML, this.lxHtml);
586
+ var html = this.sanitizer.sanitize(i0.SecurityContext.HTML, (_a = this.lxHtml) !== null && _a !== void 0 ? _a : '');
587
587
  this.elementRef.nativeElement.innerHTML = html || '';
588
588
  }
589
589
  };
@@ -2148,7 +2148,7 @@
2148
2148
  var _this = this;
2149
2149
  var itemsChanges$ = this._items.changes.pipe(operators.startWith(this._items));
2150
2150
  this.keyboardSelectAction
2151
- .pipe(operators.withLatestFrom(this.selectedItemIndex$, itemsChanges$), operators.takeUntil(this.destroyed$))
2151
+ .pipe(operators.filter(function (action) { return !!action; }), operators.withLatestFrom(this.selectedItemIndex$, itemsChanges$), operators.takeUntil(this.destroyed$))
2152
2152
  .subscribe(function (_b) {
2153
2153
  var _c = __read(_b, 3), action = _c[0], index = _c[1], items = _c[2];
2154
2154
  return _this.adaptSelectedIndexBasedOnKeyboardSelectAction(action, index, items);
@@ -2162,8 +2162,9 @@
2162
2162
  i6.combineLatest([itemsChanges$, this.selectedItemIndex$])
2163
2163
  .pipe(operators.delay(0), operators.map(function (_b) {
2164
2164
  var _c = __read(_b, 2), items = _c[0], index = _c[1];
2165
+ var _a;
2165
2166
  if (index > -1) {
2166
- return items.toArray()[index];
2167
+ return (_a = items.toArray()[index]) !== null && _a !== void 0 ? _a : null;
2167
2168
  }
2168
2169
  else {
2169
2170
  return null;
@@ -2376,6 +2377,8 @@
2376
2377
  case ESCAPE:
2377
2378
  case TAB:
2378
2379
  return exports.KeyboardSelectAction.CLOSE;
2380
+ default:
2381
+ return null;
2379
2382
  }
2380
2383
  }), operators.takeUntil(this.destroyed$));
2381
2384
  }
@@ -2603,9 +2606,8 @@
2603
2606
  this.trigger.keyboardActions$
2604
2607
  .pipe(operators.filter(function (keyboardSelectAction) { return keyboardSelectAction === exports.KeyboardSelectAction.EXECUTE; }), operators.withLatestFrom(this.highlightedOptionIndex$, function (_, index) { return index; }))
2605
2608
  .subscribe(function (index) {
2606
- if (_this.options[index]) {
2607
- _this.options[index].selectOption();
2608
- }
2609
+ var _a;
2610
+ (_a = _this.options[index]) === null || _a === void 0 ? void 0 : _a.selectOption();
2609
2611
  });
2610
2612
  /** Combined stream of all of the child options' select outputs. */
2611
2613
  this._options.changes
@@ -2614,8 +2616,8 @@
2614
2616
  _this.closeDropdown();
2615
2617
  });
2616
2618
  i6.combineLatest([optionsChanges$, this.highlightedOptionIndex$])
2617
- .pipe(operators.delay(0), operators.map(function (_a) {
2618
- var _b = __read(_a, 2), options = _b[0], index = _b[1];
2619
+ .pipe(operators.delay(0), operators.map(function (_b) {
2620
+ var _c = __read(_b, 2), options = _c[0], index = _c[1];
2619
2621
  return options[index];
2620
2622
  }), operators.distinctUntilChanged(), operators.takeUntil(this.destroyed$))
2621
2623
  .subscribe(function (optionToBeHighlighted) {
@@ -2664,7 +2666,8 @@
2664
2666
  }
2665
2667
  };
2666
2668
  CdkOptionsDropdownComponent.prototype.expand = function (currentIndex, items) {
2667
- if (items[currentIndex].hasSubdropdown) {
2669
+ var _a;
2670
+ if ((_a = items[currentIndex]) === null || _a === void 0 ? void 0 : _a.hasSubdropdown) {
2668
2671
  this.isSubdropdownExpanded = true;
2669
2672
  return this.next(currentIndex, items);
2670
2673
  }
@@ -3223,6 +3226,8 @@
3223
3226
  return dateString !== null && /^\d\d\d\d-\d\d-\d\d$/.test(dateString) && !fp.isNaN(Date.parse(dateString));
3224
3227
  }
3225
3228
 
3229
+ var DEFAULT_MIN_DATE = new Date('0000-01-01');
3230
+ var DEFAULT_MAX_DATE = new Date('9999-12-31');
3226
3231
  var DateInputComponent = /** @class */ (function () {
3227
3232
  function DateInputComponent(cd, dateFormatsProvider, getDateFnLocale) {
3228
3233
  this.cd = cd;
@@ -3239,8 +3244,8 @@
3239
3244
  this.placeholder = 'yyyy-mm-dd';
3240
3245
  //--- Inputs replicated from datepicker; (selectionDone) is not needed, as (dateChange) is equivalen
3241
3246
  this.datepickerMode = 'day'; // sets datepicker mode, supports: day, month, year
3242
- this.minDate = null; // oldest selectable date
3243
- this.maxDate = null; // latest selectable date
3247
+ this.minDate = DEFAULT_MIN_DATE; // oldest selectable date
3248
+ this.maxDate = DEFAULT_MAX_DATE; // latest selectable date
3244
3249
  this.minMode = 'day'; // set lower datepicker mode, supports: day, month, year
3245
3250
  this.maxMode = 'year'; // sets upper datepicker mode, supports: day, month, year
3246
3251
  this.showWeeks = true; // if false week numbers will be hidden
@@ -3254,8 +3259,9 @@
3254
3259
  this.yearRange = 20; // number of years displayed in year selection
3255
3260
  this.onlyCurrentMonth = false; // if true only dates from the currently displayed month will be shown
3256
3261
  this.shortcutPropagation = false; // if true shortcut`s event propagation will be disabled
3262
+ this.customClass = []; // array of custom css classes to be applied to
3263
+ this.dateDisabled = []; // array of disabled dates if mode is day, or years, etc.
3257
3264
  this.showDatepicker = false;
3258
- this.initDate = null;
3259
3265
  this.destroyed$ = new i6.Subject();
3260
3266
  this.hasError = false;
3261
3267
  this.propagateChange = function (_date) { };
@@ -3278,7 +3284,8 @@
3278
3284
  DateInputComponent.prototype.ngOnInit = function () {
3279
3285
  var _this = this;
3280
3286
  this.initDateString$.pipe(operators.takeUntil(this.destroyed$)).subscribe(function (date) {
3281
- _this.initDate = createDateFromDateString(date);
3287
+ var _a;
3288
+ _this.initDate = (_a = createDateFromDateString(date)) !== null && _a !== void 0 ? _a : dateFns.startOfDay(new Date());
3282
3289
  });
3283
3290
  };
3284
3291
  DateInputComponent.prototype.ngOnChanges = function (changes) {
@@ -3305,7 +3312,6 @@
3305
3312
  DateInputComponent.prototype.hidePopup = function () {
3306
3313
  if (this.showDatepicker) {
3307
3314
  this.showDatepicker = false;
3308
- return false;
3309
3315
  }
3310
3316
  };
3311
3317
  DateInputComponent.prototype.onTab = function (forward) {
@@ -3541,6 +3547,7 @@
3541
3547
  */
3542
3548
  this.moveToIndex = new i0.EventEmitter();
3543
3549
  this.moveItem = new i0.EventEmitter();
3550
+ this.itemTemplateRef = null;
3544
3551
  }
3545
3552
  DragAndDropListComponent.prototype.ngOnInit = function () {
3546
3553
  if (this.items && !this.itemIdProperty) {
@@ -3808,7 +3815,7 @@
3808
3815
  _this.selectFirstOption();
3809
3816
  });
3810
3817
  this.open
3811
- .pipe(operators.takeUntil(this.destroyed$), operators.distinctUntilChanged(), operators.filter(function () { return !_this.disabled; }))
3818
+ .pipe(operators.filter(function () { return !_this.disabled; }), operators.distinctUntilChanged(), operators.takeUntil(this.destroyed$))
3812
3819
  .subscribe(function (isOpen) {
3813
3820
  _this.dropdownOpen = isOpen;
3814
3821
  if (isOpen) {
@@ -4208,6 +4215,8 @@
4208
4215
  return exports.KeyboardSelectAction.PREV;
4209
4216
  case ARROW_DOWN:
4210
4217
  return exports.KeyboardSelectAction.NEXT;
4218
+ default:
4219
+ return null;
4211
4220
  }
4212
4221
  }), operators.takeUntil(this.destroyed$))
4213
4222
  .subscribe(this.optionsKeyboardSelectAction$);
@@ -4262,7 +4271,7 @@
4262
4271
  useExisting: i0.forwardRef(function () { return MultiSelectComponent; }),
4263
4272
  multi: true
4264
4273
  }
4265
- ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "queryInput", first: true, predicate: ResponsiveInputComponent, descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.focused]=\"isInputFocused\"\n [class.hasSelection]=\"selection?.length > 0\"\n [class.smallSize]=\"size === 'small'\"\n [class.disabled]=\"disabled\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectedChoicesContainer\">\n <div *ngIf=\"(selection?.length === 0 || !selection) && !queryControl?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div class=\"selection\">\n <ng-content select=\".pills\"></ng-content>\n </div>\n <lx-responsive-input\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; blur.emit()\"\n [formControl]=\"queryControl\"\n (keydown.enter)=\"$event.preventDefault()\"\n ></lx-responsive-input>\n <i #toggle [hidden]=\"disabled\" class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":root{--lx-color-danger:#f96464;--lx-color-grey80:#c2c9d6;--lx-color-grey90:#e1e5eb}.selectContainer:not(.open).focused{outline:0;border:1px solid #59f}.selectContainer.open.bottom .optionsContainer{box-shadow:0 6px 6px 0 rgba(33,37,41,.2)}.selectContainer.open.bottom .optionsContainer,.selectContainer.open.top .optionsContainer{border-bottom:1px solid #e1e5eb;border-left:1px solid #e1e5eb;border-right:1px solid #e1e5eb}.selectContainer.open.top .optionsContainer{box-shadow:0 -4px 6px 0 rgba(33,37,41,.2)}.selectContainer{position:relative;height:auto;cursor:text;padding:0;box-sizing:border-box;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px rgba(0,0,0,.07);border-radius:3px;background:#fff}.selectContainer.smallSize .selectedChoicesContainer{min-height:22px}.selectContainer.smallSize .selectedChoicesContainer .placeholder{line-height:24px}.selectContainer.smallSize lx-responsive-input{height:22px}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed}.selectContainer.disabled lx-responsive-input{display:none}.selectContainer:not(.hasSelection){padding-left:12px}.selectContainer.open{z-index:1052;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px 0 rgba(33,37,41,.2);border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{top:100%;border-top:0;margin-top:0}.selectContainer.open.top{box-shadow:0 -4px 6px 0 rgba(33,37,41,.2);border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{margin-bottom:0;border-bottom:0;top:none;bottom:100%}.selectContainer .selectedChoicesContainer{padding-right:25px;min-height:29px}.selectContainer .selectedChoicesContainer .placeholder{position:absolute;left:12px;right:25px;top:0;bottom:0;line-height:29px;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis;padding-left:4px}.selectContainer .selectedChoicesContainer>.fa-angle-down{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer}.selectContainer .selection{display:inline;cursor:default}.selectContainer .optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;background:#fff;z-index:1}lx-responsive-input{height:29px;padding-left:4px}.backdrop{z-index:1051;position:fixed;top:0;bottom:0;left:0;right:0}"], components: [{ type: ResponsiveInputComponent, selector: "lx-responsive-input", outputs: ["focus", "blur"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i3__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2__namespace.AsyncPipe } });
4274
+ ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "queryInput", first: true, predicate: ResponsiveInputComponent, descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.focused]=\"isInputFocused\"\n [class.hasSelection]=\"selection && selection.length > 0\"\n [class.smallSize]=\"size === 'small'\"\n [class.disabled]=\"disabled\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectedChoicesContainer\">\n <div *ngIf=\"(selection?.length === 0 || !selection) && !queryControl?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div class=\"selection\">\n <ng-content select=\".pills\"></ng-content>\n </div>\n <lx-responsive-input\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; blur.emit()\"\n [formControl]=\"queryControl\"\n (keydown.enter)=\"$event.preventDefault()\"\n ></lx-responsive-input>\n <i #toggle [hidden]=\"disabled\" class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":root{--lx-color-danger:#f96464;--lx-color-grey80:#c2c9d6;--lx-color-grey90:#e1e5eb}.selectContainer:not(.open).focused{outline:0;border:1px solid #59f}.selectContainer.open.bottom .optionsContainer{box-shadow:0 6px 6px 0 rgba(33,37,41,.2)}.selectContainer.open.bottom .optionsContainer,.selectContainer.open.top .optionsContainer{border-bottom:1px solid #e1e5eb;border-left:1px solid #e1e5eb;border-right:1px solid #e1e5eb}.selectContainer.open.top .optionsContainer{box-shadow:0 -4px 6px 0 rgba(33,37,41,.2)}.selectContainer{position:relative;height:auto;cursor:text;padding:0;box-sizing:border-box;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px rgba(0,0,0,.07);border-radius:3px;background:#fff}.selectContainer.smallSize .selectedChoicesContainer{min-height:22px}.selectContainer.smallSize .selectedChoicesContainer .placeholder{line-height:24px}.selectContainer.smallSize lx-responsive-input{height:22px}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed}.selectContainer.disabled lx-responsive-input{display:none}.selectContainer:not(.hasSelection){padding-left:12px}.selectContainer.open{z-index:1052;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px 0 rgba(33,37,41,.2);border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{top:100%;border-top:0;margin-top:0}.selectContainer.open.top{box-shadow:0 -4px 6px 0 rgba(33,37,41,.2);border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{margin-bottom:0;border-bottom:0;top:none;bottom:100%}.selectContainer .selectedChoicesContainer{padding-right:25px;min-height:29px}.selectContainer .selectedChoicesContainer .placeholder{position:absolute;left:12px;right:25px;top:0;bottom:0;line-height:29px;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis;padding-left:4px}.selectContainer .selectedChoicesContainer>.fa-angle-down{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer}.selectContainer .selection{display:inline;cursor:default}.selectContainer .optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;background:#fff;z-index:1}lx-responsive-input{height:29px;padding-left:4px}.backdrop{z-index:1051;position:fixed;top:0;bottom:0;left:0;right:0}"], components: [{ type: ResponsiveInputComponent, selector: "lx-responsive-input", outputs: ["focus", "blur"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i3__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2__namespace.AsyncPipe } });
4266
4275
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: MultiSelectComponent, decorators: [{
4267
4276
  type: i0.Component,
4268
4277
  args: [{
@@ -4466,9 +4475,8 @@
4466
4475
  this.trigger.keyboardActions$
4467
4476
  .pipe(operators.filter(function (keyboardSelectAction) { return keyboardSelectAction === exports.KeyboardSelectAction.EXECUTE; }), operators.withLatestFrom(this.highlightedOptionIndex$, function (_, index) { return index; }))
4468
4477
  .subscribe(function (index) {
4469
- if (_this.options[index]) {
4470
- _this.options[index].selectOption();
4471
- }
4478
+ var _a;
4479
+ (_a = _this.options[index]) === null || _a === void 0 ? void 0 : _a.selectOption();
4472
4480
  });
4473
4481
  /** Combined stream of all of the child options' select outputs. */
4474
4482
  this._options.changes
@@ -4477,8 +4485,8 @@
4477
4485
  _this.closeDropdown();
4478
4486
  });
4479
4487
  i6.combineLatest(optionsChanges$, this.highlightedOptionIndex$)
4480
- .pipe(operators.delay(0), operators.map(function (_a) {
4481
- var _b = __read(_a, 2), options = _b[0], index = _b[1];
4488
+ .pipe(operators.delay(0), operators.map(function (_b) {
4489
+ var _c = __read(_b, 2), options = _c[0], index = _c[1];
4482
4490
  return options[index];
4483
4491
  }), operators.distinctUntilChanged(), operators.takeUntil(this.destroyed$))
4484
4492
  .subscribe(function (optionToBeHighlighted) {
@@ -5181,6 +5189,8 @@
5181
5189
  return exports.KeyboardSelectAction.PREV;
5182
5190
  case ARROW_DOWN:
5183
5191
  return exports.KeyboardSelectAction.NEXT;
5192
+ default:
5193
+ return null;
5184
5194
  }
5185
5195
  }));
5186
5196
  var enter$ = inputKeyboardEvents$.pipe(operators.filter(function (event) { return event.keyCode === ENTER; }));
@@ -5507,7 +5517,7 @@
5507
5517
  return SliderToggleComponent;
5508
5518
  }());
5509
5519
  SliderToggleComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: SliderToggleComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
5510
- SliderToggleComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: SliderToggleComponent, selector: "lx-slider-toggle", inputs: { value: "value", size: "size", disabled: "disabled", label: "label", elementId: "elementId" }, outputs: { toggle: "toggle" }, ngImport: i0__namespace, template: "<div class=\"wrapper\" [class.withLabel]=\"label\" [class.disabled]=\"disabled\" [attr.id]=\"id\" [class.small]=\"size === 'small'\">\n <span *ngIf=\"label\" class=\"labelText\" [class.off]=\"!value\">{{ label }}</span>\n <label class=\"checkbox\" [class.small]=\"size === 'small'\">\n <input\n #inputRef\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (click)=\"$event.target.blur()\"\n (change)=\"onToggle()\"\n (keydown.space)=\"focus(inputRef)\"\n (keydown.enter)=\"onToggle()\"\n />\n <span class=\"slider\"></span>\n </label>\n</div>\n", styles: [":root{--lx-color-danger:#f96464;--lx-color-grey80:#c2c9d6;--lx-color-grey90:#e1e5eb}:host{display:block}.wrapper{display:inline-block}.wrapper.withLabel{display:block}.wrapper.withLabel .checkbox{float:right;margin-top:1px}.disabled{opacity:.5}.disabled .slider{cursor:default}.checkbox{position:relative;display:inline-block;margin:0}.labelText{color:#2a303d}.labelText.off{color:#526179}input{opacity:0;width:0;height:0;margin:0;padding:0}.small.checkbox{width:22px;height:14px}.small.wrapper:not(.withLabel){height:14px}.small .labelText{font-size:12px}.small .slider{border-radius:7px}.small .slider:before{height:12px;width:12px;left:1px;bottom:1px}.small input:checked+.slider:before{transform:translateX(8px)}input:focus+.slider:before{box-shadow:0 0 0 6px $transparentGrayBoxShadowColor;transition:box-shadow .2s ease}.slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#b2bccc}.slider,.slider:before{position:absolute;transition:transform .2s}.slider:before{content:\"\";border-radius:50%;background-color:#fff}input:checked+.slider{background-color:#33cc58}"], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
5520
+ SliderToggleComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: SliderToggleComponent, selector: "lx-slider-toggle", inputs: { value: "value", size: "size", disabled: "disabled", label: "label", elementId: "elementId" }, outputs: { toggle: "toggle" }, ngImport: i0__namespace, template: "<div class=\"wrapper\" [class.withLabel]=\"label\" [class.disabled]=\"disabled\" [attr.id]=\"id\" [class.small]=\"size === 'small'\">\n <span *ngIf=\"label\" class=\"labelText\" [class.off]=\"!value\">{{ label }}</span>\n <label class=\"checkbox\" [class.small]=\"size === 'small'\">\n <input\n #inputRef\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (click)=\"inputRef.blur()\"\n (change)=\"onToggle()\"\n (keydown.space)=\"focus(inputRef)\"\n (keydown.enter)=\"onToggle()\"\n />\n <span class=\"slider\"></span>\n </label>\n</div>\n", styles: [":root{--lx-color-danger:#f96464;--lx-color-grey80:#c2c9d6;--lx-color-grey90:#e1e5eb}:host{display:block}.wrapper{display:inline-block}.wrapper.withLabel{display:block}.wrapper.withLabel .checkbox{float:right;margin-top:1px}.disabled{opacity:.5}.disabled .slider{cursor:default}.checkbox{position:relative;display:inline-block;margin:0}.labelText{color:#2a303d}.labelText.off{color:#526179}input{opacity:0;width:0;height:0;margin:0;padding:0}.small.checkbox{width:22px;height:14px}.small.wrapper:not(.withLabel){height:14px}.small .labelText{font-size:12px}.small .slider{border-radius:7px}.small .slider:before{height:12px;width:12px;left:1px;bottom:1px}.small input:checked+.slider:before{transform:translateX(8px)}input:focus+.slider:before{box-shadow:0 0 0 6px $transparentGrayBoxShadowColor;transition:box-shadow .2s ease}.slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#b2bccc}.slider,.slider:before{position:absolute;transition:transform .2s}.slider:before{content:\"\";border-radius:50%;background-color:#fff}input:checked+.slider{background-color:#33cc58}"], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
5511
5521
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: SliderToggleComponent, decorators: [{
5512
5522
  type: i0.Component,
5513
5523
  args: [{
@@ -5562,7 +5572,7 @@
5562
5572
  }
5563
5573
  SortingDropdownComponent.prototype.ngOnInit = function () {
5564
5574
  if (!this.currentSorting) {
5565
- this.currentSorting = { key: this.sortingOptions[0].key, order: this.sortingOptions[0].order };
5575
+ this.currentSorting = this.sortingOptions[0] ? { key: this.sortingOptions[0].key, order: this.sortingOptions[0].order } : null;
5566
5576
  }
5567
5577
  };
5568
5578
  SortingDropdownComponent.prototype.applySortingMode = function (sort) {
@@ -5572,13 +5582,15 @@
5572
5582
  });
5573
5583
  };
5574
5584
  SortingDropdownComponent.prototype.applySortingDirection = function (sortDirection) {
5575
- this.apply.emit({
5576
- key: this.currentSorting.key,
5577
- order: sortDirection
5578
- });
5585
+ if (this.currentSorting) {
5586
+ this.apply.emit({
5587
+ key: this.currentSorting.key,
5588
+ order: sortDirection
5589
+ });
5590
+ }
5579
5591
  };
5580
5592
  SortingDropdownComponent.prototype.getSortLabel = function (key) {
5581
- return "sorting." + key + ".label";
5593
+ return key ? "sorting." + key + ".label" : '';
5582
5594
  };
5583
5595
  return SortingDropdownComponent;
5584
5596
  }());
@@ -5698,7 +5710,7 @@
5698
5710
  */
5699
5711
  FormatNumberPipe.prototype.getFormatedCurrency = function (formatedNumberWitCurrency, currency) {
5700
5712
  var currencyMapping = CURRENCY_SYMBOL_MAP[currency];
5701
- if (currencyMapping !== currency && !formatedNumberWitCurrency.includes(currencyMapping)) {
5713
+ if (currencyMapping && currencyMapping !== currency && !formatedNumberWitCurrency.includes(currencyMapping)) {
5702
5714
  return formatedNumberWitCurrency.replace(currency, currencyMapping);
5703
5715
  }
5704
5716
  return formatedNumberWitCurrency;
@@ -6673,21 +6685,28 @@
6673
6685
  });
6674
6686
  Object.defineProperty(TabGroupComponent.prototype, "activeTabPortal", {
6675
6687
  get: function () {
6676
- return this.tabs[this.selectedIndex].content;
6688
+ var _a;
6689
+ return (_a = this.tabs[this.selectedIndex]) === null || _a === void 0 ? void 0 : _a.content;
6677
6690
  },
6678
6691
  enumerable: false,
6679
6692
  configurable: true
6680
6693
  });
6681
6694
  TabGroupComponent.prototype.ngOnChanges = function (changes) {
6682
- if ('selectedIndex' in changes && !changes['selectedIndex'].isFirstChange()) {
6683
- this.switchTo(this.tabs[this.selectedIndex]);
6695
+ var tab = this.tabs[this.selectedIndex];
6696
+ if (changes['selectedIndex'] && !changes['selectedIndex'].isFirstChange() && tab) {
6697
+ this.switchTo(tab);
6684
6698
  }
6685
6699
  };
6686
6700
  TabGroupComponent.prototype.ngAfterContentInit = function () {
6687
6701
  var _this = this;
6688
6702
  var _a;
6689
- this.tabs[0].noLeftMarginForFirstTab = true;
6690
- this.switchTo(this.tabs[this.selectedIndex]);
6703
+ if (this.tabs[0]) {
6704
+ this.tabs[0].noLeftMarginForFirstTab = true;
6705
+ }
6706
+ var tab = this.tabs[this.selectedIndex];
6707
+ if (tab) {
6708
+ this.switchTo(tab);
6709
+ }
6691
6710
  var listenToTabsSwitch = function (tabs) { return i6.merge.apply(void 0, __spreadArray([], __read(tabs.map(function (tab) { return tab.switch.asObservable().pipe(operators.map(function () { return tab; })); })))); };
6692
6711
  (_a = this.tabsQueryList) === null || _a === void 0 ? void 0 : _a.changes.pipe(operators.startWith(null), operators.switchMap(function () { return listenToTabsSwitch(_this.tabs); }), operators.takeUntil(this.destroyed$)).subscribe(function (tab) {
6693
6712
  _this.switchTo(tab);