@flusys/ng-email 3.0.1 → 4.0.0-rc
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.
- package/README.md +2 -2
- package/fesm2022/{flusys-ng-email-email-config-form.component-tg4pKP7G.mjs → flusys-ng-email-email-config-form.component-Cj2U6Tgf.mjs} +98 -92
- package/fesm2022/flusys-ng-email-email-config-form.component-Cj2U6Tgf.mjs.map +1 -0
- package/fesm2022/{flusys-ng-email-email-config-list.component-Dt9PY9xD.mjs → flusys-ng-email-email-config-list.component-oznfQvxo.mjs} +81 -70
- package/fesm2022/flusys-ng-email-email-config-list.component-oznfQvxo.mjs.map +1 -0
- package/fesm2022/{flusys-ng-email-template-form.component-vlfHz6VE.mjs → flusys-ng-email-template-form.component-CgJZiMCa.mjs} +67 -61
- package/fesm2022/flusys-ng-email-template-form.component-CgJZiMCa.mjs.map +1 -0
- package/fesm2022/{flusys-ng-email-template-list.component-krrpsjDv.mjs → flusys-ng-email-template-list.component-DHnuMTpB.mjs} +80 -70
- package/fesm2022/flusys-ng-email-template-list.component-DHnuMTpB.mjs.map +1 -0
- package/fesm2022/flusys-ng-email.mjs +256 -31
- package/fesm2022/flusys-ng-email.mjs.map +1 -1
- package/package.json +4 -4
- package/types/flusys-ng-email.d.ts +15 -6
- package/fesm2022/flusys-ng-email-email-config-form.component-tg4pKP7G.mjs.map +0 -1
- package/fesm2022/flusys-ng-email-email-config-list.component-Dt9PY9xD.mjs.map +0 -1
- package/fesm2022/flusys-ng-email-template-form.component-vlfHz6VE.mjs.map +0 -1
- package/fesm2022/flusys-ng-email-template-list.component-krrpsjDv.mjs.map +0 -1
|
@@ -1,10 +1,233 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, signal, computed,
|
|
2
|
+
import { inject, Injectable, signal, computed, Component } from '@angular/core';
|
|
3
3
|
import { HttpClient } from '@angular/common/http';
|
|
4
4
|
import { APP_CONFIG, getServiceUrl } from '@flusys/ng-core';
|
|
5
|
-
import { ApiResourceService, permissionGuard, EMAIL_TEMPLATE_PERMISSIONS, EMAIL_CONFIG_PERMISSIONS, PermissionValidatorService } from '@flusys/ng-shared';
|
|
5
|
+
import { ApiResourceService, permissionGuard, EMAIL_TEMPLATE_PERMISSIONS, EMAIL_CONFIG_PERMISSIONS, resolveTranslationModule, SHARED_MESSAGES, PermissionValidatorService, TranslatePipe } from '@flusys/ng-shared';
|
|
6
6
|
import { RouterOutlet, RouterLink, RouterLinkActive } from '@angular/router';
|
|
7
7
|
|
|
8
|
+
const EMAIL_MESSAGES = {
|
|
9
|
+
// Container
|
|
10
|
+
'email.title': 'Email Management',
|
|
11
|
+
'email.subtitle': 'Manage email configurations and templates',
|
|
12
|
+
// Tabs
|
|
13
|
+
'email.tabs.configs': 'Configurations',
|
|
14
|
+
'email.tabs.templates': 'Templates',
|
|
15
|
+
// Email config UI
|
|
16
|
+
'email.config.title': 'Email Configurations',
|
|
17
|
+
'email.config.new.title': 'New Email Configuration',
|
|
18
|
+
'email.config.edit.title': 'Edit Email Configuration',
|
|
19
|
+
'email.config.name': 'Configuration Name',
|
|
20
|
+
'email.config.provider': 'Provider',
|
|
21
|
+
'email.config.from.email': 'From Email',
|
|
22
|
+
'email.config.from.name': 'From Name',
|
|
23
|
+
'email.config.set.as.default': 'Set as Default',
|
|
24
|
+
'email.config.smtp.settings': 'SMTP Settings',
|
|
25
|
+
'email.config.smtp.host': 'SMTP Host',
|
|
26
|
+
'email.config.port': 'Port',
|
|
27
|
+
'email.config.username': 'Username',
|
|
28
|
+
'email.config.password': 'Password',
|
|
29
|
+
'email.config.use.ssl.tls': 'Use SSL/TLS',
|
|
30
|
+
'email.config.sendgrid.settings': 'SendGrid Settings',
|
|
31
|
+
'email.config.api.key': 'API Key',
|
|
32
|
+
'email.config.mailgun.settings': 'Mailgun Settings',
|
|
33
|
+
'email.config.domain': 'Domain',
|
|
34
|
+
'email.config.region': 'Region',
|
|
35
|
+
'email.config.new': 'New Configuration',
|
|
36
|
+
'email.config.empty': 'No email configurations found',
|
|
37
|
+
'email.config.test.dialog.title': 'Test Email Configuration',
|
|
38
|
+
'email.config.test.dialog.hint': 'A test email will be sent to verify the configuration',
|
|
39
|
+
'email.config.configuration': 'Configuration',
|
|
40
|
+
'email.config.recipient.email': 'Recipient Email',
|
|
41
|
+
'email.config.send.test': 'Send Test',
|
|
42
|
+
'email.config.delete.title': 'Delete Configuration',
|
|
43
|
+
'email.config.delete.confirm': 'Are you sure you want to delete "{{name}}"?',
|
|
44
|
+
'email.config.load.failed': 'Failed to load email configurations',
|
|
45
|
+
'email.config.deleted': 'Email configuration deleted successfully',
|
|
46
|
+
'email.config.delete.failed': 'Failed to delete email configuration',
|
|
47
|
+
'email.config.created': 'Email configuration created successfully',
|
|
48
|
+
'email.config.create.failed': 'Failed to create email configuration',
|
|
49
|
+
'email.config.updated': 'Email configuration updated successfully',
|
|
50
|
+
'email.config.update.failed': 'Failed to update email configuration',
|
|
51
|
+
'email.config.enter.recipient': 'Please enter a recipient email address',
|
|
52
|
+
'email.config.test.sent.success': 'Test email sent successfully (Message ID: {{messageId}})',
|
|
53
|
+
'email.config.test.sent.failed': 'Failed to send test email',
|
|
54
|
+
// Email template UI
|
|
55
|
+
'email.template.title': 'Email Templates',
|
|
56
|
+
'email.template.new.title': 'New Email Template',
|
|
57
|
+
'email.template.edit.title': 'Edit Email Template',
|
|
58
|
+
'email.template.name': 'Template Name',
|
|
59
|
+
'email.template.slug': 'Slug',
|
|
60
|
+
'email.template.subject': 'Subject',
|
|
61
|
+
'email.template.content': 'Content',
|
|
62
|
+
'email.template.plain.text': 'Plain Text',
|
|
63
|
+
'email.template.new': 'New Template',
|
|
64
|
+
'email.template.empty': 'No email templates found',
|
|
65
|
+
'email.template.test.dialog.title': 'Test Email Template',
|
|
66
|
+
'email.template.send.test': 'Send Test',
|
|
67
|
+
'email.template.delete.title': 'Delete Template',
|
|
68
|
+
'email.template.delete.confirm': 'Are you sure you want to delete "{{name}}"?',
|
|
69
|
+
'email.template.load.failed': 'Failed to load email templates',
|
|
70
|
+
'email.template.deleted': 'Email template deleted successfully',
|
|
71
|
+
'email.template.delete.failed': 'Failed to delete email template',
|
|
72
|
+
'email.template.created': 'Email template created successfully',
|
|
73
|
+
'email.template.create.failed': 'Failed to create email template',
|
|
74
|
+
'email.template.updated': 'Email template updated successfully',
|
|
75
|
+
'email.template.update.failed': 'Failed to update email template',
|
|
76
|
+
'email.template.template': 'Template',
|
|
77
|
+
'email.template.email.config': 'Email Configuration',
|
|
78
|
+
'email.template.select.config': 'Select a configuration',
|
|
79
|
+
'email.template.select.config.and.recipient': 'Please select an email configuration and enter a recipient',
|
|
80
|
+
'email.template.test.sent.success': 'Test email sent successfully (Message ID: {{messageId}})',
|
|
81
|
+
'email.template.test.sent.failed': 'Failed to send test email',
|
|
82
|
+
'email.template.test.send': 'Send Test Email',
|
|
83
|
+
'email.template.text': 'Text',
|
|
84
|
+
'email.template.variable.hint': 'Use {{variableName}} for dynamic content',
|
|
85
|
+
'email.template.plain.text.hint': 'Plain text is used for email clients that do not support HTML',
|
|
86
|
+
'email.template.live.preview': 'Live Preview',
|
|
87
|
+
'email.template.enter.html.preview': 'Enter HTML content to see preview',
|
|
88
|
+
'email.template.variables': 'Template Variables',
|
|
89
|
+
'email.template.enter.value.for': 'Enter value for {{variable}}',
|
|
90
|
+
'email.template.body': 'Body',
|
|
91
|
+
'email.template.preview': 'Preview',
|
|
92
|
+
'email.template.create': 'Create Template',
|
|
93
|
+
'email.template.edit': 'Edit Template',
|
|
94
|
+
'email.template.test': 'Send Test Email',
|
|
95
|
+
// Form validation
|
|
96
|
+
'email.template.validation.name.required': 'Template name is required',
|
|
97
|
+
'email.template.validation.slug.required': 'Slug is required',
|
|
98
|
+
'email.template.validation.subject.required': 'Subject is required',
|
|
99
|
+
'email.config.validation.name.required': 'Configuration name is required',
|
|
100
|
+
'email.config.validation.provider.required': 'Provider is required',
|
|
101
|
+
// Form placeholders
|
|
102
|
+
'email.config.placeholder.name': 'e.g., Production SMTP',
|
|
103
|
+
'email.config.placeholder.select.provider': 'Select provider',
|
|
104
|
+
'email.config.placeholder.from.email': 'noreply@example.com',
|
|
105
|
+
'email.config.placeholder.from.name': 'Your App Name',
|
|
106
|
+
'email.config.placeholder.smtp.host': 'smtp.gmail.com',
|
|
107
|
+
'email.config.placeholder.port': '587',
|
|
108
|
+
'email.config.placeholder.username': 'user@gmail.com',
|
|
109
|
+
'email.config.placeholder.password': 'App password',
|
|
110
|
+
'email.config.placeholder.api.key': 'API Key',
|
|
111
|
+
'email.config.placeholder.domain': 'mg.example.com',
|
|
112
|
+
'email.config.placeholder.select.region': 'Select region',
|
|
113
|
+
'email.config.placeholder.recipient': 'recipient@example.com',
|
|
114
|
+
'email.template.placeholder.name': 'e.g., Welcome Email',
|
|
115
|
+
'email.template.placeholder.slug': 'e.g., welcome-email',
|
|
116
|
+
'email.template.placeholder.description': 'Brief description of the template',
|
|
117
|
+
'email.template.placeholder.plain.text': 'Enter plain text content for email clients that do not support HTML',
|
|
118
|
+
'email.template.placeholder.recipient': 'recipient@example.com',
|
|
119
|
+
'email.template.html': 'HTML',
|
|
120
|
+
// Email template CRUD (API keys)
|
|
121
|
+
'email.template.create.success': 'Email template created successfully',
|
|
122
|
+
'email.template.update.success': 'Email template updated successfully',
|
|
123
|
+
'email.template.delete.success': 'Email template deleted successfully',
|
|
124
|
+
'email.template.get.success': 'Email template retrieved successfully',
|
|
125
|
+
'email.template.get.all.success': 'Email templates retrieved successfully',
|
|
126
|
+
'email.template.create.many.success': '{{count}} email templates created successfully',
|
|
127
|
+
'email.template.update.many.success': '{{count}} email templates updated successfully',
|
|
128
|
+
'email.template.restore.success': 'Email template restored successfully',
|
|
129
|
+
'email.template.not.found': 'Email template not found',
|
|
130
|
+
'email.template.preview.success': 'Email template preview generated successfully',
|
|
131
|
+
// Email provider
|
|
132
|
+
'email.provider.title': 'Email Providers',
|
|
133
|
+
'email.provider.name': 'Provider Name',
|
|
134
|
+
'email.provider.type': 'Provider Type',
|
|
135
|
+
'email.provider.host': 'SMTP Host',
|
|
136
|
+
'email.provider.port': 'Port',
|
|
137
|
+
'email.provider.username': 'Username',
|
|
138
|
+
'email.provider.password': 'Password',
|
|
139
|
+
'email.provider.from.email': 'From Email',
|
|
140
|
+
'email.provider.from.name': 'From Name',
|
|
141
|
+
'email.provider.encryption': 'Encryption',
|
|
142
|
+
'email.provider.test.connection': 'Test Connection',
|
|
143
|
+
'email.provider.connection.success': 'Connection successful',
|
|
144
|
+
'email.provider.connection.failed': 'Connection failed',
|
|
145
|
+
'email.provider.create.success': 'Email provider created successfully',
|
|
146
|
+
'email.provider.update.success': 'Email provider updated successfully',
|
|
147
|
+
'email.provider.delete.success': 'Email provider deleted successfully',
|
|
148
|
+
// Sending emails
|
|
149
|
+
'email.send.title': 'Send Email',
|
|
150
|
+
'email.send.to': 'To',
|
|
151
|
+
'email.send.cc': 'CC',
|
|
152
|
+
'email.send.bcc': 'BCC',
|
|
153
|
+
'email.send.subject': 'Subject',
|
|
154
|
+
'email.send.body': 'Message',
|
|
155
|
+
'email.send.attachments': 'Attachments',
|
|
156
|
+
'email.send.success': 'Email sent successfully',
|
|
157
|
+
'email.send.failed': 'Failed to send email',
|
|
158
|
+
'email.send.sending': 'Sending email...',
|
|
159
|
+
// Email logs
|
|
160
|
+
'email.log.title': 'Email Logs',
|
|
161
|
+
'email.log.recipient': 'Recipient',
|
|
162
|
+
'email.log.status': 'Status',
|
|
163
|
+
'email.log.sent.at': 'Sent At',
|
|
164
|
+
'email.log.delivered': 'Delivered',
|
|
165
|
+
'email.log.failed': 'Failed',
|
|
166
|
+
'email.log.pending': 'Pending',
|
|
167
|
+
'email.log.opened': 'Opened',
|
|
168
|
+
'email.log.clicked': 'Clicked',
|
|
169
|
+
'email.log.bounced': 'Bounced',
|
|
170
|
+
// Email config CRUD (API keys)
|
|
171
|
+
'email.config.create.success': 'Email configuration created successfully',
|
|
172
|
+
'email.config.create.many.success': '{{count}} email configurations created successfully',
|
|
173
|
+
'email.config.get.success': 'Email configuration retrieved successfully',
|
|
174
|
+
'email.config.get.all.success': 'Email configurations retrieved successfully',
|
|
175
|
+
'email.config.update.success': 'Email configuration updated successfully',
|
|
176
|
+
'email.config.update.many.success': '{{count}} email configurations updated successfully',
|
|
177
|
+
'email.config.delete.success': 'Email configuration deleted successfully',
|
|
178
|
+
'email.config.restore.success': 'Email configuration restored successfully',
|
|
179
|
+
'email.config.not.found': 'Email configuration not found',
|
|
180
|
+
'email.config.active.success': 'Active email configuration retrieved successfully',
|
|
181
|
+
'email.config.test.success': 'Email configuration test successful',
|
|
182
|
+
'email.config.test.failed': 'Email configuration test failed',
|
|
183
|
+
// Email send (API keys)
|
|
184
|
+
'email.send.queued': 'Email queued for sending',
|
|
185
|
+
'email.send.template.success': 'Template email sent successfully',
|
|
186
|
+
'email.send.bulk.success': 'Bulk emails sent successfully',
|
|
187
|
+
'email.send.test.success': 'Test email sent successfully',
|
|
188
|
+
'email.send.config.not.found': 'Email configuration not found',
|
|
189
|
+
'email.send.config.inactive': 'Email configuration is inactive',
|
|
190
|
+
'email.send.config.default.not.found': 'Default email configuration not found',
|
|
191
|
+
'email.send.template.not.found': 'Email template not found',
|
|
192
|
+
'email.send.template.inactive': 'Email template is inactive',
|
|
193
|
+
'email.send.template.id.or.slug.required': 'Template ID or slug is required',
|
|
194
|
+
// Additional placeholder keys (dot-case)
|
|
195
|
+
'email.config.name.example': 'e.g., Production SMTP',
|
|
196
|
+
'email.config.select.provider': 'Select provider',
|
|
197
|
+
'email.config.from.email.example': 'noreply@example.com',
|
|
198
|
+
'email.config.from.name.example': 'Your App Name',
|
|
199
|
+
'email.config.smtp.host.example': 'smtp.gmail.com',
|
|
200
|
+
'email.config.smtp.port.example': '587',
|
|
201
|
+
'email.config.smtp.user.example': 'user@gmail.com',
|
|
202
|
+
'email.config.smtp.password.example': 'App password',
|
|
203
|
+
'email.config.sendgrid.api.key.example': 'API Key',
|
|
204
|
+
'email.config.mailgun.api.key.example': 'API Key',
|
|
205
|
+
'email.config.mailgun.domain.example': 'mg.example.com',
|
|
206
|
+
'email.config.select.region': 'Select region',
|
|
207
|
+
'email.recipient.example': 'recipient@example.com',
|
|
208
|
+
'email.template.name.example': 'e.g., Welcome Email',
|
|
209
|
+
'email.template.slug.example': 'e.g., welcome-email',
|
|
210
|
+
'email.template.subject.example': 'Enter email subject',
|
|
211
|
+
'email.template.desc.placeholder': 'Brief description of the template',
|
|
212
|
+
'email.template.html.placeholder': 'Enter HTML content',
|
|
213
|
+
'email.template.text.placeholder': 'Enter plain text content',
|
|
214
|
+
// Provider translation keys (singular - for labels)
|
|
215
|
+
'email.provider.smtp': 'SMTP',
|
|
216
|
+
'email.provider.sendgrid': 'SendGrid',
|
|
217
|
+
'email.provider.mailgun': 'Mailgun',
|
|
218
|
+
// Provider translation keys (plural - for dynamic lookups)
|
|
219
|
+
'email.providers.smtp': 'SMTP',
|
|
220
|
+
'email.providers.sendgrid': 'SendGrid',
|
|
221
|
+
'email.providers.mailgun': 'Mailgun',
|
|
222
|
+
// Region translation keys
|
|
223
|
+
'email.region.us': 'US',
|
|
224
|
+
'email.region.eu': 'EU',
|
|
225
|
+
// Template keys
|
|
226
|
+
'email.template.default.content': 'Enter your email content here...',
|
|
227
|
+
// Common aliases used by email components
|
|
228
|
+
'common.fill.required.fields': 'Please fill in all required fields',
|
|
229
|
+
};
|
|
230
|
+
|
|
8
231
|
/**
|
|
9
232
|
* Supported email provider types
|
|
10
233
|
*/
|
|
@@ -43,7 +266,7 @@ function createEmailSchema(partial = {}) {
|
|
|
43
266
|
return {
|
|
44
267
|
id: partial.id ?? crypto.randomUUID(),
|
|
45
268
|
version: partial.version ?? '1.0.0',
|
|
46
|
-
|
|
269
|
+
nameKey: partial.nameKey ?? 'email.template.untitled',
|
|
47
270
|
subject: partial.subject ?? '',
|
|
48
271
|
preheader: partial.preheader,
|
|
49
272
|
sections: partial.sections ?? createDefaultSections(),
|
|
@@ -56,9 +279,9 @@ function createEmailSchema(partial = {}) {
|
|
|
56
279
|
*/
|
|
57
280
|
function createDefaultSections() {
|
|
58
281
|
return [
|
|
59
|
-
{ id: crypto.randomUUID(), type: 'header',
|
|
60
|
-
{ id: crypto.randomUUID(), type: 'body',
|
|
61
|
-
{ id: crypto.randomUUID(), type: 'footer',
|
|
282
|
+
{ id: crypto.randomUUID(), type: 'header', nameKey: 'email.section.header', blocks: [], order: 0 },
|
|
283
|
+
{ id: crypto.randomUUID(), type: 'body', nameKey: 'email.section.body', blocks: [], order: 1 },
|
|
284
|
+
{ id: crypto.randomUUID(), type: 'footer', nameKey: 'email.section.footer', blocks: [], order: 2 },
|
|
62
285
|
];
|
|
63
286
|
}
|
|
64
287
|
|
|
@@ -217,7 +440,7 @@ class EmailBuilderStateService {
|
|
|
217
440
|
/**
|
|
218
441
|
* Create a new empty schema
|
|
219
442
|
*/
|
|
220
|
-
createNewSchema(name = '
|
|
443
|
+
createNewSchema(name = '') {
|
|
221
444
|
this._schema.set(createEmailSchema({ name }));
|
|
222
445
|
this._isDirty.set(true);
|
|
223
446
|
this._selectedSectionId.set(null);
|
|
@@ -403,18 +626,19 @@ class EmailBuilderStateService {
|
|
|
403
626
|
// Helper Methods
|
|
404
627
|
// =========================================
|
|
405
628
|
/**
|
|
406
|
-
* Get default content for a block type
|
|
629
|
+
* Get default content for a block type.
|
|
630
|
+
* Note: Text content is intentionally empty - UI should display translated placeholders.
|
|
407
631
|
*/
|
|
408
632
|
getDefaultContent(type) {
|
|
409
633
|
switch (type) {
|
|
410
634
|
case EmailBlockType.TEXT:
|
|
411
|
-
return { text: '
|
|
635
|
+
return { text: '', html: '' };
|
|
412
636
|
case EmailBlockType.IMAGE:
|
|
413
|
-
return { src: '', alt: '
|
|
637
|
+
return { src: '', alt: '' };
|
|
414
638
|
case EmailBlockType.BUTTON:
|
|
415
639
|
return {
|
|
416
|
-
text: '
|
|
417
|
-
link: '
|
|
640
|
+
text: '',
|
|
641
|
+
link: '',
|
|
418
642
|
backgroundColor: '#007bff',
|
|
419
643
|
textColor: '#ffffff',
|
|
420
644
|
borderRadius: '4px',
|
|
@@ -422,7 +646,7 @@ class EmailBuilderStateService {
|
|
|
422
646
|
case EmailBlockType.DIVIDER:
|
|
423
647
|
return { height: '1px', color: '#cccccc', style: 'solid' };
|
|
424
648
|
case EmailBlockType.HTML:
|
|
425
|
-
return { html: '
|
|
649
|
+
return { html: '' };
|
|
426
650
|
default:
|
|
427
651
|
return { text: '' };
|
|
428
652
|
}
|
|
@@ -447,6 +671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
447
671
|
const EMAIL_ROUTES = [
|
|
448
672
|
{
|
|
449
673
|
path: '',
|
|
674
|
+
resolve: { translations: resolveTranslationModule({ modules: ['email'], fallbackMessages: { ...EMAIL_MESSAGES, ...SHARED_MESSAGES } }) },
|
|
450
675
|
loadComponent: () => Promise.resolve().then(function () { return emailContainer_component; }).then((m) => m.EmailContainerComponent),
|
|
451
676
|
children: [
|
|
452
677
|
// Template Routes
|
|
@@ -456,17 +681,17 @@ const EMAIL_ROUTES = [
|
|
|
456
681
|
children: [
|
|
457
682
|
{
|
|
458
683
|
path: '',
|
|
459
|
-
loadComponent: () => import('./flusys-ng-email-template-list.component-
|
|
684
|
+
loadComponent: () => import('./flusys-ng-email-template-list.component-DHnuMTpB.mjs').then((m) => m.TemplateListComponent),
|
|
460
685
|
},
|
|
461
686
|
{
|
|
462
687
|
path: 'new',
|
|
463
688
|
canActivate: [permissionGuard(EMAIL_TEMPLATE_PERMISSIONS.CREATE)],
|
|
464
|
-
loadComponent: () => import('./flusys-ng-email-template-form.component-
|
|
689
|
+
loadComponent: () => import('./flusys-ng-email-template-form.component-CgJZiMCa.mjs').then((m) => m.TemplateFormComponent),
|
|
465
690
|
},
|
|
466
691
|
{
|
|
467
692
|
path: ':id',
|
|
468
693
|
canActivate: [permissionGuard(EMAIL_TEMPLATE_PERMISSIONS.UPDATE)],
|
|
469
|
-
loadComponent: () => import('./flusys-ng-email-template-form.component-
|
|
694
|
+
loadComponent: () => import('./flusys-ng-email-template-form.component-CgJZiMCa.mjs').then((m) => m.TemplateFormComponent),
|
|
470
695
|
},
|
|
471
696
|
],
|
|
472
697
|
},
|
|
@@ -477,17 +702,17 @@ const EMAIL_ROUTES = [
|
|
|
477
702
|
children: [
|
|
478
703
|
{
|
|
479
704
|
path: '',
|
|
480
|
-
loadComponent: () => import('./flusys-ng-email-email-config-list.component-
|
|
705
|
+
loadComponent: () => import('./flusys-ng-email-email-config-list.component-oznfQvxo.mjs').then((m) => m.EmailConfigListComponent),
|
|
481
706
|
},
|
|
482
707
|
{
|
|
483
708
|
path: 'new',
|
|
484
709
|
canActivate: [permissionGuard(EMAIL_CONFIG_PERMISSIONS.CREATE)],
|
|
485
|
-
loadComponent: () => import('./flusys-ng-email-email-config-form.component-
|
|
710
|
+
loadComponent: () => import('./flusys-ng-email-email-config-form.component-Cj2U6Tgf.mjs').then((m) => m.EmailConfigFormComponent),
|
|
486
711
|
},
|
|
487
712
|
{
|
|
488
713
|
path: ':id',
|
|
489
714
|
canActivate: [permissionGuard(EMAIL_CONFIG_PERMISSIONS.UPDATE)],
|
|
490
|
-
loadComponent: () => import('./flusys-ng-email-email-config-form.component-
|
|
715
|
+
loadComponent: () => import('./flusys-ng-email-email-config-form.component-Cj2U6Tgf.mjs').then((m) => m.EmailConfigFormComponent),
|
|
491
716
|
},
|
|
492
717
|
],
|
|
493
718
|
},
|
|
@@ -507,14 +732,14 @@ class EmailContainerComponent {
|
|
|
507
732
|
allTabs = [
|
|
508
733
|
{
|
|
509
734
|
id: 'templates',
|
|
510
|
-
|
|
735
|
+
labelKey: 'email.template.title',
|
|
511
736
|
icon: 'pi pi-file',
|
|
512
737
|
route: 'templates',
|
|
513
738
|
permission: EMAIL_TEMPLATE_PERMISSIONS.READ,
|
|
514
739
|
},
|
|
515
740
|
{
|
|
516
741
|
id: 'configs',
|
|
517
|
-
|
|
742
|
+
labelKey: 'email.config.title',
|
|
518
743
|
icon: 'pi pi-cog',
|
|
519
744
|
route: 'configs',
|
|
520
745
|
permission: EMAIL_CONFIG_PERMISSIONS.READ,
|
|
@@ -526,8 +751,8 @@ class EmailContainerComponent {
|
|
|
526
751
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: EmailContainerComponent, isStandalone: true, selector: "lib-email-container", ngImport: i0, template: `
|
|
527
752
|
<div class="p-2 sm:p-4">
|
|
528
753
|
<div class="mb-4">
|
|
529
|
-
<h1 class="text-xl sm:text-2xl font-bold m-0">
|
|
530
|
-
<p class="text-sm text-muted-color mt-1">
|
|
754
|
+
<h1 class="text-xl sm:text-2xl font-bold m-0">{{ 'email.title' | translate }}</h1>
|
|
755
|
+
<p class="text-sm text-muted-color mt-1">{{ 'email.subtitle' | translate }}</p>
|
|
531
756
|
</div>
|
|
532
757
|
|
|
533
758
|
<div class="scrollbar-hide flex gap-1 mb-4 border-b border-surface overflow-x-auto flex-nowrap -mx-2 sm:mx-0 px-2 sm:px-0">
|
|
@@ -538,22 +763,22 @@ class EmailContainerComponent {
|
|
|
538
763
|
[routerLinkActiveOptions]="{ exact: false }"
|
|
539
764
|
class="flex items-center gap-2 px-3 sm:px-4 py-2 rounded-t-lg cursor-pointer transition-colors text-muted-color no-underline border-b-2 border-transparent -mb-px hover:bg-surface-hover [&.tab-active]:text-primary [&.tab-active]:border-primary [&.tab-active]:bg-surface-ground whitespace-nowrap shrink-0 text-sm sm:text-base">
|
|
540
765
|
<i [class]="tab.icon"></i>
|
|
541
|
-
<span>{{ tab.
|
|
766
|
+
<span>{{ tab.labelKey | translate }}</span>
|
|
542
767
|
</a>
|
|
543
768
|
}
|
|
544
769
|
</div>
|
|
545
770
|
|
|
546
771
|
<router-outlet />
|
|
547
772
|
</div>
|
|
548
|
-
`, isInline: true, styles: [".scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }
|
|
773
|
+
`, isInline: true, styles: [".scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
549
774
|
}
|
|
550
775
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: EmailContainerComponent, decorators: [{
|
|
551
776
|
type: Component,
|
|
552
|
-
args: [{ selector: 'lib-email-container',
|
|
777
|
+
args: [{ selector: 'lib-email-container', imports: [RouterOutlet, RouterLink, RouterLinkActive, TranslatePipe], template: `
|
|
553
778
|
<div class="p-2 sm:p-4">
|
|
554
779
|
<div class="mb-4">
|
|
555
|
-
<h1 class="text-xl sm:text-2xl font-bold m-0">
|
|
556
|
-
<p class="text-sm text-muted-color mt-1">
|
|
780
|
+
<h1 class="text-xl sm:text-2xl font-bold m-0">{{ 'email.title' | translate }}</h1>
|
|
781
|
+
<p class="text-sm text-muted-color mt-1">{{ 'email.subtitle' | translate }}</p>
|
|
557
782
|
</div>
|
|
558
783
|
|
|
559
784
|
<div class="scrollbar-hide flex gap-1 mb-4 border-b border-surface overflow-x-auto flex-nowrap -mx-2 sm:mx-0 px-2 sm:px-0">
|
|
@@ -564,7 +789,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
564
789
|
[routerLinkActiveOptions]="{ exact: false }"
|
|
565
790
|
class="flex items-center gap-2 px-3 sm:px-4 py-2 rounded-t-lg cursor-pointer transition-colors text-muted-color no-underline border-b-2 border-transparent -mb-px hover:bg-surface-hover [&.tab-active]:text-primary [&.tab-active]:border-primary [&.tab-active]:bg-surface-ground whitespace-nowrap shrink-0 text-sm sm:text-base">
|
|
566
791
|
<i [class]="tab.icon"></i>
|
|
567
|
-
<span>{{ tab.
|
|
792
|
+
<span>{{ tab.labelKey | translate }}</span>
|
|
568
793
|
</a>
|
|
569
794
|
}
|
|
570
795
|
</div>
|
|
@@ -582,11 +807,11 @@ var emailContainer_component = /*#__PURE__*/Object.freeze({
|
|
|
582
807
|
// =============================================================================
|
|
583
808
|
// @flusys/ng-email - Email Package
|
|
584
809
|
// =============================================================================
|
|
585
|
-
//
|
|
810
|
+
// Constants
|
|
586
811
|
|
|
587
812
|
/**
|
|
588
813
|
* Generated bundle index. Do not edit.
|
|
589
814
|
*/
|
|
590
815
|
|
|
591
|
-
export { DEFAULT_EMAIL_SETTINGS, EMAIL_ROUTES, EmailBlockType, EmailBuilderStateService, EmailConfigApiService, EmailContainerComponent, EmailProviderEnum, EmailSendService, EmailTemplateApiService, createEmailSchema };
|
|
816
|
+
export { DEFAULT_EMAIL_SETTINGS, EMAIL_MESSAGES, EMAIL_ROUTES, EmailBlockType, EmailBuilderStateService, EmailConfigApiService, EmailContainerComponent, EmailProviderEnum, EmailSendService, EmailTemplateApiService, createEmailSchema };
|
|
592
817
|
//# sourceMappingURL=flusys-ng-email.mjs.map
|