@eurosat/buttons 12.0.0 → 14.0.1

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 (33) hide show
  1. package/esm2020/eurosat-buttons.mjs +5 -0
  2. package/esm2020/lib/components/dialog-confirm/dialog-confirm.component.mjs +56 -0
  3. package/esm2020/lib/components/dialog-form/dialog-form.component.mjs +36 -0
  4. package/esm2020/lib/es-buttons.component.mjs +200 -0
  5. package/esm2020/lib/es-buttons.module.mjs +59 -0
  6. package/fesm2015/eurosat-buttons.mjs +342 -0
  7. package/fesm2015/eurosat-buttons.mjs.map +1 -0
  8. package/fesm2020/eurosat-buttons.mjs +342 -0
  9. package/fesm2020/eurosat-buttons.mjs.map +1 -0
  10. package/index.d.ts +5 -0
  11. package/lib/components/dialog-confirm/dialog-confirm.component.d.ts +3 -0
  12. package/lib/components/dialog-form/dialog-form.component.d.ts +3 -0
  13. package/lib/es-buttons.component.d.ts +3 -0
  14. package/lib/es-buttons.module.d.ts +16 -0
  15. package/package.json +25 -13
  16. package/bundles/eurosat-buttons.umd.js +0 -351
  17. package/bundles/eurosat-buttons.umd.js.map +0 -1
  18. package/bundles/eurosat-buttons.umd.min.js +0 -2
  19. package/bundles/eurosat-buttons.umd.min.js.map +0 -1
  20. package/esm2015/eurosat-buttons.js +0 -7
  21. package/esm2015/lib/components/dialog-confirm/dialog-confirm.component.js +0 -56
  22. package/esm2015/lib/components/dialog-form/dialog-form.component.js +0 -38
  23. package/esm2015/lib/es-buttons.component.js +0 -198
  24. package/esm2015/lib/es-buttons.module.js +0 -41
  25. package/eurosat-buttons.d.ts +0 -6
  26. package/eurosat-buttons.metadata.json +0 -1
  27. package/fesm2015/eurosat-buttons.js +0 -338
  28. package/fesm2015/eurosat-buttons.js.map +0 -1
  29. /package/{esm2015/lib/components/dialog-result.js → esm2020/lib/components/dialog-result.mjs} +0 -0
  30. /package/{esm2015/lib/model/es-button-action.js → esm2020/lib/model/es-button-action.mjs} +0 -0
  31. /package/{esm2015/lib/model/es-button-server-response.js → esm2020/lib/model/es-button-server-response.mjs} +0 -0
  32. /package/{esm2015/lib/model/es-button.interface.js → esm2020/lib/model/es-button.interface.mjs} +0 -0
  33. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,351 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@angular/material/snack-bar'), require('@eurosat/snackbar'), require('@eurosat/http'), require('@eurosat/icon'), require('@angular/material/dialog'), require('@eurosat/dialog'), require('@eurosat/form'), require('rxjs/internal/operators'), require('@angular/common'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/tooltip'), require('@ngx-translate/core')) :
3
- typeof define === 'function' && define.amd ? define('@eurosat/buttons', ['exports', '@angular/core', '@angular/router', '@angular/material/snack-bar', '@eurosat/snackbar', '@eurosat/http', '@eurosat/icon', '@angular/material/dialog', '@eurosat/dialog', '@eurosat/form', 'rxjs/internal/operators', '@angular/common', '@angular/material/button', '@angular/material/menu', '@angular/material/tooltip', '@ngx-translate/core'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.eurosat = global.eurosat || {}, global.eurosat.buttons = {}), global.ng.core, global.ng.router, global.ng.material.snackBar, global.snackbar, global.http, global.icon, global.ng.material.dialog, global.dialog$1, global.form, global.rxjs['internal/operators'], global.ng.common, global.ng.material.button, global.ng.material.menu, global.ng.material.tooltip, global.core$1));
5
- }(this, (function (exports, core, router, snackBar, snackbar, http, icon, dialog, dialog$1, form, operators, common, button, menu, tooltip, core$1) { 'use strict';
6
-
7
- var EsButtonAction = /** @class */ (function () {
8
- function EsButtonAction() {
9
- }
10
- return EsButtonAction;
11
- }());
12
- EsButtonAction.ACTION_DIALOG_CONFIRM = 'dialog-confirm';
13
- EsButtonAction.ACTION_DIALOG_DELETE = 'dialog-delete';
14
- EsButtonAction.ACTION_DIALOG_FORM = 'dialog-form';
15
- EsButtonAction.ACTION_CARD_CONTENT_FORM = 'card-content-form';
16
- EsButtonAction.ACTION_CARD_CONTENT_WIZARD = 'card-content-wizard'; // todo asi zrusit
17
- EsButtonAction.ACTION_CHANGE_CARD_CONTENT = 'change-card-content'; // mozna zrusit ? je kuli neemitu clicku na button
18
- EsButtonAction.ACTION_DOWNLOAD = 'download';
19
- EsButtonAction.ACTION_REQUEST = 'request';
20
- EsButtonAction.ACTION_ROUTER_NAVIGATE = 'router-navigate';
21
- EsButtonAction.ACTION_WINDOW_LOCATION = 'open-link';
22
-
23
- var DialogConfirmComponent = /** @class */ (function () {
24
- function DialogConfirmComponent(dialogRef, snackBar, ds) {
25
- this.dialogRef = dialogRef;
26
- this.snackBar = snackBar;
27
- this.ds = ds;
28
- this.submit = new core.EventEmitter();
29
- this.activeRequest = false;
30
- var data = this.ds.getData();
31
- this.message = data.message;
32
- this.url = data.url;
33
- }
34
- DialogConfirmComponent.prototype.confirm = function () {
35
- var _this = this;
36
- this.activeRequest = true;
37
- this.ds.httpPost(this.url, null).subscribe(function (response) {
38
- _this.activeRequest = false;
39
- var config = new snackBar.MatSnackBarConfig();
40
- config.duration = 2000;
41
- if (response.type === form.EsFormResponseMessageType.TYPE_OK) {
42
- config.panelClass = snackbar.EsSnackBarPanelClass.SUCCESS;
43
- _this.submit.emit();
44
- }
45
- else {
46
- config.panelClass = snackbar.EsSnackBarPanelClass.DANGER;
47
- }
48
- _this.snackBar.open(response.message, null, config);
49
- var result = {
50
- clickedYes: true,
51
- serverResponse: response
52
- };
53
- _this.dialogRef.close(result);
54
- });
55
- };
56
- return DialogConfirmComponent;
57
- }());
58
- DialogConfirmComponent.decorators = [
59
- { type: core.Component, args: [{
60
- selector: 'dialog-confirm',
61
- template: "<p>{{message}}</p>\n<div class=\"button-container\">\n <mat-spinner *ngIf=\"activeRequest\" [diameter]=\"36\"></mat-spinner>\n <ng-container *ngIf=\"!activeRequest\">\n <button type=\"button\"\n color=\"accent\"\n mat-raised-button\n (click)=\"confirm()\"> {{'an.common.ano' | translate}}\n </button>\n <button type=\"button\"\n color=\"accent\"\n mat-raised-button\n (click)=\"dialogRef.close({clickedYes: false})\">{{'an.common.ne' | translate}}\n </button>\n </ng-container>\n</div>\n",
62
- styles: ["button:not(:last-child){margin-right:20px}.button-container{min-height:36px;min-width:196px;position:relative;text-align:center}.button-container mat-spinner{position:absolute!important;left:calc(50% - 18px);top:calc(50% - 18px)}"]
63
- },] }
64
- ];
65
- /** @nocollapse */
66
- DialogConfirmComponent.ctorParameters = function () { return [
67
- { type: dialog.MatDialogRef },
68
- { type: snackBar.MatSnackBar },
69
- { type: dialog$1.EsDialogService }
70
- ]; };
71
- DialogConfirmComponent.propDecorators = {
72
- submit: [{ type: core.Output }]
73
- };
74
-
75
- var DialogFormComponent = /** @class */ (function () {
76
- function DialogFormComponent(dialogRef, ds) {
77
- this.dialogRef = dialogRef;
78
- this.cols = 1;
79
- this.maxFormHeight = window.innerHeight - 60;
80
- var data = ds.getData();
81
- this.formUrl = data.url;
82
- }
83
- DialogFormComponent.prototype.submit = function (value) {
84
- // sem se to dostane jen pri success ulozeni formu
85
- var result = {
86
- clickedYes: true
87
- };
88
- this.dialogRef.close(result);
89
- // pokud bysme chteli form.value
90
- // this.dialogRef.close(value);
91
- // console.log('form value v parent', value);
92
- };
93
- DialogFormComponent.prototype.getWindowHeight = function () {
94
- this.maxFormHeight = window.innerHeight - 60;
95
- };
96
- return DialogFormComponent;
97
- }());
98
- DialogFormComponent.decorators = [
99
- { type: core.Component, args: [{
100
- selector: 'dialog-form',
101
- template: "<div class=\"es-form-container\" [style.max-height]=\"(maxFormHeight - 106) + 'px'\">\n <es-form [formUrl]=\"formUrl\"\n [dynamicForm]=\"esForm\"\n [cols]=\"cols\"\n (submit)=\"submit($event)\">\n </es-form>\n</div>\n",
102
- styles: [".es-form-container{overflow:auto;margin-top:24px;position:relative}"]
103
- },] }
104
- ];
105
- /** @nocollapse */
106
- DialogFormComponent.ctorParameters = function () { return [
107
- { type: dialog.MatDialogRef },
108
- { type: dialog$1.EsDialogService }
109
- ]; };
110
-
111
- // todo translates
112
- var EsButtonsComponent = /** @class */ (function () {
113
- function EsButtonsComponent(router, dialog, snackBar, http) {
114
- this.router = router;
115
- this.dialog = dialog;
116
- this.snackBar = snackBar;
117
- this.http = http;
118
- this.parentWidth = 40; // default 40 = 1 button
119
- this.buttons = []; // normal input
120
- this.forceMenu = false; // pokud chci zobrazit ... menu i pro jeden buttonek, na realtimu pouzito
121
- this.buttonClick = new core.EventEmitter();
122
- this.reload = new core.EventEmitter();
123
- this.dialogCreated = new core.EventEmitter();
124
- this.serverResponse = new core.EventEmitter();
125
- this.menuVisible = false;
126
- this.buttonWidth = 40; // todo ViewChild, sirka buttonu ?
127
- this.visibleButtons = [];
128
- this.hiddenButtons = [];
129
- this.esIcon = icon.EsIcon;
130
- this._width = 0;
131
- }
132
- EsButtonsComponent.prototype.showMenu = function () {
133
- return this.getHiddenButtons() && this.getHiddenButtons().length > 0 && this.getHiddenButtons().length !== 1;
134
- };
135
- EsButtonsComponent.prototype.countVisible = function () {
136
- return Math.floor((this._width) / this.buttonWidth) - 1;
137
- };
138
- EsButtonsComponent.prototype.getVisibleButtons = function () {
139
- var _this = this;
140
- if (this.buttons && this.buttons.length > 0) {
141
- return this.buttons.filter(function (button) {
142
- if (_this.buttons.indexOf(button) < _this.countVisible()
143
- || (_this.getHiddenButtons().length === 1 && !_this.forceMenu)) {
144
- return true;
145
- }
146
- });
147
- }
148
- };
149
- EsButtonsComponent.prototype.getHiddenButtons = function () {
150
- var _this = this;
151
- if (this.buttons && this.buttons.length > 0) {
152
- return this.buttons.filter(function (button) {
153
- if (_this.buttons.indexOf(button) >= _this.countVisible()) {
154
- return true;
155
- }
156
- });
157
- }
158
- };
159
- EsButtonsComponent.prototype.ngOnChanges = function (simpleChange) {
160
- if (simpleChange['parentWidth']) {
161
- if (this.parentWidth > 0) {
162
- this._width = this.parentWidth;
163
- this.recalculateButtons();
164
- }
165
- }
166
- if (simpleChange['buttons']) {
167
- if (typeof this.buttons === 'string') {
168
- this.buttons = JSON.parse(this.buttons);
169
- }
170
- this.recalculateButtons();
171
- }
172
- };
173
- EsButtonsComponent.prototype.recalculateButtons = function () {
174
- this.menuVisible = this.showMenu();
175
- this.visibleButtons = this.getVisibleButtons();
176
- this.hiddenButtons = this.getHiddenButtons();
177
- };
178
- EsButtonsComponent.prototype.handleAction = function (button) {
179
- var _this = this;
180
- if (button.action === EsButtonAction.ACTION_DIALOG_CONFIRM) {
181
- this.openConfirm(button);
182
- }
183
- if (button.action === EsButtonAction.ACTION_DIALOG_DELETE) {
184
- this.openDelete(button);
185
- }
186
- if (button.action === EsButtonAction.ACTION_DIALOG_FORM) {
187
- this.openForm(button);
188
- }
189
- if (button.action === EsButtonAction.ACTION_DOWNLOAD) {
190
- this.http.get(button.url, { responseType: 'blob', observe: 'response' }).subscribe(function (response) {
191
- var filename = response.headers.get('Content-Disposition').split('filename=')[1];
192
- if (window.navigator && window.navigator.msSaveOrOpenBlob) {
193
- window.navigator.msSaveBlob(response.body, filename);
194
- }
195
- else {
196
- var link = document.createElement('a');
197
- link.setAttribute('href', window.URL.createObjectURL(response.body));
198
- link.setAttribute('download', filename);
199
- link.style.visibility = 'hidden';
200
- document.body.appendChild(link);
201
- link.click();
202
- document.body.removeChild(link);
203
- }
204
- });
205
- }
206
- if (button.action === EsButtonAction.ACTION_REQUEST) {
207
- this.http.get(button.url).subscribe(function (response) {
208
- var config = new snackBar.MatSnackBarConfig();
209
- config.duration = 2000;
210
- if (response.type === form.EsFormResponseMessageType.TYPE_OK) {
211
- config.panelClass = snackbar.EsSnackBarPanelClass.SUCCESS;
212
- }
213
- else {
214
- config.panelClass = snackbar.EsSnackBarPanelClass.DANGER;
215
- }
216
- _this.snackBar.open(response.message, null, config);
217
- _this.reload.emit(true);
218
- _this.serverResponse.emit({ button: button, response: response });
219
- });
220
- }
221
- if (button.action === EsButtonAction.ACTION_ROUTER_NAVIGATE) {
222
- this.router.navigateByUrl(button.url);
223
- }
224
- if (button.action === EsButtonAction.ACTION_WINDOW_LOCATION) {
225
- window.location.href = button.url;
226
- }
227
- this.buttonClick.emit(button);
228
- };
229
- // handleSubMenuAction(button: EsButton) {
230
- // // todo asi predelat na md2 menu
231
- // // todo nevim jestli se zpropaguje click kdyz je to zanoreny pres es-card-header
232
- // this.buttonClick.emit(button);
233
- // }
234
- EsButtonsComponent.prototype.openForm = function (button) {
235
- var _this = this;
236
- var config = {
237
- title: button.title,
238
- data: {
239
- url: button.url
240
- }
241
- };
242
- var dialogRef = this.dialog.open(DialogFormComponent, config);
243
- this.dialogCreated.emit(dialogRef);
244
- dialogRef.afterClosed().pipe(operators.take(1)).subscribe(function (res) {
245
- if (res && res.clickedYes) {
246
- _this.reload.emit(true);
247
- if (res.serverResponse) {
248
- _this.serverResponse.emit({ button: button, response: res.serverResponse });
249
- }
250
- }
251
- });
252
- };
253
- EsButtonsComponent.prototype.openDelete = function (button) {
254
- this.openConfirm(button);
255
- };
256
- EsButtonsComponent.prototype.openConfirm = function (button) {
257
- var _this = this;
258
- var config = {
259
- title: button.title,
260
- data: {
261
- message: button.message,
262
- url: button.url
263
- }
264
- };
265
- var dialogRef = this.dialog.open(DialogConfirmComponent, config);
266
- this.dialogCreated.emit(dialogRef);
267
- dialogRef.afterClosed().pipe(operators.take(1)).subscribe(function (res) {
268
- if (res && res.clickedYes) {
269
- _this.reload.emit(true);
270
- if (res.serverResponse) {
271
- _this.serverResponse.emit({ button: button, response: res.serverResponse });
272
- }
273
- }
274
- });
275
- };
276
- return EsButtonsComponent;
277
- }());
278
- EsButtonsComponent.decorators = [
279
- { type: core.Component, args: [{
280
- selector: 'es-buttons',
281
- template: "<ng-container *ngIf=\"visibleButtons && visibleButtons.length > 0\">\n <button *ngIf=\"visibleButtons.length > 0\"\n mat-icon-button\n [disabled]=\"visibleButtons[0].disabled === true\"\n [matTooltip]=\"visibleButtons[0].tooltip? visibleButtons[0].tooltip : visibleButtons[0].title\"\n (click)=\"handleAction(visibleButtons[0])\">\n <es-icon [color]=\"visibleButtons[0].color\"\n [themeColor]=\"visibleButtons[0].themeColor\"\n [icon]=\"visibleButtons[0].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 1\"\n mat-icon-button\n [disabled]=\"visibleButtons[1].disabled === true\"\n [matTooltip]=\"visibleButtons[1].tooltip? visibleButtons[1].tooltip : visibleButtons[1].title\"\n (click)=\"handleAction(visibleButtons[1])\">\n <es-icon [color]=\"visibleButtons[1].color\"\n [themeColor]=\"visibleButtons[1].themeColor\"\n [icon]=\"visibleButtons[1].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 2\"\n mat-icon-button\n [disabled]=\"visibleButtons[2].disabled === true\"\n [matTooltip]=\"visibleButtons[2].tooltip? visibleButtons[2].tooltip : visibleButtons[2].title\"\n (click)=\"handleAction(visibleButtons[2])\">\n <es-icon [color]=\"visibleButtons[2].color\"\n [themeColor]=\"visibleButtons[2].themeColor\"\n [icon]=\"visibleButtons[2].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 3\"\n mat-icon-button\n [disabled]=\"visibleButtons[3].disabled === true\"\n [matTooltip]=\"visibleButtons[3].tooltip? visibleButtons[3].tooltip : visibleButtons[3].title\"\n (click)=\"handleAction(visibleButtons[3])\">\n <es-icon [color]=\"visibleButtons[3].color\"\n [themeColor]=\"visibleButtons[3].themeColor\"\n [icon]=\"visibleButtons[3].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 4\"\n mat-icon-button\n [disabled]=\"visibleButtons[4].disabled === true\"\n [matTooltip]=\"visibleButtons[4].tooltip? visibleButtons[4].tooltip : visibleButtons[4].title\"\n (click)=\"handleAction(visibleButtons[4])\">\n <es-icon [color]=\"visibleButtons[4].color\"\n [themeColor]=\"visibleButtons[4].themeColor\"\n [icon]=\"visibleButtons[4].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 5\"\n mat-icon-button\n [disabled]=\"visibleButtons[5].disabled === true\"\n [matTooltip]=\"visibleButtons[5].tooltip? visibleButtons[5].tooltip : visibleButtons[5].title\"\n (click)=\"handleAction(visibleButtons[5])\">\n <es-icon [color]=\"visibleButtons[5].color\"\n [themeColor]=\"visibleButtons[5].themeColor\"\n [icon]=\"visibleButtons[5].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 6\"\n mat-icon-button\n [disabled]=\"visibleButtons[6].disabled === true\"\n [matTooltip]=\"visibleButtons[6].tooltip? visibleButtons[6].tooltip : visibleButtons[6].title\"\n (click)=\"handleAction(visibleButtons[6])\">\n <es-icon [color]=\"visibleButtons[6].color\"\n [themeColor]=\"visibleButtons[6].themeColor\"\n [icon]=\"visibleButtons[6].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 7\"\n mat-icon-button\n [disabled]=\"visibleButtons[7].disabled === true\"\n [matTooltip]=\"visibleButtons[7].tooltip? visibleButtons[7].tooltip : visibleButtons[7].title\"\n (click)=\"handleAction(visibleButtons[7])\">\n <es-icon [color]=\"visibleButtons[7].color\"\n [themeColor]=\"visibleButtons[7].themeColor\"\n [icon]=\"visibleButtons[7].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 8\"\n mat-icon-button\n [disabled]=\"visibleButtons[8].disabled === true\"\n [matTooltip]=\"visibleButtons[8].tooltip? visibleButtons[8].tooltip : visibleButtons[8].title\"\n (click)=\"handleAction(visibleButtons[8])\">\n <es-icon [color]=\"visibleButtons[8].color\"\n [themeColor]=\"visibleButtons[8].themeColor\"\n [icon]=\"visibleButtons[8].icon\"></es-icon>\n </button>\n <button *ngIf=\"visibleButtons.length > 9\"\n mat-icon-button\n [disabled]=\"visibleButtons[9].disabled === true\"\n [matTooltip]=\"visibleButtons[9].tooltip? visibleButtons[9].tooltip : visibleButtons[9].title\"\n (click)=\"handleAction(visibleButtons[9])\">\n <es-icon [color]=\"visibleButtons[9].color\"\n [themeColor]=\"visibleButtons[9].themeColor\"\n [icon]=\"visibleButtons[9].icon\"></es-icon>\n </button>\n</ng-container>\n\n\n<button *ngIf=\"menuVisible || forceMenu\"\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n [matTooltip]=\"'an.more' | translate\">\n <es-icon [icon]=\"esIcon.MORE_VERT\"></es-icon>\n</button>\n\n\n<mat-menu #menu=\"matMenu\"\n [overlapTrigger]=\"false\"\n yPosition=\"below\"\n xPosition=\"before\">\n <ng-container *ngIf=\"hiddenButtons && hiddenButtons.length > 0\">\n <button *ngIf=\"hiddenButtons.length > 0\"\n mat-menu-item\n [disabled]=\"hiddenButtons[0].disabled === true\"\n (click)=\"handleAction(hiddenButtons[0])\">\n <es-icon [color]=\"hiddenButtons[0].color\"\n [themeColor]=\"hiddenButtons[0].themeColor\"\n [icon]=\"hiddenButtons[0].icon\"></es-icon>\n <span>{{hiddenButtons[0].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 1\"\n mat-menu-item\n [disabled]=\"hiddenButtons[1].disabled === true\"\n (click)=\"handleAction(hiddenButtons[1])\">\n <es-icon [color]=\"hiddenButtons[1].color\"\n [themeColor]=\"hiddenButtons[1].themeColor\"\n [icon]=\"hiddenButtons[1].icon\"></es-icon>\n <span>{{hiddenButtons[1].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 2\"\n mat-menu-item\n [disabled]=\"hiddenButtons[2].disabled === true\"\n (click)=\"handleAction(hiddenButtons[2])\">\n <es-icon [color]=\"hiddenButtons[2].color\"\n [themeColor]=\"hiddenButtons[2].themeColor\"\n [icon]=\"hiddenButtons[2].icon\"></es-icon>\n <span>{{hiddenButtons[2].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 3\"\n mat-menu-item\n [disabled]=\"hiddenButtons[3].disabled === true\"\n (click)=\"handleAction(hiddenButtons[3])\">\n <es-icon [color]=\"hiddenButtons[3].color\"\n [themeColor]=\"hiddenButtons[3].themeColor\"\n [icon]=\"hiddenButtons[3].icon\"></es-icon>\n <span>{{hiddenButtons[3].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 4\"\n mat-menu-item\n [disabled]=\"hiddenButtons[4].disabled === true\"\n (click)=\"handleAction(hiddenButtons[4])\">\n <es-icon [color]=\"hiddenButtons[4].color\"\n [themeColor]=\"hiddenButtons[4].themeColor\"\n [icon]=\"hiddenButtons[4].icon\"></es-icon>\n <span>{{hiddenButtons[4].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 5\"\n mat-menu-item\n [disabled]=\"hiddenButtons[5].disabled === true\"\n (click)=\"handleAction(hiddenButtons[5])\">\n <es-icon [color]=\"hiddenButtons[5].color\"\n [themeColor]=\"hiddenButtons[5].themeColor\"\n [icon]=\"hiddenButtons[5].icon\"></es-icon>\n <span>{{hiddenButtons[5].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 6\"\n mat-menu-item\n [disabled]=\"hiddenButtons[6].disabled === true\"\n (click)=\"handleAction(hiddenButtons[6])\">\n <es-icon [color]=\"hiddenButtons[6].color\"\n [themeColor]=\"hiddenButtons[6].themeColor\"\n [icon]=\"hiddenButtons[6].icon\"></es-icon>\n <span>{{hiddenButtons[6].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 7\"\n mat-menu-item\n [disabled]=\"hiddenButtons[7].disabled === true\"\n (click)=\"handleAction(hiddenButtons[7])\">\n <es-icon [color]=\"hiddenButtons[7].color\"\n [themeColor]=\"hiddenButtons[7].themeColor\"\n [icon]=\"hiddenButtons[7].icon\"></es-icon>\n <span>{{hiddenButtons[7].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 8\"\n mat-menu-item\n [disabled]=\"hiddenButtons[8].disabled === true\"\n (click)=\"handleAction(hiddenButtons[8])\">\n <es-icon [color]=\"hiddenButtons[8].color\"\n [themeColor]=\"hiddenButtons[8].themeColor\"\n [icon]=\"hiddenButtons[8].icon\"></es-icon>\n <span>{{hiddenButtons[8].title}}</span>\n </button>\n <button *ngIf=\"hiddenButtons.length > 9\"\n mat-menu-item\n [disabled]=\"hiddenButtons[9].disabled === true\"\n (click)=\"handleAction(hiddenButtons[9])\">\n <es-icon [color]=\"hiddenButtons[9].color\"\n [themeColor]=\"hiddenButtons[9].themeColor\"\n [icon]=\"hiddenButtons[9].icon\"></es-icon>\n <span>{{hiddenButtons[9].title}}</span>\n </button>\n </ng-container>\n</mat-menu>\n",
282
- changeDetection: core.ChangeDetectionStrategy.OnPush,
283
- styles: [":host{float:right}"]
284
- },] }
285
- ];
286
- /** @nocollapse */
287
- EsButtonsComponent.ctorParameters = function () { return [
288
- { type: router.Router },
289
- { type: dialog$1.EsDialogService },
290
- { type: snackBar.MatSnackBar },
291
- { type: http.HttpService }
292
- ]; };
293
- EsButtonsComponent.propDecorators = {
294
- parentWidth: [{ type: core.Input }],
295
- buttons: [{ type: core.Input }],
296
- forceMenu: [{ type: core.Input }],
297
- buttonClick: [{ type: core.Output }],
298
- reload: [{ type: core.Output }],
299
- dialogCreated: [{ type: core.Output }],
300
- serverResponse: [{ type: core.Output }]
301
- };
302
-
303
- var EsButtonsModule = /** @class */ (function () {
304
- function EsButtonsModule() {
305
- }
306
- return EsButtonsModule;
307
- }());
308
- EsButtonsModule.decorators = [
309
- { type: core.NgModule, args: [{
310
- imports: [
311
- common.CommonModule,
312
- button.MatButtonModule,
313
- tooltip.MatTooltipModule,
314
- menu.MatMenuModule,
315
- snackBar.MatSnackBarModule,
316
- core$1.TranslateModule.forChild(),
317
- icon.EsIconModule,
318
- dialog$1.EsDialogModule,
319
- form.EsFormModule,
320
- ],
321
- declarations: [
322
- EsButtonsComponent,
323
- DialogConfirmComponent,
324
- DialogFormComponent,
325
- ],
326
- exports: [EsButtonsComponent],
327
- entryComponents: [
328
- DialogConfirmComponent,
329
- DialogFormComponent,
330
- ],
331
- },] }
332
- ];
333
-
334
- /*
335
- * Public API Surface of es-buttons
336
- */
337
-
338
- /**
339
- * Generated bundle index. Do not edit.
340
- */
341
-
342
- exports.EsButtonAction = EsButtonAction;
343
- exports.EsButtonsComponent = EsButtonsComponent;
344
- exports.EsButtonsModule = EsButtonsModule;
345
- exports.ɵa = DialogConfirmComponent;
346
- exports.ɵb = DialogFormComponent;
347
-
348
- Object.defineProperty(exports, '__esModule', { value: true });
349
-
350
- })));
351
- //# sourceMappingURL=eurosat-buttons.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eurosat-buttons.umd.js","sources":["../../../projects/buttons/src/lib/model/es-button-action.ts","../../../projects/buttons/src/lib/components/dialog-confirm/dialog-confirm.component.ts","../../../projects/buttons/src/lib/components/dialog-form/dialog-form.component.ts","../../../projects/buttons/src/lib/es-buttons.component.ts","../../../projects/buttons/src/lib/es-buttons.module.ts","../../../projects/buttons/src/public_api.ts","../../../projects/buttons/src/eurosat-buttons.ts"],"sourcesContent":["export class EsButtonAction {\n\n public static ACTION_DIALOG_CONFIRM = 'dialog-confirm';\n public static ACTION_DIALOG_DELETE = 'dialog-delete';\n public static ACTION_DIALOG_FORM = 'dialog-form';\n public static ACTION_CARD_CONTENT_FORM = 'card-content-form';\n public static ACTION_CARD_CONTENT_WIZARD = 'card-content-wizard'; // todo asi zrusit\n public static ACTION_CHANGE_CARD_CONTENT = 'change-card-content'; // mozna zrusit ? je kuli neemitu clicku na button\n public static ACTION_DOWNLOAD = 'download';\n public static ACTION_REQUEST = 'request';\n public static ACTION_ROUTER_NAVIGATE = 'router-navigate';\n public static ACTION_WINDOW_LOCATION = 'open-link';\n}\n","import {Component, EventEmitter, Output} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';\nimport {EsSnackBarPanelClass} from '@eurosat/snackbar';\nimport {EsDialogService} from '@eurosat/dialog';\nimport { DialogResult } from '../dialog-result';\nimport { EsFormResponseMessage, EsFormResponseMessageType } from '@eurosat/form';\n\n\n@Component({\n selector: 'dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss']\n})\nexport class DialogConfirmComponent {\n\n @Output() submit: EventEmitter<any> = new EventEmitter<any>();\n public message: string;\n public url: string;\n activeRequest = false;\n\n constructor(\n public dialogRef: MatDialogRef<DialogConfirmComponent>,\n private snackBar: MatSnackBar,\n private ds: EsDialogService\n ) {\n const data = this.ds.getData();\n this.message = data.message;\n this.url = data.url;\n }\n\n confirm() {\n this.activeRequest = true;\n this.ds.httpPost(this.url, null).subscribe((response: EsFormResponseMessage) => {\n this.activeRequest = false;\n const config = new MatSnackBarConfig();\n config.duration = 2000;\n if (response.type === EsFormResponseMessageType.TYPE_OK) {\n config.panelClass = EsSnackBarPanelClass.SUCCESS;\n this.submit.emit();\n } else {\n config.panelClass = EsSnackBarPanelClass.DANGER;\n }\n this.snackBar.open(response.message, null, config);\n\n const result: DialogResult = {\n clickedYes: true,\n serverResponse: response\n };\n this.dialogRef.close(result);\n });\n }\n\n}\n","import {Component} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {EsForm} from '@eurosat/form';\nimport {EsDialogService} from '@eurosat/dialog';\nimport { DialogResult } from '../dialog-result';\n\n@Component({\n selector: 'dialog-form',\n templateUrl: './dialog-form.component.html',\n styleUrls: ['./dialog-form.component.scss']\n})\nexport class DialogFormComponent {\n\n public formUrl: string;\n public cols = 1;\n public esForm: EsForm;\n public maxFormHeight: number = window.innerHeight - 60;\n\n constructor(\n public dialogRef: MatDialogRef<DialogFormComponent>,\n ds: EsDialogService,\n ) {\n const data = ds.getData();\n this.formUrl = data.url;\n }\n\n submit(value: {[name: string]: any}) {\n\n // sem se to dostane jen pri success ulozeni formu\n const result: DialogResult = {\n clickedYes: true\n };\n this.dialogRef.close(result);\n\n\n\n // pokud bysme chteli form.value\n // this.dialogRef.close(value);\n // console.log('form value v parent', value);\n\n\n }\n\n getWindowHeight() {\n this.maxFormHeight = window.innerHeight - 60;\n }\n\n\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport {Router} from '@angular/router';\nimport {EsButton} from './model/es-button.interface';\nimport {EsButtonAction} from './model/es-button-action';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';\nimport {EsSnackBarPanelClass} from '@eurosat/snackbar';\nimport {HttpService} from '@eurosat/http';\nimport {EsIcon} from '@eurosat/icon';\nimport {DialogConfirmComponent} from './components/dialog-confirm/dialog-confirm.component';\nimport {take} from 'rxjs/internal/operators';\nimport {DialogFormComponent} from './components/dialog-form/dialog-form.component';\nimport {EsDialogService} from '@eurosat/dialog';\nimport {EsDialogConfig} from '@eurosat/dialog';\nimport { DialogResult } from './components/dialog-result';\nimport { EsButtonServerResponse } from './model/es-button-server-response';\nimport { EsFormResponseMessage, EsFormResponseMessageType } from '@eurosat/form';\n\n// todo translates\n\n@Component({\n selector: 'es-buttons',\n templateUrl: './es-buttons.component.html',\n styleUrls: ['./es-buttons.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EsButtonsComponent implements OnChanges {\n\n @Input() parentWidth = 40; // default 40 = 1 button\n @Input() buttons: EsButton[] = []; // normal input\n @Input() forceMenu = false; // pokud chci zobrazit ... menu i pro jeden buttonek, na realtimu pouzito\n\n @Output() buttonClick = new EventEmitter<EsButton>();\n @Output() reload = new EventEmitter<boolean>();\n @Output() dialogCreated = new EventEmitter<MatDialogRef<any>>();\n @Output() serverResponse = new EventEmitter<EsButtonServerResponse>();\n\n menuVisible = false;\n buttonWidth = 40; // todo ViewChild, sirka buttonu ?\n visibleButtons: EsButton[] = [];\n hiddenButtons: EsButton[] = [];\n esIcon = EsIcon;\n _width = 0;\n\n constructor(\n private router: Router,\n private dialog: EsDialogService,\n private snackBar: MatSnackBar,\n private http: HttpService,\n ) { }\n\n showMenu() {\n return this.getHiddenButtons() && this.getHiddenButtons().length > 0 && this.getHiddenButtons().length !== 1;\n }\n\n countVisible() {\n return Math.floor((this._width) / this.buttonWidth) - 1;\n }\n\n getVisibleButtons() {\n if (this.buttons && this.buttons.length > 0) {\n return this.buttons.filter(button => {\n if (this.buttons.indexOf(button) < this.countVisible()\n || (this.getHiddenButtons().length === 1 && !this.forceMenu)) {\n return true;\n }\n });\n }\n }\n\n getHiddenButtons() {\n if (this.buttons && this.buttons.length > 0) {\n return this.buttons.filter(button => {\n if (this.buttons.indexOf(button) >= this.countVisible()) {\n return true;\n }\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange['parentWidth']) {\n if (this.parentWidth > 0) {\n this._width = this.parentWidth;\n this.recalculateButtons();\n }\n }\n\n if (simpleChange['buttons']) {\n if (typeof this.buttons === 'string') {\n this.buttons = JSON.parse(this.buttons);\n }\n this.recalculateButtons();\n }\n }\n\n recalculateButtons() {\n this.menuVisible = this.showMenu();\n this.visibleButtons = this.getVisibleButtons();\n this.hiddenButtons = this.getHiddenButtons();\n }\n\n handleAction(button: EsButton) {\n if (button.action === EsButtonAction.ACTION_DIALOG_CONFIRM) {\n this.openConfirm(button);\n }\n if (button.action === EsButtonAction.ACTION_DIALOG_DELETE) {\n this.openDelete(button);\n }\n if (button.action === EsButtonAction.ACTION_DIALOG_FORM) {\n this.openForm(button);\n }\n if (button.action === EsButtonAction.ACTION_DOWNLOAD) {\n this.http.get(button.url, {responseType: 'blob', observe: 'response'}).subscribe(response => {\n const filename = response.headers.get('Content-Disposition').split('filename=')[1];\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveBlob(response.body, filename);\n } else {\n const link = document.createElement('a');\n link.setAttribute('href', window.URL.createObjectURL(response.body));\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n });\n }\n if (button.action === EsButtonAction.ACTION_REQUEST) {\n this.http.get(button.url).subscribe((response: EsFormResponseMessage) => {\n const config = new MatSnackBarConfig();\n config.duration = 2000;\n if (response.type === EsFormResponseMessageType.TYPE_OK) {\n config.panelClass = EsSnackBarPanelClass.SUCCESS;\n } else {\n config.panelClass = EsSnackBarPanelClass.DANGER;\n }\n this.snackBar.open(response.message, null, config);\n this.reload.emit(true);\n this.serverResponse.emit({button: button, response: response});\n });\n }\n if (button.action === EsButtonAction.ACTION_ROUTER_NAVIGATE) {\n this.router.navigateByUrl(button.url);\n }\n if (button.action === EsButtonAction.ACTION_WINDOW_LOCATION) {\n window.location.href = button.url;\n }\n this.buttonClick.emit(button);\n }\n\n // handleSubMenuAction(button: EsButton) {\n // // todo asi predelat na md2 menu\n // // todo nevim jestli se zpropaguje click kdyz je to zanoreny pres es-card-header\n // this.buttonClick.emit(button);\n // }\n\n openForm(button: EsButton) {\n const config: EsDialogConfig = {\n title: button.title,\n data: {\n url: button.url\n }\n };\n const dialogRef: MatDialogRef<DialogFormComponent> = this.dialog.open(DialogFormComponent, config);\n this.dialogCreated.emit(dialogRef);\n dialogRef.afterClosed().pipe(take(1)).subscribe( (res: DialogResult) => {\n if (res && res.clickedYes) {\n this.reload.emit(true);\n\n if (res.serverResponse) {\n this.serverResponse.emit({button: button, response: res.serverResponse});\n }\n }\n });\n }\n\n openDelete(button: EsButton) {\n this.openConfirm(button);\n }\n\n openConfirm(button: EsButton) {\n const config: EsDialogConfig = {\n title: button.title,\n data: {\n message: button.message,\n url: button.url\n }\n };\n const dialogRef: MatDialogRef<DialogConfirmComponent> = this.dialog.open(DialogConfirmComponent, config);\n this.dialogCreated.emit(dialogRef);\n dialogRef.afterClosed().pipe(take(1)).subscribe( (res: DialogResult) => {\n if (res && res.clickedYes) {\n this.reload.emit(true);\n\n if (res.serverResponse) {\n this.serverResponse.emit({button: button, response: res.serverResponse});\n }\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EsButtonsComponent} from './es-buttons.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {EsIconModule} from '@eurosat/icon';\nimport {EsDialogModule} from '@eurosat/dialog';\nimport {EsFormModule} from '@eurosat/form';\nimport {DialogConfirmComponent} from './components/dialog-confirm/dialog-confirm.component';\nimport {DialogFormComponent} from './components/dialog-form/dialog-form.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatTooltipModule,\n MatMenuModule,\n MatSnackBarModule,\n TranslateModule.forChild(),\n EsIconModule,\n EsDialogModule,\n EsFormModule,\n ],\n declarations: [\n EsButtonsComponent,\n DialogConfirmComponent,\n DialogFormComponent,\n ],\n exports: [EsButtonsComponent],\n entryComponents: [\n DialogConfirmComponent,\n DialogFormComponent,\n ],\n})\nexport class EsButtonsModule { }\n","/*\n * Public API Surface of es-buttons\n */\n\nexport * from './lib/es-buttons.component';\nexport * from './lib/es-buttons.module';\nexport * from './lib/model/es-button.interface';\nexport * from './lib/model/es-button-action';\nexport * from './lib/model/es-button-server-response';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {DialogConfirmComponent as ɵa} from './lib/components/dialog-confirm/dialog-confirm.component';\nexport {DialogFormComponent as ɵb} from './lib/components/dialog-form/dialog-form.component';"],"names":["EventEmitter","MatSnackBarConfig","EsFormResponseMessageType","EsSnackBarPanelClass","Component","MatDialogRef","MatSnackBar","EsDialogService","Output","EsIcon","take","ChangeDetectionStrategy","Router","HttpService","Input","NgModule","CommonModule","MatButtonModule","MatTooltipModule","MatMenuModule","MatSnackBarModule","TranslateModule","EsIconModule","EsDialogModule","EsFormModule"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/router"),require("@angular/material/snack-bar"),require("@eurosat/snackbar"),require("@eurosat/http"),require("@eurosat/icon"),require("@angular/material/dialog"),require("@eurosat/dialog"),require("@eurosat/form"),require("rxjs/internal/operators"),require("@angular/common"),require("@angular/material/button"),require("@angular/material/menu"),require("@angular/material/tooltip"),require("@ngx-translate/core")):"function"==typeof define&&define.amd?define("@eurosat/buttons",["exports","@angular/core","@angular/router","@angular/material/snack-bar","@eurosat/snackbar","@eurosat/http","@eurosat/icon","@angular/material/dialog","@eurosat/dialog","@eurosat/form","rxjs/internal/operators","@angular/common","@angular/material/button","@angular/material/menu","@angular/material/tooltip","@ngx-translate/core"],n):n(((t="undefined"!=typeof globalThis?globalThis:t||self).eurosat=t.eurosat||{},t.eurosat.buttons={}),t.ng.core,t.ng.router,t.ng.material.snackBar,t.snackbar,t.http,t.icon,t.ng.material.dialog,t.dialog$1,t.form,t.rxjs["internal/operators"],t.ng.common,t.ng.material.button,t.ng.material.menu,t.ng.material.tooltip,t.core$1)}(this,(function(t,n,e,o,i,s,l,u,r,a,c,d,h,b,m,p){"use strict";var B=function(){};B.ACTION_DIALOG_CONFIRM="dialog-confirm",B.ACTION_DIALOG_DELETE="dialog-delete",B.ACTION_DIALOG_FORM="dialog-form",B.ACTION_CARD_CONTENT_FORM="card-content-form",B.ACTION_CARD_CONTENT_WIZARD="card-content-wizard",B.ACTION_CHANGE_CARD_CONTENT="change-card-content",B.ACTION_DOWNLOAD="download",B.ACTION_REQUEST="request",B.ACTION_ROUTER_NAVIGATE="router-navigate",B.ACTION_WINDOW_LOCATION="open-link";var g=function(){function t(t,e,o){this.dialogRef=t,this.snackBar=e,this.ds=o,this.submit=new n.EventEmitter,this.activeRequest=!1;var i=this.ds.getData();this.message=i.message,this.url=i.url}return t.prototype.confirm=function(){var t=this;this.activeRequest=!0,this.ds.httpPost(this.url,null).subscribe((function(n){t.activeRequest=!1;var e=new o.MatSnackBarConfig;e.duration=2e3,n.type===a.EsFormResponseMessageType.TYPE_OK?(e.panelClass=i.EsSnackBarPanelClass.SUCCESS,t.submit.emit()):e.panelClass=i.EsSnackBarPanelClass.DANGER,t.snackBar.open(n.message,null,e);var s={clickedYes:!0,serverResponse:n};t.dialogRef.close(s)}))},t}();g.decorators=[{type:n.Component,args:[{selector:"dialog-confirm",template:'<p>{{message}}</p>\n<div class="button-container">\n <mat-spinner *ngIf="activeRequest" [diameter]="36"></mat-spinner>\n <ng-container *ngIf="!activeRequest">\n <button type="button"\n color="accent"\n mat-raised-button\n (click)="confirm()"> {{\'an.common.ano\' | translate}}\n </button>\n <button type="button"\n color="accent"\n mat-raised-button\n (click)="dialogRef.close({clickedYes: false})">{{\'an.common.ne\' | translate}}\n </button>\n </ng-container>\n</div>\n',styles:["button:not(:last-child){margin-right:20px}.button-container{min-height:36px;min-width:196px;position:relative;text-align:center}.button-container mat-spinner{position:absolute!important;left:calc(50% - 18px);top:calc(50% - 18px)}"]}]}],g.ctorParameters=function(){return[{type:u.MatDialogRef},{type:o.MatSnackBar},{type:r.EsDialogService}]},g.propDecorators={submit:[{type:n.Output}]};var v=function(){function t(t,n){this.dialogRef=t,this.cols=1,this.maxFormHeight=window.innerHeight-60;var e=n.getData();this.formUrl=e.url}return t.prototype.submit=function(t){this.dialogRef.close({clickedYes:!0})},t.prototype.getWindowHeight=function(){this.maxFormHeight=window.innerHeight-60},t}();v.decorators=[{type:n.Component,args:[{selector:"dialog-form",template:'<div class="es-form-container" [style.max-height]="(maxFormHeight - 106) + \'px\'">\n <es-form [formUrl]="formUrl"\n [dynamicForm]="esForm"\n [cols]="cols"\n (submit)="submit($event)">\n </es-form>\n</div>\n',styles:[".es-form-container{overflow:auto;margin-top:24px;position:relative}"]}]}],v.ctorParameters=function(){return[{type:u.MatDialogRef},{type:r.EsDialogService}]};var f=function(){function t(t,e,o,i){this.router=t,this.dialog=e,this.snackBar=o,this.http=i,this.parentWidth=40,this.buttons=[],this.forceMenu=!1,this.buttonClick=new n.EventEmitter,this.reload=new n.EventEmitter,this.dialogCreated=new n.EventEmitter,this.serverResponse=new n.EventEmitter,this.menuVisible=!1,this.buttonWidth=40,this.visibleButtons=[],this.hiddenButtons=[],this.esIcon=l.EsIcon,this._width=0}return t.prototype.showMenu=function(){return this.getHiddenButtons()&&this.getHiddenButtons().length>0&&1!==this.getHiddenButtons().length},t.prototype.countVisible=function(){return Math.floor(this._width/this.buttonWidth)-1},t.prototype.getVisibleButtons=function(){var t=this;if(this.buttons&&this.buttons.length>0)return this.buttons.filter((function(n){if(t.buttons.indexOf(n)<t.countVisible()||1===t.getHiddenButtons().length&&!t.forceMenu)return!0}))},t.prototype.getHiddenButtons=function(){var t=this;if(this.buttons&&this.buttons.length>0)return this.buttons.filter((function(n){if(t.buttons.indexOf(n)>=t.countVisible())return!0}))},t.prototype.ngOnChanges=function(t){t.parentWidth&&this.parentWidth>0&&(this._width=this.parentWidth,this.recalculateButtons()),t.buttons&&("string"==typeof this.buttons&&(this.buttons=JSON.parse(this.buttons)),this.recalculateButtons())},t.prototype.recalculateButtons=function(){this.menuVisible=this.showMenu(),this.visibleButtons=this.getVisibleButtons(),this.hiddenButtons=this.getHiddenButtons()},t.prototype.handleAction=function(t){var n=this;t.action===B.ACTION_DIALOG_CONFIRM&&this.openConfirm(t),t.action===B.ACTION_DIALOG_DELETE&&this.openDelete(t),t.action===B.ACTION_DIALOG_FORM&&this.openForm(t),t.action===B.ACTION_DOWNLOAD&&this.http.get(t.url,{responseType:"blob",observe:"response"}).subscribe((function(t){var n=t.headers.get("Content-Disposition").split("filename=")[1];if(window.navigator&&window.navigator.msSaveOrOpenBlob)window.navigator.msSaveBlob(t.body,n);else{var e=document.createElement("a");e.setAttribute("href",window.URL.createObjectURL(t.body)),e.setAttribute("download",n),e.style.visibility="hidden",document.body.appendChild(e),e.click(),document.body.removeChild(e)}})),t.action===B.ACTION_REQUEST&&this.http.get(t.url).subscribe((function(e){var s=new o.MatSnackBarConfig;s.duration=2e3,e.type===a.EsFormResponseMessageType.TYPE_OK?s.panelClass=i.EsSnackBarPanelClass.SUCCESS:s.panelClass=i.EsSnackBarPanelClass.DANGER,n.snackBar.open(e.message,null,s),n.reload.emit(!0),n.serverResponse.emit({button:t,response:e})})),t.action===B.ACTION_ROUTER_NAVIGATE&&this.router.navigateByUrl(t.url),t.action===B.ACTION_WINDOW_LOCATION&&(window.location.href=t.url),this.buttonClick.emit(t)},t.prototype.openForm=function(t){var n=this,e={title:t.title,data:{url:t.url}},o=this.dialog.open(v,e);this.dialogCreated.emit(o),o.afterClosed().pipe(c.take(1)).subscribe((function(e){e&&e.clickedYes&&(n.reload.emit(!0),e.serverResponse&&n.serverResponse.emit({button:t,response:e.serverResponse}))}))},t.prototype.openDelete=function(t){this.openConfirm(t)},t.prototype.openConfirm=function(t){var n=this,e={title:t.title,data:{message:t.message,url:t.url}},o=this.dialog.open(g,e);this.dialogCreated.emit(o),o.afterClosed().pipe(c.take(1)).subscribe((function(e){e&&e.clickedYes&&(n.reload.emit(!0),e.serverResponse&&n.serverResponse.emit({button:t,response:e.serverResponse}))}))},t}();f.decorators=[{type:n.Component,args:[{selector:"es-buttons",template:'<ng-container *ngIf="visibleButtons && visibleButtons.length > 0">\n <button *ngIf="visibleButtons.length > 0"\n mat-icon-button\n [disabled]="visibleButtons[0].disabled === true"\n [matTooltip]="visibleButtons[0].tooltip? visibleButtons[0].tooltip : visibleButtons[0].title"\n (click)="handleAction(visibleButtons[0])">\n <es-icon [color]="visibleButtons[0].color"\n [themeColor]="visibleButtons[0].themeColor"\n [icon]="visibleButtons[0].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 1"\n mat-icon-button\n [disabled]="visibleButtons[1].disabled === true"\n [matTooltip]="visibleButtons[1].tooltip? visibleButtons[1].tooltip : visibleButtons[1].title"\n (click)="handleAction(visibleButtons[1])">\n <es-icon [color]="visibleButtons[1].color"\n [themeColor]="visibleButtons[1].themeColor"\n [icon]="visibleButtons[1].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 2"\n mat-icon-button\n [disabled]="visibleButtons[2].disabled === true"\n [matTooltip]="visibleButtons[2].tooltip? visibleButtons[2].tooltip : visibleButtons[2].title"\n (click)="handleAction(visibleButtons[2])">\n <es-icon [color]="visibleButtons[2].color"\n [themeColor]="visibleButtons[2].themeColor"\n [icon]="visibleButtons[2].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 3"\n mat-icon-button\n [disabled]="visibleButtons[3].disabled === true"\n [matTooltip]="visibleButtons[3].tooltip? visibleButtons[3].tooltip : visibleButtons[3].title"\n (click)="handleAction(visibleButtons[3])">\n <es-icon [color]="visibleButtons[3].color"\n [themeColor]="visibleButtons[3].themeColor"\n [icon]="visibleButtons[3].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 4"\n mat-icon-button\n [disabled]="visibleButtons[4].disabled === true"\n [matTooltip]="visibleButtons[4].tooltip? visibleButtons[4].tooltip : visibleButtons[4].title"\n (click)="handleAction(visibleButtons[4])">\n <es-icon [color]="visibleButtons[4].color"\n [themeColor]="visibleButtons[4].themeColor"\n [icon]="visibleButtons[4].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 5"\n mat-icon-button\n [disabled]="visibleButtons[5].disabled === true"\n [matTooltip]="visibleButtons[5].tooltip? visibleButtons[5].tooltip : visibleButtons[5].title"\n (click)="handleAction(visibleButtons[5])">\n <es-icon [color]="visibleButtons[5].color"\n [themeColor]="visibleButtons[5].themeColor"\n [icon]="visibleButtons[5].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 6"\n mat-icon-button\n [disabled]="visibleButtons[6].disabled === true"\n [matTooltip]="visibleButtons[6].tooltip? visibleButtons[6].tooltip : visibleButtons[6].title"\n (click)="handleAction(visibleButtons[6])">\n <es-icon [color]="visibleButtons[6].color"\n [themeColor]="visibleButtons[6].themeColor"\n [icon]="visibleButtons[6].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 7"\n mat-icon-button\n [disabled]="visibleButtons[7].disabled === true"\n [matTooltip]="visibleButtons[7].tooltip? visibleButtons[7].tooltip : visibleButtons[7].title"\n (click)="handleAction(visibleButtons[7])">\n <es-icon [color]="visibleButtons[7].color"\n [themeColor]="visibleButtons[7].themeColor"\n [icon]="visibleButtons[7].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 8"\n mat-icon-button\n [disabled]="visibleButtons[8].disabled === true"\n [matTooltip]="visibleButtons[8].tooltip? visibleButtons[8].tooltip : visibleButtons[8].title"\n (click)="handleAction(visibleButtons[8])">\n <es-icon [color]="visibleButtons[8].color"\n [themeColor]="visibleButtons[8].themeColor"\n [icon]="visibleButtons[8].icon"></es-icon>\n </button>\n <button *ngIf="visibleButtons.length > 9"\n mat-icon-button\n [disabled]="visibleButtons[9].disabled === true"\n [matTooltip]="visibleButtons[9].tooltip? visibleButtons[9].tooltip : visibleButtons[9].title"\n (click)="handleAction(visibleButtons[9])">\n <es-icon [color]="visibleButtons[9].color"\n [themeColor]="visibleButtons[9].themeColor"\n [icon]="visibleButtons[9].icon"></es-icon>\n </button>\n</ng-container>\n\n\n<button *ngIf="menuVisible || forceMenu"\n mat-icon-button\n [matMenuTriggerFor]="menu"\n [matTooltip]="\'an.more\' | translate">\n <es-icon [icon]="esIcon.MORE_VERT"></es-icon>\n</button>\n\n\n<mat-menu #menu="matMenu"\n [overlapTrigger]="false"\n yPosition="below"\n xPosition="before">\n <ng-container *ngIf="hiddenButtons && hiddenButtons.length > 0">\n <button *ngIf="hiddenButtons.length > 0"\n mat-menu-item\n [disabled]="hiddenButtons[0].disabled === true"\n (click)="handleAction(hiddenButtons[0])">\n <es-icon [color]="hiddenButtons[0].color"\n [themeColor]="hiddenButtons[0].themeColor"\n [icon]="hiddenButtons[0].icon"></es-icon>\n <span>{{hiddenButtons[0].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 1"\n mat-menu-item\n [disabled]="hiddenButtons[1].disabled === true"\n (click)="handleAction(hiddenButtons[1])">\n <es-icon [color]="hiddenButtons[1].color"\n [themeColor]="hiddenButtons[1].themeColor"\n [icon]="hiddenButtons[1].icon"></es-icon>\n <span>{{hiddenButtons[1].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 2"\n mat-menu-item\n [disabled]="hiddenButtons[2].disabled === true"\n (click)="handleAction(hiddenButtons[2])">\n <es-icon [color]="hiddenButtons[2].color"\n [themeColor]="hiddenButtons[2].themeColor"\n [icon]="hiddenButtons[2].icon"></es-icon>\n <span>{{hiddenButtons[2].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 3"\n mat-menu-item\n [disabled]="hiddenButtons[3].disabled === true"\n (click)="handleAction(hiddenButtons[3])">\n <es-icon [color]="hiddenButtons[3].color"\n [themeColor]="hiddenButtons[3].themeColor"\n [icon]="hiddenButtons[3].icon"></es-icon>\n <span>{{hiddenButtons[3].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 4"\n mat-menu-item\n [disabled]="hiddenButtons[4].disabled === true"\n (click)="handleAction(hiddenButtons[4])">\n <es-icon [color]="hiddenButtons[4].color"\n [themeColor]="hiddenButtons[4].themeColor"\n [icon]="hiddenButtons[4].icon"></es-icon>\n <span>{{hiddenButtons[4].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 5"\n mat-menu-item\n [disabled]="hiddenButtons[5].disabled === true"\n (click)="handleAction(hiddenButtons[5])">\n <es-icon [color]="hiddenButtons[5].color"\n [themeColor]="hiddenButtons[5].themeColor"\n [icon]="hiddenButtons[5].icon"></es-icon>\n <span>{{hiddenButtons[5].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 6"\n mat-menu-item\n [disabled]="hiddenButtons[6].disabled === true"\n (click)="handleAction(hiddenButtons[6])">\n <es-icon [color]="hiddenButtons[6].color"\n [themeColor]="hiddenButtons[6].themeColor"\n [icon]="hiddenButtons[6].icon"></es-icon>\n <span>{{hiddenButtons[6].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 7"\n mat-menu-item\n [disabled]="hiddenButtons[7].disabled === true"\n (click)="handleAction(hiddenButtons[7])">\n <es-icon [color]="hiddenButtons[7].color"\n [themeColor]="hiddenButtons[7].themeColor"\n [icon]="hiddenButtons[7].icon"></es-icon>\n <span>{{hiddenButtons[7].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 8"\n mat-menu-item\n [disabled]="hiddenButtons[8].disabled === true"\n (click)="handleAction(hiddenButtons[8])">\n <es-icon [color]="hiddenButtons[8].color"\n [themeColor]="hiddenButtons[8].themeColor"\n [icon]="hiddenButtons[8].icon"></es-icon>\n <span>{{hiddenButtons[8].title}}</span>\n </button>\n <button *ngIf="hiddenButtons.length > 9"\n mat-menu-item\n [disabled]="hiddenButtons[9].disabled === true"\n (click)="handleAction(hiddenButtons[9])">\n <es-icon [color]="hiddenButtons[9].color"\n [themeColor]="hiddenButtons[9].themeColor"\n [icon]="hiddenButtons[9].icon"></es-icon>\n <span>{{hiddenButtons[9].title}}</span>\n </button>\n </ng-container>\n</mat-menu>\n',changeDetection:n.ChangeDetectionStrategy.OnPush,styles:[":host{float:right}"]}]}],f.ctorParameters=function(){return[{type:e.Router},{type:r.EsDialogService},{type:o.MatSnackBar},{type:s.HttpService}]},f.propDecorators={parentWidth:[{type:n.Input}],buttons:[{type:n.Input}],forceMenu:[{type:n.Input}],buttonClick:[{type:n.Output}],reload:[{type:n.Output}],dialogCreated:[{type:n.Output}],serverResponse:[{type:n.Output}]};var C=function(){};C.decorators=[{type:n.NgModule,args:[{imports:[d.CommonModule,h.MatButtonModule,m.MatTooltipModule,b.MatMenuModule,o.MatSnackBarModule,p.TranslateModule.forChild(),l.EsIconModule,r.EsDialogModule,a.EsFormModule],declarations:[f,g,v],exports:[f],entryComponents:[g,v]}]}],t.EsButtonAction=B,t.EsButtonsComponent=f,t.EsButtonsModule=C,t.ɵa=g,t.ɵb=v,Object.defineProperty(t,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=eurosat-buttons.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../projects/buttons/src/lib/model/es-button-action.ts","../../../projects/buttons/src/lib/components/dialog-confirm/dialog-confirm.component.ts","../../../projects/buttons/src/lib/components/dialog-form/dialog-form.component.ts","../../../projects/buttons/src/lib/es-buttons.component.ts","../../../projects/buttons/src/lib/es-buttons.module.ts"],"names":["EsButtonAction","ACTION_DIALOG_CONFIRM","ACTION_DIALOG_DELETE","ACTION_DIALOG_FORM","ACTION_CARD_CONTENT_FORM","ACTION_CARD_CONTENT_WIZARD","ACTION_CHANGE_CARD_CONTENT","ACTION_DOWNLOAD","ACTION_REQUEST","ACTION_ROUTER_NAVIGATE","ACTION_WINDOW_LOCATION","DialogConfirmComponent","dialogRef","snackBar","ds","this","submit","EventEmitter","activeRequest","data","getData","message","url","prototype","confirm","_this","httpPost","subscribe","response","config","MatSnackBarConfig","duration","type","EsFormResponseMessageType","TYPE_OK","panelClass","EsSnackBarPanelClass","SUCCESS","emit","DANGER","open","result","clickedYes","serverResponse","close","Component","args","selector","template","MatDialogRef","MatSnackBar","EsDialogService","Output","DialogFormComponent","cols","maxFormHeight","window","innerHeight","formUrl","value","getWindowHeight","EsButtonsComponent","router","dialog","http","parentWidth","buttons","forceMenu","buttonClick","reload","dialogCreated","menuVisible","buttonWidth","visibleButtons","hiddenButtons","esIcon","EsIcon","_width","showMenu","getHiddenButtons","length","countVisible","Math","floor","getVisibleButtons","filter","button","indexOf","ngOnChanges","simpleChange","recalculateButtons","JSON","parse","handleAction","action","openConfirm","openDelete","openForm","get","responseType","observe","filename","headers","split","navigator","msSaveOrOpenBlob","msSaveBlob","body","link","document","createElement","setAttribute","URL","createObjectURL","style","visibility","appendChild","click","removeChild","navigateByUrl","location","href","title","afterClosed","pipe","take","res","changeDetection","ChangeDetectionStrategy","OnPush","Router","HttpService","Input","NgModule","imports","CommonModule","MatButtonModule","MatTooltipModule","MatMenuModule","MatSnackBarModule","TranslateModule","forChild","EsIconModule","EsDialogModule","EsFormModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["export class EsButtonAction {\n\n public static ACTION_DIALOG_CONFIRM = 'dialog-confirm';\n public static ACTION_DIALOG_DELETE = 'dialog-delete';\n public static ACTION_DIALOG_FORM = 'dialog-form';\n public static ACTION_CARD_CONTENT_FORM = 'card-content-form';\n public static ACTION_CARD_CONTENT_WIZARD = 'card-content-wizard'; // todo asi zrusit\n public static ACTION_CHANGE_CARD_CONTENT = 'change-card-content'; // mozna zrusit ? je kuli neemitu clicku na button\n public static ACTION_DOWNLOAD = 'download';\n public static ACTION_REQUEST = 'request';\n public static ACTION_ROUTER_NAVIGATE = 'router-navigate';\n public static ACTION_WINDOW_LOCATION = 'open-link';\n}\n","import {Component, EventEmitter, Output} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';\nimport {EsSnackBarPanelClass} from '@eurosat/snackbar';\nimport {EsDialogService} from '@eurosat/dialog';\nimport { DialogResult } from '../dialog-result';\nimport { EsFormResponseMessage, EsFormResponseMessageType } from '@eurosat/form';\n\n\n@Component({\n selector: 'dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss']\n})\nexport class DialogConfirmComponent {\n\n @Output() submit: EventEmitter<any> = new EventEmitter<any>();\n public message: string;\n public url: string;\n activeRequest = false;\n\n constructor(\n public dialogRef: MatDialogRef<DialogConfirmComponent>,\n private snackBar: MatSnackBar,\n private ds: EsDialogService\n ) {\n const data = this.ds.getData();\n this.message = data.message;\n this.url = data.url;\n }\n\n confirm() {\n this.activeRequest = true;\n this.ds.httpPost(this.url, null).subscribe((response: EsFormResponseMessage) => {\n this.activeRequest = false;\n const config = new MatSnackBarConfig();\n config.duration = 2000;\n if (response.type === EsFormResponseMessageType.TYPE_OK) {\n config.panelClass = EsSnackBarPanelClass.SUCCESS;\n this.submit.emit();\n } else {\n config.panelClass = EsSnackBarPanelClass.DANGER;\n }\n this.snackBar.open(response.message, null, config);\n\n const result: DialogResult = {\n clickedYes: true,\n serverResponse: response\n };\n this.dialogRef.close(result);\n });\n }\n\n}\n","import {Component} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {EsForm} from '@eurosat/form';\nimport {EsDialogService} from '@eurosat/dialog';\nimport { DialogResult } from '../dialog-result';\n\n@Component({\n selector: 'dialog-form',\n templateUrl: './dialog-form.component.html',\n styleUrls: ['./dialog-form.component.scss']\n})\nexport class DialogFormComponent {\n\n public formUrl: string;\n public cols = 1;\n public esForm: EsForm;\n public maxFormHeight: number = window.innerHeight - 60;\n\n constructor(\n public dialogRef: MatDialogRef<DialogFormComponent>,\n ds: EsDialogService,\n ) {\n const data = ds.getData();\n this.formUrl = data.url;\n }\n\n submit(value: {[name: string]: any}) {\n\n // sem se to dostane jen pri success ulozeni formu\n const result: DialogResult = {\n clickedYes: true\n };\n this.dialogRef.close(result);\n\n\n\n // pokud bysme chteli form.value\n // this.dialogRef.close(value);\n // console.log('form value v parent', value);\n\n\n }\n\n getWindowHeight() {\n this.maxFormHeight = window.innerHeight - 60;\n }\n\n\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport {Router} from '@angular/router';\nimport {EsButton} from './model/es-button.interface';\nimport {EsButtonAction} from './model/es-button-action';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {MatSnackBar, MatSnackBarConfig} from '@angular/material/snack-bar';\nimport {EsSnackBarPanelClass} from '@eurosat/snackbar';\nimport {HttpService} from '@eurosat/http';\nimport {EsIcon} from '@eurosat/icon';\nimport {DialogConfirmComponent} from './components/dialog-confirm/dialog-confirm.component';\nimport {take} from 'rxjs/internal/operators';\nimport {DialogFormComponent} from './components/dialog-form/dialog-form.component';\nimport {EsDialogService} from '@eurosat/dialog';\nimport {EsDialogConfig} from '@eurosat/dialog';\nimport { DialogResult } from './components/dialog-result';\nimport { EsButtonServerResponse } from './model/es-button-server-response';\nimport { EsFormResponseMessage, EsFormResponseMessageType } from '@eurosat/form';\n\n// todo translates\n\n@Component({\n selector: 'es-buttons',\n templateUrl: './es-buttons.component.html',\n styleUrls: ['./es-buttons.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EsButtonsComponent implements OnChanges {\n\n @Input() parentWidth = 40; // default 40 = 1 button\n @Input() buttons: EsButton[] = []; // normal input\n @Input() forceMenu = false; // pokud chci zobrazit ... menu i pro jeden buttonek, na realtimu pouzito\n\n @Output() buttonClick = new EventEmitter<EsButton>();\n @Output() reload = new EventEmitter<boolean>();\n @Output() dialogCreated = new EventEmitter<MatDialogRef<any>>();\n @Output() serverResponse = new EventEmitter<EsButtonServerResponse>();\n\n menuVisible = false;\n buttonWidth = 40; // todo ViewChild, sirka buttonu ?\n visibleButtons: EsButton[] = [];\n hiddenButtons: EsButton[] = [];\n esIcon = EsIcon;\n _width = 0;\n\n constructor(\n private router: Router,\n private dialog: EsDialogService,\n private snackBar: MatSnackBar,\n private http: HttpService,\n ) { }\n\n showMenu() {\n return this.getHiddenButtons() && this.getHiddenButtons().length > 0 && this.getHiddenButtons().length !== 1;\n }\n\n countVisible() {\n return Math.floor((this._width) / this.buttonWidth) - 1;\n }\n\n getVisibleButtons() {\n if (this.buttons && this.buttons.length > 0) {\n return this.buttons.filter(button => {\n if (this.buttons.indexOf(button) < this.countVisible()\n || (this.getHiddenButtons().length === 1 && !this.forceMenu)) {\n return true;\n }\n });\n }\n }\n\n getHiddenButtons() {\n if (this.buttons && this.buttons.length > 0) {\n return this.buttons.filter(button => {\n if (this.buttons.indexOf(button) >= this.countVisible()) {\n return true;\n }\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange['parentWidth']) {\n if (this.parentWidth > 0) {\n this._width = this.parentWidth;\n this.recalculateButtons();\n }\n }\n\n if (simpleChange['buttons']) {\n if (typeof this.buttons === 'string') {\n this.buttons = JSON.parse(this.buttons);\n }\n this.recalculateButtons();\n }\n }\n\n recalculateButtons() {\n this.menuVisible = this.showMenu();\n this.visibleButtons = this.getVisibleButtons();\n this.hiddenButtons = this.getHiddenButtons();\n }\n\n handleAction(button: EsButton) {\n if (button.action === EsButtonAction.ACTION_DIALOG_CONFIRM) {\n this.openConfirm(button);\n }\n if (button.action === EsButtonAction.ACTION_DIALOG_DELETE) {\n this.openDelete(button);\n }\n if (button.action === EsButtonAction.ACTION_DIALOG_FORM) {\n this.openForm(button);\n }\n if (button.action === EsButtonAction.ACTION_DOWNLOAD) {\n this.http.get(button.url, {responseType: 'blob', observe: 'response'}).subscribe(response => {\n const filename = response.headers.get('Content-Disposition').split('filename=')[1];\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveBlob(response.body, filename);\n } else {\n const link = document.createElement('a');\n link.setAttribute('href', window.URL.createObjectURL(response.body));\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n });\n }\n if (button.action === EsButtonAction.ACTION_REQUEST) {\n this.http.get(button.url).subscribe((response: EsFormResponseMessage) => {\n const config = new MatSnackBarConfig();\n config.duration = 2000;\n if (response.type === EsFormResponseMessageType.TYPE_OK) {\n config.panelClass = EsSnackBarPanelClass.SUCCESS;\n } else {\n config.panelClass = EsSnackBarPanelClass.DANGER;\n }\n this.snackBar.open(response.message, null, config);\n this.reload.emit(true);\n this.serverResponse.emit({button: button, response: response});\n });\n }\n if (button.action === EsButtonAction.ACTION_ROUTER_NAVIGATE) {\n this.router.navigateByUrl(button.url);\n }\n if (button.action === EsButtonAction.ACTION_WINDOW_LOCATION) {\n window.location.href = button.url;\n }\n this.buttonClick.emit(button);\n }\n\n // handleSubMenuAction(button: EsButton) {\n // // todo asi predelat na md2 menu\n // // todo nevim jestli se zpropaguje click kdyz je to zanoreny pres es-card-header\n // this.buttonClick.emit(button);\n // }\n\n openForm(button: EsButton) {\n const config: EsDialogConfig = {\n title: button.title,\n data: {\n url: button.url\n }\n };\n const dialogRef: MatDialogRef<DialogFormComponent> = this.dialog.open(DialogFormComponent, config);\n this.dialogCreated.emit(dialogRef);\n dialogRef.afterClosed().pipe(take(1)).subscribe( (res: DialogResult) => {\n if (res && res.clickedYes) {\n this.reload.emit(true);\n\n if (res.serverResponse) {\n this.serverResponse.emit({button: button, response: res.serverResponse});\n }\n }\n });\n }\n\n openDelete(button: EsButton) {\n this.openConfirm(button);\n }\n\n openConfirm(button: EsButton) {\n const config: EsDialogConfig = {\n title: button.title,\n data: {\n message: button.message,\n url: button.url\n }\n };\n const dialogRef: MatDialogRef<DialogConfirmComponent> = this.dialog.open(DialogConfirmComponent, config);\n this.dialogCreated.emit(dialogRef);\n dialogRef.afterClosed().pipe(take(1)).subscribe( (res: DialogResult) => {\n if (res && res.clickedYes) {\n this.reload.emit(true);\n\n if (res.serverResponse) {\n this.serverResponse.emit({button: button, response: res.serverResponse});\n }\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EsButtonsComponent} from './es-buttons.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {EsIconModule} from '@eurosat/icon';\nimport {EsDialogModule} from '@eurosat/dialog';\nimport {EsFormModule} from '@eurosat/form';\nimport {DialogConfirmComponent} from './components/dialog-confirm/dialog-confirm.component';\nimport {DialogFormComponent} from './components/dialog-form/dialog-form.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatTooltipModule,\n MatMenuModule,\n MatSnackBarModule,\n TranslateModule.forChild(),\n EsIconModule,\n EsDialogModule,\n EsFormModule,\n ],\n declarations: [\n EsButtonsComponent,\n DialogConfirmComponent,\n DialogFormComponent,\n ],\n exports: [EsButtonsComponent],\n entryComponents: [\n DialogConfirmComponent,\n DialogFormComponent,\n ],\n})\nexport class EsButtonsModule { }\n"]}
@@ -1,7 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- export { DialogConfirmComponent as ɵa } from './lib/components/dialog-confirm/dialog-confirm.component';
6
- export { DialogFormComponent as ɵb } from './lib/components/dialog-form/dialog-form.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVyb3NhdC1idXR0b25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYnV0dG9ucy9zcmMvZXVyb3NhdC1idXR0b25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtEaWFsb2dDb25maXJtQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaWFsb2ctY29uZmlybS9kaWFsb2ctY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0IHtEaWFsb2dGb3JtQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaWFsb2ctZm9ybS9kaWFsb2ctZm9ybS5jb21wb25lbnQnOyJdfQ==
@@ -1,56 +0,0 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- import { MatDialogRef } from '@angular/material/dialog';
3
- import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
4
- import { EsSnackBarPanelClass } from '@eurosat/snackbar';
5
- import { EsDialogService } from '@eurosat/dialog';
6
- import { EsFormResponseMessageType } from '@eurosat/form';
7
- export class DialogConfirmComponent {
8
- constructor(dialogRef, snackBar, ds) {
9
- this.dialogRef = dialogRef;
10
- this.snackBar = snackBar;
11
- this.ds = ds;
12
- this.submit = new EventEmitter();
13
- this.activeRequest = false;
14
- const data = this.ds.getData();
15
- this.message = data.message;
16
- this.url = data.url;
17
- }
18
- confirm() {
19
- this.activeRequest = true;
20
- this.ds.httpPost(this.url, null).subscribe((response) => {
21
- this.activeRequest = false;
22
- const config = new MatSnackBarConfig();
23
- config.duration = 2000;
24
- if (response.type === EsFormResponseMessageType.TYPE_OK) {
25
- config.panelClass = EsSnackBarPanelClass.SUCCESS;
26
- this.submit.emit();
27
- }
28
- else {
29
- config.panelClass = EsSnackBarPanelClass.DANGER;
30
- }
31
- this.snackBar.open(response.message, null, config);
32
- const result = {
33
- clickedYes: true,
34
- serverResponse: response
35
- };
36
- this.dialogRef.close(result);
37
- });
38
- }
39
- }
40
- DialogConfirmComponent.decorators = [
41
- { type: Component, args: [{
42
- selector: 'dialog-confirm',
43
- template: "<p>{{message}}</p>\n<div class=\"button-container\">\n <mat-spinner *ngIf=\"activeRequest\" [diameter]=\"36\"></mat-spinner>\n <ng-container *ngIf=\"!activeRequest\">\n <button type=\"button\"\n color=\"accent\"\n mat-raised-button\n (click)=\"confirm()\"> {{'an.common.ano' | translate}}\n </button>\n <button type=\"button\"\n color=\"accent\"\n mat-raised-button\n (click)=\"dialogRef.close({clickedYes: false})\">{{'an.common.ne' | translate}}\n </button>\n </ng-container>\n</div>\n",
44
- styles: ["button:not(:last-child){margin-right:20px}.button-container{min-height:36px;min-width:196px;position:relative;text-align:center}.button-container mat-spinner{position:absolute!important;left:calc(50% - 18px);top:calc(50% - 18px)}"]
45
- },] }
46
- ];
47
- /** @nocollapse */
48
- DialogConfirmComponent.ctorParameters = () => [
49
- { type: MatDialogRef },
50
- { type: MatSnackBar },
51
- { type: EsDialogService }
52
- ];
53
- DialogConfirmComponent.propDecorators = {
54
- submit: [{ type: Output }]
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnV0dG9ucy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nLWNvbmZpcm0vZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQXlCLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWpGLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFDVyxTQUErQyxFQUM5QyxRQUFxQixFQUNyQixFQUFtQjtRQUZwQixjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUM5QyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLE9BQUUsR0FBRixFQUFFLENBQWlCO1FBUnJCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUc5RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU9sQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQStCLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUFDLE9BQU8sRUFBRTtnQkFDckQsTUFBTSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7YUFDbkQ7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVuRCxNQUFNLE1BQU0sR0FBaUI7Z0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixjQUFjLEVBQUUsUUFBUTthQUMzQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUExQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLGtuQkFBOEM7O2FBRWpEOzs7O1lBWk8sWUFBWTtZQUNaLFdBQVc7WUFFWCxlQUFlOzs7cUJBWWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge01hdFNuYWNrQmFyLCBNYXRTbmFja0JhckNvbmZpZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7RXNTbmFja0JhclBhbmVsQ2xhc3N9IGZyb20gJ0BldXJvc2F0L3NuYWNrYmFyJztcbmltcG9ydCB7RXNEaWFsb2dTZXJ2aWNlfSBmcm9tICdAZXVyb3NhdC9kaWFsb2cnO1xuaW1wb3J0IHsgRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZGlhbG9nLXJlc3VsdCc7XG5pbXBvcnQgeyBFc0Zvcm1SZXNwb25zZU1lc3NhZ2UsIEVzRm9ybVJlc3BvbnNlTWVzc2FnZVR5cGUgfSBmcm9tICdAZXVyb3NhdC9mb3JtJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RpYWxvZy1jb25maXJtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RpYWxvZy1jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29uZmlybUNvbXBvbmVudCB7XG5cbiAgICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmc7XG4gICAgcHVibGljIHVybDogc3RyaW5nO1xuICAgIGFjdGl2ZVJlcXVlc3QgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGlhbG9nQ29uZmlybUNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgICAgICBwcml2YXRlIGRzOiBFc0RpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZHMuZ2V0RGF0YSgpO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBkYXRhLm1lc3NhZ2U7XG4gICAgICAgIHRoaXMudXJsID0gZGF0YS51cmw7XG4gICAgfVxuXG4gICAgY29uZmlybSgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kcy5odHRwUG9zdCh0aGlzLnVybCwgbnVsbCkuc3Vic2NyaWJlKChyZXNwb25zZTogRXNGb3JtUmVzcG9uc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVJlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBNYXRTbmFja0JhckNvbmZpZygpO1xuICAgICAgICAgICAgY29uZmlnLmR1cmF0aW9uID0gMjAwMDtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID09PSBFc0Zvcm1SZXNwb25zZU1lc3NhZ2VUeXBlLlRZUEVfT0spIHtcbiAgICAgICAgICAgICAgICBjb25maWcucGFuZWxDbGFzcyA9IEVzU25hY2tCYXJQYW5lbENsYXNzLlNVQ0NFU1M7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25maWcucGFuZWxDbGFzcyA9IEVzU25hY2tCYXJQYW5lbENsYXNzLkRBTkdFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXNwb25zZS5tZXNzYWdlLCBudWxsLCBjb25maWcpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IERpYWxvZ1Jlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICBjbGlja2VkWWVzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlOiByZXNwb25zZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19