ngx-ode-ui 3.11.1-dev.0 → 3.12.0-dev.10

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 (50) hide show
  1. package/bundles/ngx-ode-ui.umd.js +310 -120
  2. package/bundles/ngx-ode-ui.umd.js.map +1 -1
  3. package/bundles/ngx-ode-ui.umd.min.js +2 -2
  4. package/bundles/ngx-ode-ui.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/dropdown/dropdown.component.js +76 -0
  6. package/esm2015/lib/components/item-tree/item-tree.component.js +7 -4
  7. package/esm2015/lib/components/list/list.component.js +13 -2
  8. package/esm2015/lib/components/list-checkable/list-checkable.component.js +137 -0
  9. package/esm2015/lib/components/message-box/message-box.component.js +25 -2
  10. package/esm2015/lib/components/message-sticker/message-sticker.component.js +6 -1
  11. package/esm2015/lib/components/mono-select/mono-select.component.js +8 -7
  12. package/esm2015/lib/components/multi-combo/multi-combo.component.js +2 -2
  13. package/esm2015/lib/components/search-input/search-input.component.js +15 -3
  14. package/esm2015/lib/ngx-ode-ui.module.js +8 -2
  15. package/esm2015/lib/utils/string.js +7 -2
  16. package/esm2015/ngx-ode-ui.js +3 -2
  17. package/esm2015/public-api.js +4 -3
  18. package/esm5/lib/components/dropdown/dropdown.component.js +81 -0
  19. package/esm5/lib/components/item-tree/item-tree.component.js +7 -4
  20. package/esm5/lib/components/list/list.component.js +13 -2
  21. package/esm5/lib/components/list-checkable/list-checkable.component.js +148 -0
  22. package/esm5/lib/components/message-box/message-box.component.js +33 -2
  23. package/esm5/lib/components/message-sticker/message-sticker.component.js +6 -1
  24. package/esm5/lib/components/mono-select/mono-select.component.js +8 -7
  25. package/esm5/lib/components/multi-combo/multi-combo.component.js +2 -2
  26. package/esm5/lib/components/search-input/search-input.component.js +16 -5
  27. package/esm5/lib/ngx-ode-ui.module.js +8 -2
  28. package/esm5/lib/utils/string.js +7 -2
  29. package/esm5/ngx-ode-ui.js +3 -2
  30. package/esm5/public-api.js +4 -3
  31. package/fesm2015/ngx-ode-ui.js +289 -120
  32. package/fesm2015/ngx-ode-ui.js.map +1 -1
  33. package/fesm5/ngx-ode-ui.js +310 -122
  34. package/fesm5/ngx-ode-ui.js.map +1 -1
  35. package/lib/components/dropdown/dropdown.component.d.ts +36 -0
  36. package/lib/components/item-tree/item-tree.component.d.ts +3 -2
  37. package/lib/components/list/list.component.d.ts +3 -0
  38. package/lib/components/list-checkable/list-checkable.component.d.ts +55 -0
  39. package/lib/components/message-box/message-box.component.d.ts +7 -0
  40. package/lib/components/message-sticker/message-sticker.component.d.ts +1 -0
  41. package/lib/components/mono-select/mono-select.component.d.ts +1 -1
  42. package/lib/components/search-input/search-input.component.d.ts +3 -0
  43. package/lib/utils/string.d.ts +1 -0
  44. package/ngx-ode-ui.d.ts +1 -0
  45. package/ngx-ode-ui.metadata.json +1 -1
  46. package/package.json +1 -1
  47. package/public-api.d.ts +1 -1
  48. package/esm2015/lib/helpers/accents.helper.js +0 -104
  49. package/esm5/lib/helpers/accents.helper.js +0 -104
  50. package/lib/helpers/accents.helper.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { Injectable, ApplicationRef, forwardRef, EventEmitter, Component, Renderer2, Injector, ViewChild, Input, Output, ElementRef, ContentChild, TemplateRef, Directive, ViewContainerRef, ComponentFactoryResolver, ChangeDetectionStrategy, ContentChildren, HostListener, HostBinding, NgModule, Compiler, Pipe } from '@angular/core';
1
+ import { Injectable, ApplicationRef, forwardRef, EventEmitter, Component, Renderer2, Injector, ViewChild, Input, Output, ElementRef, ContentChild, TemplateRef, HostBinding, Directive, ViewContainerRef, ComponentFactoryResolver, ChangeDetectionStrategy, ContentChildren, HostListener, NgModule, Compiler, Pipe } from '@angular/core';
2
2
  import { throwError, Observable, Subject } from 'rxjs';
3
3
  import { OdeComponent } from 'ngx-ode-core';
4
4
  import { NG_VALUE_ACCESSOR, NgModel, FormsModule } from '@angular/forms';
@@ -868,7 +868,7 @@ class ItemTreeComponent extends OdeComponent {
868
868
  * @return {?}
869
869
  */
870
870
  display(item) {
871
- return item[this.displayProperty];
871
+ return this.displayProperty && item[this.displayProperty];
872
872
  }
873
873
  /**
874
874
  * @param {?} item
@@ -935,7 +935,7 @@ class ItemTreeComponent extends OdeComponent {
935
935
  ItemTreeComponent.decorators = [
936
936
  { type: Component, args: [{
937
937
  selector: 'ode-item-tree',
938
- template: "<ul [ngClass]=\"{ flattened: isFlattened() }\">\n <li *ngFor=\"let item of (items | flattenObjArray: flatten | filter: filter | orderBy: order:reverse)\"\n [ngClass]=\"{ selected: isSelected(item), unfolded: !isFolded(item), parent: hasChildren(item), root: _depth === 0 }\">\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" *ngIf=\"!checkboxMode\">\n <i class=\"opener\" (click)=\"toggleFold($event, item)\"\n *ngIf=\"!isFlattened() && hasChildren(item) && !disableOpener\"></i>\n {{ display(item) }}\n </a>\n <div class=\"checkbox__item\" *ngIf=\"checkboxMode\">\n <input id=\"all\" type=\"checkbox\" [(ngModel)]=\"item.check\" ngDefaultControl>\n <label for=\"all\" (click)=\"checkItem(item)\">{{display(item)}}</label>\n </div>\n <ode-item-tree\n [items]=\"getChildren(item)\"\n [children]=\"childrenProperty\"\n [display]=\"displayProperty\"\n [filter]=\"filter\"\n [order]=\"order\"\n [reverse]=\"reverse\"\n [lastSelected]=\"_lastSelectedItem\"\n [depth]=\"_depth + 1\"\n [disableOpener]=\"disableOpener\"\n [checkboxMode]=\"checkboxMode\"\n (onSelect)=\"bubbleSelect($event)\"\n (onCheck)=\"checkItem($event)\"\n *ngIf=\"(checkboxMode && hasChildren(item)) || (!isFlattened() && hasChildren(item) && !isFolded(item))\">\n </ode-item-tree>\n </li>\n</ul>\n"
938
+ template: "<ul [ngClass]=\"{ flattened: isFlattened() }\">\n <li *ngFor=\"let item of (items | flattenObjArray: flatten | filter: filter | orderBy: order:reverse)\"\n [ngClass]=\"{ selected: isSelected(item), unfolded: !isFolded(item), parent: hasChildren(item), root: _depth === 0 }\">\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" *ngIf=\"!checkboxMode\">\n <i class=\"opener\" (click)=\"toggleFold($event, item)\"\n *ngIf=\"!isFlattened() && hasChildren(item) && !disableOpener\"></i>\n <span *ngIf=\"displayProperty\">{{ display(item) }}</span>\n <span *ngIf=\"displayTemplate\">\n <ng-template [ngTemplateOutlet]=\"displayTemplate\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template>\n </span>\n </a>\n <div class=\"checkbox__item\" *ngIf=\"checkboxMode\">\n <input id=\"all\" type=\"checkbox\" [(ngModel)]=\"item.check\" ngDefaultControl>\n <label *ngIf=\"displayProperty\" for=\"all\" (click)=\"checkItem(item)\">{{display(item)}}</label>\n <span *ngIf=\"displayTemplate\">\n <ng-template [ngTemplateOutlet]=\"displayTemplate\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template>\n </span>\n </div>\n <ode-item-tree\n [items]=\"getChildren(item)\"\n [children]=\"childrenProperty\"\n [display]=\"displayProperty\"\n [displayTemplate]=\"displayTemplate\"\n [filter]=\"filter\"\n [order]=\"order\"\n [reverse]=\"reverse\"\n [lastSelected]=\"_lastSelectedItem\"\n [depth]=\"_depth + 1\"\n [disableOpener]=\"disableOpener\"\n [checkboxMode]=\"checkboxMode\"\n (onSelect)=\"bubbleSelect($event)\"\n (onCheck)=\"checkItem($event)\"\n *ngIf=\"(checkboxMode && hasChildren(item)) || (!isFlattened() && hasChildren(item) && !isFolded(item))\">\n </ode-item-tree>\n </li>\n</ul>\n"
939
939
  }] }
940
940
  ];
941
941
  /** @nocollapse */
@@ -946,6 +946,7 @@ ItemTreeComponent.propDecorators = {
946
946
  items: [{ type: Input }],
947
947
  childrenProperty: [{ type: Input, args: ['children',] }],
948
948
  displayProperty: [{ type: Input, args: ['display',] }],
949
+ displayTemplate: [{ type: Input }],
949
950
  filter: [{ type: Input }],
950
951
  order: [{ type: Input }],
951
952
  reverse: [{ type: Input }],
@@ -969,6 +970,8 @@ if (false) {
969
970
  /** @type {?} */
970
971
  ItemTreeComponent.prototype.displayProperty;
971
972
  /** @type {?} */
973
+ ItemTreeComponent.prototype.displayTemplate;
974
+ /** @type {?} */
972
975
  ItemTreeComponent.prototype.filter;
973
976
  /** @type {?} */
974
977
  ItemTreeComponent.prototype.order;
@@ -1221,6 +1224,8 @@ class ListComponent extends OdeComponent {
1221
1224
  this.model = [];
1222
1225
  this.searchPlaceholder = 'search';
1223
1226
  this.noResultsLabel = 'list.results.no.items';
1227
+ this.isSearchActive = true;
1228
+ this.searchInput = false;
1224
1229
  this.inputChange = new EventEmitter();
1225
1230
  this.onSelect = new EventEmitter();
1226
1231
  this.listChange = new EventEmitter();
@@ -1259,7 +1264,7 @@ class ListComponent extends OdeComponent {
1259
1264
  ListComponent.decorators = [
1260
1265
  { type: Component, args: [{
1261
1266
  selector: 'ode-list',
1262
- template: "<ode-search-input [attr.placeholder]=\"searchPlaceholder | translate\" (onChange)=\"inputChange.emit($event)\"></ode-search-input>\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n<div class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n <ul>\n <li *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\">\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n</div>\n",
1267
+ template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"></ode-search-input>\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n<div class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n <ul>\n <li *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\">\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n</div>\n",
1263
1268
  styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.disabled{pointer-events:none}"]
1264
1269
  }] }
1265
1270
  ];
@@ -1275,6 +1280,9 @@ ListComponent.propDecorators = {
1275
1280
  limit: [{ type: Input }],
1276
1281
  searchPlaceholder: [{ type: Input }],
1277
1282
  noResultsLabel: [{ type: Input }],
1283
+ isSearchActive: [{ type: Input }],
1284
+ searchInput: [{ type: Input }],
1285
+ searchSubmit: [{ type: Input }],
1278
1286
  inputChange: [{ type: Output }],
1279
1287
  onSelect: [{ type: Output }],
1280
1288
  listChange: [{ type: Output }],
@@ -1304,6 +1312,12 @@ if (false) {
1304
1312
  /** @type {?} */
1305
1313
  ListComponent.prototype.noResultsLabel;
1306
1314
  /** @type {?} */
1315
+ ListComponent.prototype.isSearchActive;
1316
+ /** @type {?} */
1317
+ ListComponent.prototype.searchInput;
1318
+ /** @type {?} */
1319
+ ListComponent.prototype.searchSubmit;
1320
+ /** @type {?} */
1307
1321
  ListComponent.prototype.inputChange;
1308
1322
  /** @type {?} */
1309
1323
  ListComponent.prototype.onSelect;
@@ -1321,6 +1335,141 @@ if (false) {
1321
1335
  ListComponent.prototype.ngClass;
1322
1336
  }
1323
1337
 
1338
+ /**
1339
+ * @fileoverview added by tsickle
1340
+ * Generated from: lib/components/list-checkable/list-checkable.component.ts
1341
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1342
+ */
1343
+ class ListCheckableComponent extends OdeComponent {
1344
+ /**
1345
+ * @param {?} injector
1346
+ */
1347
+ constructor(injector) {
1348
+ super(injector);
1349
+ this.model = [];
1350
+ this.noResultsLabel = 'list.results.no.items';
1351
+ this.readOnly = false;
1352
+ this.onCheck = new EventEmitter();
1353
+ this.listChange = new EventEmitter();
1354
+ this.scrolledDown = new EventEmitter();
1355
+ this.areAllChecked = (/**
1356
+ * @return {?}
1357
+ */
1358
+ () => false);
1359
+ this.isChecked = (/**
1360
+ * @param {?=} arg
1361
+ * @return {?}
1362
+ */
1363
+ (arg) => false);
1364
+ this.isDisabled = (/**
1365
+ * @param {?=} arg
1366
+ * @return {?}
1367
+ */
1368
+ (arg) => false);
1369
+ this.ngClass = (/**
1370
+ * @param {?=} arg
1371
+ * @return {?}
1372
+ */
1373
+ (arg) => ({}));
1374
+ /* Store pipe */
1375
+ this.self = this;
1376
+ this._storedElements = [];
1377
+ }
1378
+ /**
1379
+ * @param {?} list
1380
+ * @return {?}
1381
+ */
1382
+ set storedElements(list) {
1383
+ this._storedElements = list;
1384
+ this.listChange.emit(list);
1385
+ }
1386
+ /**
1387
+ * @return {?}
1388
+ */
1389
+ get storedElements() {
1390
+ return this._storedElements;
1391
+ }
1392
+ /**
1393
+ * @param {?} checkAll
1394
+ * @return {?}
1395
+ */
1396
+ toggleAll(checkAll) {
1397
+ this.model.forEach((/**
1398
+ * @param {?} item
1399
+ * @return {?}
1400
+ */
1401
+ item => {
1402
+ /** @type {?} */
1403
+ const isChecked = this.isChecked(item);
1404
+ if (!this.isDisabled(item)
1405
+ && ((isChecked && !checkAll) || (!isChecked && checkAll))) {
1406
+ this.onCheck.emit({ item: item, checked: checkAll });
1407
+ }
1408
+ }));
1409
+ }
1410
+ }
1411
+ ListCheckableComponent.decorators = [
1412
+ { type: Component, args: [{
1413
+ selector: 'ode-list-checkable',
1414
+ template: "<div class=\"list-checkable-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\"><span>{{ noResultsLabel | translate }}</span></li>\n </ul>\n \n <ul>\n <li class=\"select-all\" \n [class.checked]=\"areAllChecked()\"\n *ngIf=\"!readOnly\">\n <label>\n <span>{{(areAllChecked() ? 'ux.multiselect.deselect-all' : 'ux.multiselect.select-all') | translate}}</span>\n <input type=\"checkbox\" [checked]=\"areAllChecked()\" (change)=\"toggleAll($event.target.checked)\" />\n </label>\n </li>\n\n <li class=\"lct-list-checkable-item\" \n [class.checked]=\"isChecked(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n *ngFor=\"let item of model | filter: filters | store:self:'storedElements' | orderBy: sort | slice: 0:limit\">\n <label>\n <span>\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template> \n </span>\n <input *ngIf=\"!readOnly\" type=\"checkbox\" \n [disabled]=\"isDisabled(item)\"\n [checked]=\"isChecked(item)\"\n (change)=\"onCheck.emit({item:item, checked:$event.target.checked})\"/>\n </label>\n </li>\n </ul>\n\n</div>\n",
1415
+ styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{border-top:1px solid #ddd;width:-webkit-fill-available;width:-moz-available;display:flex}ul li:not(.checked){color:#939393}ul li.disabled{pointer-events:none}ul li.select-all{background-color:#ff83520a;color:#5b6472}ul li.select-all span{text-align:right}ul li label{cursor:pointer;width:100%;display:flex}ul li label:hover{background-color:#eaedf2}ul li label span{padding:7px 15px;width:100%}ul li label input[type=checkbox]{margin-right:15px;-ms-grid-row-align:center;align-self:center}"]
1416
+ }] }
1417
+ ];
1418
+ /** @nocollapse */
1419
+ ListCheckableComponent.ctorParameters = () => [
1420
+ { type: Injector }
1421
+ ];
1422
+ ListCheckableComponent.propDecorators = {
1423
+ model: [{ type: Input }],
1424
+ filters: [{ type: Input }],
1425
+ sort: [{ type: Input }],
1426
+ limit: [{ type: Input }],
1427
+ noResultsLabel: [{ type: Input }],
1428
+ readOnly: [{ type: Input }],
1429
+ onCheck: [{ type: Output }],
1430
+ listChange: [{ type: Output }],
1431
+ scrolledDown: [{ type: Output }],
1432
+ templateRef: [{ type: ContentChild, args: [TemplateRef, { static: false },] }],
1433
+ areAllChecked: [{ type: Input }],
1434
+ isChecked: [{ type: Input }],
1435
+ isDisabled: [{ type: Input }],
1436
+ ngClass: [{ type: Input }]
1437
+ };
1438
+ if (false) {
1439
+ /** @type {?} */
1440
+ ListCheckableComponent.prototype.model;
1441
+ /** @type {?} */
1442
+ ListCheckableComponent.prototype.filters;
1443
+ /** @type {?} */
1444
+ ListCheckableComponent.prototype.sort;
1445
+ /** @type {?} */
1446
+ ListCheckableComponent.prototype.limit;
1447
+ /** @type {?} */
1448
+ ListCheckableComponent.prototype.noResultsLabel;
1449
+ /** @type {?} */
1450
+ ListCheckableComponent.prototype.readOnly;
1451
+ /** @type {?} */
1452
+ ListCheckableComponent.prototype.onCheck;
1453
+ /** @type {?} */
1454
+ ListCheckableComponent.prototype.listChange;
1455
+ /** @type {?} */
1456
+ ListCheckableComponent.prototype.scrolledDown;
1457
+ /** @type {?} */
1458
+ ListCheckableComponent.prototype.templateRef;
1459
+ /** @type {?} */
1460
+ ListCheckableComponent.prototype.areAllChecked;
1461
+ /** @type {?} */
1462
+ ListCheckableComponent.prototype.isChecked;
1463
+ /** @type {?} */
1464
+ ListCheckableComponent.prototype.isDisabled;
1465
+ /** @type {?} */
1466
+ ListCheckableComponent.prototype.ngClass;
1467
+ /** @type {?} */
1468
+ ListCheckableComponent.prototype.self;
1469
+ /** @type {?} */
1470
+ ListCheckableComponent.prototype._storedElements;
1471
+ }
1472
+
1324
1473
  /**
1325
1474
  * @fileoverview added by tsickle
1326
1475
  * Generated from: lib/components/message-box/message-box.component.ts
@@ -1342,6 +1491,11 @@ class MessageBoxComponent extends OdeComponent {
1342
1491
  super(injector);
1343
1492
  this.eltRef = eltRef;
1344
1493
  this._position = 'inherit';
1494
+ /**
1495
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1496
+ * No effect when position is 'inherit'.
1497
+ */
1498
+ this.gravity = 'left';
1345
1499
  this.hidden = false;
1346
1500
  }
1347
1501
  /**
@@ -1372,6 +1526,14 @@ class MessageBoxComponent extends OdeComponent {
1372
1526
  set position(value) {
1373
1527
  this._position = value;
1374
1528
  }
1529
+ /**
1530
+ * @return {?}
1531
+ */
1532
+ get isGravityLeft() { return this.gravity === 'left'; }
1533
+ /**
1534
+ * @return {?}
1535
+ */
1536
+ get isGravityRight() { return this.gravity === 'right'; }
1375
1537
  /**
1376
1538
  * @return {?}
1377
1539
  */
@@ -1408,7 +1570,7 @@ MessageBoxComponent.decorators = [
1408
1570
  { type: Component, args: [{
1409
1571
  selector: 'message-box',
1410
1572
  template: "<article class=\"message is-{{type}}\" [hidden]=\"hidden\">\n <div *ngIf=\"header\" class=\"message-header\">\n <p>\n <i *ngIf=\"canHide()\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n {{header | translate}}\n </p>\n </div>\n <div class=\"message-body\">\n <i *ngIf=\"canHide() && !header\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n <p *ngFor=\"let message of messages\">\n <s5l [s5l-params]=\"message[1]\">{{message[0]}}</s5l>\n </p>\n </div>\n</article>\n",
1411
- styles: [":host{font-size:initial;position:inherit;top:-5px;right:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}"]
1573
+ styles: [":host{font-size:initial;position:inherit;top:-5px}:host.gravity-left{right:-5px}:host.gravity-right{left:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}"]
1412
1574
  }] }
1413
1575
  ];
1414
1576
  /** @nocollapse */
@@ -1421,6 +1583,9 @@ MessageBoxComponent.propDecorators = {
1421
1583
  header: [{ type: Input }],
1422
1584
  messages: [{ type: Input }],
1423
1585
  position: [{ type: Input }],
1586
+ gravity: [{ type: Input }],
1587
+ isGravityLeft: [{ type: HostBinding, args: ['class.gravity-left',] }],
1588
+ isGravityRight: [{ type: HostBinding, args: ['class.gravity-right',] }],
1424
1589
  hideEvent: [{ type: Output, args: ['onHide',] }]
1425
1590
  };
1426
1591
  if (false) {
@@ -1438,6 +1603,12 @@ if (false) {
1438
1603
  * @private
1439
1604
  */
1440
1605
  MessageBoxComponent.prototype._position;
1606
+ /**
1607
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1608
+ * No effect when position is 'inherit'.
1609
+ * @type {?}
1610
+ */
1611
+ MessageBoxComponent.prototype.gravity;
1441
1612
  /** @type {?} */
1442
1613
  MessageBoxComponent.prototype.hidden;
1443
1614
  /** @type {?} */
@@ -1592,6 +1763,7 @@ class MessageStickerComponent extends OdeComponent {
1592
1763
  */
1593
1764
  constructor(injector) {
1594
1765
  super(injector);
1766
+ this.gravity = 'left';
1595
1767
  this.icons = icons;
1596
1768
  }
1597
1769
  /**
@@ -1612,6 +1784,7 @@ class MessageStickerComponent extends OdeComponent {
1612
1784
  header: this.header,
1613
1785
  messages: this.messages,
1614
1786
  position: 'absolute',
1787
+ gravity: this.gravity,
1615
1788
  hideEvent: new EventEmitter()
1616
1789
  });
1617
1790
  }
@@ -1637,6 +1810,7 @@ MessageStickerComponent.propDecorators = {
1637
1810
  type: [{ type: Input }],
1638
1811
  header: [{ type: Input }],
1639
1812
  messages: [{ type: Input }],
1813
+ gravity: [{ type: Input }],
1640
1814
  dComponent: [{ type: ViewChild, args: [DynamicComponentDirective, { static: false },] }]
1641
1815
  };
1642
1816
  if (false) {
@@ -1647,6 +1821,8 @@ if (false) {
1647
1821
  /** @type {?} */
1648
1822
  MessageStickerComponent.prototype.messages;
1649
1823
  /** @type {?} */
1824
+ MessageStickerComponent.prototype.gravity;
1825
+ /** @type {?} */
1650
1826
  MessageStickerComponent.prototype.dComponent;
1651
1827
  /** @type {?} */
1652
1828
  MessageStickerComponent.prototype.icons;
@@ -1673,7 +1849,7 @@ class MonoSelectComponent extends OdeComponent {
1673
1849
  this.translateOptions = true;
1674
1850
  this.opened = false;
1675
1851
  this.selectedOption = null;
1676
- this.isDisabled = false;
1852
+ this.disabled = false;
1677
1853
  this.onChange = (/**
1678
1854
  * @param {?} _
1679
1855
  * @return {?}
@@ -1710,7 +1886,7 @@ class MonoSelectComponent extends OdeComponent {
1710
1886
  * @return {?}
1711
1887
  */
1712
1888
  onClickOnHost() {
1713
- if (!this.opened && !this.isDisabled) {
1889
+ if (!this.opened && !this.disabled) {
1714
1890
  this.opened = true;
1715
1891
  }
1716
1892
  else {
@@ -1736,7 +1912,7 @@ class MonoSelectComponent extends OdeComponent {
1736
1912
  * @return {?}
1737
1913
  */
1738
1914
  setDisabledState(isDisabled) {
1739
- this.isDisabled = isDisabled;
1915
+ this.disabled = isDisabled;
1740
1916
  }
1741
1917
  /**
1742
1918
  * @param {?} obj
@@ -1754,7 +1930,7 @@ class MonoSelectComponent extends OdeComponent {
1754
1930
  MonoSelectComponent.decorators = [
1755
1931
  { type: Component, args: [{
1756
1932
  selector: 'ode-mono-select',
1757
- template: "<div class=\"form-select lct-form-select\" [ngClass]=\"{'form-select--opened': opened, 'form-select--disabled': isDisabled}\">\n <ul>\n <li class=\"form-select__options--selected lct-form-select__options--selected\">\n <strong>{{selectedOption ? ((translateOptions == true) ? (selectedOption.label | translate) : selectedOption.label) : (placeholder | translate)}}</strong>\n <ul class=\"form-select__list lct-form-select__list\" *ngIf=\"opened\">\n <li class=\"form-select__options lct-form-select__options\"\n (click)=\"$event.stopPropagation(); optionClicked()\">{{placeholder | translate}}</li>\n <li class=\"form-select__options lct-form-select__options\"\n *ngFor=\"let option of options\"\n (click)=\"$event.stopPropagation(); optionClicked(option)\">{{(translateOptions == true) ? (option.label | translate) : option.label}}</li>\n </ul>\n </li>\n </ul>\n</div>\n",
1933
+ template: "<div class=\"form-select lct-form-select\" [ngClass]=\"{'form-select--opened': opened, 'form-select--disabled': disabled}\">\n <ul>\n <li class=\"form-select__options--selected lct-form-select__options--selected\">\n <strong>{{selectedOption ? ((translateOptions == true) ? (selectedOption.label | translate) : selectedOption.label) : (placeholder | translate)}}</strong>\n <ul class=\"form-select__list lct-form-select__list\" *ngIf=\"opened\">\n <li class=\"form-select__options lct-form-select__options\"\n (click)=\"$event.stopPropagation(); optionClicked()\">{{placeholder | translate}}</li>\n <li class=\"form-select__options lct-form-select__options\"\n *ngFor=\"let option of options\"\n (click)=\"$event.stopPropagation(); optionClicked(option)\">{{(translateOptions == true) ? (option.label | translate) : option.label}}</li>\n </ul>\n </li>\n </ul>\n</div>\n",
1758
1934
  providers: [{
1759
1935
  provide: NG_VALUE_ACCESSOR,
1760
1936
  useExisting: forwardRef((/**
@@ -1778,7 +1954,8 @@ MonoSelectComponent.propDecorators = {
1778
1954
  placeholder: [{ type: Input }],
1779
1955
  options: [{ type: Input }],
1780
1956
  trackByFn: [{ type: Input }],
1781
- translateOptions: [{ type: Input }]
1957
+ translateOptions: [{ type: Input }],
1958
+ disabled: [{ type: Input }]
1782
1959
  };
1783
1960
  if (false) {
1784
1961
  /** @type {?} */
@@ -1794,7 +1971,7 @@ if (false) {
1794
1971
  /** @type {?} */
1795
1972
  MonoSelectComponent.prototype.selectedOption;
1796
1973
  /** @type {?} */
1797
- MonoSelectComponent.prototype.isDisabled;
1974
+ MonoSelectComponent.prototype.disabled;
1798
1975
  /**
1799
1976
  * @type {?}
1800
1977
  * @private
@@ -1986,7 +2163,7 @@ class MultiComboComponent extends OdeComponent {
1986
2163
  MultiComboComponent.decorators = [
1987
2164
  { type: Component, args: [{
1988
2165
  selector: 'ode-multi-combo',
1989
- template: "<button (click)=\"toggleVisibility()\"\n [ngClass]=\"{ opened: show }\"\n [disabled]=\"disabled\">\n {{ title }}\n</button>\n<div [ngClass]=\"{ hidden: !show }\">\n <div class=\"options\">\n <button class=\"select-all\" (click)=\"selectAll()\" *ngIf=\"!maxSelected\"\n [title]=\"labels('select.all')\">{{ labels('select.all') }}</button>\n <button class=\"deselect-all\" (click)=\"deselectAll()\"\n [title]=\"labels('deselect.all')\">{{ labels('deselect.all') }}</button>\n </div>\n <div *ngIf=\"filter\" class=\"filter\">\n <ode-search-input (onChange)=\"search.input = $event\" [attr.placeholder]=\"labels('search')\"></ode-search-input>\n </div>\n <ul>\n <li *ngFor=\"let item of _comboModel | filter: getFilter() | orderBy: orderBy | store: self:'filteredComboModel'\"\n (click)=\"toggleItem(item)\"\n [ngClass]=\"{ selected: isSelected(item) }\"\n [attr.disabled]=\"isDisabled()\">\n {{ displayItem(item) | translate }}\n </li>\n </ul>\n</div>\n",
2166
+ template: "<button (click)=\"toggleVisibility()\"\n [ngClass]=\"{ opened: show }\"\n [disabled]=\"disabled\"\n type=\"button\">\n {{ title }}\n</button>\n<div [ngClass]=\"{ hidden: !show }\">\n <div class=\"options\">\n <button class=\"select-all\" (click)=\"selectAll()\" *ngIf=\"!maxSelected\"\n [title]=\"labels('select.all')\" type=\"button\">{{ labels('select.all') }}</button>\n <button class=\"deselect-all\" (click)=\"deselectAll()\"\n [title]=\"labels('deselect.all')\" type=\"button\">{{ labels('deselect.all') }}</button>\n </div>\n <div *ngIf=\"filter\" class=\"filter\">\n <ode-search-input (onChange)=\"search.input = $event\" [attr.placeholder]=\"labels('search')\"></ode-search-input>\n </div>\n <ul>\n <li *ngFor=\"let item of _comboModel | filter: getFilter() | orderBy: orderBy | store: self:'filteredComboModel'\"\n (click)=\"toggleItem(item)\"\n [ngClass]=\"{ selected: isSelected(item) }\"\n [attr.disabled]=\"isDisabled()\">\n {{ displayItem(item) | translate }}\n </li>\n </ul>\n</div>\n",
1990
2167
  host: {
1991
2168
  '(document:click)': 'onClick($event)',
1992
2169
  },
@@ -2430,12 +2607,14 @@ class SearchInputComponent extends OdeComponent {
2430
2607
  super(injector);
2431
2608
  this._elRef = _elRef;
2432
2609
  this._renderer = _renderer;
2610
+ /* Inputs / Outputs / View */
2611
+ this.isSearchActive = false;
2612
+ this.searchInput = false;
2433
2613
  this._delay = 200;
2434
2614
  this.onChange = new EventEmitter();
2435
2615
  /* Internal logic */
2436
2616
  this.$searchTerms = new Subject();
2437
2617
  }
2438
- /* Inputs / Outputs / View */
2439
2618
  /**
2440
2619
  * @param {?} d
2441
2620
  * @return {?}
@@ -2514,7 +2693,8 @@ class SearchInputComponent extends OdeComponent {
2514
2693
  SearchInputComponent.decorators = [
2515
2694
  { type: Component, args: [{
2516
2695
  selector: 'ode-search-input',
2517
- template: "<input type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/>\n"
2696
+ template: "<form\n class=\"search-container\"\n (ngSubmit)=\"searchInput && searchSubmit()\">\n <input\n #searchBox\n class=\"search-input\"\n name=\"searchTerm\"\n type=\"search\"\n (input)=\"search(searchBox.value)\" />\n <button class=\"search-button\" *ngIf=\"searchInput\">\n <i class=\"fa fa-search is-size-4 search-icon\"></i>\n </button>\n</form>\n\n<!-- <input *ngIf=\"!searchInput\" type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/> -->",
2697
+ styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}"]
2518
2698
  }] }
2519
2699
  ];
2520
2700
  /** @nocollapse */
@@ -2524,11 +2704,20 @@ SearchInputComponent.ctorParameters = () => [
2524
2704
  { type: Renderer2 }
2525
2705
  ];
2526
2706
  SearchInputComponent.propDecorators = {
2707
+ isSearchActive: [{ type: Input }],
2708
+ searchInput: [{ type: Input }],
2709
+ searchSubmit: [{ type: Input }],
2527
2710
  delay: [{ type: Input }],
2528
2711
  onChange: [{ type: Output }],
2529
2712
  searchBox: [{ type: ViewChild, args: ['searchBox', { static: false },] }]
2530
2713
  };
2531
2714
  if (false) {
2715
+ /** @type {?} */
2716
+ SearchInputComponent.prototype.isSearchActive;
2717
+ /** @type {?} */
2718
+ SearchInputComponent.prototype.searchInput;
2719
+ /** @type {?} */
2720
+ SearchInputComponent.prototype.searchSubmit;
2532
2721
  /**
2533
2722
  * @type {?}
2534
2723
  * @private
@@ -4420,110 +4609,6 @@ LengthPipe.decorators = [
4420
4609
  },] }
4421
4610
  ];
4422
4611
 
4423
- /**
4424
- * @fileoverview added by tsickle
4425
- * Generated from: lib/helpers/accents.helper.ts
4426
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4427
- */
4428
- /** @type {?} */
4429
- const defaultDiacriticsRemovalMap = [
4430
- { base: 'A', letters: /[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g },
4431
- { base: 'AA', letters: /[\uA732]/g },
4432
- { base: 'AE', letters: /[\u00C6\u01FC\u01E2]/g },
4433
- { base: 'AO', letters: /[\uA734]/g },
4434
- { base: 'AU', letters: /[\uA736]/g },
4435
- { base: 'AV', letters: /[\uA738\uA73A]/g },
4436
- { base: 'AY', letters: /[\uA73C]/g },
4437
- { base: 'B', letters: /[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g },
4438
- { base: 'C', letters: /[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g },
4439
- { base: 'D', letters: /[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g },
4440
- { base: 'DZ', letters: /[\u01F1\u01C4]/g },
4441
- { base: 'Dz', letters: /[\u01F2\u01C5]/g },
4442
- { base: 'E', letters: /[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g },
4443
- { base: 'F', letters: /[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g },
4444
- { base: 'G', letters: /[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g },
4445
- { base: 'H', letters: /[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g },
4446
- { base: 'I', letters: /[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g },
4447
- { base: 'J', letters: /[\u004A\u24BF\uFF2A\u0134\u0248]/g },
4448
- { base: 'K', letters: /[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g },
4449
- { base: 'L', letters: /[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g },
4450
- { base: 'LJ', letters: /[\u01C7]/g },
4451
- { base: 'Lj', letters: /[\u01C8]/g },
4452
- { base: 'M', letters: /[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g },
4453
- { base: 'N', letters: /[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g },
4454
- { base: 'NJ', letters: /[\u01CA]/g },
4455
- { base: 'Nj', letters: /[\u01CB]/g },
4456
- { base: 'O', letters: /[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g },
4457
- { base: 'OI', letters: /[\u01A2]/g },
4458
- { base: 'OO', letters: /[\uA74E]/g },
4459
- { base: 'OU', letters: /[\u0222]/g },
4460
- { base: 'P', letters: /[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g },
4461
- { base: 'Q', letters: /[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g },
4462
- { base: 'R', letters: /[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g },
4463
- { base: 'S', letters: /[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g },
4464
- { base: 'T', letters: /[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g },
4465
- { base: 'TZ', letters: /[\uA728]/g },
4466
- { base: 'U', letters: /[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g },
4467
- { base: 'V', letters: /[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g },
4468
- { base: 'VY', letters: /[\uA760]/g },
4469
- { base: 'W', letters: /[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g },
4470
- { base: 'X', letters: /[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g },
4471
- { base: 'Y', letters: /[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g },
4472
- { base: 'Z', letters: /[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g },
4473
- { base: 'a', letters: /[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g },
4474
- { base: 'aa', letters: /[\uA733]/g },
4475
- { base: 'ae', letters: /[\u00E6\u01FD\u01E3]/g },
4476
- { base: 'ao', letters: /[\uA735]/g },
4477
- { base: 'au', letters: /[\uA737]/g },
4478
- { base: 'av', letters: /[\uA739\uA73B]/g },
4479
- { base: 'ay', letters: /[\uA73D]/g },
4480
- { base: 'b', letters: /[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g },
4481
- { base: 'c', letters: /[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g },
4482
- { base: 'd', letters: /[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g },
4483
- { base: 'dz', letters: /[\u01F3\u01C6]/g },
4484
- { base: 'e', letters: /[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g },
4485
- { base: 'f', letters: /[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g },
4486
- { base: 'g', letters: /[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g },
4487
- { base: 'h', letters: /[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g },
4488
- { base: 'hv', letters: /[\u0195]/g },
4489
- { base: 'i', letters: /[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g },
4490
- { base: 'j', letters: /[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g },
4491
- { base: 'k', letters: /[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g },
4492
- { base: 'l', letters: /[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g },
4493
- { base: 'lj', letters: /[\u01C9]/g },
4494
- { base: 'm', letters: /[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g },
4495
- { base: 'n', letters: /[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g },
4496
- { base: 'nj', letters: /[\u01CC]/g },
4497
- { base: 'o', letters: /[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g },
4498
- { base: 'oi', letters: /[\u01A3]/g },
4499
- { base: 'ou', letters: /[\u0223]/g },
4500
- { base: 'oo', letters: /[\uA74F]/g },
4501
- { base: 'p', letters: /[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g },
4502
- { base: 'q', letters: /[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g },
4503
- { base: 'r', letters: /[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g },
4504
- { base: 's', letters: /[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g },
4505
- { base: 't', letters: /[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g },
4506
- { base: 'tz', letters: /[\uA729]/g },
4507
- { base: 'u', letters: /[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g },
4508
- { base: 'v', letters: /[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g },
4509
- { base: 'vy', letters: /[\uA761]/g },
4510
- { base: 'w', letters: /[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g },
4511
- { base: 'x', letters: /[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g },
4512
- { base: 'y', letters: /[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g },
4513
- { base: 'z', letters: /[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g }
4514
- ];
4515
- /** @type {?} */
4516
- const removeAccents = (/**
4517
- * @param {?} str
4518
- * @return {?}
4519
- */
4520
- (str) => {
4521
- for (let i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
4522
- str = str.replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base);
4523
- }
4524
- return str;
4525
- });
4526
-
4527
4612
  /**
4528
4613
  * @fileoverview added by tsickle
4529
4614
  * Generated from: lib/utils/string.ts
@@ -4546,6 +4631,12 @@ function trim(text) {
4546
4631
  function standardise(str) {
4547
4632
  return removeAccents(str != null ? str : '').toLowerCase().replace('\\s+', ' ');
4548
4633
  }
4634
+ /** @type {?} */
4635
+ const removeAccents = (/**
4636
+ * @param {?} str
4637
+ * @return {?}
4638
+ */
4639
+ (str) => str.normalize("NFD").replace(/\p{Diacritic}/gu, ''));
4549
4640
 
4550
4641
  /**
4551
4642
  * @fileoverview added by tsickle
@@ -4567,6 +4658,80 @@ function clickOn(el) {
4567
4658
  return el.triggerEventHandler('click', null);
4568
4659
  }
4569
4660
 
4661
+ /**
4662
+ * @fileoverview added by tsickle
4663
+ * Generated from: lib/components/dropdown/dropdown.component.ts
4664
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4665
+ */
4666
+ /**
4667
+ * DropdownComponent is an alternative to the MonoSelectComponent.
4668
+ * Accept everything inside <ng-content> but should work with <ode-list> component
4669
+ *
4670
+ * Simple Dropdown Component without search:
4671
+ * [isSearchActive] can be set to false to disable search input in <ode-list>
4672
+ * ```
4673
+ * <ode-dropdown
4674
+ * [name]="option_name"
4675
+ * [isDropdownOpened]="a_boolean"
4676
+ * (onDropdown)="toggle_func"
4677
+ * >
4678
+ * <ode-list
4679
+ * [model]="model"
4680
+ * [filters]="filters"
4681
+ * (onSelect)="func_to_select_elem($event)"
4682
+ * (inputChange)="a_string_for_input_value = $event"
4683
+ * noResultsLabel="text_to_display"
4684
+ * searchPlaceholder="default_placeholder_text"
4685
+ * >
4686
+ * <ng-template let-item>
4687
+ * <div>{{ item.name }}</div>
4688
+ * </ng-template>
4689
+ * </ode-list>
4690
+ * </ode-dropdown>
4691
+ * `̀``
4692
+ */
4693
+ class DropdownComponent extends OdeComponent {
4694
+ /**
4695
+ * @param {?} injector
4696
+ */
4697
+ constructor(injector) {
4698
+ super(injector);
4699
+ this.name = '';
4700
+ this.isDropdownOpened = false;
4701
+ this.onDropdown = new EventEmitter();
4702
+ }
4703
+ /**
4704
+ * @return {?}
4705
+ */
4706
+ ngOnInit() {
4707
+ super.ngOnInit();
4708
+ }
4709
+ }
4710
+ DropdownComponent.decorators = [
4711
+ { type: Component, args: [{
4712
+ selector: 'ode-dropdown',
4713
+ template: "<div class=\"dropdown\" [ngClass]=\"isDropdownOpened ? 'open' : ''\">\n <button (click)=\"onDropdown.emit()\" class=\"dropdown-trigger\">\n <span class=\"cell-ellipsis\">{{ name }}</span> <i class=\"fonticon arrow-select\"></i>\n </button>\n <div class=\"dropdown-list\">\n <ng-content></ng-content>\n </div>\n</div>\n",
4714
+ styles: [".dropdown{position:relative;width:230px;box-sizing:border-box}.dropdown *{box-sizing:border-box}.dropdown-trigger{cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;color:#4a4a4a;text-transform:uppercase;text-align:left;width:100%;border-radius:8px;border:1px solid #7a7a7a;background-color:#fff}.dropdown-trigger>span{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-trigger i.arrow-select{display:inline-block;float:none!important;padding-left:0;transform:rotate(180deg);transform-origin:center center}.dropdown-trigger:hover{color:#4a4a4a;border-color:#7a7a7a;background-color:#fff}.dropdown-trigger:hover i.arrow-select{color:#4a4a4a!important}.dropdown-list{display:none;position:absolute;overflow:hidden;z-index:2;top:100%;left:0;right:0;width:316px;box-shadow:0 4px 12px 0 rgba(0,0,0,.15);border-radius:8px;background-color:#fff}.dropdown::ng-deep ode-list li{justify-content:flex-start}.dropdown::ng-deep ode-list input[type=search]{padding:12px 16px}.dropdown.open .dropdown-list{display:block}.dropdown.open i.arrow-select{transform:rotate(0)}"]
4715
+ }] }
4716
+ ];
4717
+ /** @nocollapse */
4718
+ DropdownComponent.ctorParameters = () => [
4719
+ { type: Injector }
4720
+ ];
4721
+ DropdownComponent.propDecorators = {
4722
+ name: [{ type: Input }],
4723
+ isDropdownOpened: [{ type: Input }],
4724
+ onDropdown: [{ type: Output }]
4725
+ };
4726
+ if (false) {
4727
+ /** @type {?} */
4728
+ DropdownComponent.prototype.name;
4729
+ /** @type {?} */
4730
+ DropdownComponent.prototype.isDropdownOpened;
4731
+ /** @type {?} */
4732
+ DropdownComponent.prototype.onDropdown;
4733
+ }
4734
+
4570
4735
  /**
4571
4736
  * @fileoverview added by tsickle
4572
4737
  * Generated from: lib/ngx-ode-ui.module.ts
@@ -4607,6 +4772,7 @@ NgxOdeUiModule.decorators = [
4607
4772
  LightBoxComponent,
4608
4773
  LightboxConfirmComponent,
4609
4774
  ListComponent,
4775
+ ListCheckableComponent,
4610
4776
  MonoSelectComponent,
4611
4777
  MultiSelectComponent,
4612
4778
  MultiComboComponent,
@@ -4641,7 +4807,8 @@ NgxOdeUiModule.decorators = [
4641
4807
  LocalizedDatePipe,
4642
4808
  BytesPipe,
4643
4809
  KeysPipe,
4644
- LengthPipe
4810
+ LengthPipe,
4811
+ DropdownComponent
4645
4812
  ],
4646
4813
  imports: [
4647
4814
  CommonModule,
@@ -4658,6 +4825,7 @@ NgxOdeUiModule.decorators = [
4658
4825
  LightBoxComponent,
4659
4826
  LightboxConfirmComponent,
4660
4827
  ListComponent,
4828
+ ListCheckableComponent,
4661
4829
  MonoSelectComponent,
4662
4830
  MultiSelectComponent,
4663
4831
  MultiComboComponent,
@@ -4677,6 +4845,7 @@ NgxOdeUiModule.decorators = [
4677
4845
  SpinnerCubeComponent,
4678
4846
  PagerComponent,
4679
4847
  EllipsisComponent,
4848
+ DropdownComponent,
4680
4849
  // directives
4681
4850
  AnchorDirective,
4682
4851
  DynamicTemplateDirective,
@@ -4711,5 +4880,5 @@ NgxOdeUiModule.decorators = [
4711
4880
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4712
4881
  */
4713
4882
 
4714
- export { AnchorDirective, BytesPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, ComponentDescriptor, DatepickerComponent, DragAndDropFilesDirective, DynamicComponentDirective, DynamicModuleImportsService, DynamicTemplateDirective, EllipsisComponent, FilterPipe, FlattenObjectArrayPipe, FormErrorsComponent, FormFieldComponent, InputFileService, ItemTreeComponent, KeysPipe, LabelsService, LengthPipe, LightBoxComponent, LightboxConfirmComponent, LimitPipe, ListComponent, LocalizedDatePipe, MessageBoxComponent, MessageStickerComponent, MonoSelectComponent, MultiComboComponent, MultiSelectComponent, NgxOdeUiModule, ObjectURLDirective, OrderPipe, PagerComponent, PanelSectionComponent, PortalComponent, PushPanelComponent, SearchInputComponent, SideLayoutComponent, SidePanelComponent, SimpleSelectComponent, SpinnerCubeComponent, SpinnerService, StepComponent, StorePipe, TooltipComponent, UNITS, UploadFilesComponent, WizardComponent, clickOn, getText, getUnit, icons, removeAccents, standardise, toDecimal, trim };
4883
+ export { AnchorDirective, BytesPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, ComponentDescriptor, DatepickerComponent, DragAndDropFilesDirective, DynamicComponentDirective, DynamicModuleImportsService, DynamicTemplateDirective, EllipsisComponent, FilterPipe, FlattenObjectArrayPipe, FormErrorsComponent, FormFieldComponent, InputFileService, ItemTreeComponent, KeysPipe, LabelsService, LengthPipe, LightBoxComponent, LightboxConfirmComponent, LimitPipe, ListCheckableComponent, ListComponent, LocalizedDatePipe, MessageBoxComponent, MessageStickerComponent, MonoSelectComponent, MultiComboComponent, MultiSelectComponent, NgxOdeUiModule, ObjectURLDirective, OrderPipe, PagerComponent, PanelSectionComponent, PortalComponent, PushPanelComponent, SearchInputComponent, SideLayoutComponent, SidePanelComponent, SimpleSelectComponent, SpinnerCubeComponent, SpinnerService, StepComponent, StorePipe, TooltipComponent, UNITS, UploadFilesComponent, WizardComponent, clickOn, getText, getUnit, icons, removeAccents, standardise, toDecimal, trim, DropdownComponent as ɵa };
4715
4884
  //# sourceMappingURL=ngx-ode-ui.js.map