@leanix/components 0.2.226 → 0.2.229

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 (32) hide show
  1. package/bundles/leanix-components.umd.js +290 -88
  2. package/bundles/leanix-components.umd.js.map +1 -1
  3. package/esm2015/index.js +2 -0
  4. package/esm2015/index.js.map +1 -1
  5. package/esm2015/lib/core-ui/functions/core-css.helpers.js +17 -5
  6. package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +1 -1
  7. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js +5 -0
  8. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js.map +1 -0
  9. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js +20 -23
  10. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js.map +1 -1
  11. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +33 -25
  12. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js.map +1 -1
  13. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js +25 -0
  14. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js.map +1 -0
  15. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js +133 -0
  16. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js.map +1 -0
  17. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js +37 -0
  18. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js.map +1 -0
  19. package/esm2015/lib/forms-ui/forms-ui.module.js +12 -20
  20. package/esm2015/lib/forms-ui/forms-ui.module.js.map +1 -1
  21. package/fesm2015/leanix-components.js +265 -79
  22. package/fesm2015/leanix-components.js.map +1 -1
  23. package/index.d.ts +1 -0
  24. package/lib/core-ui/functions/core-css.helpers.d.ts +7 -0
  25. package/lib/forms-ui/components/drag-and-drop-list/constants.d.ts +4 -0
  26. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.d.ts +7 -6
  27. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +23 -17
  28. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.d.ts +14 -0
  29. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.d.ts +36 -0
  30. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.d.ts +14 -0
  31. package/lib/forms-ui/forms-ui.module.d.ts +41 -43
  32. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/cdk/portal'), require('@angular/cdk/overlay'), require('lodash/fp'), require('@ngx-translate/core'), require('@angular/platform-browser'), require('rxjs'), require('rxjs/operators'), require('color'), require('date-fns'), require('lodash'), require('marked'), require('@angular/cdk/drag-drop'), require('@angular/forms'), require('ngx-bootstrap/datepicker'), require('ngx-infinite-scroll'), require('@angular/cdk/a11y'), require('@angular/cdk/bidi'), require('@angular/animations'), require('@ncstate/sat-popover'), require('@angular/cdk/coercion'), require('@angular/router')) :
3
- typeof define === 'function' && define.amd ? define('@leanix/components', ['exports', '@angular/common', '@angular/core', '@angular/cdk/portal', '@angular/cdk/overlay', 'lodash/fp', '@ngx-translate/core', '@angular/platform-browser', 'rxjs', 'rxjs/operators', 'color', 'date-fns', 'lodash', 'marked', '@angular/cdk/drag-drop', '@angular/forms', 'ngx-bootstrap/datepicker', 'ngx-infinite-scroll', '@angular/cdk/a11y', '@angular/cdk/bidi', '@angular/animations', '@ncstate/sat-popover', '@angular/cdk/coercion', '@angular/router'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.leanix = global.leanix || {}, global.leanix.components = {}), global.ng.common, global.ng.core, global.ng.cdk.portal, global.ng.cdk.overlay, global.fp, global.i1$2, global.ng.platformBrowser, global.rxjs, global.rxjs.operators, global.Color, global.dateFns, global._, global.marked, global.ng.cdk.dragDrop, global.ng.forms, global.i1$3, global.i3$1, global.ng.cdk.a11y, global.ng.cdk.bidi, global.ng.animations, global.i1$5, global.ng.cdk.coercion, global.ng.router));
5
- })(this, (function (exports, i2, i0, i3, i1, fp, i1$2, i1$1, i6, operators, Color, dateFns, _, marked, i3$3, i3$2, i1$3, i3$1, i2$1, i1$4, animations, i1$5, coercion, i3$4) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/cdk/portal'), require('@angular/cdk/overlay'), require('lodash/fp'), require('@ngx-translate/core'), require('@angular/platform-browser'), require('rxjs'), require('rxjs/operators'), require('color'), require('date-fns'), require('lodash'), require('marked'), require('@angular/forms'), require('ngx-bootstrap/datepicker'), require('ngx-infinite-scroll'), require('@angular/cdk/drag-drop'), require('@angular/cdk/a11y'), require('@angular/cdk/bidi'), require('@angular/animations'), require('@ncstate/sat-popover'), require('@angular/cdk/coercion'), require('@angular/router')) :
3
+ typeof define === 'function' && define.amd ? define('@leanix/components', ['exports', '@angular/common', '@angular/core', '@angular/cdk/portal', '@angular/cdk/overlay', 'lodash/fp', '@ngx-translate/core', '@angular/platform-browser', 'rxjs', 'rxjs/operators', 'color', 'date-fns', 'lodash', 'marked', '@angular/forms', 'ngx-bootstrap/datepicker', 'ngx-infinite-scroll', '@angular/cdk/drag-drop', '@angular/cdk/a11y', '@angular/cdk/bidi', '@angular/animations', '@ncstate/sat-popover', '@angular/cdk/coercion', '@angular/router'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.leanix = global.leanix || {}, global.leanix.components = {}), global.ng.common, global.ng.core, global.ng.cdk.portal, global.ng.cdk.overlay, global.fp, global.i1$2, global.ng.platformBrowser, global.rxjs, global.rxjs.operators, global.Color, global.dateFns, global._, global.marked, global.ng.forms, global.i1$3, global.i3$1, global.ng.cdk.dragDrop, global.ng.cdk.a11y, global.ng.cdk.bidi, global.ng.animations, global.i1$6, global.ng.cdk.coercion, global.ng.router));
5
+ })(this, (function (exports, i2, i0, i3, i1, fp, i1$2, i1$1, i6, operators, Color, dateFns, _, marked, i3$2, i1$3, i3$1, i1$4, i2$1, i1$5, animations, i1$6, coercion, i3$3) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,21 +24,21 @@
24
24
 
25
25
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3);
27
+ var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3);
28
28
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
29
29
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
30
30
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
31
31
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
32
32
  var Color__namespace = /*#__PURE__*/_interopNamespace(Color);
33
33
  var ___namespace = /*#__PURE__*/_interopNamespace(_);
34
- var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$3);
35
34
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$2);
36
35
  var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
37
36
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3$1);
38
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
39
37
  var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
38
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
40
39
  var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$5);
41
- var i3__namespace$4 = /*#__PURE__*/_interopNamespace(i3$4);
40
+ var i1__namespace$6 = /*#__PURE__*/_interopNamespace(i1$6);
41
+ var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3$3);
42
42
 
43
43
  var BadgeComponent = /** @class */ (function () {
44
44
  function BadgeComponent() {
@@ -1328,12 +1328,24 @@
1328
1328
  type: i0.Input
1329
1329
  }] } });
1330
1330
 
1331
+ /**
1332
+ * Compute the most eligible text color for a given background color (black or white), depending on the luminance of the
1333
+ * background color. In case the provided color is undefined or invalid, white (#FFFFFF) is returned.
1334
+ *
1335
+ * @param colorHex Color string in hexadecimal encoding.
1336
+ * @returns Equivalent contrast color in hexadecimal encoding.
1337
+ */
1331
1338
  function getContrastColor(colorHex) {
1332
- var color = Color__namespace(colorHex || '#000');
1333
- // Check http://codepen.io/WebSeed/pen/pvgqEq
1334
- var a = 1 - (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255;
1335
- var d = a < 0.4 ? 0 : 255;
1336
- return Color__namespace({ r: d, g: d, b: d }).hex();
1339
+ try {
1340
+ var color = Color__namespace(colorHex || '#000');
1341
+ // Check http://codepen.io/WebSeed/pen/pvgqEq
1342
+ var a = 1 - (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255;
1343
+ var d = a < 0.4 ? 0 : 255;
1344
+ return Color__namespace({ r: d, g: d, b: d }).hex();
1345
+ }
1346
+ catch (_a) {
1347
+ return '#FFFFFF';
1348
+ }
1337
1349
  }
1338
1350
  function shorthandHexHandle(hex) {
1339
1351
  var shorthandRegex = /^(#)([a-f\d])([a-f\d])([a-f\d])$/i;
@@ -3492,14 +3504,12 @@
3492
3504
  }] } });
3493
3505
 
3494
3506
  var DragAndDropListItemComponent = /** @class */ (function () {
3495
- function DragAndDropListItemComponent() {
3507
+ function DragAndDropListItemComponent(element) {
3508
+ this.element = element;
3496
3509
  this.NAME = 'DragAndDropListItemComponent';
3497
3510
  this.draggable = true;
3498
3511
  this.action = new i0.EventEmitter();
3499
- this.moveToTop = new i0.EventEmitter();
3500
- this.moveUp = new i0.EventEmitter();
3501
- this.moveToBottom = new i0.EventEmitter();
3502
- this.moveDown = new i0.EventEmitter();
3512
+ this.customTemplateRef = null;
3503
3513
  }
3504
3514
  Object.defineProperty(DragAndDropListItemComponent.prototype, "draggingDisabled", {
3505
3515
  get: function () {
@@ -3508,13 +3518,23 @@
3508
3518
  enumerable: false,
3509
3519
  configurable: true
3510
3520
  });
3521
+ Object.defineProperty(DragAndDropListItemComponent.prototype, "hasCustomTemplate", {
3522
+ get: function () {
3523
+ return !!this.customTemplateRef;
3524
+ },
3525
+ enumerable: false,
3526
+ configurable: true
3527
+ });
3511
3528
  DragAndDropListItemComponent.prototype.trackByAction = function (_index, action) {
3512
3529
  return action.id;
3513
3530
  };
3531
+ DragAndDropListItemComponent.prototype.focus = function () {
3532
+ this.element.nativeElement.focus();
3533
+ };
3514
3534
  return DragAndDropListItemComponent;
3515
3535
  }());
3516
- DragAndDropListItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: DragAndDropListItemComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
3517
- DragAndDropListItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: { item: "item", draggable: "draggable", actions: "actions" }, outputs: { action: "action", moveToTop: "moveToTop", moveUp: "moveUp", moveToBottom: "moveToBottom", moveDown: "moveDown" }, host: { properties: { "class.draggingDisabled": "this.draggingDisabled" } }, ngImport: i0__namespace, template: "<div class=\"drag-item-wrappper\">\n <i *ngIf=\"draggable\" class=\"far fa-bars drag-handle\"></i>\n <span [attr.title]=\"item\" class=\"itemWrapperForTruncation truncate\">{{ item }}</span>\n</div>\n<div class=\"left-button-container\" align=\"left\">\n <div class=\"action-buttons-wrapper\" *ngIf=\"!!actions\">\n <button\n lx-button\n *ngFor=\"let act of actions; trackBy: trackByAction\"\n (click)=\"action.emit({ actionId: act.id, item: item })\"\n [title]=\"act.label\"\n [square]=\"true\"\n mode=\"ghost\"\n size=\"small\"\n class=\"action-button\"\n [class.show-on-hover-button]=\"act.showOnlyOnHover ? true : false\"\n >\n <i class=\"far {{ act.icon }} actionIcon\"></i>\n </button>\n </div>\n\n <lx-cdk-options-dropdown *ngIf=\"draggable\">\n <button lx-button [square]=\"true\" mode=\"ghost\" size=\"small\" lxKeyboardActionSource class=\"moreButton far fa-ellipsis-v\"></button>\n <lx-option-group>\n <lx-option [hasSelectedState]=\"false\" (select)=\"moveToTop.emit()\">\n <i class=\"far fa-fw fa-arrow-to-top\"></i>{{ NAME + '.moveToTop' | translate }}\n </lx-option>\n <lx-option [hasSelectedState]=\"false\" (select)=\"moveUp.emit()\">\n <i class=\"far fa-fw fa-arrow-up\"></i>{{ NAME + '.moveUp' | translate }}\n </lx-option>\n <lx-option [hasSelectedState]=\"false\" (select)=\"moveDown.emit()\">\n <i class=\"far fa-fw fa-arrow-down\"></i>{{ NAME + '.moveDown' | translate }}\n </lx-option>\n <lx-option [hasSelectedState]=\"false\" (select)=\"moveToBottom.emit()\">\n <i class=\"far fa-fw fa-arrow-down\"></i>{{ NAME + '.moveToBottom' | translate }}\n </lx-option>\n </lx-option-group>\n </lx-cdk-options-dropdown>\n</div>\n", styles: [":host{padding:6px 8px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host.draggingDisabled{background:#eaedf1}:host:hover .show-on-hover-button{opacity:1}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{padding-right:4px}.actionIcon{padding:0 2px}.drag-item-wrappper{display:flex;min-width:0;align-items:baseline}.action-buttons-wrapper,.left-button-container{display:flex;flex-direction:row;flex-wrap:nowrap}.show-on-hover-button{opacity:0}.show-on-hover-button:focus{opacity:1}lx-option i{margin-right:8px}"], components: [{ type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }, { type: CdkOptionsDropdownComponent, selector: "lx-cdk-options-dropdown", inputs: ["align", "closeOnScroll", "disabled", "maxHeight"] }, { type: OptionGroupComponent, selector: "lx-option-group", inputs: ["hasSelectedState", "label"], outputs: ["select"] }, { type: OptionComponent, selector: "lx-option", inputs: ["selected", "isHighlighted", "disabled", "value", "hasSelectedState"], outputs: ["select", "highlight", "selectedClick"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: KeyboardActionSourceDirective, selector: "[lxKeyboardActionSource]", exportAs: ["keyboardActionSource"] }], pipes: { "translate": i1__namespace$2.TranslatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3536
+ DragAndDropListItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: DragAndDropListItemComponent, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3537
+ DragAndDropListItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: { item: "item", draggable: "draggable", actions: "actions" }, outputs: { action: "action" }, host: { properties: { "class.draggingDisabled": "this.draggingDisabled", "class.customTemplate": "this.hasCustomTemplate" } }, queries: [{ propertyName: "customTemplateRef", first: true, predicate: ["customTemplate"], descendants: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"customTemplateRef; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"customTemplateRef\"></ng-container>\n</ng-container>\n<ng-template #defaultTemplate>\n <div class=\"drag-item-wrappper\">\n <i *ngIf=\"draggable\" class=\"far fa-bars drag-handle\"></i>\n <span [attr.title]=\"item\" class=\"itemWrapperForTruncation truncate\">{{ item }}</span>\n </div>\n <div class=\"left-button-container\" align=\"left\">\n <div class=\"action-buttons-wrapper\" *ngIf=\"!!actions\">\n <button\n lx-button\n *ngFor=\"let act of actions; trackBy: trackByAction\"\n (click)=\"action.emit({ actionId: act.id, item: item })\"\n [title]=\"act.label\"\n [square]=\"true\"\n mode=\"ghost\"\n size=\"small\"\n class=\"action-button\"\n [class.show-on-hover-button]=\"act.showOnlyOnHover ? true : false\"\n >\n <i class=\"far {{ act.icon }} actionIcon\"></i>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [":host:not(.customTemplate){padding:6px 8px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;border-radius:3px}:host:not(.customTemplate):hover .show-on-hover-button{opacity:1}:host.draggingDisabled{background:#eaedf1}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{padding-right:4px}.actionIcon{padding:0 2px}.drag-item-wrappper{display:flex;min-width:0;align-items:baseline}.action-buttons-wrapper,.left-button-container{display:flex;flex-direction:row;flex-wrap:nowrap}.show-on-hover-button{opacity:0}.show-on-hover-button:focus{opacity:1}lx-option i{margin-right:8px}"], components: [{ type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3518
3538
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: DragAndDropListItemComponent, decorators: [{
3519
3539
  type: i0.Component,
3520
3540
  args: [{
@@ -3523,7 +3543,7 @@
3523
3543
  styleUrls: ['drag-and-drop-list-item.component.scss'],
3524
3544
  changeDetection: i0.ChangeDetectionStrategy.OnPush
3525
3545
  }]
3526
- }], propDecorators: { item: [{
3546
+ }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }]; }, propDecorators: { item: [{
3527
3547
  type: i0.Input
3528
3548
  }], draggable: [{
3529
3549
  type: i0.Input
@@ -3531,27 +3551,194 @@
3531
3551
  type: i0.Input
3532
3552
  }], action: [{
3533
3553
  type: i0.Output
3534
- }], moveToTop: [{
3535
- type: i0.Output
3536
- }], moveUp: [{
3554
+ }], draggingDisabled: [{
3555
+ type: i0.HostBinding,
3556
+ args: ['class.draggingDisabled']
3557
+ }], hasCustomTemplate: [{
3558
+ type: i0.HostBinding,
3559
+ args: ['class.customTemplate']
3560
+ }], customTemplateRef: [{
3561
+ type: i0.ContentChild,
3562
+ args: ['customTemplate']
3563
+ }] } });
3564
+
3565
+ /**
3566
+ * Used in the DragAndDropListComponent and KeyboardSortableListDirective
3567
+ */
3568
+ var DRAG_AND_DROP_LIST_TRANSLATION_NAME = 'DragAndDropListComponent';
3569
+
3570
+ var KeyboardSortableItemDirective = /** @class */ (function () {
3571
+ function KeyboardSortableItemDirective(draggableItem, overlayPositionBuilder, element, overlay) {
3572
+ this.draggableItem = draggableItem;
3573
+ this.overlayPositionBuilder = overlayPositionBuilder;
3574
+ this.element = element;
3575
+ this.overlay = overlay;
3576
+ this.isSortingByKeyboardChange = new i0.EventEmitter();
3577
+ this.itemBeingSortedChange = new i0.EventEmitter();
3578
+ this.sortItemsWithKeyboard = new i0.EventEmitter();
3579
+ this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay);
3580
+ this.isBeingSorted = false;
3581
+ this.preventBlur = false;
3582
+ this.focusWithKeyboardReplaySubject$ = new i6.ReplaySubject(1);
3583
+ /**
3584
+ * Using a ReplaySubject here so that the KeyboardSortableListDirective will also know
3585
+ * about a focusWithKeyboard event when its copy of the KeyboardSortableItemDirective ContentChildren
3586
+ * was just initialised after the event fired.
3587
+ */
3588
+ this.focusWithKeyboard = this.focusWithKeyboardReplaySubject$.asObservable();
3589
+ }
3590
+ Object.defineProperty(KeyboardSortableItemDirective.prototype, "isSortable", {
3591
+ get: function () {
3592
+ return !this.draggableItem.disabled;
3593
+ },
3594
+ enumerable: false,
3595
+ configurable: true
3596
+ });
3597
+ KeyboardSortableItemDirective.prototype.ngOnChanges = function () {
3598
+ this.isBeingSorted = this.itemData === this.itemBeingSorted;
3599
+ if (this.isBeingSorted) {
3600
+ // focus always the pressed element
3601
+ this.element.nativeElement.focus();
3602
+ }
3603
+ };
3604
+ KeyboardSortableItemDirective.prototype.focusViaKeyboard = function () {
3605
+ this.focusWithKeyboardReplaySubject$.next(this);
3606
+ };
3607
+ KeyboardSortableItemDirective.prototype.enterSortingModeEnabledByKeyboard = function ($event) {
3608
+ if ($event.target === this.element.nativeElement) {
3609
+ if ($event.code === 'Enter' || $event.code === 'Space') {
3610
+ $event.preventDefault();
3611
+ this.tooltipDirective.hide();
3612
+ this.itemBeingSortedChange.emit(!this.isSortingByKeyboard ? this.itemData : undefined);
3613
+ this.isSortingByKeyboardChange.emit(!this.isSortingByKeyboard);
3614
+ }
3615
+ }
3616
+ };
3617
+ KeyboardSortableItemDirective.prototype.leaveSortingModeEnabledByKeyboard = function ($event) {
3618
+ if ($event.target === this.element.nativeElement) {
3619
+ this.tooltipDirective.hide();
3620
+ if (!this.preventBlur) {
3621
+ this.isSortingByKeyboardChange.emit(false);
3622
+ this.itemBeingSortedChange.emit(undefined);
3623
+ }
3624
+ }
3625
+ };
3626
+ KeyboardSortableItemDirective.prototype.sort = function ($event) {
3627
+ var _this = this;
3628
+ if ($event.target === this.element.nativeElement) {
3629
+ this.tooltipDirective.hide();
3630
+ if (this.isSortingByKeyboard) {
3631
+ $event.preventDefault();
3632
+ var previousIndex = this.allItemsData.findIndex(function (item) { return item === _this.itemData; });
3633
+ var currentIndex = $event.code === 'ArrowUp' ? previousIndex - 1 : previousIndex + 1;
3634
+ if (currentIndex >= 0 && currentIndex <= this.allItemsData.length - 1) {
3635
+ this.sortItemsWithKeyboard.emit({ previousIndex: previousIndex, currentIndex: currentIndex });
3636
+ // When triggering a keyboard event, the DOM would "removeChildren" on the HTML element
3637
+ // which specially for "ArrowUp" events would trigger a "blur" event since the element
3638
+ // has been moved aboved the DOM tree and loses the focus state.
3639
+ this.preventBlur = true;
3640
+ setTimeout(function () { return (_this.preventBlur = false); }, 0);
3641
+ }
3642
+ }
3643
+ }
3644
+ };
3645
+ return KeyboardSortableItemDirective;
3646
+ }());
3647
+ KeyboardSortableItemDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: KeyboardSortableItemDirective, deps: [{ token: i1__namespace$4.CdkDrag }, { token: i1__namespace.OverlayPositionBuilder }, { token: i0__namespace.ElementRef }, { token: i1__namespace.Overlay }], target: i0__namespace.ɵɵFactoryTarget.Directive });
3648
+ KeyboardSortableItemDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.4", type: KeyboardSortableItemDirective, selector: "[lxKeyboardSortableItem]", inputs: { allItemsData: ["lxKeyboardSortableItem", "allItemsData"], itemData: ["lxKeyboardItemData", "itemData"], isSortingByKeyboard: "isSortingByKeyboard", itemBeingSorted: ["lxKeyboardItemBeingSorted", "itemBeingSorted"] }, outputs: { isSortingByKeyboardChange: "isSortingByKeyboardChange", itemBeingSortedChange: "lxKeyboardItemBeingSortedChange", sortItemsWithKeyboard: "sortItemsWithKeyboard", focusWithKeyboard: "focusWithKeyboard" }, host: { listeners: { "keyup.tab": "focusViaKeyboard()", "keydown.enter": "enterSortingModeEnabledByKeyboard($event)", "keydown.space": "enterSortingModeEnabledByKeyboard($event)", "blur": "leaveSortingModeEnabledByKeyboard($event)", "keydown.esc": "leaveSortingModeEnabledByKeyboard($event)", "keydown.arrowUp": "sort($event)", "keydown.arrowDown": "sort($event)" }, properties: { "attr.lxTooltip": "this.tooltipDirective", "class.isBeingSortedByKeyboard": "this.isBeingSorted" } }, usesOnChanges: true, ngImport: i0__namespace });
3649
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: KeyboardSortableItemDirective, decorators: [{
3650
+ type: i0.Directive,
3651
+ args: [{
3652
+ selector: '[lxKeyboardSortableItem]'
3653
+ }]
3654
+ }], ctorParameters: function () { return [{ type: i1__namespace$4.CdkDrag }, { type: i1__namespace.OverlayPositionBuilder }, { type: i0__namespace.ElementRef }, { type: i1__namespace.Overlay }]; }, propDecorators: { allItemsData: [{
3655
+ type: i0.Input,
3656
+ args: ['lxKeyboardSortableItem']
3657
+ }], itemData: [{
3658
+ type: i0.Input,
3659
+ args: ['lxKeyboardItemData']
3660
+ }], isSortingByKeyboard: [{
3661
+ type: i0.Input
3662
+ }], itemBeingSorted: [{
3663
+ type: i0.Input,
3664
+ args: ['lxKeyboardItemBeingSorted']
3665
+ }], isSortingByKeyboardChange: [{
3537
3666
  type: i0.Output
3538
- }], moveToBottom: [{
3667
+ }], itemBeingSortedChange: [{
3668
+ type: i0.Output,
3669
+ args: ['lxKeyboardItemBeingSortedChange']
3670
+ }], sortItemsWithKeyboard: [{
3539
3671
  type: i0.Output
3540
- }], moveDown: [{
3672
+ }], focusWithKeyboard: [{
3541
3673
  type: i0.Output
3542
- }], draggingDisabled: [{
3674
+ }], tooltipDirective: [{
3543
3675
  type: i0.HostBinding,
3544
- args: ['class.draggingDisabled']
3676
+ args: ['attr.lxTooltip']
3677
+ }], isBeingSorted: [{
3678
+ type: i0.HostBinding,
3679
+ args: ['class.isBeingSortedByKeyboard']
3680
+ }], focusViaKeyboard: [{
3681
+ type: i0.HostListener,
3682
+ args: ['keyup.tab']
3683
+ }], enterSortingModeEnabledByKeyboard: [{
3684
+ type: i0.HostListener,
3685
+ args: ['keydown.enter', ['$event']]
3686
+ }, {
3687
+ type: i0.HostListener,
3688
+ args: ['keydown.space', ['$event']]
3689
+ }], leaveSortingModeEnabledByKeyboard: [{
3690
+ type: i0.HostListener,
3691
+ args: ['blur', ['$event']]
3692
+ }, {
3693
+ type: i0.HostListener,
3694
+ args: ['keydown.esc', ['$event']]
3695
+ }], sort: [{
3696
+ type: i0.HostListener,
3697
+ args: ['keydown.arrowUp', ['$event']]
3698
+ }, {
3699
+ type: i0.HostListener,
3700
+ args: ['keydown.arrowDown', ['$event']]
3701
+ }] } });
3702
+
3703
+ var KeyboardSortableListDirective = /** @class */ (function () {
3704
+ function KeyboardSortableListDirective(translateService) {
3705
+ this.translateService = translateService;
3706
+ }
3707
+ KeyboardSortableListDirective.prototype.ngAfterViewInit = function () {
3708
+ this.setupControlsTooltipToBeShownOnFirstFocusedItem();
3709
+ };
3710
+ KeyboardSortableListDirective.prototype.setupControlsTooltipToBeShownOnFirstFocusedItem = function () {
3711
+ var _this = this;
3712
+ var firstFocusEventOnADraggableItem$ = this.keyboardSortableItems$.pipe(operators.filter(function (items) { return items && items.length > 0; }), operators.switchMap(function (items) { return i6.merge.apply(void 0, __spreadArray([], __read(items.filter(function (item) { return item.isSortable; }).map(function (item) { return item.focusWithKeyboard; })))); }), operators.take(1));
3713
+ firstFocusEventOnADraggableItem$.subscribe(function (item) {
3714
+ item.tooltipDirective.content = _this.translateService.instant(DRAG_AND_DROP_LIST_TRANSLATION_NAME + ".helpTooltip");
3715
+ item.tooltipDirective.show();
3716
+ });
3717
+ };
3718
+ return KeyboardSortableListDirective;
3719
+ }());
3720
+ KeyboardSortableListDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: KeyboardSortableListDirective, deps: [{ token: i1__namespace$2.TranslateService }], target: i0__namespace.ɵɵFactoryTarget.Directive });
3721
+ KeyboardSortableListDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.4", type: KeyboardSortableListDirective, selector: "[lxKeyboardSortableList]", inputs: { keyboardSortableItems: "keyboardSortableItems" }, ngImport: i0__namespace });
3722
+ __decorate([
3723
+ Observe('keyboardSortableItems')
3724
+ ], KeyboardSortableListDirective.prototype, "keyboardSortableItems$", void 0);
3725
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: KeyboardSortableListDirective, decorators: [{
3726
+ type: i0.Directive,
3727
+ args: [{
3728
+ selector: '[lxKeyboardSortableList]'
3729
+ }]
3730
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.TranslateService }]; }, propDecorators: { keyboardSortableItems$: [], keyboardSortableItems: [{
3731
+ type: i0.Input
3545
3732
  }] } });
3546
3733
 
3547
3734
  var DragAndDropListComponent = /** @class */ (function () {
3548
3735
  function DragAndDropListComponent() {
3549
- this.NAME = 'DragAndDropListComponent';
3736
+ this.NAME = DRAG_AND_DROP_LIST_TRANSLATION_NAME;
3550
3737
  /**
3551
3738
  * Override the global label font weight of 700
3552
3739
  */
3553
3740
  this.labelFontWeight = 700;
3554
- this.color = 'default';
3741
+ this.color = 'light';
3555
3742
  this.fontSize = 'normal';
3556
3743
  /**
3557
3744
  * Use the moveToIndex Output in favor of moveItem,
@@ -3559,15 +3746,19 @@
3559
3746
  */
3560
3747
  this.moveToIndex = new i0.EventEmitter();
3561
3748
  this.moveItem = new i0.EventEmitter();
3562
- this.itemTemplateRef = null;
3749
+ /**
3750
+ * TODO: extract state about keyboard sorting into KeyboardSortableListDirective
3751
+ */
3752
+ this.isSortingByKeyboard = false;
3753
+ this.keyboardItemBeingSorted = undefined;
3754
+ this.allItemsData = [];
3563
3755
  }
3564
- DragAndDropListComponent.prototype.ngOnInit = function () {
3565
- if (this.items && !this.itemIdProperty) {
3566
- throw new Error('Cannot pass drag and drop items without defining the id property');
3567
- }
3568
- };
3569
3756
  DragAndDropListComponent.prototype.ngAfterContentInit = function () {
3570
3757
  this.items$ = this._items.changes.pipe(operators.startWith(this._items), operators.map(function (items) { return items.toArray(); }));
3758
+ this.allItemsData$ = this.items$.pipe(operators.map(function (itemComponents) { return itemComponents.map(function (itemComponent) { return itemComponent.item; }); }));
3759
+ };
3760
+ DragAndDropListComponent.prototype.ngAfterViewInit = function () {
3761
+ this.keyboardSortableItems$ = this._keyboardSortableItems.changes.pipe(operators.startWith(this._keyboardSortableItems), operators.map(function (items) { return items.toArray(); }));
3571
3762
  };
3572
3763
  DragAndDropListComponent.prototype.emitContentChildAction = function (action) {
3573
3764
  var _a;
@@ -3583,22 +3774,25 @@
3583
3774
  * You're supposed to update the data in the parent and pass the new items as input.
3584
3775
  */
3585
3776
  DragAndDropListComponent.prototype.drop = function (event) {
3586
- i3$3.moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
3587
- this.moveToIndex.emit(event.currentIndex);
3588
- this.moveItem.emit({ item: event.item.data, index: event.currentIndex });
3777
+ this.sortItems(event.container.data, event.item.data, event.previousIndex, event.currentIndex);
3778
+ };
3779
+ DragAndDropListComponent.prototype.dropToIndexAfterArrowKey = function (item, previousIndex, currentIndex) {
3780
+ if (this.isSortingByKeyboard) {
3781
+ this.sortItems(this._items, item, previousIndex, currentIndex);
3782
+ }
3589
3783
  };
3590
- DragAndDropListComponent.prototype.dropToIndex = function (item, previousIndex, currentIndex) {
3591
- i3$3.moveItemInArray(this._items.toArray(), previousIndex, currentIndex);
3592
- this.moveToIndex.emit(currentIndex);
3784
+ DragAndDropListComponent.prototype.sortItems = function (items, item, previousIndex, currentIndex) {
3785
+ i1$4.moveItemInArray(items, previousIndex, currentIndex);
3786
+ this.moveToIndex.emit({ index: currentIndex, previous: previousIndex });
3593
3787
  this.moveItem.emit({ item: item, index: currentIndex });
3594
3788
  };
3595
- DragAndDropListComponent.prototype.trackById = function (_index, item) {
3596
- return item[this.itemIdProperty];
3789
+ DragAndDropListComponent.prototype.trackByItem = function (_index, item) {
3790
+ return item.item;
3597
3791
  };
3598
3792
  return DragAndDropListComponent;
3599
3793
  }());
3600
3794
  DragAndDropListComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: DragAndDropListComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
3601
- DragAndDropListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: DragAndDropListComponent, selector: "lx-drag-and-drop-list", inputs: { label: "label", labelFontWeight: "labelFontWeight", items: "items", itemIdProperty: "itemIdProperty", color: "color", fontSize: "fontSize" }, outputs: { moveToIndex: "moveToIndex", moveItem: "moveItem" }, host: { properties: { "attr.color": "this.color", "attr.fontSize": "this.fontSize" } }, queries: [{ propertyName: "itemTemplateRef", first: true, predicate: ["itemTemplate"], descendants: true }, { propertyName: "_items", predicate: DragAndDropListItemComponent }], ngImport: i0__namespace, template: "<label *ngIf=\"label\" [style.font-weight]=\"labelFontWeight\">{{ label }}</label>\n<ul cdkDropList class=\"list\" [cdkDropListData]=\"items$ | async\" (cdkDropListDropped)=\"drop($event)\">\n <ng-container *ngIf=\"items; else contentChildList\">\n <li\n *ngFor=\"let item of items; let index = index; trackBy: trackById\"\n class=\"item\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragData]=\"item[itemIdProperty!]\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplateRef; context: { $implicit: item, index: index }\"></ng-container>\n </li>\n </ng-container>\n <ng-template #contentChildList>\n <li\n *ngFor=\"let itemComponent of items$ | async; let i = index; let length = count\"\n class=\"item\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragData]=\"itemComponent.item\"\n [cdkDragDisabled]=\"!itemComponent.draggable\"\n [class.gray]=\"color === 'gray'\"\n [class.big]=\"fontSize === 'big'\"\n >\n <lx-drag-and-drop-list-item\n class=\"dragAndDropItem\"\n [item]=\"itemComponent.item\"\n [draggable]=\"itemComponent.draggable\"\n [actions]=\"itemComponent.actions\"\n (action)=\"emitContentChildAction($event)\"\n (moveToTop)=\"dropToIndex(itemComponent.item, i, 0)\"\n (moveUp)=\"dropToIndex(itemComponent.item, i, i - 1)\"\n (moveDown)=\"dropToIndex(itemComponent.item, i, i + 1)\"\n (moveToBottom)=\"dropToIndex(itemComponent.item, i, length)\"\n ></lx-drag-and-drop-list-item>\n </li>\n </ng-template>\n</ul>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}:host{display:block}.list{list-style-type:none;width:100%;display:block;padding:0;color:#526179}.item.cdk-drag-disabled{background:#eaedf1;cursor:default}.item{cursor:move;border:1px solid #99a5bb;margin-bottom:4px;border-radius:3px}.cdk-drag-preview{box-sizing:border-box;border-radius:3px;list-style:none;border:1px solid #99a5bb!important;box-shadow:0 3px 4px hsla(0,0%,45%,.3)}.cdk-drag-placeholder{opacity:.5}.cdk-drag-placeholder i{opacity:0}.cdk-drag-animating,.list.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .18s;transition-delay:0s;transition-timing-function:ease}:host[color=gray] lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}:host[color=gray] .item,:host[color=gray] .list{border:0}:host[color=gray] .item.cdk-drag-disabled lx-drag-and-drop-list-item{background:#fff;color:#99a5bb;border:1px solid #99a5bb}:host[fontSize=big] .item{text-transform:uppercase;font-weight:700}.cdk-drag-preview.gray{border:0!important}.cdk-drag-preview.gray lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}.cdk-drag-preview.big{text-transform:uppercase;font-weight:700}"], components: [{ type: DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: ["item", "draggable", "actions"], outputs: ["action", "moveToTop", "moveUp", "moveToBottom", "moveDown"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2__namespace.AsyncPipe } });
3795
+ DragAndDropListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: DragAndDropListComponent, selector: "lx-drag-and-drop-list", inputs: { label: "label", labelFontWeight: "labelFontWeight", color: "color", fontSize: "fontSize" }, outputs: { moveToIndex: "moveToIndex", moveItem: "moveItem" }, host: { properties: { "attr.color": "this.color", "attr.fontSize": "this.fontSize" } }, queries: [{ propertyName: "_items", predicate: DragAndDropListItemComponent }], viewQueries: [{ propertyName: "_keyboardSortableItems", predicate: KeyboardSortableItemDirective, descendants: true }], ngImport: i0__namespace, template: "<label *ngIf=\"label\" [style.font-weight]=\"labelFontWeight\">{{ label }}</label>\n<p class=\"sr-only\">{{ NAME + '.helpTooltip' | translate }}</p>\n<ul\n cdkDropList\n class=\"list\"\n role=\"listbox\"\n lxKeyboardSortableList\n [keyboardSortableItems]=\"keyboardSortableItems$ | async\"\n [cdkDropListData]=\"items$ | async\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <li\n *ngFor=\"let itemComponent of items$ | async; trackBy: trackByItem\"\n #listItemParent\n class=\"item\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragData]=\"itemComponent.item\"\n [cdkDragDisabled]=\"!itemComponent.draggable\"\n [class.dark]=\"color === 'dark'\"\n [class.big]=\"fontSize === 'big'\"\n [tabIndex]=\"itemComponent.draggable === false ? -1 : 0\"\n [lxKeyboardSortableItem]=\"allItemsData$ | async\"\n [lxKeyboardItemData]=\"itemComponent.item\"\n [(isSortingByKeyboard)]=\"isSortingByKeyboard\"\n [(lxKeyboardItemBeingSorted)]=\"keyboardItemBeingSorted\"\n (sortItemsWithKeyboard)=\"dropToIndexAfterArrowKey(itemComponent.item, $event.previousIndex, $event.currentIndex)\"\n >\n <lx-drag-and-drop-list-item\n class=\"dragAndDropItem\"\n [item]=\"itemComponent.item\"\n [draggable]=\"itemComponent.draggable\"\n [actions]=\"itemComponent.actions\"\n (action)=\"emitContentChildAction($event)\"\n >\n <ng-template *ngIf=\"itemComponent.customTemplateRef\" #customTemplate>\n <ng-container *ngTemplateOutlet=\"itemComponent.customTemplateRef\"></ng-container>\n </ng-template>\n </lx-drag-and-drop-list-item>\n </li>\n</ul>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}:host{display:block}.list{list-style-type:none;width:100%;display:block;padding:0;color:#526179}.item.cdk-drag-disabled{background:#eaedf1;cursor:default}.item{position:relative;cursor:move;border:1px solid #99a5bb;margin-bottom:4px;border-radius:3px}.item:focus{outline:1px auto #1666ee}.cdk-drag-preview{box-sizing:border-box;border-radius:3px;list-style:none;border:1px solid #99a5bb!important;box-shadow:0 3px 4px hsla(0,0%,45%,.3)}.cdk-drag-placeholder{opacity:.5}.cdk-drag-placeholder i{opacity:0}.cdk-drag-animating,.list.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .18s;transition-delay:0s;transition-timing-function:ease}:host[color=dark] lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}:host[color=dark] .item,:host[color=dark] .list{border:0}:host[color=dark] .item.cdk-drag-disabled lx-drag-and-drop-list-item{background:#fff;color:#99a5bb;border:1px solid #99a5bb}:host[fontSize=big] .item{text-transform:uppercase;font-weight:700}.cdk-drag-preview.dark{border:0!important}.cdk-drag-preview.dark lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}.cdk-drag-preview.big{text-transform:uppercase;font-weight:700}.isBeingSortedByKeyboard{box-shadow:0 6px 24px 0 #b2bccc;z-index:1}"], components: [{ type: DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: ["item", "draggable", "actions"], outputs: ["action"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: KeyboardSortableListDirective, selector: "[lxKeyboardSortableList]", inputs: ["keyboardSortableItems"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace$4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: KeyboardSortableItemDirective, selector: "[lxKeyboardSortableItem]", inputs: ["lxKeyboardSortableItem", "lxKeyboardItemData", "isSortingByKeyboard", "lxKeyboardItemBeingSorted"], outputs: ["isSortingByKeyboardChange", "lxKeyboardItemBeingSortedChange", "sortItemsWithKeyboard", "focusWithKeyboard"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace$2.TranslatePipe, "async": i2__namespace.AsyncPipe } });
3602
3796
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: DragAndDropListComponent, decorators: [{
3603
3797
  type: i0.Component,
3604
3798
  args: [{
@@ -3610,10 +3804,6 @@
3610
3804
  type: i0.Input
3611
3805
  }], labelFontWeight: [{
3612
3806
  type: i0.Input
3613
- }], items: [{
3614
- type: i0.Input
3615
- }], itemIdProperty: [{
3616
- type: i0.Input
3617
3807
  }], color: [{
3618
3808
  type: i0.Input
3619
3809
  }, {
@@ -3631,11 +3821,28 @@
3631
3821
  }], _items: [{
3632
3822
  type: i0.ContentChildren,
3633
3823
  args: [DragAndDropListItemComponent]
3634
- }], itemTemplateRef: [{
3635
- type: i0.ContentChild,
3636
- args: ['itemTemplate']
3824
+ }], _keyboardSortableItems: [{
3825
+ type: i0.ViewChildren,
3826
+ args: [KeyboardSortableItemDirective]
3637
3827
  }] } });
3638
3828
 
3829
+ var LxDragAndDropListModule = /** @class */ (function () {
3830
+ function LxDragAndDropListModule() {
3831
+ }
3832
+ return LxDragAndDropListModule;
3833
+ }());
3834
+ LxDragAndDropListModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxDragAndDropListModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
3835
+ LxDragAndDropListModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxDragAndDropListModule, declarations: [KeyboardSortableItemDirective, KeyboardSortableListDirective, DragAndDropListComponent, DragAndDropListItemComponent], imports: [i2.CommonModule, i1$4.DragDropModule, LxCoreUiModule, i1__namespace$2.TranslateModule], exports: [DragAndDropListComponent, DragAndDropListItemComponent] });
3836
+ LxDragAndDropListModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxDragAndDropListModule, imports: [[i2.CommonModule, i1$4.DragDropModule, LxCoreUiModule, i1$2.TranslateModule.forChild()]] });
3837
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxDragAndDropListModule, decorators: [{
3838
+ type: i0.NgModule,
3839
+ args: [{
3840
+ declarations: [KeyboardSortableItemDirective, KeyboardSortableListDirective, DragAndDropListComponent, DragAndDropListItemComponent],
3841
+ imports: [i2.CommonModule, i1$4.DragDropModule, LxCoreUiModule, i1$2.TranslateModule.forChild()],
3842
+ exports: [DragAndDropListComponent, DragAndDropListItemComponent]
3843
+ }]
3844
+ }] });
3845
+
3639
3846
  var ErrorMessageComponent = /** @class */ (function () {
3640
3847
  function ErrorMessageComponent(cd) {
3641
3848
  this.cd = cd;
@@ -5088,7 +5295,7 @@
5088
5295
  PickerComponent.prototype.onTouched = function () { };
5089
5296
  return PickerComponent;
5090
5297
  }());
5091
- PickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PickerComponent, deps: [{ token: i1__namespace$4.Directionality }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5298
+ PickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PickerComponent, deps: [{ token: i1__namespace$5.Directionality }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5092
5299
  PickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: PickerComponent, selector: "lx-picker", inputs: { listBoxAriaLabel: "listBoxAriaLabel", listBoxAriaLabelledBy: "listBoxAriaLabelledBy", openDirection: "openDirection" }, host: { listeners: { "document:keydown": "manageKeyboardEvents($event)" } }, providers: [
5093
5300
  {
5094
5301
  provide: i3$2.NG_VALUE_ACCESSOR,
@@ -5111,7 +5318,7 @@
5111
5318
  ],
5112
5319
  changeDetection: i0.ChangeDetectionStrategy.OnPush
5113
5320
  }]
5114
- }], ctorParameters: function () { return [{ type: i1__namespace$4.Directionality }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { listBoxAriaLabel: [{
5321
+ }], ctorParameters: function () { return [{ type: i1__namespace$5.Directionality }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { listBoxAriaLabel: [{
5115
5322
  type: i0.Input
5116
5323
  }], listBoxAriaLabelledBy: [{
5117
5324
  type: i0.Input
@@ -5966,8 +6173,6 @@
5966
6173
  CurrencyInputComponent,
5967
6174
  CurrencySymbolComponent,
5968
6175
  DateInputComponent,
5969
- DragAndDropListComponent,
5970
- DragAndDropListItemComponent,
5971
6176
  FilterSelectionPipe,
5972
6177
  FilterTermPipe,
5973
6178
  FormErrorComponent,
@@ -6000,18 +6205,16 @@
6000
6205
  FormErrorDirective,
6001
6206
  ErrorMessageComponent,
6002
6207
  FormSubmitDirective], imports: [i2.CommonModule,
6003
- i3$3.DragDropModule,
6004
6208
  i3$2.FormsModule,
6005
6209
  i3$2.ReactiveFormsModule, i1__namespace$2.TranslateModule, i1$3.DatepickerModule,
6006
6210
  i3$1.InfiniteScrollModule,
6007
6211
  i1.OverlayModule,
6008
- LxCoreUiModule], exports: [BasicDropdownComponent,
6212
+ LxCoreUiModule,
6213
+ LxDragAndDropListModule], exports: [BasicDropdownComponent,
6009
6214
  BasicDropdownItemComponent,
6010
6215
  CurrencyInputComponent,
6011
6216
  CurrencySymbolComponent,
6012
6217
  DateInputComponent,
6013
- DragAndDropListComponent,
6014
- DragAndDropListItemComponent,
6015
6218
  FilterSelectionPipe,
6016
6219
  FilterTermPipe,
6017
6220
  FormErrorComponent,
@@ -6042,18 +6245,19 @@
6042
6245
  FormatNumberPipe,
6043
6246
  FormErrorDirective,
6044
6247
  FormSubmitDirective,
6045
- ErrorMessageComponent] });
6248
+ ErrorMessageComponent,
6249
+ LxDragAndDropListModule] });
6046
6250
  LxFormsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxFormsModule, imports: [[
6047
6251
  i2.CommonModule,
6048
- i3$3.DragDropModule,
6049
6252
  i3$2.FormsModule,
6050
6253
  i3$2.ReactiveFormsModule,
6051
6254
  i1$2.TranslateModule.forChild(),
6052
6255
  i1$3.DatepickerModule,
6053
6256
  i3$1.InfiniteScrollModule,
6054
6257
  i1.OverlayModule,
6055
- LxCoreUiModule
6056
- ]] });
6258
+ LxCoreUiModule,
6259
+ LxDragAndDropListModule
6260
+ ], LxDragAndDropListModule] });
6057
6261
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxFormsModule, decorators: [{
6058
6262
  type: i0.NgModule,
6059
6263
  args: [{
@@ -6063,8 +6267,6 @@
6063
6267
  CurrencyInputComponent,
6064
6268
  CurrencySymbolComponent,
6065
6269
  DateInputComponent,
6066
- DragAndDropListComponent,
6067
- DragAndDropListItemComponent,
6068
6270
  FilterSelectionPipe,
6069
6271
  FilterTermPipe,
6070
6272
  FormErrorComponent,
@@ -6100,14 +6302,14 @@
6100
6302
  ],
6101
6303
  imports: [
6102
6304
  i2.CommonModule,
6103
- i3$3.DragDropModule,
6104
6305
  i3$2.FormsModule,
6105
6306
  i3$2.ReactiveFormsModule,
6106
6307
  i1$2.TranslateModule.forChild(),
6107
6308
  i1$3.DatepickerModule,
6108
6309
  i3$1.InfiniteScrollModule,
6109
6310
  i1.OverlayModule,
6110
- LxCoreUiModule
6311
+ LxCoreUiModule,
6312
+ LxDragAndDropListModule
6111
6313
  ],
6112
6314
  exports: [
6113
6315
  BasicDropdownComponent,
@@ -6115,8 +6317,6 @@
6115
6317
  CurrencyInputComponent,
6116
6318
  CurrencySymbolComponent,
6117
6319
  DateInputComponent,
6118
- DragAndDropListComponent,
6119
- DragAndDropListItemComponent,
6120
6320
  FilterSelectionPipe,
6121
6321
  FilterTermPipe,
6122
6322
  FormErrorComponent,
@@ -6147,7 +6347,8 @@
6147
6347
  FormatNumberPipe,
6148
6348
  FormErrorDirective,
6149
6349
  FormSubmitDirective,
6150
- ErrorMessageComponent
6350
+ ErrorMessageComponent,
6351
+ LxDragAndDropListModule
6151
6352
  ]
6152
6353
  }]
6153
6354
  }] });
@@ -6398,7 +6599,7 @@
6398
6599
  return ModalComponent;
6399
6600
  }());
6400
6601
  ModalComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: ModalComponent, deps: [{ token: i1__namespace.Overlay }, { token: i0__namespace.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2__namespace$1.ConfigurableFocusTrapFactory }], target: i0__namespace.ɵɵFactoryTarget.Component });
6401
- ModalComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: i3.CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:focus,.lxmodal--fullscreen .closeButton:hover{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:focus,.lxmodal--fullscreen .fa-long-arrow-left:hover{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px 0 rgba(0,0,0,.24)}.lxmodal--dialog-large .modalContentContainer,.lxmodal--dialog .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog-large .closeButton,.lxmodal--dialog .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog-large .closeButton:before,.lxmodal--dialog .closeButton:before{cursor:pointer}.lxmodal--dialog-large .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog .closeButton:hover{color:#526179;background-color:#eaedf1}.lxmodal--dialog-large .closeButton:focus,.lxmodal--dialog .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 48px - 64px)}.modalContentContainer{flex:1}"], directives: [{ type: i3__namespace$3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace$2.TranslatePipe }, animations: [
6602
+ ModalComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: i3.CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:focus,.lxmodal--fullscreen .closeButton:hover{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:focus,.lxmodal--fullscreen .fa-long-arrow-left:hover{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px 0 rgba(0,0,0,.24)}.lxmodal--dialog-large .modalContentContainer,.lxmodal--dialog .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog-large .closeButton,.lxmodal--dialog .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:all .18s;transition-delay:.6s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog-large .closeButton:before,.lxmodal--dialog .closeButton:before{cursor:pointer}.lxmodal--dialog-large .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog .closeButton:hover{color:#526179;background-color:#eaedf1}.lxmodal--dialog-large .closeButton:focus,.lxmodal--dialog .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 48px - 64px)}.modalContentContainer{flex:1}"], directives: [{ type: i3__namespace$2.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace$2.TranslatePipe }, animations: [
6402
6603
  animations.trigger('modal', [
6403
6604
  animations.transition(':enter', [animations.style({ opacity: 0 }), animations.animate('0.15s', animations.style({ opacity: 1 }))]),
6404
6605
  animations.transition(':leave', animations.animate('0.15s', animations.style({ opacity: 0 })))
@@ -6667,7 +6868,7 @@
6667
6868
  return PopoverComponent;
6668
6869
  }());
6669
6870
  PopoverComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6670
- PopoverComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: i1$5.SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"false\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px rgba(0,0,0,.15);max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-webkit-animation:subtleScaleUpKeyFrames .2s ease;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}"], components: [{ type: i1__namespace$5.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
6871
+ PopoverComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: i0.TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: i1$6.SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"false\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@-webkit-keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px rgba(0,0,0,.15);max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;-webkit-animation:subtleScaleUpKeyFrames .2s ease;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}"], components: [{ type: i1__namespace$6.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
6671
6872
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverComponent, decorators: [{
6672
6873
  type: i0.Component,
6673
6874
  args: [{
@@ -6693,7 +6894,7 @@
6693
6894
  type: i0.Output
6694
6895
  }], satPopover: [{
6695
6896
  type: i0.ViewChild,
6696
- args: [i1$5.SatPopover, { static: true }]
6897
+ args: [i1$6.SatPopover, { static: true }]
6697
6898
  }], implicitContent: [{
6698
6899
  type: i0.ViewChild,
6699
6900
  args: ['implicitContent', { static: true }]
@@ -6730,7 +6931,7 @@
6730
6931
  };
6731
6932
  return PopoverClickDirective;
6732
6933
  }());
6733
- PopoverClickDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverClickDirective, deps: [{ token: i1__namespace$5.SatPopoverAnchor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
6934
+ PopoverClickDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverClickDirective, deps: [{ token: i1__namespace$6.SatPopoverAnchor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
6734
6935
  PopoverClickDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.4", type: PopoverClickDirective, selector: "[lxPopoverClick]", inputs: { lxPopoverPinned: "lxPopoverPinned" }, host: { listeners: { "mouseleave": "closePopover()" } }, exportAs: ["clickAnchor"], ngImport: i0__namespace });
6735
6936
  __decorate([
6736
6937
  Observe('lxPopoverPinned')
@@ -6741,7 +6942,7 @@
6741
6942
  exportAs: 'clickAnchor',
6742
6943
  selector: '[lxPopoverClick]'
6743
6944
  }]
6744
- }], ctorParameters: function () { return [{ type: i1__namespace$5.SatPopoverAnchor }]; }, propDecorators: { lxPopoverPinned: [{
6945
+ }], ctorParameters: function () { return [{ type: i1__namespace$6.SatPopoverAnchor }]; }, propDecorators: { lxPopoverPinned: [{
6745
6946
  type: i0.Input
6746
6947
  }], pinned$: [], closePopover: [{
6747
6948
  type: i0.HostListener,
@@ -6823,7 +7024,7 @@
6823
7024
  };
6824
7025
  return PopoverHoverDirective;
6825
7026
  }());
6826
- PopoverHoverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverHoverDirective, deps: [{ token: i1__namespace$5.SatPopoverAnchor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
7027
+ PopoverHoverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverHoverDirective, deps: [{ token: i1__namespace$6.SatPopoverAnchor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
6827
7028
  PopoverHoverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.4", type: PopoverHoverDirective, selector: "[lxPopoverHover]", inputs: { lxPopoverHover: "lxPopoverHover", skipCloseDelay: "skipCloseDelay" }, host: { listeners: { "mouseenter": "showPopover()", "mouseleave": "closePopover()" } }, exportAs: ["hoverAnchor"], ngImport: i0__namespace });
6828
7029
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: PopoverHoverDirective, decorators: [{
6829
7030
  type: i0.Directive,
@@ -6831,7 +7032,7 @@
6831
7032
  exportAs: 'hoverAnchor',
6832
7033
  selector: '[lxPopoverHover]'
6833
7034
  }]
6834
- }], ctorParameters: function () { return [{ type: i1__namespace$5.SatPopoverAnchor }]; }, propDecorators: { lxPopoverHover: [{
7035
+ }], ctorParameters: function () { return [{ type: i1__namespace$6.SatPopoverAnchor }]; }, propDecorators: { lxPopoverHover: [{
6835
7036
  type: i0.Input
6836
7037
  }], skipCloseDelay: [{
6837
7038
  type: i0.Input
@@ -6849,14 +7050,14 @@
6849
7050
  return LxPopoverUiModule;
6850
7051
  }());
6851
7052
  LxPopoverUiModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
6852
- LxPopoverUiModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective], imports: [i2.CommonModule, i1$5.SatPopoverModule], exports: [i1$5.SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective] });
6853
- LxPopoverUiModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, imports: [[i2.CommonModule, i1$5.SatPopoverModule], i1$5.SatPopoverModule] });
7053
+ LxPopoverUiModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective], imports: [i2.CommonModule, i1$6.SatPopoverModule], exports: [i1$6.SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective] });
7054
+ LxPopoverUiModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, imports: [[i2.CommonModule, i1$6.SatPopoverModule], i1$6.SatPopoverModule] });
6854
7055
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxPopoverUiModule, decorators: [{
6855
7056
  type: i0.NgModule,
6856
7057
  args: [{
6857
7058
  declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective],
6858
- imports: [i2.CommonModule, i1$5.SatPopoverModule],
6859
- exports: [i1$5.SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective]
7059
+ imports: [i2.CommonModule, i1$6.SatPopoverModule],
7060
+ exports: [i1$6.SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective]
6860
7061
  }]
6861
7062
  }] });
6862
7063
 
@@ -6891,7 +7092,7 @@
6891
7092
  return TabComponent;
6892
7093
  }());
6893
7094
  TabComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: TabComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
6894
- TabComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: TabComponent, selector: "lx-tab", inputs: { icon: "icon", label: "label", title: "title", tabLink: "tabLink", counter: "counter", routerLinkActiveOptions: "routerLinkActiveOptions", counterBadgeSize: "counterBadgeSize", noMargin: "noMargin", noLeftMarginForFirstTab: "noLeftMarginForFirstTab", background: "background", disabled: "disabled" }, outputs: { switch: "switch" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "routerLinkActive", first: true, predicate: i3$4.RouterLinkActive, descendants: true }], ngImport: i0__namespace, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:2px solid transparent;transition:border-bottom .5s;cursor:pointer}.tab.active,.tab:hover{border-bottom:2px solid #2a303d;transition:border-bottom .1s;outline:0}.tab.active,.tab.disabled{cursor:default}.tab.disabled{opacity:.3}.tab.active .tabLabel,.tab:hover .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}"], components: [{ type: BadgeComponent, selector: "lx-badge", inputs: ["content", "size", "color"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3__namespace$4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
7095
+ TabComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: TabComponent, selector: "lx-tab", inputs: { icon: "icon", label: "label", title: "title", tabLink: "tabLink", counter: "counter", routerLinkActiveOptions: "routerLinkActiveOptions", counterBadgeSize: "counterBadgeSize", noMargin: "noMargin", noLeftMarginForFirstTab: "noLeftMarginForFirstTab", background: "background", disabled: "disabled" }, outputs: { switch: "switch" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "routerLinkActive", first: true, predicate: i3$3.RouterLinkActive, descendants: true }], ngImport: i0__namespace, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:2px solid transparent;transition:border-bottom .5s;cursor:pointer}.tab.active,.tab:hover{border-bottom:2px solid #2a303d;transition:border-bottom .1s;outline:0}.tab.active,.tab.disabled{cursor:default}.tab.disabled{opacity:.3}.tab.active .tabLabel,.tab:hover .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}"], components: [{ type: BadgeComponent, selector: "lx-badge", inputs: ["content", "size", "color"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i3__namespace$3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3__namespace$2.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
6895
7096
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: TabComponent, decorators: [{
6896
7097
  type: i0.Component,
6897
7098
  args: [{
@@ -6929,7 +7130,7 @@
6929
7130
  args: ['contentTemplate', { static: true }]
6930
7131
  }], routerLinkActive: [{
6931
7132
  type: i0.ViewChild,
6932
- args: [i3$4.RouterLinkActive]
7133
+ args: [i3$3.RouterLinkActive]
6933
7134
  }] } });
6934
7135
 
6935
7136
  var TabGroupComponent = /** @class */ (function () {
@@ -6995,7 +7196,7 @@
6995
7196
  return TabGroupComponent;
6996
7197
  }());
6997
7198
  TabGroupComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: TabGroupComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
6998
- TabGroupComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: TabGroupComponent, selector: "lx-tab-group", inputs: { isCentered: "isCentered", selectedIndex: "selectedIndex" }, outputs: { indexChange: "indexChange" }, queries: [{ propertyName: "tabsQueryList", predicate: TabComponent }], usesOnChanges: true, ngImport: i0__namespace, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:1px solid #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}"], directives: [{ type: i3__namespace$3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
7199
+ TabGroupComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.4", type: TabGroupComponent, selector: "lx-tab-group", inputs: { isCentered: "isCentered", selectedIndex: "selectedIndex" }, outputs: { indexChange: "indexChange" }, queries: [{ propertyName: "tabsQueryList", predicate: TabComponent }], usesOnChanges: true, ngImport: i0__namespace, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:1px solid #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}"], directives: [{ type: i3__namespace$2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
6999
7200
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: TabGroupComponent, decorators: [{
7000
7201
  type: i0.Component,
7001
7202
  args: [{
@@ -7021,13 +7222,13 @@
7021
7222
  return LxTabUiModule;
7022
7223
  }());
7023
7224
  LxTabUiModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
7024
- LxTabUiModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, declarations: [TabGroupComponent, TabComponent], imports: [i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$4.RouterModule], exports: [TabGroupComponent, TabComponent] });
7025
- LxTabUiModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, imports: [[i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$4.RouterModule]] });
7225
+ LxTabUiModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, declarations: [TabGroupComponent, TabComponent], imports: [i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$3.RouterModule], exports: [TabGroupComponent, TabComponent] });
7226
+ LxTabUiModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, imports: [[i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$3.RouterModule]] });
7026
7227
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.4", ngImport: i0__namespace, type: LxTabUiModule, decorators: [{
7027
7228
  type: i0.NgModule,
7028
7229
  args: [{
7029
7230
  declarations: [TabGroupComponent, TabComponent],
7030
- imports: [i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$4.RouterModule],
7231
+ imports: [i3.PortalModule, i2.CommonModule, LxCoreUiModule, i3$3.RouterModule],
7031
7232
  exports: [TabGroupComponent, TabComponent]
7032
7233
  }]
7033
7234
  }] });
@@ -7090,6 +7291,7 @@
7090
7291
  exports.KeyboardSelectDirective = KeyboardSelectDirective;
7091
7292
  exports.LOCALE_FN = LOCALE_FN;
7092
7293
  exports.LxCoreUiModule = LxCoreUiModule;
7294
+ exports.LxDragAndDropListModule = LxDragAndDropListModule;
7093
7295
  exports.LxFormsModule = LxFormsModule;
7094
7296
  exports.LxIsUuidPipe = LxIsUuidPipe;
7095
7297
  exports.LxModalModule = LxModalModule;