@ecodev/natural 37.0.0 → 38.1.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 (47) hide show
  1. package/bundles/ecodev-natural.umd.js +147 -99
  2. package/bundles/ecodev-natural.umd.js.map +1 -1
  3. package/ecodev-natural.metadata.json +1 -1
  4. package/esm2015/lib/classes/abstract-list.js +7 -5
  5. package/esm2015/lib/classes/abstract-navigable-list.js +32 -23
  6. package/esm2015/lib/classes/apollo-utils.js +4 -31
  7. package/esm2015/lib/classes/rxjs.js +13 -2
  8. package/esm2015/lib/classes/utility.js +32 -1
  9. package/esm2015/lib/classes/validators.js +16 -2
  10. package/esm2015/lib/modules/alert/confirm.component.js +1 -1
  11. package/esm2015/lib/modules/detail-header/detail-header.component.js +1 -1
  12. package/esm2015/lib/modules/dropdown-components/type-number/type-number.component.js +1 -1
  13. package/esm2015/lib/modules/dropdown-components/type-text/type-text.component.js +1 -1
  14. package/esm2015/lib/modules/file/component/file.component.js +1 -1
  15. package/esm2015/lib/modules/file/file-drop.directive.js +2 -4
  16. package/esm2015/lib/modules/fixed-button/fixed-button.component.js +1 -1
  17. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.js +1 -1
  18. package/esm2015/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.js +1 -1
  19. package/esm2015/lib/modules/icon/icon.component.js +1 -1
  20. package/esm2015/lib/modules/relations/relations.component.js +1 -1
  21. package/esm2015/lib/modules/search/dropdown-container/dropdown-container.component.js +2 -2
  22. package/esm2015/lib/modules/search/dropdown-container/dropdown-ref.js +1 -1
  23. package/esm2015/lib/modules/search/facet-selector/facet-selector.component.js +1 -1
  24. package/esm2015/lib/modules/search/group/group.component.js +1 -1
  25. package/esm2015/lib/modules/search/input/input.component.js +4 -4
  26. package/esm2015/lib/modules/search/search/search.component.js +1 -1
  27. package/esm2015/lib/modules/select/select/select.component.js +1 -1
  28. package/esm2015/lib/modules/select/select-hierarchic/select-hierarchic.component.js +1 -1
  29. package/esm2015/lib/modules/sidenav/sidenav-container/sidenav-container.component.js +8 -3
  30. package/esm2015/lib/modules/sidenav/sidenav-content/sidenav-content.component.js +1 -1
  31. package/esm2015/lib/modules/table-button/table-button.component.js +1 -1
  32. package/fesm2015/ecodev-natural.js +127 -85
  33. package/fesm2015/ecodev-natural.js.map +1 -1
  34. package/lib/classes/abstract-list.d.ts +1 -1
  35. package/lib/classes/abstract-navigable-list.d.ts +4 -2
  36. package/lib/classes/rxjs.d.ts +6 -1
  37. package/lib/classes/utility.d.ts +9 -0
  38. package/lib/classes/validators.d.ts +7 -0
  39. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +1 -2
  40. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +5 -0
  41. package/package.json +5 -5
  42. package/src/lib/modules/alert/_alert.theme.scss +1 -1
  43. package/src/lib/modules/file/component/_file.theme.scss +1 -1
  44. package/src/lib/modules/icon/_icon.theme.scss +1 -1
  45. package/src/lib/modules/search/dropdown-container/_dropdown-container.theme.scss +1 -1
  46. package/src/lib/modules/sidenav/_sidenav.theme.scss +1 -1
  47. package/src/lib/styles/_table.scss +1 -1
@@ -175,7 +175,7 @@ NaturalSelectComponent.decorators = [
175
175
  { type: Component, args: [{
176
176
  selector: 'natural-select',
177
177
  template: "<!-- Autocomplete menu -->\n<mat-autocomplete\n #ac=\"matAutocomplete\"\n (optionSelected)=\"propagateValue($event?.option?.value)\"\n [displayWith]=\"getDisplayFn()\"\n panelWidth=\"auto !important\"\n>\n <mat-option *ngFor=\"let item of items | async\" [value]=\"item\">\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultACItem\"\n ></ng-template>\n </mat-option>\n <div *ngIf=\"moreNbItems > 0\" class=\"mat-caption\" i18n style=\"padding: 5px 10px\"\n >{{ moreNbItems }} \u00E9l\u00E9ment(s) suppl\u00E9mentaire(s)</div\n >\n</mat-autocomplete>\n\n<ng-template #defaultACItem let-item=\"item\">\n <span>{{ getDisplayFn()(item) }}</span>\n</ng-template>\n\n<!-- Input for autocomplete -->\n<mat-form-field [floatLabel]=\"floatPlaceholder\">\n <mat-label>{{ placeholder }}</mat-label>\n\n <input\n (blur)=\"touch(); blur.emit()\"\n (change)=\"onInternalFormChange()\"\n (click)=\"autoTrigger.openPanel()\"\n (focus)=\"startSearch()\"\n (keydown.esc)=\"clear()\"\n [formControl]=\"internalCtrl\"\n [matAutocomplete]=\"ac\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n [errorStateMatcher]=\"matcher\"\n />\n\n <!-- Meta data -->\n <natural-icon *ngIf=\"!loading && showIcon\" [name]=\"icon\" matPrefix></natural-icon>\n <mat-progress-spinner\n *ngIf=\"loading\"\n [diameter]=\"21\"\n [strokeWidth]=\"5\"\n matPrefix\n mode=\"indeterminate\"\n ></mat-progress-spinner>\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matSuffix>\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n *ngIf=\"internalCtrl.value && internalCtrl.enabled && !clearLabel\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <natural-icon name=\"close\"></natural-icon>\n </button>\n <button\n *ngIf=\"internalCtrl.value && navigateTo\"\n [routerLink]=\"navigateTo\"\n mat-button\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <natural-icon name=\"open_in_browser\"></natural-icon>\n </button>\n </div>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error>\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n<div *ngIf=\"showClearButton()\" class=\"external-buttons\">\n <button (click)=\"clear()\" *ngIf=\"showClearButton()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n</div>\n",
178
- styles: [":host{display:flex;flex-direction:column}:host>:not(:last-child){margin-bottom:20px}:host>mat-autocomplete{margin-bottom:0!important}:host .external-buttons,:host .suffix-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>:not(:last-child){margin-right:10px}"]
178
+ styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host>mat-autocomplete{margin-bottom:0!important}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"]
179
179
  },] }
180
180
  ];
181
181
  NaturalSelectComponent.propDecorators = {
@@ -105,7 +105,7 @@ NaturalSelectHierarchicComponent.decorators = [
105
105
  { type: Component, args: [{
106
106
  selector: 'natural-select-hierarchic',
107
107
  template: "<mat-form-field [floatLabel]=\"floatPlaceholder\">\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n (keydown.esc)=\"clear()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n <natural-icon *ngIf=\"showIcon\" [name]=\"icon\" matPrefix></natural-icon>\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matSuffix>\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n *ngIf=\"internalCtrl.value && internalCtrl.enabled && !clearLabel\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <natural-icon name=\"close\"></natural-icon>\n </button>\n <button\n *ngIf=\"internalCtrl.value && navigateTo\"\n [routerLink]=\"navigateTo\"\n mat-button\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <natural-icon name=\"open_in_browser\"></natural-icon>\n </button>\n </div>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error>\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n<div *ngIf=\"showSelectButton() || showClearButton()\" class=\"external-buttons\">\n <button (click)=\"openDialog()\" *ngIf=\"showSelectButton()\" color=\"primary\" mat-flat-button>{{ selectLabel }}</button>\n <button (click)=\"clear()\" *ngIf=\"showClearButton()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n</div>\n",
108
- styles: [":host{display:flex;flex-direction:column}:host>:not(:last-child){margin-bottom:20px}:host .external-buttons,:host .suffix-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>:not(:last-child){margin-right:10px}"]
108
+ styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"]
109
109
  },] }
110
110
  ];
111
111
  NaturalSelectHierarchicComponent.ctorParameters = () => [
@@ -5,6 +5,10 @@ export class NaturalSidenavContainerComponent {
5
5
  constructor(sidenavService, element) {
6
6
  this.sidenavService = sidenavService;
7
7
  this.element = element;
8
+ /**
9
+ * The side that the drawer is attached to
10
+ */
11
+ this.position = 'start';
8
12
  /**
9
13
  * If true listens to route changes to close side nav after a route change if mobile view is active
10
14
  * Actually a navigation to current route does not emit a route change, and the sidenav don't close.
@@ -54,9 +58,9 @@ export class NaturalSidenavContainerComponent {
54
58
  NaturalSidenavContainerComponent.decorators = [
55
59
  { type: Component, args: [{
56
60
  selector: 'natural-sidenav-container',
57
- template: "<mat-sidenav-container>\n <mat-sidenav\n (openedChange)=\"sidenavService.setOpened($event)\"\n [mode]=\"sidenavService.activeMode\"\n [ngClass]=\"sidenavService.isMinimized ? 'menuMinimized' : ''\"\n [opened]=\"sidenavService.isOpened\"\n [style.min-width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [style.width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n position=\"start\"\n >\n <ng-content select=\"natural-sidenav\"></ng-content>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <div>\n <ng-content select=\"natural-sidenav-content\"></ng-content>\n </div>\n </mat-sidenav-content>\n</mat-sidenav-container>\n",
61
+ template: "<mat-sidenav-container>\n <mat-sidenav\n (openedChange)=\"sidenavService.setOpened($event)\"\n [mode]=\"sidenavService.activeMode\"\n [ngClass]=\"sidenavService.isMinimized ? 'menuMinimized' : ''\"\n [opened]=\"sidenavService.isOpened\"\n [style.min-width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [style.width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [position]=\"position\"\n >\n <ng-content select=\"natural-sidenav\"></ng-content>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <div>\n <ng-content select=\"natural-sidenav-content\"></ng-content>\n </div>\n </mat-sidenav-content>\n</mat-sidenav-container>\n",
58
62
  providers: [NaturalSidenavService],
59
- styles: [":host{display:flex;flex-direction:column}:host mat-sidenav-container{display:flex;flex-direction:column;flex:1}:host mat-sidenav-content>div{overflow:auto}:host .menuMinimized{overflow-x:hidden}:host .buttons{display:flex;flex-direction:row;justify-content:flex-end}"]
63
+ styles: [":host{display:flex;flex-direction:column}:host mat-sidenav-container{display:flex;flex-direction:column;flex:1}:host mat-sidenav-content>div{overflow:auto}:host .menuMinimized{overflow-x:hidden}:host .buttons{display:flex;flex-direction:row;justify-content:flex-end}\n"]
60
64
  },] }
61
65
  ];
62
66
  NaturalSidenavContainerComponent.ctorParameters = () => [
@@ -65,10 +69,11 @@ NaturalSidenavContainerComponent.ctorParameters = () => [
65
69
  ];
66
70
  NaturalSidenavContainerComponent.propDecorators = {
67
71
  name: [{ type: Input }],
72
+ position: [{ type: Input }],
68
73
  mobileAutoClose: [{ type: Input }],
69
74
  minimizedWidth: [{ type: Input }],
70
75
  noScroll: [{ type: HostBinding, args: ['attr.no-scroll',] }, { type: Input }],
71
76
  menuContainer: [{ type: ViewChild, args: [MatSidenavContainer, { static: true },] }],
72
77
  menuSidenav: [{ type: ViewChild, args: [MatSidenav, { static: true },] }]
73
78
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQVF6RCxNQUFNLE9BQU8sZ0NBQWdDO0lBaUN6QyxZQUE0QixjQUFxQyxFQUFrQixPQUFtQjtRQUExRSxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFBa0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQTNCdEc7OztXQUdHO1FBQ2Esb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkM7O1dBRUc7UUFDYSxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUVyQzs7O1dBR0c7UUFDNEMsYUFBUSxHQUFHLEtBQUssQ0FBQztJQVl5QyxDQUFDO0lBRTFHLElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs7WUEvRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLG94QkFBaUQ7Z0JBRWpELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDOzthQUNyQzs7O1lBUE8scUJBQXFCO1lBRlYsVUFBVTs7O21CQWN4QixLQUFLOzhCQU1MLEtBQUs7NkJBS0wsS0FBSzt1QkFNTCxXQUFXLFNBQUMsZ0JBQWdCLGNBQUcsS0FBSzs0QkFLcEMsU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzswQkFLN0MsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0U2lkZW5hdiwgTWF0U2lkZW5hdkNvbnRhaW5lcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2U2VydmljZX0gZnJvbSAnLi4vc2lkZW5hdi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLXNpZGVuYXYtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbTmF0dXJhbFNpZGVuYXZTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIGlkZW50aWZpZXIgdXNlZCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUgbGlzdGVucyB0byByb3V0ZSBjaGFuZ2VzIHRvIGNsb3NlIHNpZGUgbmF2IGFmdGVyIGEgcm91dGUgY2hhbmdlIGlmIG1vYmlsZSB2aWV3IGlzIGFjdGl2ZVxuICAgICAqIEFjdHVhbGx5IGEgbmF2aWdhdGlvbiB0byBjdXJyZW50IHJvdXRlIGRvZXMgbm90IGVtaXQgYSByb3V0ZSBjaGFuZ2UsIGFuZCB0aGUgc2lkZW5hdiBkb24ndCBjbG9zZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9iaWxlQXV0b0Nsb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBtaW5pbWl6ZWQgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5pbWl6ZWRXaWR0aCA9IDE1MDtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHByZXZlbnRzIFwibmF0aXZlXCIgbWF0ZXJpYWwgc2lkZW5hdiB0byBzY3JvbGwgYXQgY29udGFpbmVyIGxldmVsIGFuZCBkZWxlZ2F0ZXMgdGhlIHNjcm9sbCByZXNwb25zYWJpbGl0eSB0byB0aGUgdHJhbnNjbHVkZWRcbiAgICAgKiBjb250ZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm5vLXNjcm9sbCcpIEBJbnB1dCgpIHB1YmxpYyBub1Njcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW5uZXIgXCJuYXRpdmVcIiBtYXRlcmlhbCBzaWRlbmF2IGNvbnRhaW5lclxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdkNvbnRhaW5lciwge3N0YXRpYzogdHJ1ZX0pIHByaXZhdGUgbWVudUNvbnRhaW5lciE6IE1hdFNpZGVuYXZDb250YWluZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbm5lciBcIm5hdGl2ZVwiIG1hdGVyaWFsIHNpZGVuYXZcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHtzdGF0aWM6IHRydWV9KSBwcml2YXRlIG1lbnVTaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzaWRlbmF2U2VydmljZTogTmF0dXJhbFNpZGVuYXZTZXJ2aWNlLCBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZGVuYXZTZXJ2aWNlLmlzTWluaW1pemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNb2JpbGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaWRlbmF2U2VydmljZS5pc01vYmlsZVZpZXcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuaW5pdCh0aGlzLm5hbWUsIHRoaXMubWVudUNvbnRhaW5lciwgdGhpcy5tZW51U2lkZW5hdiwgdGhpcywgdGhpcy5tb2JpbGVBdXRvQ2xvc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5kZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2Uub3BlbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5taW5pbWl6ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZXhwYW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU1pbmltaXplZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS50b2dnbGVNaW5pbWl6ZWQoKTtcbiAgICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBWSxVQUFVLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQVF6RCxNQUFNLE9BQU8sZ0NBQWdDO0lBc0N6QyxZQUE0QixjQUFxQyxFQUFrQixPQUFtQjtRQUExRSxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFBa0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWhDdEc7O1dBRUc7UUFDYSxhQUFRLEdBQTBCLE9BQU8sQ0FBQztRQUUxRDs7O1dBR0c7UUFDYSxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2Qzs7V0FFRztRQUNhLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBRXJDOzs7V0FHRztRQUM0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBWXlDLENBQUM7SUFFMUcsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sSUFBSTtRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFDLENBQUM7OztZQXBGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMseXhCQUFpRDtnQkFFakQsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7O2FBQ3JDOzs7WUFQTyxxQkFBcUI7WUFGVixVQUFVOzs7bUJBY3hCLEtBQUs7dUJBS0wsS0FBSzs4QkFNTCxLQUFLOzZCQUtMLEtBQUs7dUJBTUwsV0FBVyxTQUFDLGdCQUFnQixjQUFHLEtBQUs7NEJBS3BDLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7MEJBSzdDLFNBQVMsU0FBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERyYXdlciwgTWF0U2lkZW5hdiwgTWF0U2lkZW5hdkNvbnRhaW5lcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2U2VydmljZX0gZnJvbSAnLi4vc2lkZW5hdi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLXNpZGVuYXYtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbTmF0dXJhbFNpZGVuYXZTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIGlkZW50aWZpZXIgdXNlZCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzaWRlIHRoYXQgdGhlIGRyYXdlciBpcyBhdHRhY2hlZCB0b1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3NpdGlvbjogTWF0RHJhd2VyWydwb3NpdGlvbiddID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUgbGlzdGVucyB0byByb3V0ZSBjaGFuZ2VzIHRvIGNsb3NlIHNpZGUgbmF2IGFmdGVyIGEgcm91dGUgY2hhbmdlIGlmIG1vYmlsZSB2aWV3IGlzIGFjdGl2ZVxuICAgICAqIEFjdHVhbGx5IGEgbmF2aWdhdGlvbiB0byBjdXJyZW50IHJvdXRlIGRvZXMgbm90IGVtaXQgYSByb3V0ZSBjaGFuZ2UsIGFuZCB0aGUgc2lkZW5hdiBkb24ndCBjbG9zZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9iaWxlQXV0b0Nsb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBtaW5pbWl6ZWQgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5pbWl6ZWRXaWR0aCA9IDE1MDtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHByZXZlbnRzIFwibmF0aXZlXCIgbWF0ZXJpYWwgc2lkZW5hdiB0byBzY3JvbGwgYXQgY29udGFpbmVyIGxldmVsIGFuZCBkZWxlZ2F0ZXMgdGhlIHNjcm9sbCByZXNwb25zYWJpbGl0eSB0byB0aGUgdHJhbnNjbHVkZWRcbiAgICAgKiBjb250ZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm5vLXNjcm9sbCcpIEBJbnB1dCgpIHB1YmxpYyBub1Njcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW5uZXIgXCJuYXRpdmVcIiBtYXRlcmlhbCBzaWRlbmF2IGNvbnRhaW5lclxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdkNvbnRhaW5lciwge3N0YXRpYzogdHJ1ZX0pIHByaXZhdGUgbWVudUNvbnRhaW5lciE6IE1hdFNpZGVuYXZDb250YWluZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbm5lciBcIm5hdGl2ZVwiIG1hdGVyaWFsIHNpZGVuYXZcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHtzdGF0aWM6IHRydWV9KSBwcml2YXRlIG1lbnVTaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzaWRlbmF2U2VydmljZTogTmF0dXJhbFNpZGVuYXZTZXJ2aWNlLCBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZGVuYXZTZXJ2aWNlLmlzTWluaW1pemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNb2JpbGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaWRlbmF2U2VydmljZS5pc01vYmlsZVZpZXcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuaW5pdCh0aGlzLm5hbWUsIHRoaXMubWVudUNvbnRhaW5lciwgdGhpcy5tZW51U2lkZW5hdiwgdGhpcywgdGhpcy5tb2JpbGVBdXRvQ2xvc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5kZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2Uub3BlbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5taW5pbWl6ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZXhwYW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU1pbmltaXplZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS50b2dnbGVNaW5pbWl6ZWQoKTtcbiAgICB9XG59XG4iXX0=
@@ -6,7 +6,7 @@ NaturalSidenavContentComponent.decorators = [
6
6
  { type: Component, args: [{
7
7
  selector: 'natural-sidenav-content',
8
8
  template: '<ng-content></ng-content>',
9
- styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}"]
9
+ styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}\n"]
10
10
  },] }
11
11
  ];
12
12
  NaturalSidenavContentComponent.ctorParameters = () => [];
@@ -19,7 +19,7 @@ NaturalTableButtonComponent.decorators = [
19
19
  selector: 'natural-table-button',
20
20
  template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<ng-container *ngIf=\"!raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n\n<ng-container *ngIf=\"raised\">\n <!-- App routed link with label... -->\n <a\n *ngIf=\"!href && label\"\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a\n *ngIf=\"!href && !label\"\n [color]=\"color\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [queryParams]=\"queryParams\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n mat-icon-button\n mat-raised-button\n >\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n\n <!-- External link with label... -->\n <a *ngIf=\"href && label\" [attr.href]=\"href\" [color]=\"color\" mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n <span>{{ label }}</span>\n </a>\n\n <!-- ... and without label -->\n <a *ngIf=\"href && !label\" [attr.href]=\"href\" [color]=\"color\" mat-icon-button mat-raised-button target=\"_blank\">\n <natural-icon *ngIf=\"icon\" [name]=\"icon\"></natural-icon>\n </a>\n</ng-container>\n",
21
21
  encapsulation: ViewEncapsulation.None,
22
- styles: ["natural-table-button,natural-table-button a.mat-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-button .mat-button-wrapper,natural-table-button a.mat-button .mat-button-wrapper>*{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>:not(:last-child){margin-right:5px}"]
22
+ styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-button .mat-button-wrapper{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>*{display:flex;flex-direction:row;align-items:center}natural-table-button a.mat-button .mat-button-wrapper>:not(:last-child){margin-right:5px}\n"]
23
23
  },] }
24
24
  ];
25
25
  NaturalTableButtonComponent.ctorParameters = () => [];