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
@@ -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;
@@ -1571,9 +1574,11 @@
1571
1574
  /* Store pipe */
1572
1575
  _this.self = _this;
1573
1576
  _this._storedElements = [];
1574
- _this.model = [];
1575
1577
  _this.searchPlaceholder = 'search';
1576
1578
  _this.noResultsLabel = 'list.results.no.items';
1579
+ _this.placeholder = 'list.placeholder';
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,8 +1621,8 @@
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",
1620
- 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}"]
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 <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n",
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}.placeholder{color:#aaa}"]
1621
1626
  }] }
1622
1627
  ];
1623
1628
  /** @nocollapse */
@@ -1632,6 +1637,10 @@
1632
1637
  limit: [{ type: core.Input }],
1633
1638
  searchPlaceholder: [{ type: core.Input }],
1634
1639
  noResultsLabel: [{ type: core.Input }],
1640
+ placeholder: [{ type: core.Input }],
1641
+ isSearchActive: [{ type: core.Input }],
1642
+ searchInput: [{ type: core.Input }],
1643
+ searchSubmit: [{ type: core.Input }],
1635
1644
  inputChange: [{ type: core.Output }],
1636
1645
  onSelect: [{ type: core.Output }],
1637
1646
  listChange: [{ type: core.Output }],
@@ -1663,6 +1672,14 @@
1663
1672
  /** @type {?} */
1664
1673
  ListComponent.prototype.noResultsLabel;
1665
1674
  /** @type {?} */
1675
+ ListComponent.prototype.placeholder;
1676
+ /** @type {?} */
1677
+ ListComponent.prototype.isSearchActive;
1678
+ /** @type {?} */
1679
+ ListComponent.prototype.searchInput;
1680
+ /** @type {?} */
1681
+ ListComponent.prototype.searchSubmit;
1682
+ /** @type {?} */
1666
1683
  ListComponent.prototype.inputChange;
1667
1684
  /** @type {?} */
1668
1685
  ListComponent.prototype.onSelect;
@@ -1680,6 +1697,150 @@
1680
1697
  ListComponent.prototype.ngClass;
1681
1698
  }
1682
1699
 
1700
+ /**
1701
+ * @fileoverview added by tsickle
1702
+ * Generated from: lib/components/list-checkable/list-checkable.component.ts
1703
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1704
+ */
1705
+ var ListCheckableComponent = /** @class */ (function (_super) {
1706
+ __extends(ListCheckableComponent, _super);
1707
+ function ListCheckableComponent(injector) {
1708
+ var _this = _super.call(this, injector) || this;
1709
+ _this.model = [];
1710
+ _this.noResultsLabel = 'list.results.no.items';
1711
+ _this.readOnly = false;
1712
+ _this.onCheck = new core.EventEmitter();
1713
+ _this.listChange = new core.EventEmitter();
1714
+ _this.scrolledDown = new core.EventEmitter();
1715
+ _this.areAllChecked = (/**
1716
+ * @return {?}
1717
+ */
1718
+ function () { return false; });
1719
+ _this.isChecked = (/**
1720
+ * @param {?=} arg
1721
+ * @return {?}
1722
+ */
1723
+ function (arg) { return false; });
1724
+ _this.isDisabled = (/**
1725
+ * @param {?=} arg
1726
+ * @return {?}
1727
+ */
1728
+ function (arg) { return false; });
1729
+ _this.ngClass = (/**
1730
+ * @param {?=} arg
1731
+ * @return {?}
1732
+ */
1733
+ function (arg) { return ({}); });
1734
+ /* Store pipe */
1735
+ _this.self = _this;
1736
+ _this._storedElements = [];
1737
+ return _this;
1738
+ }
1739
+ Object.defineProperty(ListCheckableComponent.prototype, "storedElements", {
1740
+ get: /**
1741
+ * @return {?}
1742
+ */
1743
+ function () {
1744
+ return this._storedElements;
1745
+ },
1746
+ set: /**
1747
+ * @param {?} list
1748
+ * @return {?}
1749
+ */
1750
+ function (list) {
1751
+ this._storedElements = list;
1752
+ this.listChange.emit(list);
1753
+ },
1754
+ enumerable: true,
1755
+ configurable: true
1756
+ });
1757
+ /**
1758
+ * @param {?} checkAll
1759
+ * @return {?}
1760
+ */
1761
+ ListCheckableComponent.prototype.toggleAll = /**
1762
+ * @param {?} checkAll
1763
+ * @return {?}
1764
+ */
1765
+ function (checkAll) {
1766
+ var _this = this;
1767
+ this.model.forEach((/**
1768
+ * @param {?} item
1769
+ * @return {?}
1770
+ */
1771
+ function (item) {
1772
+ /** @type {?} */
1773
+ var isChecked = _this.isChecked(item);
1774
+ if (!_this.isDisabled(item)
1775
+ && ((isChecked && !checkAll) || (!isChecked && checkAll))) {
1776
+ _this.onCheck.emit({ item: item, checked: checkAll });
1777
+ }
1778
+ }));
1779
+ };
1780
+ ListCheckableComponent.decorators = [
1781
+ { type: core.Component, args: [{
1782
+ selector: 'ode-list-checkable',
1783
+ 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",
1784
+ 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}"]
1785
+ }] }
1786
+ ];
1787
+ /** @nocollapse */
1788
+ ListCheckableComponent.ctorParameters = function () { return [
1789
+ { type: core.Injector }
1790
+ ]; };
1791
+ ListCheckableComponent.propDecorators = {
1792
+ model: [{ type: core.Input }],
1793
+ filters: [{ type: core.Input }],
1794
+ sort: [{ type: core.Input }],
1795
+ limit: [{ type: core.Input }],
1796
+ noResultsLabel: [{ type: core.Input }],
1797
+ readOnly: [{ type: core.Input }],
1798
+ onCheck: [{ type: core.Output }],
1799
+ listChange: [{ type: core.Output }],
1800
+ scrolledDown: [{ type: core.Output }],
1801
+ templateRef: [{ type: core.ContentChild, args: [core.TemplateRef, { static: false },] }],
1802
+ areAllChecked: [{ type: core.Input }],
1803
+ isChecked: [{ type: core.Input }],
1804
+ isDisabled: [{ type: core.Input }],
1805
+ ngClass: [{ type: core.Input }]
1806
+ };
1807
+ return ListCheckableComponent;
1808
+ }(ngxOdeCore.OdeComponent));
1809
+ if (false) {
1810
+ /** @type {?} */
1811
+ ListCheckableComponent.prototype.model;
1812
+ /** @type {?} */
1813
+ ListCheckableComponent.prototype.filters;
1814
+ /** @type {?} */
1815
+ ListCheckableComponent.prototype.sort;
1816
+ /** @type {?} */
1817
+ ListCheckableComponent.prototype.limit;
1818
+ /** @type {?} */
1819
+ ListCheckableComponent.prototype.noResultsLabel;
1820
+ /** @type {?} */
1821
+ ListCheckableComponent.prototype.readOnly;
1822
+ /** @type {?} */
1823
+ ListCheckableComponent.prototype.onCheck;
1824
+ /** @type {?} */
1825
+ ListCheckableComponent.prototype.listChange;
1826
+ /** @type {?} */
1827
+ ListCheckableComponent.prototype.scrolledDown;
1828
+ /** @type {?} */
1829
+ ListCheckableComponent.prototype.templateRef;
1830
+ /** @type {?} */
1831
+ ListCheckableComponent.prototype.areAllChecked;
1832
+ /** @type {?} */
1833
+ ListCheckableComponent.prototype.isChecked;
1834
+ /** @type {?} */
1835
+ ListCheckableComponent.prototype.isDisabled;
1836
+ /** @type {?} */
1837
+ ListCheckableComponent.prototype.ngClass;
1838
+ /** @type {?} */
1839
+ ListCheckableComponent.prototype.self;
1840
+ /** @type {?} */
1841
+ ListCheckableComponent.prototype._storedElements;
1842
+ }
1843
+
1683
1844
  /**
1684
1845
  * @fileoverview added by tsickle
1685
1846
  * Generated from: lib/components/message-box/message-box.component.ts
@@ -1698,6 +1859,11 @@
1698
1859
  var _this = _super.call(this, injector) || this;
1699
1860
  _this.eltRef = eltRef;
1700
1861
  _this._position = 'inherit';
1862
+ /**
1863
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
1864
+ * No effect when position is 'inherit'.
1865
+ */
1866
+ _this.gravity = 'left';
1701
1867
  _this.hidden = false;
1702
1868
  return _this;
1703
1869
  }
@@ -1748,6 +1914,22 @@
1748
1914
  enumerable: true,
1749
1915
  configurable: true
1750
1916
  });
1917
+ Object.defineProperty(MessageBoxComponent.prototype, "isGravityLeft", {
1918
+ get: /**
1919
+ * @return {?}
1920
+ */
1921
+ function () { return this.gravity === 'left'; },
1922
+ enumerable: true,
1923
+ configurable: true
1924
+ });
1925
+ Object.defineProperty(MessageBoxComponent.prototype, "isGravityRight", {
1926
+ get: /**
1927
+ * @return {?}
1928
+ */
1929
+ function () { return this.gravity === 'right'; },
1930
+ enumerable: true,
1931
+ configurable: true
1932
+ });
1751
1933
  /**
1752
1934
  * @return {?}
1753
1935
  */
@@ -1792,7 +1974,7 @@
1792
1974
  { type: core.Component, args: [{
1793
1975
  selector: 'message-box',
1794
1976
  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}"]
1977
+ 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
1978
  }] }
1797
1979
  ];
1798
1980
  /** @nocollapse */
@@ -1805,6 +1987,9 @@
1805
1987
  header: [{ type: core.Input }],
1806
1988
  messages: [{ type: core.Input }],
1807
1989
  position: [{ type: core.Input }],
1990
+ gravity: [{ type: core.Input }],
1991
+ isGravityLeft: [{ type: core.HostBinding, args: ['class.gravity-left',] }],
1992
+ isGravityRight: [{ type: core.HostBinding, args: ['class.gravity-right',] }],
1808
1993
  hideEvent: [{ type: core.Output, args: ['onHide',] }]
1809
1994
  };
1810
1995
  return MessageBoxComponent;
@@ -1824,6 +2009,12 @@
1824
2009
  * @private
1825
2010
  */
1826
2011
  MessageBoxComponent.prototype._position;
2012
+ /**
2013
+ * `gravity` set the relative position of the message box if its position is 'absolute'.
2014
+ * No effect when position is 'inherit'.
2015
+ * @type {?}
2016
+ */
2017
+ MessageBoxComponent.prototype.gravity;
1827
2018
  /** @type {?} */
1828
2019
  MessageBoxComponent.prototype.hidden;
1829
2020
  /** @type {?} */
@@ -1989,6 +2180,7 @@
1989
2180
  __extends(MessageStickerComponent, _super);
1990
2181
  function MessageStickerComponent(injector) {
1991
2182
  var _this = _super.call(this, injector) || this;
2183
+ _this.gravity = 'left';
1992
2184
  _this.icons = icons;
1993
2185
  return _this;
1994
2186
  }
@@ -2016,6 +2208,7 @@
2016
2208
  header: this.header,
2017
2209
  messages: this.messages,
2018
2210
  position: 'absolute',
2211
+ gravity: this.gravity,
2019
2212
  hideEvent: new core.EventEmitter()
2020
2213
  });
2021
2214
  };
@@ -2043,6 +2236,7 @@
2043
2236
  type: [{ type: core.Input }],
2044
2237
  header: [{ type: core.Input }],
2045
2238
  messages: [{ type: core.Input }],
2239
+ gravity: [{ type: core.Input }],
2046
2240
  dComponent: [{ type: core.ViewChild, args: [DynamicComponentDirective, { static: false },] }]
2047
2241
  };
2048
2242
  return MessageStickerComponent;
@@ -2055,6 +2249,8 @@
2055
2249
  /** @type {?} */
2056
2250
  MessageStickerComponent.prototype.messages;
2057
2251
  /** @type {?} */
2252
+ MessageStickerComponent.prototype.gravity;
2253
+ /** @type {?} */
2058
2254
  MessageStickerComponent.prototype.dComponent;
2059
2255
  /** @type {?} */
2060
2256
  MessageStickerComponent.prototype.icons;
@@ -2078,7 +2274,7 @@
2078
2274
  _this.translateOptions = true;
2079
2275
  _this.opened = false;
2080
2276
  _this.selectedOption = null;
2081
- _this.isDisabled = false;
2277
+ _this.disabled = false;
2082
2278
  _this.onChange = (/**
2083
2279
  * @param {?} _
2084
2280
  * @return {?}
@@ -2127,7 +2323,7 @@
2127
2323
  * @return {?}
2128
2324
  */
2129
2325
  function () {
2130
- if (!this.opened && !this.isDisabled) {
2326
+ if (!this.opened && !this.disabled) {
2131
2327
  this.opened = true;
2132
2328
  }
2133
2329
  else {
@@ -2165,7 +2361,7 @@
2165
2361
  * @return {?}
2166
2362
  */
2167
2363
  function (isDisabled) {
2168
- this.isDisabled = isDisabled;
2364
+ this.disabled = isDisabled;
2169
2365
  };
2170
2366
  /**
2171
2367
  * @param {?} obj
@@ -2186,7 +2382,7 @@
2186
2382
  MonoSelectComponent.decorators = [
2187
2383
  { type: core.Component, args: [{
2188
2384
  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",
2385
+ 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
2386
  providers: [{
2191
2387
  provide: forms.NG_VALUE_ACCESSOR,
2192
2388
  useExisting: core.forwardRef((/**
@@ -2210,7 +2406,8 @@
2210
2406
  placeholder: [{ type: core.Input }],
2211
2407
  options: [{ type: core.Input }],
2212
2408
  trackByFn: [{ type: core.Input }],
2213
- translateOptions: [{ type: core.Input }]
2409
+ translateOptions: [{ type: core.Input }],
2410
+ disabled: [{ type: core.Input }]
2214
2411
  };
2215
2412
  return MonoSelectComponent;
2216
2413
  }(ngxOdeCore.OdeComponent));
@@ -2228,7 +2425,7 @@
2228
2425
  /** @type {?} */
2229
2426
  MonoSelectComponent.prototype.selectedOption;
2230
2427
  /** @type {?} */
2231
- MonoSelectComponent.prototype.isDisabled;
2428
+ MonoSelectComponent.prototype.disabled;
2232
2429
  /**
2233
2430
  * @type {?}
2234
2431
  * @private
@@ -2455,7 +2652,7 @@
2455
2652
  MultiComboComponent.decorators = [
2456
2653
  { type: core.Component, args: [{
2457
2654
  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",
2655
+ 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
2656
  host: {
2460
2657
  '(document:click)': 'onClick($event)',
2461
2658
  },
@@ -2946,6 +3143,9 @@
2946
3143
  var _this = _super.call(this, injector) || this;
2947
3144
  _this._elRef = _elRef;
2948
3145
  _this._renderer = _renderer;
3146
+ /* Inputs / Outputs / View */
3147
+ _this.isSearchActive = false;
3148
+ _this.searchInput = false;
2949
3149
  _this._delay = 200;
2950
3150
  _this.onChange = new core.EventEmitter();
2951
3151
  /* Internal logic */
@@ -2959,9 +3159,7 @@
2959
3159
  function () {
2960
3160
  return this._delay;
2961
3161
  },
2962
- /* Inputs / Outputs / View */
2963
- set: /* Inputs / Outputs / View */
2964
- /**
3162
+ set: /**
2965
3163
  * @param {?} d
2966
3164
  * @return {?}
2967
3165
  */
@@ -3051,7 +3249,8 @@
3051
3249
  SearchInputComponent.decorators = [
3052
3250
  { type: core.Component, args: [{
3053
3251
  selector: 'ode-search-input',
3054
- template: "<input type=\"search\" #searchBox (input)=\"search(searchBox.value)\"/>\n"
3252
+ 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)\"/> -->",
3253
+ styles: [":host .search-container{margin:0;display:flex}:host .search-icon{padding-left:0}:host .search-button{margin:0;background:#ff8352;color:#fff}"]
3055
3254
  }] }
3056
3255
  ];
3057
3256
  /** @nocollapse */
@@ -3061,6 +3260,9 @@
3061
3260
  { type: core.Renderer2 }
3062
3261
  ]; };
3063
3262
  SearchInputComponent.propDecorators = {
3263
+ isSearchActive: [{ type: core.Input }],
3264
+ searchInput: [{ type: core.Input }],
3265
+ searchSubmit: [{ type: core.Input }],
3064
3266
  delay: [{ type: core.Input }],
3065
3267
  onChange: [{ type: core.Output }],
3066
3268
  searchBox: [{ type: core.ViewChild, args: ['searchBox', { static: false },] }]
@@ -3068,6 +3270,12 @@
3068
3270
  return SearchInputComponent;
3069
3271
  }(ngxOdeCore.OdeComponent));
3070
3272
  if (false) {
3273
+ /** @type {?} */
3274
+ SearchInputComponent.prototype.isSearchActive;
3275
+ /** @type {?} */
3276
+ SearchInputComponent.prototype.searchInput;
3277
+ /** @type {?} */
3278
+ SearchInputComponent.prototype.searchSubmit;
3071
3279
  /**
3072
3280
  * @type {?}
3073
3281
  * @private
@@ -5103,110 +5311,6 @@
5103
5311
  return LengthPipe;
5104
5312
  }());
5105
5313
 
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
5314
  /**
5211
5315
  * @fileoverview added by tsickle
5212
5316
  * Generated from: lib/utils/string.ts
@@ -5229,6 +5333,12 @@
5229
5333
  function standardise(str) {
5230
5334
  return removeAccents(str != null ? str : '').toLowerCase().replace('\\s+', ' ');
5231
5335
  }
5336
+ /** @type {?} */
5337
+ var removeAccents = (/**
5338
+ * @param {?} str
5339
+ * @return {?}
5340
+ */
5341
+ function (str) { return str.normalize("NFD").replace(/\p{Diacritic}/gu, ''); });
5232
5342
 
5233
5343
  /**
5234
5344
  * @fileoverview added by tsickle
@@ -5250,6 +5360,83 @@
5250
5360
  return el.triggerEventHandler('click', null);
5251
5361
  }
5252
5362
 
5363
+ /**
5364
+ * @fileoverview added by tsickle
5365
+ * Generated from: lib/components/dropdown/dropdown.component.ts
5366
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5367
+ */
5368
+ /**
5369
+ * DropdownComponent is an alternative to the MonoSelectComponent.
5370
+ * Accept everything inside <ng-content> but should work with <ode-list> component
5371
+ *
5372
+ * Simple Dropdown Component without search:
5373
+ * [isSearchActive] can be set to false to disable search input in <ode-list>
5374
+ * ```
5375
+ * <ode-dropdown
5376
+ * [name]="option_name"
5377
+ * [isDropdownOpened]="a_boolean"
5378
+ * (onDropdown)="toggle_func"
5379
+ * >
5380
+ * <ode-list
5381
+ * [model]="model"
5382
+ * [filters]="filters"
5383
+ * (onSelect)="func_to_select_elem($event)"
5384
+ * (inputChange)="a_string_for_input_value = $event"
5385
+ * noResultsLabel="text_to_display"
5386
+ * searchPlaceholder="default_placeholder_text"
5387
+ * >
5388
+ * <ng-template let-item>
5389
+ * <div>{{ item.name }}</div>
5390
+ * </ng-template>
5391
+ * </ode-list>
5392
+ * </ode-dropdown>
5393
+ * `̀``
5394
+ */
5395
+ var DropdownComponent = /** @class */ (function (_super) {
5396
+ __extends(DropdownComponent, _super);
5397
+ function DropdownComponent(injector) {
5398
+ var _this = _super.call(this, injector) || this;
5399
+ _this.name = '';
5400
+ _this.isDropdownOpened = false;
5401
+ _this.onDropdown = new core.EventEmitter();
5402
+ return _this;
5403
+ }
5404
+ /**
5405
+ * @return {?}
5406
+ */
5407
+ DropdownComponent.prototype.ngOnInit = /**
5408
+ * @return {?}
5409
+ */
5410
+ function () {
5411
+ _super.prototype.ngOnInit.call(this);
5412
+ };
5413
+ DropdownComponent.decorators = [
5414
+ { type: core.Component, args: [{
5415
+ selector: 'ode-dropdown',
5416
+ 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",
5417
+ 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)}"]
5418
+ }] }
5419
+ ];
5420
+ /** @nocollapse */
5421
+ DropdownComponent.ctorParameters = function () { return [
5422
+ { type: core.Injector }
5423
+ ]; };
5424
+ DropdownComponent.propDecorators = {
5425
+ name: [{ type: core.Input }],
5426
+ isDropdownOpened: [{ type: core.Input }],
5427
+ onDropdown: [{ type: core.Output }]
5428
+ };
5429
+ return DropdownComponent;
5430
+ }(ngxOdeCore.OdeComponent));
5431
+ if (false) {
5432
+ /** @type {?} */
5433
+ DropdownComponent.prototype.name;
5434
+ /** @type {?} */
5435
+ DropdownComponent.prototype.isDropdownOpened;
5436
+ /** @type {?} */
5437
+ DropdownComponent.prototype.onDropdown;
5438
+ }
5439
+
5253
5440
  /**
5254
5441
  * @fileoverview added by tsickle
5255
5442
  * Generated from: lib/ngx-ode-ui.module.ts
@@ -5298,6 +5485,7 @@
5298
5485
  LightBoxComponent,
5299
5486
  LightboxConfirmComponent,
5300
5487
  ListComponent,
5488
+ ListCheckableComponent,
5301
5489
  MonoSelectComponent,
5302
5490
  MultiSelectComponent,
5303
5491
  MultiComboComponent,
@@ -5332,7 +5520,8 @@
5332
5520
  LocalizedDatePipe,
5333
5521
  BytesPipe,
5334
5522
  KeysPipe,
5335
- LengthPipe
5523
+ LengthPipe,
5524
+ DropdownComponent
5336
5525
  ],
5337
5526
  imports: [
5338
5527
  common.CommonModule,
@@ -5349,6 +5538,7 @@
5349
5538
  LightBoxComponent,
5350
5539
  LightboxConfirmComponent,
5351
5540
  ListComponent,
5541
+ ListCheckableComponent,
5352
5542
  MonoSelectComponent,
5353
5543
  MultiSelectComponent,
5354
5544
  MultiComboComponent,
@@ -5368,6 +5558,7 @@
5368
5558
  SpinnerCubeComponent,
5369
5559
  PagerComponent,
5370
5560
  EllipsisComponent,
5561
+ DropdownComponent,
5371
5562
  // directives
5372
5563
  AnchorDirective,
5373
5564
  DynamicTemplateDirective,
@@ -5414,6 +5605,7 @@
5414
5605
  exports.LightBoxComponent = LightBoxComponent;
5415
5606
  exports.LightboxConfirmComponent = LightboxConfirmComponent;
5416
5607
  exports.LimitPipe = LimitPipe;
5608
+ exports.ListCheckableComponent = ListCheckableComponent;
5417
5609
  exports.ListComponent = ListComponent;
5418
5610
  exports.LocalizedDatePipe = LocalizedDatePipe;
5419
5611
  exports.MessageBoxComponent = MessageBoxComponent;
@@ -5448,6 +5640,7 @@
5448
5640
  exports.standardise = standardise;
5449
5641
  exports.toDecimal = toDecimal;
5450
5642
  exports.trim = trim;
5643
+ exports.ɵa = DropdownComponent;
5451
5644
 
5452
5645
  Object.defineProperty(exports, '__esModule', { value: true });
5453
5646