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
@@ -1196,7 +1196,7 @@
1196
1196
  * @return {?}
1197
1197
  */
1198
1198
  function (item) {
1199
- return item[this.displayProperty];
1199
+ return this.displayProperty && item[this.displayProperty];
1200
1200
  };
1201
1201
  /**
1202
1202
  * @param {?} item
@@ -1278,7 +1278,7 @@
1278
1278
  ItemTreeComponent.decorators = [
1279
1279
  { type: core.Component, args: [{
1280
1280
  selector: 'ode-item-tree',
1281
- 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"
1281
+ 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"
1282
1282
  }] }
1283
1283
  ];
1284
1284
  /** @nocollapse */
@@ -1289,6 +1289,7 @@
1289
1289
  items: [{ type: core.Input }],
1290
1290
  childrenProperty: [{ type: core.Input, args: ['children',] }],
1291
1291
  displayProperty: [{ type: core.Input, args: ['display',] }],
1292
+ displayTemplate: [{ type: core.Input }],
1292
1293
  filter: [{ type: core.Input }],
1293
1294
  order: [{ type: core.Input }],
1294
1295
  reverse: [{ type: core.Input }],
@@ -1314,6 +1315,8 @@
1314
1315
  /** @type {?} */
1315
1316
  ItemTreeComponent.prototype.displayProperty;
1316
1317
  /** @type {?} */
1318
+ ItemTreeComponent.prototype.displayTemplate;
1319
+ /** @type {?} */
1317
1320
  ItemTreeComponent.prototype.filter;
1318
1321
  /** @type {?} */
1319
1322
  ItemTreeComponent.prototype.order;
@@ -1574,6 +1577,8 @@
1574
1577
  _this.model = [];
1575
1578
  _this.searchPlaceholder = 'search';
1576
1579
  _this.noResultsLabel = 'list.results.no.items';
1580
+ _this.isSearchActive = true;
1581
+ _this.searchInput = false;
1577
1582
  _this.inputChange = new core.EventEmitter();
1578
1583
  _this.onSelect = new core.EventEmitter();
1579
1584
  _this.listChange = new core.EventEmitter();
@@ -1616,7 +1621,7 @@
1616
1621
  ListComponent.decorators = [
1617
1622
  { type: core.Component, args: [{
1618
1623
  selector: 'ode-list',
1619
- 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",
1624
+ 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",
1620
1625
  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}"]
1621
1626
  }] }
1622
1627
  ];
@@ -1632,6 +1637,9 @@
1632
1637
  limit: [{ type: core.Input }],
1633
1638
  searchPlaceholder: [{ type: core.Input }],
1634
1639
  noResultsLabel: [{ type: core.Input }],
1640
+ isSearchActive: [{ type: core.Input }],
1641
+ searchInput: [{ type: core.Input }],
1642
+ searchSubmit: [{ type: core.Input }],
1635
1643
  inputChange: [{ type: core.Output }],
1636
1644
  onSelect: [{ type: core.Output }],
1637
1645
  listChange: [{ type: core.Output }],
@@ -1663,6 +1671,12 @@
1663
1671
  /** @type {?} */
1664
1672
  ListComponent.prototype.noResultsLabel;
1665
1673
  /** @type {?} */
1674
+ ListComponent.prototype.isSearchActive;
1675
+ /** @type {?} */
1676
+ ListComponent.prototype.searchInput;
1677
+ /** @type {?} */
1678
+ ListComponent.prototype.searchSubmit;
1679
+ /** @type {?} */
1666
1680
  ListComponent.prototype.inputChange;
1667
1681
  /** @type {?} */
1668
1682
  ListComponent.prototype.onSelect;
@@ -1680,6 +1694,150 @@
1680
1694
  ListComponent.prototype.ngClass;
1681
1695
  }
1682
1696
 
1697
+ /**
1698
+ * @fileoverview added by tsickle
1699
+ * Generated from: lib/components/list-checkable/list-checkable.component.ts
1700
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1701
+ */
1702
+ var ListCheckableComponent = /** @class */ (function (_super) {
1703
+ __extends(ListCheckableComponent, _super);
1704
+ function ListCheckableComponent(injector) {
1705
+ var _this = _super.call(this, injector) || this;
1706
+ _this.model = [];
1707
+ _this.noResultsLabel = 'list.results.no.items';
1708
+ _this.readOnly = false;
1709
+ _this.onCheck = new core.EventEmitter();
1710
+ _this.listChange = new core.EventEmitter();
1711
+ _this.scrolledDown = new core.EventEmitter();
1712
+ _this.areAllChecked = (/**
1713
+ * @return {?}
1714
+ */
1715
+ function () { return false; });
1716
+ _this.isChecked = (/**
1717
+ * @param {?=} arg
1718
+ * @return {?}
1719
+ */
1720
+ function (arg) { return false; });
1721
+ _this.isDisabled = (/**
1722
+ * @param {?=} arg
1723
+ * @return {?}
1724
+ */
1725
+ function (arg) { return false; });
1726
+ _this.ngClass = (/**
1727
+ * @param {?=} arg
1728
+ * @return {?}
1729
+ */
1730
+ function (arg) { return ({}); });
1731
+ /* Store pipe */
1732
+ _this.self = _this;
1733
+ _this._storedElements = [];
1734
+ return _this;
1735
+ }
1736
+ Object.defineProperty(ListCheckableComponent.prototype, "storedElements", {
1737
+ get: /**
1738
+ * @return {?}
1739
+ */
1740
+ function () {
1741
+ return this._storedElements;
1742
+ },
1743
+ set: /**
1744
+ * @param {?} list
1745
+ * @return {?}
1746
+ */
1747
+ function (list) {
1748
+ this._storedElements = list;
1749
+ this.listChange.emit(list);
1750
+ },
1751
+ enumerable: true,
1752
+ configurable: true
1753
+ });
1754
+ /**
1755
+ * @param {?} checkAll
1756
+ * @return {?}
1757
+ */
1758
+ ListCheckableComponent.prototype.toggleAll = /**
1759
+ * @param {?} checkAll
1760
+ * @return {?}
1761
+ */
1762
+ function (checkAll) {
1763
+ var _this = this;
1764
+ this.model.forEach((/**
1765
+ * @param {?} item
1766
+ * @return {?}
1767
+ */
1768
+ function (item) {
1769
+ /** @type {?} */
1770
+ var isChecked = _this.isChecked(item);
1771
+ if (!_this.isDisabled(item)
1772
+ && ((isChecked && !checkAll) || (!isChecked && checkAll))) {
1773
+ _this.onCheck.emit({ item: item, checked: checkAll });
1774
+ }
1775
+ }));
1776
+ };
1777
+ ListCheckableComponent.decorators = [
1778
+ { type: core.Component, args: [{
1779
+ selector: 'ode-list-checkable',
1780
+ 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",
1781
+ 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}"]
1782
+ }] }
1783
+ ];
1784
+ /** @nocollapse */
1785
+ ListCheckableComponent.ctorParameters = function () { return [
1786
+ { type: core.Injector }
1787
+ ]; };
1788
+ ListCheckableComponent.propDecorators = {
1789
+ model: [{ type: core.Input }],
1790
+ filters: [{ type: core.Input }],
1791
+ sort: [{ type: core.Input }],
1792
+ limit: [{ type: core.Input }],
1793
+ noResultsLabel: [{ type: core.Input }],
1794
+ readOnly: [{ type: core.Input }],
1795
+ onCheck: [{ type: core.Output }],
1796
+ listChange: [{ type: core.Output }],
1797
+ scrolledDown: [{ type: core.Output }],
1798
+ templateRef: [{ type: core.ContentChild, args: [core.TemplateRef, { static: false },] }],
1799
+ areAllChecked: [{ type: core.Input }],
1800
+ isChecked: [{ type: core.Input }],
1801
+ isDisabled: [{ type: core.Input }],
1802
+ ngClass: [{ type: core.Input }]
1803
+ };
1804
+ return ListCheckableComponent;
1805
+ }(ngxOdeCore.OdeComponent));
1806
+ if (false) {
1807
+ /** @type {?} */
1808
+ ListCheckableComponent.prototype.model;
1809
+ /** @type {?} */
1810
+ ListCheckableComponent.prototype.filters;
1811
+ /** @type {?} */
1812
+ ListCheckableComponent.prototype.sort;
1813
+ /** @type {?} */
1814
+ ListCheckableComponent.prototype.limit;
1815
+ /** @type {?} */
1816
+ ListCheckableComponent.prototype.noResultsLabel;
1817
+ /** @type {?} */
1818
+ ListCheckableComponent.prototype.readOnly;
1819
+ /** @type {?} */
1820
+ ListCheckableComponent.prototype.onCheck;
1821
+ /** @type {?} */
1822
+ ListCheckableComponent.prototype.listChange;
1823
+ /** @type {?} */
1824
+ ListCheckableComponent.prototype.scrolledDown;
1825
+ /** @type {?} */
1826
+ ListCheckableComponent.prototype.templateRef;
1827
+ /** @type {?} */
1828
+ ListCheckableComponent.prototype.areAllChecked;
1829
+ /** @type {?} */
1830
+ ListCheckableComponent.prototype.isChecked;
1831
+ /** @type {?} */
1832
+ ListCheckableComponent.prototype.isDisabled;
1833
+ /** @type {?} */
1834
+ ListCheckableComponent.prototype.ngClass;
1835
+ /** @type {?} */
1836
+ ListCheckableComponent.prototype.self;
1837
+ /** @type {?} */
1838
+ ListCheckableComponent.prototype._storedElements;
1839
+ }
1840
+
1683
1841
  /**
1684
1842
  * @fileoverview added by tsickle
1685
1843
  * Generated from: lib/components/message-box/message-box.component.ts
@@ -1698,6 +1856,11 @@
1698
1856
  var _this = _super.call(this, injector) || this;
1699
1857
  _this.eltRef = eltRef;
1700
1858
  _this._position = 'inherit';
1859
+ /**
1860
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1861
+ * No effect when position is 'inherit'.
1862
+ */
1863
+ _this.gravity = 'left';
1701
1864
  _this.hidden = false;
1702
1865
  return _this;
1703
1866
  }
@@ -1748,6 +1911,22 @@
1748
1911
  enumerable: true,
1749
1912
  configurable: true
1750
1913
  });
1914
+ Object.defineProperty(MessageBoxComponent.prototype, "isGravityLeft", {
1915
+ get: /**
1916
+ * @return {?}
1917
+ */
1918
+ function () { return this.gravity === 'left'; },
1919
+ enumerable: true,
1920
+ configurable: true
1921
+ });
1922
+ Object.defineProperty(MessageBoxComponent.prototype, "isGravityRight", {
1923
+ get: /**
1924
+ * @return {?}
1925
+ */
1926
+ function () { return this.gravity === 'right'; },
1927
+ enumerable: true,
1928
+ configurable: true
1929
+ });
1751
1930
  /**
1752
1931
  * @return {?}
1753
1932
  */
@@ -1792,7 +1971,7 @@
1792
1971
  { type: core.Component, args: [{
1793
1972
  selector: 'message-box',
1794
1973
  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",
1795
- 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}"]
1974
+ 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}"]
1796
1975
  }] }
1797
1976
  ];
1798
1977
  /** @nocollapse */
@@ -1805,6 +1984,9 @@
1805
1984
  header: [{ type: core.Input }],
1806
1985
  messages: [{ type: core.Input }],
1807
1986
  position: [{ type: core.Input }],
1987
+ gravity: [{ type: core.Input }],
1988
+ isGravityLeft: [{ type: core.HostBinding, args: ['class.gravity-left',] }],
1989
+ isGravityRight: [{ type: core.HostBinding, args: ['class.gravity-right',] }],
1808
1990
  hideEvent: [{ type: core.Output, args: ['onHide',] }]
1809
1991
  };
1810
1992
  return MessageBoxComponent;
@@ -1824,6 +2006,12 @@
1824
2006
  * @private
1825
2007
  */
1826
2008
  MessageBoxComponent.prototype._position;
2009
+ /**
2010
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
2011
+ * No effect when position is 'inherit'.
2012
+ * @type {?}
2013
+ */
2014
+ MessageBoxComponent.prototype.gravity;
1827
2015
  /** @type {?} */
1828
2016
  MessageBoxComponent.prototype.hidden;
1829
2017
  /** @type {?} */
@@ -1989,6 +2177,7 @@
1989
2177
  __extends(MessageStickerComponent, _super);
1990
2178
  function MessageStickerComponent(injector) {
1991
2179
  var _this = _super.call(this, injector) || this;
2180
+ _this.gravity = 'left';
1992
2181
  _this.icons = icons;
1993
2182
  return _this;
1994
2183
  }
@@ -2016,6 +2205,7 @@
2016
2205
  header: this.header,
2017
2206
  messages: this.messages,
2018
2207
  position: 'absolute',
2208
+ gravity: this.gravity,
2019
2209
  hideEvent: new core.EventEmitter()
2020
2210
  });
2021
2211
  };
@@ -2043,6 +2233,7 @@
2043
2233
  type: [{ type: core.Input }],
2044
2234
  header: [{ type: core.Input }],
2045
2235
  messages: [{ type: core.Input }],
2236
+ gravity: [{ type: core.Input }],
2046
2237
  dComponent: [{ type: core.ViewChild, args: [DynamicComponentDirective, { static: false },] }]
2047
2238
  };
2048
2239
  return MessageStickerComponent;
@@ -2055,6 +2246,8 @@
2055
2246
  /** @type {?} */
2056
2247
  MessageStickerComponent.prototype.messages;
2057
2248
  /** @type {?} */
2249
+ MessageStickerComponent.prototype.gravity;
2250
+ /** @type {?} */
2058
2251
  MessageStickerComponent.prototype.dComponent;
2059
2252
  /** @type {?} */
2060
2253
  MessageStickerComponent.prototype.icons;
@@ -2078,7 +2271,7 @@
2078
2271
  _this.translateOptions = true;
2079
2272
  _this.opened = false;
2080
2273
  _this.selectedOption = null;
2081
- _this.isDisabled = false;
2274
+ _this.disabled = false;
2082
2275
  _this.onChange = (/**
2083
2276
  * @param {?} _
2084
2277
  * @return {?}
@@ -2127,7 +2320,7 @@
2127
2320
  * @return {?}
2128
2321
  */
2129
2322
  function () {
2130
- if (!this.opened && !this.isDisabled) {
2323
+ if (!this.opened && !this.disabled) {
2131
2324
  this.opened = true;
2132
2325
  }
2133
2326
  else {
@@ -2165,7 +2358,7 @@
2165
2358
  * @return {?}
2166
2359
  */
2167
2360
  function (isDisabled) {
2168
- this.isDisabled = isDisabled;
2361
+ this.disabled = isDisabled;
2169
2362
  };
2170
2363
  /**
2171
2364
  * @param {?} obj
@@ -2186,7 +2379,7 @@
2186
2379
  MonoSelectComponent.decorators = [
2187
2380
  { type: core.Component, args: [{
2188
2381
  selector: 'ode-mono-select',
2189
- 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",
2382
+ 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",
2190
2383
  providers: [{
2191
2384
  provide: forms.NG_VALUE_ACCESSOR,
2192
2385
  useExisting: core.forwardRef((/**
@@ -2210,7 +2403,8 @@
2210
2403
  placeholder: [{ type: core.Input }],
2211
2404
  options: [{ type: core.Input }],
2212
2405
  trackByFn: [{ type: core.Input }],
2213
- translateOptions: [{ type: core.Input }]
2406
+ translateOptions: [{ type: core.Input }],
2407
+ disabled: [{ type: core.Input }]
2214
2408
  };
2215
2409
  return MonoSelectComponent;
2216
2410
  }(ngxOdeCore.OdeComponent));
@@ -2228,7 +2422,7 @@
2228
2422
  /** @type {?} */
2229
2423
  MonoSelectComponent.prototype.selectedOption;
2230
2424
  /** @type {?} */
2231
- MonoSelectComponent.prototype.isDisabled;
2425
+ MonoSelectComponent.prototype.disabled;
2232
2426
  /**
2233
2427
  * @type {?}
2234
2428
  * @private
@@ -2455,7 +2649,7 @@
2455
2649
  MultiComboComponent.decorators = [
2456
2650
  { type: core.Component, args: [{
2457
2651
  selector: 'ode-multi-combo',
2458
- 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",
2652
+ 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",
2459
2653
  host: {
2460
2654
  '(document:click)': 'onClick($event)',
2461
2655
  },
@@ -2946,6 +3140,9 @@
2946
3140
  var _this = _super.call(this, injector) || this;
2947
3141
  _this._elRef = _elRef;
2948
3142
  _this._renderer = _renderer;
3143
+ /* Inputs / Outputs / View */
3144
+ _this.isSearchActive = false;
3145
+ _this.searchInput = false;
2949
3146
  _this._delay = 200;
2950
3147
  _this.onChange = new core.EventEmitter();
2951
3148
  /* Internal logic */
@@ -2959,9 +3156,7 @@
2959
3156
  function () {
2960
3157
  return this._delay;
2961
3158
  },
2962
- /* Inputs / Outputs / View */
2963
- set: /* Inputs / Outputs / View */
2964
- /**
3159
+ set: /**
2965
3160
  * @param {?} d
2966
3161
  * @return {?}
2967
3162
  */
@@ -3051,7 +3246,8 @@
3051
3246
  SearchInputComponent.decorators = [
3052
3247
  { type: core.Component, args: [{
3053
3248
  selector: 'ode-search-input',
3054
- template: "<input type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/>\n"
3249
+ 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)\"/> -->",
3250
+ styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}"]
3055
3251
  }] }
3056
3252
  ];
3057
3253
  /** @nocollapse */
@@ -3061,6 +3257,9 @@
3061
3257
  { type: core.Renderer2 }
3062
3258
  ]; };
3063
3259
  SearchInputComponent.propDecorators = {
3260
+ isSearchActive: [{ type: core.Input }],
3261
+ searchInput: [{ type: core.Input }],
3262
+ searchSubmit: [{ type: core.Input }],
3064
3263
  delay: [{ type: core.Input }],
3065
3264
  onChange: [{ type: core.Output }],
3066
3265
  searchBox: [{ type: core.ViewChild, args: ['searchBox', { static: false },] }]
@@ -3068,6 +3267,12 @@
3068
3267
  return SearchInputComponent;
3069
3268
  }(ngxOdeCore.OdeComponent));
3070
3269
  if (false) {
3270
+ /** @type {?} */
3271
+ SearchInputComponent.prototype.isSearchActive;
3272
+ /** @type {?} */
3273
+ SearchInputComponent.prototype.searchInput;
3274
+ /** @type {?} */
3275
+ SearchInputComponent.prototype.searchSubmit;
3071
3276
  /**
3072
3277
  * @type {?}
3073
3278
  * @private
@@ -5103,110 +5308,6 @@
5103
5308
  return LengthPipe;
5104
5309
  }());
5105
5310
 
5106
- /**
5107
- * @fileoverview added by tsickle
5108
- * Generated from: lib/helpers/accents.helper.ts
5109
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5110
- */
5111
- /** @type {?} */
5112
- var defaultDiacriticsRemovalMap = [
5113
- { 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 },
5114
- { base: 'AA', letters: /[\uA732]/g },
5115
- { base: 'AE', letters: /[\u00C6\u01FC\u01E2]/g },
5116
- { base: 'AO', letters: /[\uA734]/g },
5117
- { base: 'AU', letters: /[\uA736]/g },
5118
- { base: 'AV', letters: /[\uA738\uA73A]/g },
5119
- { base: 'AY', letters: /[\uA73C]/g },
5120
- { base: 'B', letters: /[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g },
5121
- { base: 'C', letters: /[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g },
5122
- { base: 'D', letters: /[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g },
5123
- { base: 'DZ', letters: /[\u01F1\u01C4]/g },
5124
- { base: 'Dz', letters: /[\u01F2\u01C5]/g },
5125
- { 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 },
5126
- { base: 'F', letters: /[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g },
5127
- { base: 'G', letters: /[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g },
5128
- { base: 'H', letters: /[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g },
5129
- { base: 'I', letters: /[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g },
5130
- { base: 'J', letters: /[\u004A\u24BF\uFF2A\u0134\u0248]/g },
5131
- { base: 'K', letters: /[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g },
5132
- { base: 'L', letters: /[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g },
5133
- { base: 'LJ', letters: /[\u01C7]/g },
5134
- { base: 'Lj', letters: /[\u01C8]/g },
5135
- { base: 'M', letters: /[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g },
5136
- { base: 'N', letters: /[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g },
5137
- { base: 'NJ', letters: /[\u01CA]/g },
5138
- { base: 'Nj', letters: /[\u01CB]/g },
5139
- { 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 },
5140
- { base: 'OI', letters: /[\u01A2]/g },
5141
- { base: 'OO', letters: /[\uA74E]/g },
5142
- { base: 'OU', letters: /[\u0222]/g },
5143
- { base: 'P', letters: /[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g },
5144
- { base: 'Q', letters: /[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g },
5145
- { base: 'R', letters: /[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g },
5146
- { base: 'S', letters: /[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g },
5147
- { base: 'T', letters: /[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g },
5148
- { base: 'TZ', letters: /[\uA728]/g },
5149
- { 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 },
5150
- { base: 'V', letters: /[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g },
5151
- { base: 'VY', letters: /[\uA760]/g },
5152
- { base: 'W', letters: /[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g },
5153
- { base: 'X', letters: /[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g },
5154
- { base: 'Y', letters: /[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g },
5155
- { base: 'Z', letters: /[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g },
5156
- { 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 },
5157
- { base: 'aa', letters: /[\uA733]/g },
5158
- { base: 'ae', letters: /[\u00E6\u01FD\u01E3]/g },
5159
- { base: 'ao', letters: /[\uA735]/g },
5160
- { base: 'au', letters: /[\uA737]/g },
5161
- { base: 'av', letters: /[\uA739\uA73B]/g },
5162
- { base: 'ay', letters: /[\uA73D]/g },
5163
- { base: 'b', letters: /[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g },
5164
- { base: 'c', letters: /[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g },
5165
- { base: 'd', letters: /[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g },
5166
- { base: 'dz', letters: /[\u01F3\u01C6]/g },
5167
- { 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 },
5168
- { base: 'f', letters: /[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g },
5169
- { base: 'g', letters: /[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g },
5170
- { base: 'h', letters: /[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g },
5171
- { base: 'hv', letters: /[\u0195]/g },
5172
- { base: 'i', letters: /[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g },
5173
- { base: 'j', letters: /[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g },
5174
- { base: 'k', letters: /[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g },
5175
- { base: 'l', letters: /[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g },
5176
- { base: 'lj', letters: /[\u01C9]/g },
5177
- { base: 'm', letters: /[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g },
5178
- { base: 'n', letters: /[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g },
5179
- { base: 'nj', letters: /[\u01CC]/g },
5180
- { 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 },
5181
- { base: 'oi', letters: /[\u01A3]/g },
5182
- { base: 'ou', letters: /[\u0223]/g },
5183
- { base: 'oo', letters: /[\uA74F]/g },
5184
- { base: 'p', letters: /[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g },
5185
- { base: 'q', letters: /[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g },
5186
- { base: 'r', letters: /[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g },
5187
- { base: 's', letters: /[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g },
5188
- { base: 't', letters: /[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g },
5189
- { base: 'tz', letters: /[\uA729]/g },
5190
- { 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 },
5191
- { base: 'v', letters: /[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g },
5192
- { base: 'vy', letters: /[\uA761]/g },
5193
- { base: 'w', letters: /[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g },
5194
- { base: 'x', letters: /[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g },
5195
- { base: 'y', letters: /[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g },
5196
- { base: 'z', letters: /[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g }
5197
- ];
5198
- /** @type {?} */
5199
- var removeAccents = (/**
5200
- * @param {?} str
5201
- * @return {?}
5202
- */
5203
- function (str) {
5204
- for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
5205
- str = str.replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base);
5206
- }
5207
- return str;
5208
- });
5209
-
5210
5311
  /**
5211
5312
  * @fileoverview added by tsickle
5212
5313
  * Generated from: lib/utils/string.ts
@@ -5229,6 +5330,12 @@
5229
5330
  function standardise(str) {
5230
5331
  return removeAccents(str != null ? str : '').toLowerCase().replace('\\s+', ' ');
5231
5332
  }
5333
+ /** @type {?} */
5334
+ var removeAccents = (/**
5335
+ * @param {?} str
5336
+ * @return {?}
5337
+ */
5338
+ function (str) { return str.normalize("NFD").replace(/\p{Diacritic}/gu, ''); });
5232
5339
 
5233
5340
  /**
5234
5341
  * @fileoverview added by tsickle
@@ -5250,6 +5357,83 @@
5250
5357
  return el.triggerEventHandler('click', null);
5251
5358
  }
5252
5359
 
5360
+ /**
5361
+ * @fileoverview added by tsickle
5362
+ * Generated from: lib/components/dropdown/dropdown.component.ts
5363
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5364
+ */
5365
+ /**
5366
+ * DropdownComponent is an alternative to the MonoSelectComponent.
5367
+ * Accept everything inside <ng-content> but should work with <ode-list> component
5368
+ *
5369
+ * Simple Dropdown Component without search:
5370
+ * [isSearchActive] can be set to false to disable search input in <ode-list>
5371
+ * ```
5372
+ * <ode-dropdown
5373
+ * [name]="option_name"
5374
+ * [isDropdownOpened]="a_boolean"
5375
+ * (onDropdown)="toggle_func"
5376
+ * >
5377
+ * <ode-list
5378
+ * [model]="model"
5379
+ * [filters]="filters"
5380
+ * (onSelect)="func_to_select_elem($event)"
5381
+ * (inputChange)="a_string_for_input_value = $event"
5382
+ * noResultsLabel="text_to_display"
5383
+ * searchPlaceholder="default_placeholder_text"
5384
+ * >
5385
+ * <ng-template let-item>
5386
+ * <div>{{ item.name }}</div>
5387
+ * </ng-template>
5388
+ * </ode-list>
5389
+ * </ode-dropdown>
5390
+ * `̀``
5391
+ */
5392
+ var DropdownComponent = /** @class */ (function (_super) {
5393
+ __extends(DropdownComponent, _super);
5394
+ function DropdownComponent(injector) {
5395
+ var _this = _super.call(this, injector) || this;
5396
+ _this.name = '';
5397
+ _this.isDropdownOpened = false;
5398
+ _this.onDropdown = new core.EventEmitter();
5399
+ return _this;
5400
+ }
5401
+ /**
5402
+ * @return {?}
5403
+ */
5404
+ DropdownComponent.prototype.ngOnInit = /**
5405
+ * @return {?}
5406
+ */
5407
+ function () {
5408
+ _super.prototype.ngOnInit.call(this);
5409
+ };
5410
+ DropdownComponent.decorators = [
5411
+ { type: core.Component, args: [{
5412
+ selector: 'ode-dropdown',
5413
+ 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",
5414
+ 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)}"]
5415
+ }] }
5416
+ ];
5417
+ /** @nocollapse */
5418
+ DropdownComponent.ctorParameters = function () { return [
5419
+ { type: core.Injector }
5420
+ ]; };
5421
+ DropdownComponent.propDecorators = {
5422
+ name: [{ type: core.Input }],
5423
+ isDropdownOpened: [{ type: core.Input }],
5424
+ onDropdown: [{ type: core.Output }]
5425
+ };
5426
+ return DropdownComponent;
5427
+ }(ngxOdeCore.OdeComponent));
5428
+ if (false) {
5429
+ /** @type {?} */
5430
+ DropdownComponent.prototype.name;
5431
+ /** @type {?} */
5432
+ DropdownComponent.prototype.isDropdownOpened;
5433
+ /** @type {?} */
5434
+ DropdownComponent.prototype.onDropdown;
5435
+ }
5436
+
5253
5437
  /**
5254
5438
  * @fileoverview added by tsickle
5255
5439
  * Generated from: lib/ngx-ode-ui.module.ts
@@ -5298,6 +5482,7 @@
5298
5482
  LightBoxComponent,
5299
5483
  LightboxConfirmComponent,
5300
5484
  ListComponent,
5485
+ ListCheckableComponent,
5301
5486
  MonoSelectComponent,
5302
5487
  MultiSelectComponent,
5303
5488
  MultiComboComponent,
@@ -5332,7 +5517,8 @@
5332
5517
  LocalizedDatePipe,
5333
5518
  BytesPipe,
5334
5519
  KeysPipe,
5335
- LengthPipe
5520
+ LengthPipe,
5521
+ DropdownComponent
5336
5522
  ],
5337
5523
  imports: [
5338
5524
  common.CommonModule,
@@ -5349,6 +5535,7 @@
5349
5535
  LightBoxComponent,
5350
5536
  LightboxConfirmComponent,
5351
5537
  ListComponent,
5538
+ ListCheckableComponent,
5352
5539
  MonoSelectComponent,
5353
5540
  MultiSelectComponent,
5354
5541
  MultiComboComponent,
@@ -5368,6 +5555,7 @@
5368
5555
  SpinnerCubeComponent,
5369
5556
  PagerComponent,
5370
5557
  EllipsisComponent,
5558
+ DropdownComponent,
5371
5559
  // directives
5372
5560
  AnchorDirective,
5373
5561
  DynamicTemplateDirective,
@@ -5414,6 +5602,7 @@
5414
5602
  exports.LightBoxComponent = LightBoxComponent;
5415
5603
  exports.LightboxConfirmComponent = LightboxConfirmComponent;
5416
5604
  exports.LimitPipe = LimitPipe;
5605
+ exports.ListCheckableComponent = ListCheckableComponent;
5417
5606
  exports.ListComponent = ListComponent;
5418
5607
  exports.LocalizedDatePipe = LocalizedDatePipe;
5419
5608
  exports.MessageBoxComponent = MessageBoxComponent;
@@ -5448,6 +5637,7 @@
5448
5637
  exports.standardise = standardise;
5449
5638
  exports.toDecimal = toDecimal;
5450
5639
  exports.trim = trim;
5640
+ exports.ɵa = DropdownComponent;
5451
5641
 
5452
5642
  Object.defineProperty(exports, '__esModule', { value: true });
5453
5643