ngx-ode-ui 3.13.0-dev.2 → 4.3.0-feat-produit.0

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 (38) hide show
  1. package/bundles/ngx-ode-ui.umd.js +360 -15
  2. package/bundles/ngx-ode-ui.umd.js.map +1 -1
  3. package/bundles/ngx-ode-ui.umd.min.js +1 -1
  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/list/list.component.js +18 -4
  7. package/esm2015/lib/components/list-checkable/list-checkable.component.js +137 -0
  8. package/esm2015/lib/components/mono-select/mono-select.component.js +8 -7
  9. package/esm2015/lib/components/multi-combo/multi-combo.component.js +2 -2
  10. package/esm2015/lib/components/search-input/search-input.component.js +15 -3
  11. package/esm2015/lib/components/search-toolbar/search-toolbar.component.js +84 -0
  12. package/esm2015/lib/ngx-ode-ui.module.js +11 -2
  13. package/esm2015/ngx-ode-ui.js +4 -2
  14. package/esm2015/public-api.js +2 -1
  15. package/esm5/lib/components/dropdown/dropdown.component.js +81 -0
  16. package/esm5/lib/components/list/list.component.js +18 -4
  17. package/esm5/lib/components/list-checkable/list-checkable.component.js +148 -0
  18. package/esm5/lib/components/mono-select/mono-select.component.js +8 -7
  19. package/esm5/lib/components/multi-combo/multi-combo.component.js +2 -2
  20. package/esm5/lib/components/search-input/search-input.component.js +16 -5
  21. package/esm5/lib/components/search-toolbar/search-toolbar.component.js +93 -0
  22. package/esm5/lib/ngx-ode-ui.module.js +11 -2
  23. package/esm5/ngx-ode-ui.js +4 -2
  24. package/esm5/public-api.js +2 -1
  25. package/fesm2015/ngx-ode-ui.js +338 -14
  26. package/fesm2015/ngx-ode-ui.js.map +1 -1
  27. package/fesm5/ngx-ode-ui.js +358 -16
  28. package/fesm5/ngx-ode-ui.js.map +1 -1
  29. package/lib/components/dropdown/dropdown.component.d.ts +36 -0
  30. package/lib/components/list/list.component.d.ts +5 -1
  31. package/lib/components/list-checkable/list-checkable.component.d.ts +55 -0
  32. package/lib/components/mono-select/mono-select.component.d.ts +1 -1
  33. package/lib/components/search-input/search-input.component.d.ts +3 -0
  34. package/lib/components/search-toolbar/search-toolbar.component.d.ts +34 -0
  35. package/ngx-ode-ui.d.ts +2 -0
  36. package/ngx-ode-ui.metadata.json +1 -1
  37. package/package.json +1 -1
  38. package/public-api.d.ts +1 -0
@@ -1574,9 +1574,11 @@
1574
1574
  /* Store pipe */
1575
1575
  _this.self = _this;
1576
1576
  _this._storedElements = [];
1577
- _this.model = [];
1578
1577
  _this.searchPlaceholder = 'search';
1579
1578
  _this.noResultsLabel = 'list.results.no.items';
1579
+ _this.placeholder = 'list.placeholder';
1580
+ _this.isSearchActive = true;
1581
+ _this.searchInput = false;
1580
1582
  _this.inputChange = new core.EventEmitter();
1581
1583
  _this.onSelect = new core.EventEmitter();
1582
1584
  _this.listChange = new core.EventEmitter();
@@ -1619,8 +1621,8 @@
1619
1621
  ListComponent.decorators = [
1620
1622
  { type: core.Component, args: [{
1621
1623
  selector: 'ode-list',
1622
- 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",
1623
- 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.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}"]
1624
1626
  }] }
1625
1627
  ];
1626
1628
  /** @nocollapse */
@@ -1635,6 +1637,10 @@
1635
1637
  limit: [{ type: core.Input }],
1636
1638
  searchPlaceholder: [{ type: core.Input }],
1637
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 }],
1638
1644
  inputChange: [{ type: core.Output }],
1639
1645
  onSelect: [{ type: core.Output }],
1640
1646
  listChange: [{ type: core.Output }],
@@ -1666,6 +1672,14 @@
1666
1672
  /** @type {?} */
1667
1673
  ListComponent.prototype.noResultsLabel;
1668
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 {?} */
1669
1683
  ListComponent.prototype.inputChange;
1670
1684
  /** @type {?} */
1671
1685
  ListComponent.prototype.onSelect;
@@ -1683,6 +1697,150 @@
1683
1697
  ListComponent.prototype.ngClass;
1684
1698
  }
1685
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
+
1686
1844
  /**
1687
1845
  * @fileoverview added by tsickle
1688
1846
  * Generated from: lib/components/message-box/message-box.component.ts
@@ -2116,7 +2274,7 @@
2116
2274
  _this.translateOptions = true;
2117
2275
  _this.opened = false;
2118
2276
  _this.selectedOption = null;
2119
- _this.isDisabled = false;
2277
+ _this.disabled = false;
2120
2278
  _this.onChange = (/**
2121
2279
  * @param {?} _
2122
2280
  * @return {?}
@@ -2165,7 +2323,7 @@
2165
2323
  * @return {?}
2166
2324
  */
2167
2325
  function () {
2168
- if (!this.opened && !this.isDisabled) {
2326
+ if (!this.opened && !this.disabled) {
2169
2327
  this.opened = true;
2170
2328
  }
2171
2329
  else {
@@ -2203,7 +2361,7 @@
2203
2361
  * @return {?}
2204
2362
  */
2205
2363
  function (isDisabled) {
2206
- this.isDisabled = isDisabled;
2364
+ this.disabled = isDisabled;
2207
2365
  };
2208
2366
  /**
2209
2367
  * @param {?} obj
@@ -2224,7 +2382,7 @@
2224
2382
  MonoSelectComponent.decorators = [
2225
2383
  { type: core.Component, args: [{
2226
2384
  selector: 'ode-mono-select',
2227
- 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",
2228
2386
  providers: [{
2229
2387
  provide: forms.NG_VALUE_ACCESSOR,
2230
2388
  useExisting: core.forwardRef((/**
@@ -2248,7 +2406,8 @@
2248
2406
  placeholder: [{ type: core.Input }],
2249
2407
  options: [{ type: core.Input }],
2250
2408
  trackByFn: [{ type: core.Input }],
2251
- translateOptions: [{ type: core.Input }]
2409
+ translateOptions: [{ type: core.Input }],
2410
+ disabled: [{ type: core.Input }]
2252
2411
  };
2253
2412
  return MonoSelectComponent;
2254
2413
  }(ngxOdeCore.OdeComponent));
@@ -2266,7 +2425,7 @@
2266
2425
  /** @type {?} */
2267
2426
  MonoSelectComponent.prototype.selectedOption;
2268
2427
  /** @type {?} */
2269
- MonoSelectComponent.prototype.isDisabled;
2428
+ MonoSelectComponent.prototype.disabled;
2270
2429
  /**
2271
2430
  * @type {?}
2272
2431
  * @private
@@ -2493,7 +2652,7 @@
2493
2652
  MultiComboComponent.decorators = [
2494
2653
  { type: core.Component, args: [{
2495
2654
  selector: 'ode-multi-combo',
2496
- 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",
2497
2656
  host: {
2498
2657
  '(document:click)': 'onClick($event)',
2499
2658
  },
@@ -2984,6 +3143,9 @@
2984
3143
  var _this = _super.call(this, injector) || this;
2985
3144
  _this._elRef = _elRef;
2986
3145
  _this._renderer = _renderer;
3146
+ /* Inputs / Outputs / View */
3147
+ _this.isSearchActive = false;
3148
+ _this.searchInput = false;
2987
3149
  _this._delay = 200;
2988
3150
  _this.onChange = new core.EventEmitter();
2989
3151
  /* Internal logic */
@@ -2997,9 +3159,7 @@
2997
3159
  function () {
2998
3160
  return this._delay;
2999
3161
  },
3000
- /* Inputs / Outputs / View */
3001
- set: /* Inputs / Outputs / View */
3002
- /**
3162
+ set: /**
3003
3163
  * @param {?} d
3004
3164
  * @return {?}
3005
3165
  */
@@ -3089,7 +3249,8 @@
3089
3249
  SearchInputComponent.decorators = [
3090
3250
  { type: core.Component, args: [{
3091
3251
  selector: 'ode-search-input',
3092
- 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}"]
3093
3254
  }] }
3094
3255
  ];
3095
3256
  /** @nocollapse */
@@ -3099,6 +3260,9 @@
3099
3260
  { type: core.Renderer2 }
3100
3261
  ]; };
3101
3262
  SearchInputComponent.propDecorators = {
3263
+ isSearchActive: [{ type: core.Input }],
3264
+ searchInput: [{ type: core.Input }],
3265
+ searchSubmit: [{ type: core.Input }],
3102
3266
  delay: [{ type: core.Input }],
3103
3267
  onChange: [{ type: core.Output }],
3104
3268
  searchBox: [{ type: core.ViewChild, args: ['searchBox', { static: false },] }]
@@ -3106,6 +3270,12 @@
3106
3270
  return SearchInputComponent;
3107
3271
  }(ngxOdeCore.OdeComponent));
3108
3272
  if (false) {
3273
+ /** @type {?} */
3274
+ SearchInputComponent.prototype.isSearchActive;
3275
+ /** @type {?} */
3276
+ SearchInputComponent.prototype.searchInput;
3277
+ /** @type {?} */
3278
+ SearchInputComponent.prototype.searchSubmit;
3109
3279
  /**
3110
3280
  * @type {?}
3111
3281
  * @private
@@ -5190,6 +5360,172 @@
5190
5360
  return el.triggerEventHandler('click', null);
5191
5361
  }
5192
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
+
5440
+ /**
5441
+ * @fileoverview added by tsickle
5442
+ * Generated from: lib/components/search-toolbar/search-toolbar.component.ts
5443
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5444
+ */
5445
+ /**
5446
+ * Search Toolbar component.
5447
+ * Used within List component, Search Toolbar will display following information:
5448
+ * - Label of the search filter section (example: 'Search by')
5449
+ * - List of search type filters (example: 'Name', 'Email' , ...)
5450
+ * - Number of items returned by the search
5451
+ *
5452
+ * ```
5453
+ * <ode-search-toolbar
5454
+ * [label]="'user.searchType.label'"
5455
+ * [searchTypes]="searchTypes"
5456
+ * [nbItem]="nbUser || 0"
5457
+ * [nbItemLabel]="'list.results.users'"
5458
+ * (selectSearchType)="handleSelectSearchType($event)"
5459
+ * >
5460
+ * </ode-search-toolbar>
5461
+ * ```
5462
+ */
5463
+ var SearchToolbarComponent = /** @class */ (function (_super) {
5464
+ __extends(SearchToolbarComponent, _super);
5465
+ function SearchToolbarComponent(injector) {
5466
+ var _this = _super.call(this, injector) || this;
5467
+ _this.nbItem = 0;
5468
+ _this.selectSearchType = new core.EventEmitter();
5469
+ return _this;
5470
+ }
5471
+ /**
5472
+ * @return {?}
5473
+ */
5474
+ SearchToolbarComponent.prototype.ngOnInit = /**
5475
+ * @return {?}
5476
+ */
5477
+ function () {
5478
+ if (this.searchTypes && this.searchTypes.length > 0) {
5479
+ this.selectedSearchTypeValue = this.searchTypes[0].value;
5480
+ }
5481
+ };
5482
+ /**
5483
+ * @param {?} searchTypeValue
5484
+ * @return {?}
5485
+ */
5486
+ SearchToolbarComponent.prototype.handleSearchTypeClick = /**
5487
+ * @param {?} searchTypeValue
5488
+ * @return {?}
5489
+ */
5490
+ function (searchTypeValue) {
5491
+ this.selectedSearchTypeValue = searchTypeValue;
5492
+ this.selectSearchType.emit(searchTypeValue);
5493
+ };
5494
+ SearchToolbarComponent.decorators = [
5495
+ { type: core.Component, args: [{
5496
+ selector: 'ode-search-toolbar',
5497
+ template: "<div class=\"search-toolbar\">\n <div class=\"search-toolbar-label\">\n <s5l>{{ label }}</s5l>\n <button\n *ngFor=\"let searchType of searchTypes\"\n class=\"button has-left-margin-5\"\n [ngClass]=\"{\n 'is-selected': searchType.value === selectedSearchTypeValue\n }\"\n (click)=\"handleSearchTypeClick(searchType.value)\"\n >\n <s5l>{{ searchType.label }}</s5l>\n </button>\n </div>\n <div>\n <strong class=\"badge\">{{ nbItem }} <s5l>{{ nbItemLabel }}</s5l></strong>\n </div>\n</div>\n",
5498
+ styles: [".search-toolbar{display:flex;align-items:center;justify-content:space-between;padding:15px}.search-toolbar .search-toolbar-label{font-size:.85rem}.search-toolbar .search-toolbar-label .button{padding:4px 12px;border-radius:20px;font-size:12px;border-width:2px;border-color:#ff8d2e}"]
5499
+ }] }
5500
+ ];
5501
+ /** @nocollapse */
5502
+ SearchToolbarComponent.ctorParameters = function () { return [
5503
+ { type: core.Injector }
5504
+ ]; };
5505
+ SearchToolbarComponent.propDecorators = {
5506
+ label: [{ type: core.Input }],
5507
+ searchTypes: [{ type: core.Input }],
5508
+ nbItem: [{ type: core.Input }],
5509
+ nbItemLabel: [{ type: core.Input }],
5510
+ selectSearchType: [{ type: core.Output }]
5511
+ };
5512
+ return SearchToolbarComponent;
5513
+ }(ngxOdeCore.OdeComponent));
5514
+ if (false) {
5515
+ /** @type {?} */
5516
+ SearchToolbarComponent.prototype.label;
5517
+ /** @type {?} */
5518
+ SearchToolbarComponent.prototype.searchTypes;
5519
+ /** @type {?} */
5520
+ SearchToolbarComponent.prototype.nbItem;
5521
+ /** @type {?} */
5522
+ SearchToolbarComponent.prototype.nbItemLabel;
5523
+ /** @type {?} */
5524
+ SearchToolbarComponent.prototype.selectSearchType;
5525
+ /** @type {?} */
5526
+ SearchToolbarComponent.prototype.selectedSearchTypeValue;
5527
+ }
5528
+
5193
5529
  /**
5194
5530
  * @fileoverview added by tsickle
5195
5531
  * Generated from: lib/ngx-ode-ui.module.ts
@@ -5238,6 +5574,7 @@
5238
5574
  LightBoxComponent,
5239
5575
  LightboxConfirmComponent,
5240
5576
  ListComponent,
5577
+ ListCheckableComponent,
5241
5578
  MonoSelectComponent,
5242
5579
  MultiSelectComponent,
5243
5580
  MultiComboComponent,
@@ -5272,7 +5609,9 @@
5272
5609
  LocalizedDatePipe,
5273
5610
  BytesPipe,
5274
5611
  KeysPipe,
5275
- LengthPipe
5612
+ LengthPipe,
5613
+ DropdownComponent,
5614
+ SearchToolbarComponent
5276
5615
  ],
5277
5616
  imports: [
5278
5617
  common.CommonModule,
@@ -5289,6 +5628,7 @@
5289
5628
  LightBoxComponent,
5290
5629
  LightboxConfirmComponent,
5291
5630
  ListComponent,
5631
+ ListCheckableComponent,
5292
5632
  MonoSelectComponent,
5293
5633
  MultiSelectComponent,
5294
5634
  MultiComboComponent,
@@ -5308,6 +5648,8 @@
5308
5648
  SpinnerCubeComponent,
5309
5649
  PagerComponent,
5310
5650
  EllipsisComponent,
5651
+ DropdownComponent,
5652
+ SearchToolbarComponent,
5311
5653
  // directives
5312
5654
  AnchorDirective,
5313
5655
  DynamicTemplateDirective,
@@ -5354,6 +5696,7 @@
5354
5696
  exports.LightBoxComponent = LightBoxComponent;
5355
5697
  exports.LightboxConfirmComponent = LightboxConfirmComponent;
5356
5698
  exports.LimitPipe = LimitPipe;
5699
+ exports.ListCheckableComponent = ListCheckableComponent;
5357
5700
  exports.ListComponent = ListComponent;
5358
5701
  exports.LocalizedDatePipe = LocalizedDatePipe;
5359
5702
  exports.MessageBoxComponent = MessageBoxComponent;
@@ -5388,6 +5731,8 @@
5388
5731
  exports.standardise = standardise;
5389
5732
  exports.toDecimal = toDecimal;
5390
5733
  exports.trim = trim;
5734
+ exports.ɵa = DropdownComponent;
5735
+ exports.ɵb = SearchToolbarComponent;
5391
5736
 
5392
5737
  Object.defineProperty(exports, '__esModule', { value: true });
5393
5738