ngx-ode-ui 3.12.0-dev.0 → 3.12.0-dev.12

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 +315 -122
  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 +18 -4
  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 +18 -4
  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 +294 -122
  32. package/fesm2015/ngx-ode-ui.js.map +1 -1
  33. package/fesm5/ngx-ode-ui.js +315 -124
  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 +5 -1
  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;
@@ -1218,9 +1221,11 @@ class ListComponent extends OdeComponent {
1218
1221
  /* Store pipe */
1219
1222
  this.self = this;
1220
1223
  this._storedElements = [];
1221
- this.model = [];
1222
1224
  this.searchPlaceholder = 'search';
1223
1225
  this.noResultsLabel = 'list.results.no.items';
1226
+ this.placeholder = 'list.placeholder';
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,8 +1264,8 @@ 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",
1263
- 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}"]
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 <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n",
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}.placeholder{color:#aaa}"]
1264
1269
  }] }
1265
1270
  ];
1266
1271
  /** @nocollapse */
@@ -1275,6 +1280,10 @@ ListComponent.propDecorators = {
1275
1280
  limit: [{ type: Input }],
1276
1281
  searchPlaceholder: [{ type: Input }],
1277
1282
  noResultsLabel: [{ type: Input }],
1283
+ placeholder: [{ type: Input }],
1284
+ isSearchActive: [{ type: Input }],
1285
+ searchInput: [{ type: Input }],
1286
+ searchSubmit: [{ type: Input }],
1278
1287
  inputChange: [{ type: Output }],
1279
1288
  onSelect: [{ type: Output }],
1280
1289
  listChange: [{ type: Output }],
@@ -1304,6 +1313,14 @@ if (false) {
1304
1313
  /** @type {?} */
1305
1314
  ListComponent.prototype.noResultsLabel;
1306
1315
  /** @type {?} */
1316
+ ListComponent.prototype.placeholder;
1317
+ /** @type {?} */
1318
+ ListComponent.prototype.isSearchActive;
1319
+ /** @type {?} */
1320
+ ListComponent.prototype.searchInput;
1321
+ /** @type {?} */
1322
+ ListComponent.prototype.searchSubmit;
1323
+ /** @type {?} */
1307
1324
  ListComponent.prototype.inputChange;
1308
1325
  /** @type {?} */
1309
1326
  ListComponent.prototype.onSelect;
@@ -1321,6 +1338,141 @@ if (false) {
1321
1338
  ListComponent.prototype.ngClass;
1322
1339
  }
1323
1340
 
1341
+ /**
1342
+ * @fileoverview added by tsickle
1343
+ * Generated from: lib/components/list-checkable/list-checkable.component.ts
1344
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1345
+ */
1346
+ class ListCheckableComponent extends OdeComponent {
1347
+ /**
1348
+ * @param {?} injector
1349
+ */
1350
+ constructor(injector) {
1351
+ super(injector);
1352
+ this.model = [];
1353
+ this.noResultsLabel = 'list.results.no.items';
1354
+ this.readOnly = false;
1355
+ this.onCheck = new EventEmitter();
1356
+ this.listChange = new EventEmitter();
1357
+ this.scrolledDown = new EventEmitter();
1358
+ this.areAllChecked = (/**
1359
+ * @return {?}
1360
+ */
1361
+ () => false);
1362
+ this.isChecked = (/**
1363
+ * @param {?=} arg
1364
+ * @return {?}
1365
+ */
1366
+ (arg) => false);
1367
+ this.isDisabled = (/**
1368
+ * @param {?=} arg
1369
+ * @return {?}
1370
+ */
1371
+ (arg) => false);
1372
+ this.ngClass = (/**
1373
+ * @param {?=} arg
1374
+ * @return {?}
1375
+ */
1376
+ (arg) => ({}));
1377
+ /* Store pipe */
1378
+ this.self = this;
1379
+ this._storedElements = [];
1380
+ }
1381
+ /**
1382
+ * @param {?} list
1383
+ * @return {?}
1384
+ */
1385
+ set storedElements(list) {
1386
+ this._storedElements = list;
1387
+ this.listChange.emit(list);
1388
+ }
1389
+ /**
1390
+ * @return {?}
1391
+ */
1392
+ get storedElements() {
1393
+ return this._storedElements;
1394
+ }
1395
+ /**
1396
+ * @param {?} checkAll
1397
+ * @return {?}
1398
+ */
1399
+ toggleAll(checkAll) {
1400
+ this.model.forEach((/**
1401
+ * @param {?} item
1402
+ * @return {?}
1403
+ */
1404
+ item => {
1405
+ /** @type {?} */
1406
+ const isChecked = this.isChecked(item);
1407
+ if (!this.isDisabled(item)
1408
+ && ((isChecked && !checkAll) || (!isChecked && checkAll))) {
1409
+ this.onCheck.emit({ item: item, checked: checkAll });
1410
+ }
1411
+ }));
1412
+ }
1413
+ }
1414
+ ListCheckableComponent.decorators = [
1415
+ { type: Component, args: [{
1416
+ selector: 'ode-list-checkable',
1417
+ 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",
1418
+ 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}"]
1419
+ }] }
1420
+ ];
1421
+ /** @nocollapse */
1422
+ ListCheckableComponent.ctorParameters = () => [
1423
+ { type: Injector }
1424
+ ];
1425
+ ListCheckableComponent.propDecorators = {
1426
+ model: [{ type: Input }],
1427
+ filters: [{ type: Input }],
1428
+ sort: [{ type: Input }],
1429
+ limit: [{ type: Input }],
1430
+ noResultsLabel: [{ type: Input }],
1431
+ readOnly: [{ type: Input }],
1432
+ onCheck: [{ type: Output }],
1433
+ listChange: [{ type: Output }],
1434
+ scrolledDown: [{ type: Output }],
1435
+ templateRef: [{ type: ContentChild, args: [TemplateRef, { static: false },] }],
1436
+ areAllChecked: [{ type: Input }],
1437
+ isChecked: [{ type: Input }],
1438
+ isDisabled: [{ type: Input }],
1439
+ ngClass: [{ type: Input }]
1440
+ };
1441
+ if (false) {
1442
+ /** @type {?} */
1443
+ ListCheckableComponent.prototype.model;
1444
+ /** @type {?} */
1445
+ ListCheckableComponent.prototype.filters;
1446
+ /** @type {?} */
1447
+ ListCheckableComponent.prototype.sort;
1448
+ /** @type {?} */
1449
+ ListCheckableComponent.prototype.limit;
1450
+ /** @type {?} */
1451
+ ListCheckableComponent.prototype.noResultsLabel;
1452
+ /** @type {?} */
1453
+ ListCheckableComponent.prototype.readOnly;
1454
+ /** @type {?} */
1455
+ ListCheckableComponent.prototype.onCheck;
1456
+ /** @type {?} */
1457
+ ListCheckableComponent.prototype.listChange;
1458
+ /** @type {?} */
1459
+ ListCheckableComponent.prototype.scrolledDown;
1460
+ /** @type {?} */
1461
+ ListCheckableComponent.prototype.templateRef;
1462
+ /** @type {?} */
1463
+ ListCheckableComponent.prototype.areAllChecked;
1464
+ /** @type {?} */
1465
+ ListCheckableComponent.prototype.isChecked;
1466
+ /** @type {?} */
1467
+ ListCheckableComponent.prototype.isDisabled;
1468
+ /** @type {?} */
1469
+ ListCheckableComponent.prototype.ngClass;
1470
+ /** @type {?} */
1471
+ ListCheckableComponent.prototype.self;
1472
+ /** @type {?} */
1473
+ ListCheckableComponent.prototype._storedElements;
1474
+ }
1475
+
1324
1476
  /**
1325
1477
  * @fileoverview added by tsickle
1326
1478
  * Generated from: lib/components/message-box/message-box.component.ts
@@ -1342,6 +1494,11 @@ class MessageBoxComponent extends OdeComponent {
1342
1494
  super(injector);
1343
1495
  this.eltRef = eltRef;
1344
1496
  this._position = 'inherit';
1497
+ /**
1498
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1499
+ * No effect when position is 'inherit'.
1500
+ */
1501
+ this.gravity = 'left';
1345
1502
  this.hidden = false;
1346
1503
  }
1347
1504
  /**
@@ -1372,6 +1529,14 @@ class MessageBoxComponent extends OdeComponent {
1372
1529
  set position(value) {
1373
1530
  this._position = value;
1374
1531
  }
1532
+ /**
1533
+ * @return {?}
1534
+ */
1535
+ get isGravityLeft() { return this.gravity === 'left'; }
1536
+ /**
1537
+ * @return {?}
1538
+ */
1539
+ get isGravityRight() { return this.gravity === 'right'; }
1375
1540
  /**
1376
1541
  * @return {?}
1377
1542
  */
@@ -1408,7 +1573,7 @@ MessageBoxComponent.decorators = [
1408
1573
  { type: Component, args: [{
1409
1574
  selector: 'message-box',
1410
1575
  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}"]
1576
+ 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
1577
  }] }
1413
1578
  ];
1414
1579
  /** @nocollapse */
@@ -1421,6 +1586,9 @@ MessageBoxComponent.propDecorators = {
1421
1586
  header: [{ type: Input }],
1422
1587
  messages: [{ type: Input }],
1423
1588
  position: [{ type: Input }],
1589
+ gravity: [{ type: Input }],
1590
+ isGravityLeft: [{ type: HostBinding, args: ['class.gravity-left',] }],
1591
+ isGravityRight: [{ type: HostBinding, args: ['class.gravity-right',] }],
1424
1592
  hideEvent: [{ type: Output, args: ['onHide',] }]
1425
1593
  };
1426
1594
  if (false) {
@@ -1438,6 +1606,12 @@ if (false) {
1438
1606
  * @private
1439
1607
  */
1440
1608
  MessageBoxComponent.prototype._position;
1609
+ /**
1610
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1611
+ * No effect when position is 'inherit'.
1612
+ * @type {?}
1613
+ */
1614
+ MessageBoxComponent.prototype.gravity;
1441
1615
  /** @type {?} */
1442
1616
  MessageBoxComponent.prototype.hidden;
1443
1617
  /** @type {?} */
@@ -1592,6 +1766,7 @@ class MessageStickerComponent extends OdeComponent {
1592
1766
  */
1593
1767
  constructor(injector) {
1594
1768
  super(injector);
1769
+ this.gravity = 'left';
1595
1770
  this.icons = icons;
1596
1771
  }
1597
1772
  /**
@@ -1612,6 +1787,7 @@ class MessageStickerComponent extends OdeComponent {
1612
1787
  header: this.header,
1613
1788
  messages: this.messages,
1614
1789
  position: 'absolute',
1790
+ gravity: this.gravity,
1615
1791
  hideEvent: new EventEmitter()
1616
1792
  });
1617
1793
  }
@@ -1637,6 +1813,7 @@ MessageStickerComponent.propDecorators = {
1637
1813
  type: [{ type: Input }],
1638
1814
  header: [{ type: Input }],
1639
1815
  messages: [{ type: Input }],
1816
+ gravity: [{ type: Input }],
1640
1817
  dComponent: [{ type: ViewChild, args: [DynamicComponentDirective, { static: false },] }]
1641
1818
  };
1642
1819
  if (false) {
@@ -1647,6 +1824,8 @@ if (false) {
1647
1824
  /** @type {?} */
1648
1825
  MessageStickerComponent.prototype.messages;
1649
1826
  /** @type {?} */
1827
+ MessageStickerComponent.prototype.gravity;
1828
+ /** @type {?} */
1650
1829
  MessageStickerComponent.prototype.dComponent;
1651
1830
  /** @type {?} */
1652
1831
  MessageStickerComponent.prototype.icons;
@@ -1673,7 +1852,7 @@ class MonoSelectComponent extends OdeComponent {
1673
1852
  this.translateOptions = true;
1674
1853
  this.opened = false;
1675
1854
  this.selectedOption = null;
1676
- this.isDisabled = false;
1855
+ this.disabled = false;
1677
1856
  this.onChange = (/**
1678
1857
  * @param {?} _
1679
1858
  * @return {?}
@@ -1710,7 +1889,7 @@ class MonoSelectComponent extends OdeComponent {
1710
1889
  * @return {?}
1711
1890
  */
1712
1891
  onClickOnHost() {
1713
- if (!this.opened && !this.isDisabled) {
1892
+ if (!this.opened && !this.disabled) {
1714
1893
  this.opened = true;
1715
1894
  }
1716
1895
  else {
@@ -1736,7 +1915,7 @@ class MonoSelectComponent extends OdeComponent {
1736
1915
  * @return {?}
1737
1916
  */
1738
1917
  setDisabledState(isDisabled) {
1739
- this.isDisabled = isDisabled;
1918
+ this.disabled = isDisabled;
1740
1919
  }
1741
1920
  /**
1742
1921
  * @param {?} obj
@@ -1754,7 +1933,7 @@ class MonoSelectComponent extends OdeComponent {
1754
1933
  MonoSelectComponent.decorators = [
1755
1934
  { type: Component, args: [{
1756
1935
  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",
1936
+ 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
1937
  providers: [{
1759
1938
  provide: NG_VALUE_ACCESSOR,
1760
1939
  useExisting: forwardRef((/**
@@ -1778,7 +1957,8 @@ MonoSelectComponent.propDecorators = {
1778
1957
  placeholder: [{ type: Input }],
1779
1958
  options: [{ type: Input }],
1780
1959
  trackByFn: [{ type: Input }],
1781
- translateOptions: [{ type: Input }]
1960
+ translateOptions: [{ type: Input }],
1961
+ disabled: [{ type: Input }]
1782
1962
  };
1783
1963
  if (false) {
1784
1964
  /** @type {?} */
@@ -1794,7 +1974,7 @@ if (false) {
1794
1974
  /** @type {?} */
1795
1975
  MonoSelectComponent.prototype.selectedOption;
1796
1976
  /** @type {?} */
1797
- MonoSelectComponent.prototype.isDisabled;
1977
+ MonoSelectComponent.prototype.disabled;
1798
1978
  /**
1799
1979
  * @type {?}
1800
1980
  * @private
@@ -1986,7 +2166,7 @@ class MultiComboComponent extends OdeComponent {
1986
2166
  MultiComboComponent.decorators = [
1987
2167
  { type: Component, args: [{
1988
2168
  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",
2169
+ 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
2170
  host: {
1991
2171
  '(document:click)': 'onClick($event)',
1992
2172
  },
@@ -2430,12 +2610,14 @@ class SearchInputComponent extends OdeComponent {
2430
2610
  super(injector);
2431
2611
  this._elRef = _elRef;
2432
2612
  this._renderer = _renderer;
2613
+ /* Inputs / Outputs / View */
2614
+ this.isSearchActive = false;
2615
+ this.searchInput = false;
2433
2616
  this._delay = 200;
2434
2617
  this.onChange = new EventEmitter();
2435
2618
  /* Internal logic */
2436
2619
  this.$searchTerms = new Subject();
2437
2620
  }
2438
- /* Inputs / Outputs / View */
2439
2621
  /**
2440
2622
  * @param {?} d
2441
2623
  * @return {?}
@@ -2514,7 +2696,8 @@ class SearchInputComponent extends OdeComponent {
2514
2696
  SearchInputComponent.decorators = [
2515
2697
  { type: Component, args: [{
2516
2698
  selector: 'ode-search-input',
2517
- template: "<input type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/>\n"
2699
+ 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)\"/> -->",
2700
+ styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}"]
2518
2701
  }] }
2519
2702
  ];
2520
2703
  /** @nocollapse */
@@ -2524,11 +2707,20 @@ SearchInputComponent.ctorParameters = () => [
2524
2707
  { type: Renderer2 }
2525
2708
  ];
2526
2709
  SearchInputComponent.propDecorators = {
2710
+ isSearchActive: [{ type: Input }],
2711
+ searchInput: [{ type: Input }],
2712
+ searchSubmit: [{ type: Input }],
2527
2713
  delay: [{ type: Input }],
2528
2714
  onChange: [{ type: Output }],
2529
2715
  searchBox: [{ type: ViewChild, args: ['searchBox', { static: false },] }]
2530
2716
  };
2531
2717
  if (false) {
2718
+ /** @type {?} */
2719
+ SearchInputComponent.prototype.isSearchActive;
2720
+ /** @type {?} */
2721
+ SearchInputComponent.prototype.searchInput;
2722
+ /** @type {?} */
2723
+ SearchInputComponent.prototype.searchSubmit;
2532
2724
  /**
2533
2725
  * @type {?}
2534
2726
  * @private
@@ -4420,110 +4612,6 @@ LengthPipe.decorators = [
4420
4612
  },] }
4421
4613
  ];
4422
4614
 
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
4615
  /**
4528
4616
  * @fileoverview added by tsickle
4529
4617
  * Generated from: lib/utils/string.ts
@@ -4546,6 +4634,12 @@ function trim(text) {
4546
4634
  function standardise(str) {
4547
4635
  return removeAccents(str != null ? str : '').toLowerCase().replace('\\s+', ' ');
4548
4636
  }
4637
+ /** @type {?} */
4638
+ const removeAccents = (/**
4639
+ * @param {?} str
4640
+ * @return {?}
4641
+ */
4642
+ (str) => str.normalize("NFD").replace(/\p{Diacritic}/gu, ''));
4549
4643
 
4550
4644
  /**
4551
4645
  * @fileoverview added by tsickle
@@ -4567,6 +4661,80 @@ function clickOn(el) {
4567
4661
  return el.triggerEventHandler('click', null);
4568
4662
  }
4569
4663
 
4664
+ /**
4665
+ * @fileoverview added by tsickle
4666
+ * Generated from: lib/components/dropdown/dropdown.component.ts
4667
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4668
+ */
4669
+ /**
4670
+ * DropdownComponent is an alternative to the MonoSelectComponent.
4671
+ * Accept everything inside <ng-content> but should work with <ode-list> component
4672
+ *
4673
+ * Simple Dropdown Component without search:
4674
+ * [isSearchActive] can be set to false to disable search input in <ode-list>
4675
+ * ```
4676
+ * <ode-dropdown
4677
+ * [name]="option_name"
4678
+ * [isDropdownOpened]="a_boolean"
4679
+ * (onDropdown)="toggle_func"
4680
+ * >
4681
+ * <ode-list
4682
+ * [model]="model"
4683
+ * [filters]="filters"
4684
+ * (onSelect)="func_to_select_elem($event)"
4685
+ * (inputChange)="a_string_for_input_value = $event"
4686
+ * noResultsLabel="text_to_display"
4687
+ * searchPlaceholder="default_placeholder_text"
4688
+ * >
4689
+ * <ng-template let-item>
4690
+ * <div>{{ item.name }}</div>
4691
+ * </ng-template>
4692
+ * </ode-list>
4693
+ * </ode-dropdown>
4694
+ * `̀``
4695
+ */
4696
+ class DropdownComponent extends OdeComponent {
4697
+ /**
4698
+ * @param {?} injector
4699
+ */
4700
+ constructor(injector) {
4701
+ super(injector);
4702
+ this.name = '';
4703
+ this.isDropdownOpened = false;
4704
+ this.onDropdown = new EventEmitter();
4705
+ }
4706
+ /**
4707
+ * @return {?}
4708
+ */
4709
+ ngOnInit() {
4710
+ super.ngOnInit();
4711
+ }
4712
+ }
4713
+ DropdownComponent.decorators = [
4714
+ { type: Component, args: [{
4715
+ selector: 'ode-dropdown',
4716
+ 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",
4717
+ 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)}"]
4718
+ }] }
4719
+ ];
4720
+ /** @nocollapse */
4721
+ DropdownComponent.ctorParameters = () => [
4722
+ { type: Injector }
4723
+ ];
4724
+ DropdownComponent.propDecorators = {
4725
+ name: [{ type: Input }],
4726
+ isDropdownOpened: [{ type: Input }],
4727
+ onDropdown: [{ type: Output }]
4728
+ };
4729
+ if (false) {
4730
+ /** @type {?} */
4731
+ DropdownComponent.prototype.name;
4732
+ /** @type {?} */
4733
+ DropdownComponent.prototype.isDropdownOpened;
4734
+ /** @type {?} */
4735
+ DropdownComponent.prototype.onDropdown;
4736
+ }
4737
+
4570
4738
  /**
4571
4739
  * @fileoverview added by tsickle
4572
4740
  * Generated from: lib/ngx-ode-ui.module.ts
@@ -4607,6 +4775,7 @@ NgxOdeUiModule.decorators = [
4607
4775
  LightBoxComponent,
4608
4776
  LightboxConfirmComponent,
4609
4777
  ListComponent,
4778
+ ListCheckableComponent,
4610
4779
  MonoSelectComponent,
4611
4780
  MultiSelectComponent,
4612
4781
  MultiComboComponent,
@@ -4641,7 +4810,8 @@ NgxOdeUiModule.decorators = [
4641
4810
  LocalizedDatePipe,
4642
4811
  BytesPipe,
4643
4812
  KeysPipe,
4644
- LengthPipe
4813
+ LengthPipe,
4814
+ DropdownComponent
4645
4815
  ],
4646
4816
  imports: [
4647
4817
  CommonModule,
@@ -4658,6 +4828,7 @@ NgxOdeUiModule.decorators = [
4658
4828
  LightBoxComponent,
4659
4829
  LightboxConfirmComponent,
4660
4830
  ListComponent,
4831
+ ListCheckableComponent,
4661
4832
  MonoSelectComponent,
4662
4833
  MultiSelectComponent,
4663
4834
  MultiComboComponent,
@@ -4677,6 +4848,7 @@ NgxOdeUiModule.decorators = [
4677
4848
  SpinnerCubeComponent,
4678
4849
  PagerComponent,
4679
4850
  EllipsisComponent,
4851
+ DropdownComponent,
4680
4852
  // directives
4681
4853
  AnchorDirective,
4682
4854
  DynamicTemplateDirective,
@@ -4711,5 +4883,5 @@ NgxOdeUiModule.decorators = [
4711
4883
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4712
4884
  */
4713
4885
 
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 };
4886
+ 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
4887
  //# sourceMappingURL=ngx-ode-ui.js.map