@apipass/messages 0.2.16 → 1.0.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 (35) hide show
  1. package/README.md +33 -33
  2. package/assets/css/buttons.scss +118 -118
  3. package/assets/css/colors.scss +34 -34
  4. package/assets/css/fonts.scss +24 -24
  5. package/assets/css/inputs.scss +197 -197
  6. package/assets/css/pt_sans.scss +143 -143
  7. package/assets/css/spacing.scss +28 -28
  8. package/assets/css/texts.scss +18 -18
  9. package/{esm2015/apipass-messages.js → esm2020/apipass-messages.mjs} +4 -4
  10. package/esm2020/message-box/message-box.component.mjs +44 -0
  11. package/esm2020/messages.module.mjs +42 -0
  12. package/esm2020/messages.service.mjs +50 -0
  13. package/esm2020/public-api.mjs +6 -0
  14. package/esm2020/snack-bar/snack-bar.component.mjs +21 -0
  15. package/fesm2015/apipass-messages.mjs +155 -0
  16. package/fesm2015/apipass-messages.mjs.map +1 -0
  17. package/fesm2020/apipass-messages.mjs +153 -0
  18. package/fesm2020/apipass-messages.mjs.map +1 -0
  19. package/{apipass-messages.d.ts → index.d.ts} +5 -5
  20. package/message-box/message-box.component.d.ts +16 -16
  21. package/messages.module.d.ts +11 -9
  22. package/messages.service.d.ts +14 -12
  23. package/package.json +29 -19
  24. package/public-api.d.ts +5 -4
  25. package/snack-bar/snack-bar.component.d.ts +9 -0
  26. package/bundles/apipass-messages.umd.js +0 -280
  27. package/bundles/apipass-messages.umd.js.map +0 -1
  28. package/bundles/apipass-messages.umd.min.js +0 -2
  29. package/bundles/apipass-messages.umd.min.js.map +0 -1
  30. package/esm2015/message-box/message-box.component.js +0 -145
  31. package/esm2015/messages.module.js +0 -39
  32. package/esm2015/messages.service.js +0 -44
  33. package/esm2015/public-api.js +0 -5
  34. package/fesm2015/apipass-messages.js +0 -226
  35. package/fesm2015/apipass-messages.js.map +0 -1
@@ -1,226 +0,0 @@
1
- import { BodyOutputType, ToasterService, ToasterModule } from 'angular2-toaster';
2
- export * from 'angular2-toaster';
3
- import { ɵɵinject, ɵɵdefineInjectable, ɵsetClassMetadata, Injectable, ɵɵelementStart, ɵɵtext, ɵɵelementEnd, ɵɵnextContext, ɵɵadvance, ɵɵtextInterpolate, ɵɵelement, ɵɵproperty, ɵɵsanitizeHtml, ɵɵtemplate, ɵɵtextInterpolate1, ɵɵgetCurrentView, ɵɵlistener, ɵɵrestoreView, ɵɵclassMapInterpolate1, EventEmitter, ɵɵdefineComponent, Component, Input, Output, ɵɵdefineNgModule, ɵɵdefineInjector, ɵɵsetNgModuleScope, NgModule } from '@angular/core';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { NgIf, NgForOf, CommonModule } from '@angular/common';
6
-
7
- class MessagesService {
8
- constructor(toasterService) {
9
- this.toasterService = toasterService;
10
- }
11
- successMessage(title, body, positionClass) {
12
- this.customMessage('success', title, body || '', positionClass);
13
- }
14
- message(title, body, positionClass) {
15
- this.customMessage('error', title, body, positionClass);
16
- }
17
- getErrorMessage(statusCode, message) {
18
- let codeMessage;
19
- if (message instanceof Object) {
20
- codeMessage = message.status || statusCode;
21
- if (message.message) {
22
- codeMessage += ' - ' + message.message;
23
- }
24
- return codeMessage;
25
- }
26
- return `${statusCode} - ${message}`;
27
- }
28
- customMessage(type, title, body, positionClass) {
29
- const message = {
30
- type,
31
- title,
32
- timeout: 30000,
33
- body,
34
- bodyOutputType: BodyOutputType.TrustedHtml
35
- };
36
- const toastContainer = document.getElementById('toast-container');
37
- toastContainer.className = positionClass || 'toast-top-right';
38
- this.toasterService.pop(message);
39
- }
40
- }
41
- MessagesService.ɵfac = function MessagesService_Factory(t) { return new (t || MessagesService)(ɵɵinject(ToasterService)); };
42
- MessagesService.ɵprov = ɵɵdefineInjectable({ token: MessagesService, factory: MessagesService.ɵfac });
43
- /*@__PURE__*/ (function () { ɵsetClassMetadata(MessagesService, [{
44
- type: Injectable
45
- }], function () { return [{ type: ToasterService }]; }, null); })();
46
-
47
- function MessageBoxComponent_div_0_strong_3_Template(rf, ctx) { if (rf & 1) {
48
- ɵɵelementStart(0, "strong", 9);
49
- ɵɵtext(1);
50
- ɵɵelementEnd();
51
- } if (rf & 2) {
52
- const ctx_r1 = ɵɵnextContext(2);
53
- ɵɵadvance(1);
54
- ɵɵtextInterpolate(ctx_r1.title);
55
- } }
56
- function MessageBoxComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
57
- ɵɵelementStart(0, "span", 10);
58
- ɵɵtext(1);
59
- ɵɵelementEnd();
60
- } if (rf & 2) {
61
- const ctx_r2 = ɵɵnextContext(2);
62
- ɵɵadvance(1);
63
- ɵɵtextInterpolate(ctx_r2.message);
64
- } }
65
- function MessageBoxComponent_div_0_div_5_span_1_span_1_Template(rf, ctx) { if (rf & 1) {
66
- ɵɵelement(0, "span", 17);
67
- } if (rf & 2) {
68
- const item_r9 = ctx.$implicit;
69
- ɵɵproperty("innerHTML", item_r9.message, ɵɵsanitizeHtml);
70
- } }
71
- function MessageBoxComponent_div_0_div_5_span_1_Template(rf, ctx) { if (rf & 1) {
72
- ɵɵelementStart(0, "span", 15);
73
- ɵɵtemplate(1, MessageBoxComponent_div_0_div_5_span_1_span_1_Template, 1, 1, "span", 16);
74
- ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const error_r4 = ɵɵnextContext().$implicit;
77
- ɵɵadvance(1);
78
- ɵɵproperty("ngForOf", error_r4);
79
- } }
80
- function MessageBoxComponent_div_0_div_5_span_2_Template(rf, ctx) { if (rf & 1) {
81
- ɵɵelement(0, "span", 17);
82
- } if (rf & 2) {
83
- const error_r4 = ɵɵnextContext().$implicit;
84
- ɵɵproperty("innerHTML", error_r4, ɵɵsanitizeHtml);
85
- } }
86
- function MessageBoxComponent_div_0_div_5_pre_3_Template(rf, ctx) { if (rf & 1) {
87
- ɵɵelementStart(0, "pre");
88
- ɵɵtext(1);
89
- ɵɵelementEnd();
90
- } if (rf & 2) {
91
- const error_r4 = ɵɵnextContext().$implicit;
92
- const ctx_r7 = ɵɵnextContext(2);
93
- ɵɵadvance(1);
94
- ɵɵtextInterpolate1(" ", ctx_r7.getErrorAsString(error_r4), "\n ");
95
- } }
96
- function MessageBoxComponent_div_0_div_5_Template(rf, ctx) { if (rf & 1) {
97
- ɵɵelementStart(0, "div", 11);
98
- ɵɵtemplate(1, MessageBoxComponent_div_0_div_5_span_1_Template, 2, 1, "span", 12);
99
- ɵɵtemplate(2, MessageBoxComponent_div_0_div_5_span_2_Template, 1, 1, "span", 13);
100
- ɵɵtemplate(3, MessageBoxComponent_div_0_div_5_pre_3_Template, 2, 1, "pre", 14);
101
- ɵɵelementEnd();
102
- } if (rf & 2) {
103
- const error_r4 = ctx.$implicit;
104
- const ctx_r3 = ɵɵnextContext(2);
105
- ɵɵadvance(1);
106
- ɵɵproperty("ngIf", ctx_r3.compilerError && ctx_r3.isArray(error_r4));
107
- ɵɵadvance(1);
108
- ɵɵproperty("ngIf", (!ctx_r3.compilerError || ctx_r3.compilerError && !ctx_r3.isArray(error_r4)) && !ctx_r3.isErrorObject(error_r4));
109
- ɵɵadvance(1);
110
- ɵɵproperty("ngIf", !ctx_r3.compilerError && ctx_r3.isErrorObject(error_r4));
111
- } }
112
- function MessageBoxComponent_div_0_Template(rf, ctx) { if (rf & 1) {
113
- const _r14 = ɵɵgetCurrentView();
114
- ɵɵelementStart(0, "div", 1);
115
- ɵɵelementStart(1, "div", 2);
116
- ɵɵelementStart(2, "div", 3);
117
- ɵɵtemplate(3, MessageBoxComponent_div_0_strong_3_Template, 2, 1, "strong", 4);
118
- ɵɵtemplate(4, MessageBoxComponent_div_0_span_4_Template, 2, 1, "span", 5);
119
- ɵɵtemplate(5, MessageBoxComponent_div_0_div_5_Template, 4, 3, "div", 6);
120
- ɵɵelementStart(6, "button", 7);
121
- ɵɵlistener("click", function MessageBoxComponent_div_0_Template_button_click_6_listener() { ɵɵrestoreView(_r14); const ctx_r13 = ɵɵnextContext(); return ctx_r13.close(); });
122
- ɵɵelementStart(7, "span", 8);
123
- ɵɵtext(8, "\u00D7");
124
- ɵɵelementEnd();
125
- ɵɵelementEnd();
126
- ɵɵelementEnd();
127
- ɵɵelementEnd();
128
- ɵɵelementEnd();
129
- } if (rf & 2) {
130
- const ctx_r0 = ɵɵnextContext();
131
- ɵɵadvance(2);
132
- ɵɵclassMapInterpolate1("alert ", ctx_r0.type, " alert-dismissible fade show");
133
- ɵɵadvance(1);
134
- ɵɵproperty("ngIf", ctx_r0.title);
135
- ɵɵadvance(1);
136
- ɵɵproperty("ngIf", ctx_r0.message);
137
- ɵɵadvance(1);
138
- ɵɵproperty("ngForOf", ctx_r0.errors);
139
- } }
140
- class MessageBoxComponent {
141
- constructor() {
142
- this.type = 'alert-danger';
143
- this.title = '';
144
- this.message = '';
145
- this.compilerError = false;
146
- this.errors = [];
147
- this.onClose = new EventEmitter();
148
- }
149
- close() {
150
- this.onClose.next();
151
- }
152
- isArray(error) {
153
- return Array.isArray(error);
154
- }
155
- isErrorObject(error) {
156
- return error instanceof Object || this.isArray(error);
157
- }
158
- getErrorAsString(error) {
159
- return JSON.stringify(error, undefined, 2);
160
- }
161
- }
162
- MessageBoxComponent.ɵfac = function MessageBoxComponent_Factory(t) { return new (t || MessageBoxComponent)(); };
163
- MessageBoxComponent.ɵcmp = ɵɵdefineComponent({ type: MessageBoxComponent, selectors: [["message-box"]], inputs: { type: "type", title: "title", message: "message", compilerError: "compilerError", errors: "errors" }, outputs: { onClose: "onClose" }, decls: 1, vars: 1, consts: [["class", "error-box row", 4, "ngIf"], [1, "error-box", "row"], [1, "col-12"], ["role", "alert"], ["class", "title", 4, "ngIf"], ["class", "detail-message", 4, "ngIf"], ["class", "alert-text", 4, "ngFor", "ngForOf"], ["type", "button", "aria-label", "Close", 1, "close", 3, "click"], ["aria-hidden", "true"], [1, "title"], [1, "detail-message"], [1, "alert-text"], ["class", "causes", 4, "ngIf"], ["class", "error-text", 3, "innerHTML", 4, "ngIf"], [4, "ngIf"], [1, "causes"], ["class", "error-text", 3, "innerHTML", 4, "ngFor", "ngForOf"], [1, "error-text", 3, "innerHTML"]], template: function MessageBoxComponent_Template(rf, ctx) { if (rf & 1) {
164
- ɵɵtemplate(0, MessageBoxComponent_div_0_Template, 9, 6, "div", 0);
165
- } if (rf & 2) {
166
- ɵɵproperty("ngIf", ctx.errors.length > 0);
167
- } }, directives: [NgIf, NgForOf], styles: [".error-box[_ngcontent-%COMP%]{background:#f5caca;border:1px solid #8b4646;border-radius:5px;color:#8b4646;position:relative;width:100%}.error-box[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{padding:10px 15px!important}.error-box[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%] .close[_ngcontent-%COMP%]{background:none;border:none;color:#8b4646;cursor:pointer;font-size:20px;position:absolute;right:2px;top:2px}.error-box[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{margin-right:5px;word-break:break-word}.error-box[_ngcontent-%COMP%] .causes[_ngcontent-%COMP%]{word-break:break-word}"] });
168
- /*@__PURE__*/ (function () { ɵsetClassMetadata(MessageBoxComponent, [{
169
- type: Component,
170
- args: [{
171
- selector: 'message-box',
172
- templateUrl: 'message-box.component.html',
173
- styleUrls: ['message-box.component.scss']
174
- }]
175
- }], null, { type: [{
176
- type: Input
177
- }], title: [{
178
- type: Input
179
- }], message: [{
180
- type: Input
181
- }], compilerError: [{
182
- type: Input
183
- }], errors: [{
184
- type: Input
185
- }], onClose: [{
186
- type: Output
187
- }] }); })();
188
-
189
- class MessagesModule {
190
- }
191
- MessagesModule.ɵmod = ɵɵdefineNgModule({ type: MessagesModule });
192
- MessagesModule.ɵinj = ɵɵdefineInjector({ factory: function MessagesModule_Factory(t) { return new (t || MessagesModule)(); }, providers: [MessagesService], imports: [[
193
- CommonModule,
194
- FormsModule,
195
- ReactiveFormsModule,
196
- ToasterModule
197
- ]] });
198
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && ɵɵsetNgModuleScope(MessagesModule, { declarations: [MessageBoxComponent], imports: [CommonModule,
199
- FormsModule,
200
- ReactiveFormsModule,
201
- ToasterModule], exports: [MessageBoxComponent] }); })();
202
- /*@__PURE__*/ (function () { ɵsetClassMetadata(MessagesModule, [{
203
- type: NgModule,
204
- args: [{
205
- imports: [
206
- CommonModule,
207
- FormsModule,
208
- ReactiveFormsModule,
209
- ToasterModule
210
- ],
211
- declarations: [
212
- MessageBoxComponent
213
- ],
214
- exports: [
215
- MessageBoxComponent
216
- ],
217
- providers: [MessagesService]
218
- }]
219
- }], null, null); })();
220
-
221
- /**
222
- * Generated bundle index. Do not edit.
223
- */
224
-
225
- export { MessageBoxComponent, MessagesModule, MessagesService };
226
- //# sourceMappingURL=apipass-messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apipass-messages.js","sources":["../../../projects/messages/src/messages.service.ts","../../../projects/messages/src/message-box/message-box.component.html","../../../projects/messages/src/message-box/message-box.component.ts","../../../projects/messages/src/messages.module.ts","../../../projects/messages/src/apipass-messages.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {BodyOutputType, Toast, ToasterService} from 'angular2-toaster';\n\n@Injectable()\nexport class MessagesService {\n\n private toasterService: ToasterService;\n\n constructor(toasterService: ToasterService) {\n this.toasterService = toasterService;\n }\n\n public successMessage(title: string, body?: string, positionClass?: string): void {\n this.customMessage('success', title, body || '', positionClass);\n }\n\n public message(title: string, body: string, positionClass?: string): void {\n this.customMessage('error', title, body, positionClass);\n }\n\n public getErrorMessage(statusCode: number, message: any): string {\n let codeMessage;\n if (message instanceof Object) {\n codeMessage = message.status || statusCode;\n if (message.message) {\n codeMessage += ' - ' + message.message;\n }\n return codeMessage;\n }\n return `${statusCode} - ${message}`;\n }\n\n public customMessage(type: string, title: string, body: string, positionClass?: any): void {\n const message: Toast = {\n type,\n title,\n timeout: 30000,\n body,\n bodyOutputType: BodyOutputType.TrustedHtml\n };\n const toastContainer: any = document.getElementById('toast-container');\n toastContainer.className = positionClass || 'toast-top-right';\n this.toasterService.pop(message);\n }\n}\n","<div class=\"error-box row\" *ngIf=\"errors.length > 0\">\n <div class=\"col-12\">\n <div class=\"alert {{type}} alert-dismissible fade show\" role=\"alert\">\n <strong class=\"title\" *ngIf=\"title\">{{title}}</strong>\n <span class=\"detail-message\" *ngIf=\"message\">{{message}}</span>\n <div class=\"alert-text\" *ngFor=\"let error of errors\">\n <span class=\"causes\" *ngIf=\"compilerError && isArray(error)\">\n <span class=\"error-text\" *ngFor=\"let item of error\" [innerHTML]=\"item.message\"></span>\n </span>\n\n <span class=\"error-text\"\n *ngIf=\"(!compilerError || (compilerError && !isArray(error))) && !isErrorObject(error)\" [innerHTML]=\"error\"></span>\n <pre *ngIf=\"!compilerError && isErrorObject(error)\">\n {{getErrorAsString(error)}}\n </pre>\n </div>\n <button type=\"button\" class=\"close\" (click)=\"close()\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n</div>\n","import { Component, Input, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'message-box',\n templateUrl: 'message-box.component.html',\n styleUrls: ['message-box.component.scss']\n})\nexport class MessageBoxComponent {\n\n @Input() public type = 'alert-danger';\n @Input() public title = '';\n @Input() public message = '';\n @Input() public compilerError = false;\n @Input() public errors: [] = [];\n\n @Output() public onClose = new EventEmitter<void>();\n\n public close(): void {\n this.onClose.next();\n }\n\n public isArray(error: any): boolean {\n return Array.isArray(error);\n }\n\n public isErrorObject(error: any): boolean {\n return error instanceof Object || this.isArray(error);\n }\n\n public getErrorAsString(error: any): string {\n return JSON.stringify(error, undefined, 2);\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport {MessageBoxComponent} from './message-box/message-box.component';\nimport {MessagesService} from './messages.service';\nimport {ToasterModule} from 'angular2-toaster';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ToasterModule\n ],\n declarations: [\n MessageBoxComponent\n ],\n exports: [\n MessageBoxComponent\n ],\n providers: [MessagesService]\n})\nexport class MessagesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i0.ɵɵelementStart","i0.ɵɵtext","i0.ɵɵelementEnd","i0.ɵɵadvance","i0.ɵɵtextInterpolate","i0.ɵɵelement","i0.ɵɵproperty","i0.ɵɵtemplate","i0.ɵɵtextInterpolate1","i0.ɵɵlistener","i0.ɵɵclassMapInterpolate1"],"mappings":"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"}