@leanix/components 0.2.226 → 0.2.229

Sign up to get free protection for your applications and to get access to all the features.
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;