@leanix/components 0.2.100 → 0.2.104

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/bundles/leanix-components.umd.js +57 -38
  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.map +1 -1
  35. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js +1 -1
  36. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js.map +1 -1
  37. package/esm2015/lib/shared/date-helpers.js.map +1 -1
  38. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js +12 -5
  39. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js.map +1 -1
  40. package/fesm2015/leanix-components.js +55 -36
  41. package/fesm2015/leanix-components.js.map +1 -1
  42. package/lib/core-ui/directives/html.directive.d.ts +1 -1
  43. package/lib/forms-ui/components/date-input/date-input.component.d.ts +6 -6
  44. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +2 -2
  45. package/lib/forms-ui/components/keyboard-select.directive.d.ts +1 -1
  46. package/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.d.ts +2 -2
  47. package/lib/forms-ui/directives/keyboard-action-source.directive.d.ts +1 -1
  48. package/lib/forms-ui/helpers/keyboard-navigation.helpers.d.ts +1 -1
  49. package/lib/forms-ui/models/base-select.directive.d.ts +1 -1
  50. 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) {
@@ -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);