@escalated-dev/escalated 0.6.0 → 0.7.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.
- package/LICENSE +21 -21
- package/README.md +125 -2
- package/package.json +40 -5
- package/src/components/ActiveChatsPanel.vue +246 -0
- package/src/components/ActivityTimeline.stories.js +55 -0
- package/src/components/ActivityTimeline.vue +83 -66
- package/src/components/AdminDashboard.stories.js +1423 -0
- package/src/components/AgentLoadIndicator.stories.js +37 -0
- package/src/components/AgentLoadIndicator.vue +49 -0
- package/src/components/AgentPerformanceCard.vue +44 -0
- package/src/components/ArticleEditor.vue +82 -0
- package/src/components/AssigneeSelect.vue +37 -23
- package/src/components/AttachmentList.vue +65 -37
- package/src/components/AuditLogEntry.vue +95 -0
- package/src/components/BulkActionBar.vue +166 -97
- package/src/components/CategoryTree.vue +89 -0
- package/src/components/ChartWidget.vue +46 -0
- package/src/components/ChatActionBar.vue +226 -0
- package/src/components/ChatBubble.vue +162 -0
- package/src/components/ChatComposer.vue +308 -0
- package/src/components/ChatQueue.vue +222 -0
- package/src/components/ChatThread.vue +197 -0
- package/src/components/CollisionWarning.stories.js +30 -0
- package/src/components/CollisionWarning.vue +68 -0
- package/src/components/ConditionalFieldRules.vue +135 -0
- package/src/components/ContextPanel.vue +66 -0
- package/src/components/ContextPanelSection.vue +65 -0
- package/src/components/CustomFieldRenderer.vue +159 -0
- package/src/components/EscalatedLayout.vue +424 -70
- package/src/components/FileDropzone.vue +57 -41
- package/src/components/FollowButton.stories.js +30 -0
- package/src/components/FollowButton.vue +88 -63
- package/src/components/KeyboardShortcutHelp.vue +213 -123
- package/src/components/KnowledgePanel.vue +122 -0
- package/src/components/KpiCard.stories.js +32 -0
- package/src/components/KpiCard.vue +88 -0
- package/src/components/MacroDropdown.vue +150 -90
- package/src/components/MentionDropdown.vue +154 -0
- package/src/components/MetricComparison.vue +89 -0
- package/src/components/PercentileChart.vue +67 -0
- package/src/components/PeriodSelector.vue +98 -0
- package/src/components/PermissionMatrix.vue +107 -0
- package/src/components/PinnedNotes.vue +129 -90
- package/src/components/PluginSlot.vue +68 -62
- package/src/components/PresenceIndicator.vue +138 -28
- package/src/components/PriorityBadge.stories.js +33 -0
- package/src/components/PriorityBadge.vue +46 -39
- package/src/components/QuickFilters.vue +65 -49
- package/src/components/ReplyComposer.vue +207 -30
- package/src/components/ReplyThread.vue +111 -21
- package/src/components/ReportChart.vue +395 -0
- package/src/components/ReportExportButton.vue +108 -0
- package/src/components/SatisfactionRating.vue +180 -128
- package/src/components/SaveViewDialog.vue +172 -0
- package/src/components/SavedViewSidebar.vue +208 -0
- package/src/components/ScheduleEditor.vue +104 -0
- package/src/components/SideConversation.vue +165 -0
- package/src/components/SideConversationList.vue +147 -0
- package/src/components/SkillTagManager.vue +79 -0
- package/src/components/SlaComplianceChart.vue +46 -0
- package/src/components/SlaTimer.stories.js +35 -0
- package/src/components/SlaTimer.vue +62 -49
- package/src/components/SnoozeButton.vue +247 -0
- package/src/components/StatsCard.stories.js +24 -0
- package/src/components/StatsCard.vue +18 -6
- package/src/components/StatusBadge.stories.js +53 -0
- package/src/components/StatusBadge.vue +78 -46
- package/src/components/TagSelect.vue +84 -53
- package/src/components/TicketFilters.vue +247 -46
- package/src/components/TicketLinkPanel.vue +193 -0
- package/src/components/TicketList.vue +536 -74
- package/src/components/TicketMergeDialog.vue +157 -0
- package/src/components/TicketSidebar.vue +167 -99
- package/src/components/TicketSplitDialog.vue +98 -0
- package/src/components/TicketTypeSelector.vue +21 -0
- package/src/components/TotpInput.stories.js +9 -0
- package/src/components/TotpInput.vue +81 -0
- package/src/components/TwoFactorSetup.vue +113 -0
- package/src/components/VariableTokenInput.vue +111 -0
- package/src/components/WorkflowActionConfig.vue +287 -0
- package/src/components/WorkflowActionList.vue +350 -0
- package/src/components/WorkflowConditionBuilder.vue +265 -0
- package/src/components/WorkflowTriggerSelector.vue +125 -0
- package/src/composables/useChat.js +187 -0
- package/src/composables/useDebouncedSearch.js +38 -0
- package/src/composables/useI18n.js +80 -80
- package/src/composables/useKeyboardShortcuts.js +46 -46
- package/src/composables/useMentions.js +134 -0
- package/src/composables/usePluginExtensions.js +159 -67
- package/src/composables/usePluginHooks.js +65 -0
- package/src/composables/useRealtime.js +182 -0
- package/src/defineEscalatedPlugin.js +76 -50
- package/src/index.js +77 -28
- package/src/locales/ar.json +727 -0
- package/src/locales/de.json +678 -430
- package/src/locales/en.json +717 -430
- package/src/locales/es.json +679 -430
- package/src/locales/fr.json +680 -431
- package/src/locales/index.js +12 -2
- package/src/locales/it.json +727 -0
- package/src/locales/ja.json +727 -0
- package/src/locales/ko.json +727 -0
- package/src/locales/nl.json +727 -0
- package/src/locales/pl.json +727 -0
- package/src/locales/pt-BR.json +727 -0
- package/src/locales/ru.json +727 -0
- package/src/locales/tr.json +727 -0
- package/src/locales/zh-CN.json +727 -0
- package/src/pages/Admin/ApiTokens/Index.vue +381 -217
- package/src/pages/Admin/AuditLog/Index.vue +154 -0
- package/src/pages/Admin/BusinessHours/Form.vue +172 -0
- package/src/pages/Admin/BusinessHours/Index.vue +113 -0
- package/src/pages/Admin/CannedResponses/Index.vue +82 -25
- package/src/pages/Admin/Capacity/Index.vue +134 -0
- package/src/pages/Admin/CustomFields/Form.vue +195 -0
- package/src/pages/Admin/CustomFields/Index.vue +134 -0
- package/src/pages/Admin/CustomObjects/Form.vue +202 -0
- package/src/pages/Admin/CustomObjects/Index.vue +127 -0
- package/src/pages/Admin/CustomObjects/Records.vue +228 -0
- package/src/pages/Admin/Departments/Form.vue +35 -11
- package/src/pages/Admin/Departments/Index.vue +74 -21
- package/src/pages/Admin/EscalationRules/Form.vue +86 -25
- package/src/pages/Admin/EscalationRules/Index.vue +158 -37
- package/src/pages/Admin/Import/Connect.vue +95 -0
- package/src/pages/Admin/Import/Index.vue +102 -0
- package/src/pages/Admin/Import/Mapping.vue +110 -0
- package/src/pages/Admin/Import/Progress.vue +153 -0
- package/src/pages/Admin/Import/Review.vue +76 -0
- package/src/pages/Admin/KnowledgeBase/Articles/Form.vue +142 -0
- package/src/pages/Admin/KnowledgeBase/Articles/Index.vue +195 -0
- package/src/pages/Admin/KnowledgeBase/Categories/Index.vue +193 -0
- package/src/pages/Admin/Macros/Index.vue +448 -287
- package/src/pages/Admin/Plugins/Index.vue +327 -197
- package/src/pages/Admin/Reports/AgentDetail.vue +132 -0
- package/src/pages/Admin/Reports/AgentMetrics.vue +115 -0
- package/src/pages/Admin/Reports/AgentRanking.vue +246 -0
- package/src/pages/Admin/Reports/Cohorts.vue +180 -0
- package/src/pages/Admin/Reports/Comparison.vue +141 -0
- package/src/pages/Admin/Reports/CsatReport.vue +127 -0
- package/src/pages/Admin/Reports/Dashboard.vue +226 -0
- package/src/pages/Admin/Reports/ResolutionTimes.vue +164 -0
- package/src/pages/Admin/Reports/ResponseTimes.vue +164 -0
- package/src/pages/Admin/Reports/SlaReport.vue +162 -0
- package/src/pages/Admin/Reports/SlaTrends.vue +183 -0
- package/src/pages/Admin/Reports.vue +206 -101
- package/src/pages/Admin/Roles/Form.vue +71 -0
- package/src/pages/Admin/Roles/Index.vue +122 -0
- package/src/pages/Admin/Settings/CsatSettings.vue +165 -0
- package/src/pages/Admin/Settings/DataRetention.vue +182 -0
- package/src/pages/Admin/Settings/EmailSettings.vue +243 -0
- package/src/pages/Admin/Settings/Sandbox.vue +135 -0
- package/src/pages/Admin/Settings/SsoSettings.vue +218 -0
- package/src/pages/Admin/Settings/TwoFactor.vue +110 -0
- package/src/pages/Admin/Settings.vue +847 -99
- package/src/pages/Admin/Skills/Form.vue +53 -0
- package/src/pages/Admin/Skills/Index.vue +94 -0
- package/src/pages/Admin/SlaPolicies/Form.vue +62 -19
- package/src/pages/Admin/SlaPolicies/Index.vue +85 -23
- package/src/pages/Admin/Statuses/Form.vue +114 -0
- package/src/pages/Admin/Statuses/Index.vue +153 -0
- package/src/pages/Admin/Tags/Index.vue +121 -35
- package/src/pages/Admin/Tickets/Index.vue +96 -9
- package/src/pages/Admin/Tickets/Show.vue +130 -37
- package/src/pages/Admin/Webhooks/DeliveryLog.vue +120 -0
- package/src/pages/Admin/Webhooks/Form.vue +110 -0
- package/src/pages/Admin/Webhooks/Index.vue +136 -0
- package/src/pages/Admin/Workflows/Builder.vue +207 -0
- package/src/pages/Admin/Workflows/Index.vue +235 -0
- package/src/pages/Admin/Workflows/Logs.vue +286 -0
- package/src/pages/Agent/Dashboard.vue +311 -186
- package/src/pages/Agent/TicketIndex.vue +80 -6
- package/src/pages/Agent/TicketShow.vue +399 -60
- package/src/pages/Customer/Create.vue +37 -10
- package/src/pages/Customer/Index.vue +9 -2
- package/src/pages/Customer/KnowledgeBase/Article.vue +129 -0
- package/src/pages/Customer/KnowledgeBase/Index.vue +151 -0
- package/src/pages/Customer/Show.vue +69 -63
- package/src/pages/Guest/Create.vue +40 -15
- package/src/pages/Guest/Show.vue +124 -93
- package/src/plugin.js +111 -1
- package/src/utils/constants.js +30 -0
- package/src/utils/formatting.js +35 -0
- package/src/utils/mentionHighlight.js +24 -0
- package/src/utils/sanitizeHtml.js +78 -64
- package/src/widget/EscalatedWidget.vue +804 -0
- package/src/widget/index.js +254 -0
- package/src/pages/Admin/Plugins.vue +0 -129
|
@@ -1,50 +1,76 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper for plugin authors to define an Escalated plugin.
|
|
3
|
-
*
|
|
4
|
-
* Returns a Vue plugin object that registers components globally when installed.
|
|
5
|
-
*
|
|
6
|
-
* Usage
|
|
7
|
-
*
|
|
8
|
-
* import { defineEscalatedPlugin } from '@escalated-dev/escalated'
|
|
9
|
-
* import SalesWidget from './Components/SalesWidget.vue'
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* @
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Helper for plugin authors to define an Escalated plugin.
|
|
3
|
+
*
|
|
4
|
+
* Returns a Vue plugin object that registers components globally when installed.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
*
|
|
8
|
+
* import { defineEscalatedPlugin } from '@escalated-dev/escalated'
|
|
9
|
+
* import SalesWidget from './Components/SalesWidget.vue'
|
|
10
|
+
*
|
|
11
|
+
* export default defineEscalatedPlugin({
|
|
12
|
+
* name: 'my-plugin',
|
|
13
|
+
* components: {
|
|
14
|
+
* SalesWidget,
|
|
15
|
+
* },
|
|
16
|
+
* hooks: {
|
|
17
|
+
* 'ticket.created': (ticket) => { ... },
|
|
18
|
+
* 'ticket.replied': (ticket, reply) => { ... },
|
|
19
|
+
* 'ticket.statusChanged': (ticket, oldStatus, newStatus) => { ... },
|
|
20
|
+
* 'reply.beforeSubmit': (content) => { return modifiedContent; },
|
|
21
|
+
* },
|
|
22
|
+
* setup(app, ctx) {
|
|
23
|
+
* // ctx contains: { provide }
|
|
24
|
+
* },
|
|
25
|
+
* })
|
|
26
|
+
*
|
|
27
|
+
* @param {Object} options
|
|
28
|
+
* @param {string} options.name - Plugin identifier
|
|
29
|
+
* @param {Object} [options.components] - Map of component name to component definition
|
|
30
|
+
* @param {Object} [options.hooks] - Map of hook event name to handler function
|
|
31
|
+
* @param {Function} [options.setup] - Optional setup callback receiving the Vue app instance and context
|
|
32
|
+
* @returns {Object} A Vue plugin object with an install() method
|
|
33
|
+
*/
|
|
34
|
+
export function defineEscalatedPlugin(options = {}) {
|
|
35
|
+
return {
|
|
36
|
+
// Metadata for plugin introspection
|
|
37
|
+
__escalated: true,
|
|
38
|
+
name: options.name || 'unknown',
|
|
39
|
+
hooks: options.hooks || {},
|
|
40
|
+
|
|
41
|
+
install(app) {
|
|
42
|
+
// Register all provided components globally
|
|
43
|
+
if (options.components) {
|
|
44
|
+
Object.entries(options.components).forEach(([name, component]) => {
|
|
45
|
+
app.component(name, component);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Register plugin hooks on a global event bus
|
|
50
|
+
if (options.hooks) {
|
|
51
|
+
const hookRegistry =
|
|
52
|
+
app.config.globalProperties.$escalatedHooks || (app.config.globalProperties.$escalatedHooks = {});
|
|
53
|
+
|
|
54
|
+
Object.entries(options.hooks).forEach(([event, handler]) => {
|
|
55
|
+
if (!hookRegistry[event]) hookRegistry[event] = [];
|
|
56
|
+
hookRegistry[event].push({
|
|
57
|
+
plugin: options.name,
|
|
58
|
+
handler,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Run optional setup callback with context
|
|
64
|
+
if (typeof options.setup === 'function') {
|
|
65
|
+
options.setup(app, {
|
|
66
|
+
provide: app.provide.bind(app),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Provide the plugin name for debugging
|
|
71
|
+
if (options.name) {
|
|
72
|
+
app.provide(`escalated-plugin:${options.name}`, true);
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
package/src/index.js
CHANGED
|
@@ -1,35 +1,84 @@
|
|
|
1
1
|
// Plugin
|
|
2
|
-
export { EscalatedPlugin } from './plugin'
|
|
2
|
+
export { EscalatedPlugin } from './plugin';
|
|
3
3
|
|
|
4
4
|
// Components
|
|
5
|
-
export { default as
|
|
6
|
-
export { default as
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
12
|
-
export { default as
|
|
13
|
-
export { default as
|
|
14
|
-
export { default as
|
|
15
|
-
export { default as
|
|
16
|
-
export { default as
|
|
17
|
-
export { default as
|
|
18
|
-
export { default as
|
|
19
|
-
export { default as
|
|
20
|
-
export { default as
|
|
21
|
-
export { default as
|
|
22
|
-
export { default as
|
|
23
|
-
export { default as
|
|
24
|
-
export { default as
|
|
25
|
-
export { default as
|
|
26
|
-
export { default as
|
|
27
|
-
export { default as
|
|
28
|
-
export { default as
|
|
5
|
+
export { default as ActiveChatsPanel } from './components/ActiveChatsPanel.vue';
|
|
6
|
+
export { default as ActivityTimeline } from './components/ActivityTimeline.vue';
|
|
7
|
+
export { default as AgentLoadIndicator } from './components/AgentLoadIndicator.vue';
|
|
8
|
+
export { default as AgentPerformanceCard } from './components/AgentPerformanceCard.vue';
|
|
9
|
+
export { default as ArticleEditor } from './components/ArticleEditor.vue';
|
|
10
|
+
export { default as AssigneeSelect } from './components/AssigneeSelect.vue';
|
|
11
|
+
export { default as AttachmentList } from './components/AttachmentList.vue';
|
|
12
|
+
export { default as AuditLogEntry } from './components/AuditLogEntry.vue';
|
|
13
|
+
export { default as BulkActionBar } from './components/BulkActionBar.vue';
|
|
14
|
+
export { default as CategoryTree } from './components/CategoryTree.vue';
|
|
15
|
+
export { default as ChatActionBar } from './components/ChatActionBar.vue';
|
|
16
|
+
export { default as ChatBubble } from './components/ChatBubble.vue';
|
|
17
|
+
export { default as ChatComposer } from './components/ChatComposer.vue';
|
|
18
|
+
export { default as ChatQueue } from './components/ChatQueue.vue';
|
|
19
|
+
export { default as ChatThread } from './components/ChatThread.vue';
|
|
20
|
+
export { default as ChartWidget } from './components/ChartWidget.vue';
|
|
21
|
+
export { default as CollisionWarning } from './components/CollisionWarning.vue';
|
|
22
|
+
export { default as ConditionalFieldRules } from './components/ConditionalFieldRules.vue';
|
|
23
|
+
export { default as ContextPanel } from './components/ContextPanel.vue';
|
|
24
|
+
export { default as ContextPanelSection } from './components/ContextPanelSection.vue';
|
|
25
|
+
export { default as CustomFieldRenderer } from './components/CustomFieldRenderer.vue';
|
|
26
|
+
export { default as EscalatedLayout } from './components/EscalatedLayout.vue';
|
|
27
|
+
export { default as FileDropzone } from './components/FileDropzone.vue';
|
|
28
|
+
export { default as FollowButton } from './components/FollowButton.vue';
|
|
29
|
+
export { default as KeyboardShortcutHelp } from './components/KeyboardShortcutHelp.vue';
|
|
30
|
+
export { default as KnowledgePanel } from './components/KnowledgePanel.vue';
|
|
31
|
+
export { default as KpiCard } from './components/KpiCard.vue';
|
|
32
|
+
export { default as MacroDropdown } from './components/MacroDropdown.vue';
|
|
33
|
+
export { default as MentionDropdown } from './components/MentionDropdown.vue';
|
|
34
|
+
export { default as PermissionMatrix } from './components/PermissionMatrix.vue';
|
|
35
|
+
export { default as PinnedNotes } from './components/PinnedNotes.vue';
|
|
36
|
+
export { default as PluginSlot } from './components/PluginSlot.vue';
|
|
37
|
+
export { default as PresenceIndicator } from './components/PresenceIndicator.vue';
|
|
38
|
+
export { default as PriorityBadge } from './components/PriorityBadge.vue';
|
|
39
|
+
export { default as QuickFilters } from './components/QuickFilters.vue';
|
|
40
|
+
export { default as ReplyComposer } from './components/ReplyComposer.vue';
|
|
41
|
+
export { default as ReplyThread } from './components/ReplyThread.vue';
|
|
42
|
+
export { default as SavedViewSidebar } from './components/SavedViewSidebar.vue';
|
|
43
|
+
export { default as SaveViewDialog } from './components/SaveViewDialog.vue';
|
|
44
|
+
export { default as SatisfactionRating } from './components/SatisfactionRating.vue';
|
|
45
|
+
export { default as ScheduleEditor } from './components/ScheduleEditor.vue';
|
|
46
|
+
export { default as SideConversation } from './components/SideConversation.vue';
|
|
47
|
+
export { default as SideConversationList } from './components/SideConversationList.vue';
|
|
48
|
+
export { default as SkillTagManager } from './components/SkillTagManager.vue';
|
|
49
|
+
export { default as SlaComplianceChart } from './components/SlaComplianceChart.vue';
|
|
50
|
+
export { default as SlaTimer } from './components/SlaTimer.vue';
|
|
51
|
+
export { default as StatsCard } from './components/StatsCard.vue';
|
|
52
|
+
export { default as StatusBadge } from './components/StatusBadge.vue';
|
|
53
|
+
export { default as TagSelect } from './components/TagSelect.vue';
|
|
54
|
+
export { default as TicketFilters } from './components/TicketFilters.vue';
|
|
55
|
+
export { default as TicketLinkPanel } from './components/TicketLinkPanel.vue';
|
|
56
|
+
export { default as TicketList } from './components/TicketList.vue';
|
|
57
|
+
export { default as TicketMergeDialog } from './components/TicketMergeDialog.vue';
|
|
58
|
+
export { default as TicketSidebar } from './components/TicketSidebar.vue';
|
|
59
|
+
export { default as TicketTypeSelector } from './components/TicketTypeSelector.vue';
|
|
60
|
+
export { default as TotpInput } from './components/TotpInput.vue';
|
|
61
|
+
export { default as TwoFactorSetup } from './components/TwoFactorSetup.vue';
|
|
29
62
|
|
|
30
63
|
// Composables
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
64
|
+
export { useDebouncedSearch } from './composables/useDebouncedSearch';
|
|
65
|
+
export { useKeyboardShortcuts } from './composables/useKeyboardShortcuts';
|
|
66
|
+
export { useMentions } from './composables/useMentions';
|
|
67
|
+
export { usePluginExtensions } from './composables/usePluginExtensions';
|
|
68
|
+
export { usePluginHooks } from './composables/usePluginHooks';
|
|
69
|
+
export { useChat } from './composables/useChat';
|
|
70
|
+
export { useRealtime } from './composables/useRealtime';
|
|
71
|
+
|
|
72
|
+
// Utilities
|
|
73
|
+
export { TICKET_STATUSES, TICKET_PRIORITIES, TICKET_TYPES, TICKET_TYPE_COLORS } from './utils/constants';
|
|
74
|
+
export { timeAgo, slaClass } from './utils/formatting';
|
|
33
75
|
|
|
34
76
|
// Plugin authoring helper
|
|
35
|
-
export { defineEscalatedPlugin } from './defineEscalatedPlugin'
|
|
77
|
+
export { defineEscalatedPlugin } from './defineEscalatedPlugin';
|
|
78
|
+
|
|
79
|
+
// Import pages
|
|
80
|
+
export { default as AdminImportIndex } from './pages/Admin/Import/Index.vue';
|
|
81
|
+
export { default as AdminImportConnect } from './pages/Admin/Import/Connect.vue';
|
|
82
|
+
export { default as AdminImportMapping } from './pages/Admin/Import/Mapping.vue';
|
|
83
|
+
export { default as AdminImportReview } from './pages/Admin/Import/Review.vue';
|
|
84
|
+
export { default as AdminImportProgress } from './pages/Admin/Import/Progress.vue';
|