@quantabit/journey-sdk 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/services/journeyApi.js","../src/types/index.js","../src/i18n/index.js","../src/hooks/useJourney.js","../src/components/JourneyBuilder.jsx","../src/index.js"],"sourcesContent":["/**\n * Journey SDK - API 客户端\n * 用户旅程分析系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 用户旅程 API 客户端\n */\nexport class JourneyApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/journey', config);\n }\n\n // ============ 旅程定义 ============\n\n /**\n * 获取旅程列表\n * @param {Object} params - 查询参数\n */\n async getJourneys(params = {}) {\n return this.get('/list', params);\n }\n\n /**\n * 获取旅程详情\n * @param {string} journeyId - 旅程 ID\n */\n async getJourney(journeyId) {\n return this.get(`/${journeyId}`);\n }\n\n /**\n * 创建旅程(管理员)\n * @param {Object} data - 旅程数据\n */\n async createJourney(data) {\n return this.post('/', data);\n }\n\n /**\n * 更新旅程(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} updates - 更新数据\n */\n async updateJourney(journeyId, updates) {\n return this.put(`/${journeyId}`, updates);\n }\n\n /**\n * 删除旅程(管理员)\n * @param {string} journeyId - 旅程 ID\n */\n async deleteJourney(journeyId) {\n return this.delete(`/${journeyId}`);\n }\n\n // ============ 旅程分析 ============\n\n /**\n * 获取旅程分析数据\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 分析参数\n */\n async analyzeJourney(journeyId, params = {}) {\n return this.post(`/${journeyId}/analyze`, params);\n }\n\n /**\n * 获取步骤转化率\n * @param {string} journeyId - 旅程 ID\n */\n async getStepConversion(journeyId) {\n return this.get(`/${journeyId}/conversion`);\n }\n\n /**\n * 获取用户掉落点\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getDropoffPoints(journeyId, params = {}) {\n return this.get(`/${journeyId}/dropoff`, params);\n }\n\n /**\n * 获取路径分布\n * @param {string} journeyId - 旅程 ID\n */\n async getPathDistribution(journeyId) {\n return this.get(`/${journeyId}/paths`);\n }\n\n // ============ 用户旅程 ============\n\n /**\n * 获取用户的旅程记录\n * @param {string} userId - 用户 ID\n * @param {Object} params - 查询参数\n */\n async getUserJourneys(userId, params = {}) {\n return this.get(`/users/${userId}`, params);\n }\n\n /**\n * 获取我的旅程记录\n * @param {Object} params - 查询参数\n */\n async getMyJourneys(params = {}) {\n return this.get('/my', params);\n }\n\n /**\n * 记录旅程事件\n * @param {string} journeyId - 旅程 ID\n * @param {string} stepId - 步骤 ID\n * @param {Object} data - 事件数据\n */\n async trackStep(journeyId, stepId, data = {}) {\n return this.post(`/${journeyId}/track`, { step_id: stepId, ...data });\n }\n\n // ============ 触点管理 ============\n\n /**\n * 获取触点列表\n * @param {string} journeyId - 旅程 ID\n */\n async getTouchpoints(journeyId) {\n return this.get(`/${journeyId}/touchpoints`);\n }\n\n /**\n * 添加触点(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} touchpoint - 触点数据\n */\n async addTouchpoint(journeyId, touchpoint) {\n return this.post(`/${journeyId}/touchpoints`, touchpoint);\n }\n\n /**\n * 更新触点(管理员)\n * @param {string} journeyId - 旅程 ID\n * @param {string} touchpointId - 触点 ID\n * @param {Object} updates - 更新数据\n */\n async updateTouchpoint(journeyId, touchpointId, updates) {\n return this.put(`/${journeyId}/touchpoints/${touchpointId}`, updates);\n }\n\n // ============ 统计报表 ============\n\n /**\n * 获取旅程统计\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 统计参数\n */\n async getStats(journeyId, params = {}) {\n return this.get(`/${journeyId}/stats`, params);\n }\n\n /**\n * 获取趋势数据\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getTrend(journeyId, params = {}) {\n return this.get(`/${journeyId}/trend`, params);\n }\n\n /**\n * 导出报表\n * @param {string} journeyId - 旅程 ID\n * @param {Object} options - 导出选项\n */\n async exportReport(journeyId, options = {}) {\n return this.post(`/${journeyId}/export`, options);\n }\n\n /**\n * 启动旅程\n * @param {string} journeyId - 旅程 ID\n */\n async startJourney(journeyId) {\n return this.post(`/${journeyId}/start`);\n }\n\n /**\n * 暂停旅程\n * @param {string} journeyId - 旅程 ID\n */\n async pauseJourney(journeyId) {\n return this.post(`/${journeyId}/pause`);\n }\n\n /**\n * 停止旅程\n * @param {string} journeyId - 旅程 ID\n */\n async stopJourney(journeyId) {\n return this.post(`/${journeyId}/stop`);\n }\n\n /**\n * 获取旅程统计 (快捷方法包装)\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 统计参数\n */\n async getJourneyStats(journeyId, params = {}) {\n return this.getStats(journeyId, params);\n }\n\n /**\n * 获取参与旅程的用户列表\n * @param {string} journeyId - 旅程 ID\n * @param {Object} params - 查询参数\n */\n async getJourneyUsers(journeyId, params = {}) {\n return this.get(`/${journeyId}/users`, params);\n }\n}\n\n// 创建默认实例\nexport const journeyApi = new JourneyApiClient();\n\n\n\nexport default journeyApi;\n","/**\n * Journey SDK - 类型定义\n */\n\n// 旅程状态\nexport const JourneyStatus = {\n DRAFT: 'draft',\n ACTIVE: 'active',\n PAUSED: 'paused',\n COMPLETED: 'completed',\n ARCHIVED: 'archived',\n};\n\n// 触发类型\nexport const TriggerType = {\n EVENT: 'event', // 事件触发\n SEGMENT: 'segment', // 分群进入\n SCHEDULE: 'schedule', // 定时触发\n API: 'api', // API调用\n};\n\n// 动作类型\nexport const ActionType = {\n SEND_EMAIL: 'send_email',\n SEND_SMS: 'send_sms',\n SEND_PUSH: 'send_push',\n SEND_IN_APP: 'send_in_app',\n WEBHOOK: 'webhook',\n WAIT: 'wait',\n CONDITION: 'condition',\n SPLIT: 'split',\n UPDATE_PROFILE: 'update_profile',\n ADD_TAG: 'add_tag',\n};\n\n// 等待类型\nexport const WaitType = {\n DURATION: 'duration', // 固定时长\n UNTIL: 'until', // 到指定时间\n EVENT: 'event', // 等待事件\n};\n\nexport default { JourneyStatus, TriggerType, ActionType, WaitType };\n","/**\n * Journey SDK - 国际化\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n // 旅程\n journey: '用户旅程',\n journeys: '旅程列表',\n createJourney: '创建旅程',\n myJourneys: '我的旅程',\n \n // 状态\n draft: '草稿',\n active: '运行中',\n paused: '已暂停',\n completed: '已完成',\n archived: '已归档',\n \n // 触发器\n trigger: '触发条件',\n triggers: '触发器',\n event: '事件触发',\n schedule: '定时触发',\n segment: '分群触发',\n manual: '手动触发',\n \n // 动作\n action: '动作',\n actions: '动作列表',\n sendEmail: '发送邮件',\n sendSMS: '发送短信',\n sendPush: '发送推送',\n sendNotification: '发送通知',\n addTag: '添加标签',\n removeTag: '移除标签',\n updateProfile: '更新画像',\n webhook: '调用Webhook',\n \n // 等待\n wait: '等待',\n waitTime: '等待时间',\n minutes: '分钟',\n hours: '小时',\n days: '天',\n \n // 条件\n condition: '条件',\n ifThen: '如果...则...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '进入人数',\n completed: '完成人数',\n active: '活跃人数',\n conversionRate: '转化率',\n \n // 操作\n start: '启动',\n pause: '暂停',\n resume: '继续',\n stop: '停止',\n duplicate: '复制',\n delete: '删除',\n },\n ja: {\n // 旅程\n journey: 'ユーザージャーニー',\n journeys: 'ジャーニーリスト',\n createJourney: 'ジャーニー作成',\n myJourneys: 'マイジャーニー',\n \n // 状态\n draft: '下書き',\n active: '実行中',\n paused: '一時停止中',\n completed: '完了',\n archived: 'アーカイブ済み',\n \n // 触发器\n trigger: 'トリガー条件',\n triggers: 'トリガー',\n event: 'イベントトリガー',\n schedule: 'スケジュールトリガー',\n segment: 'セグメントトリガー',\n manual: '手動トリガー',\n \n // 动作\n action: 'アクション',\n actions: 'アクションリスト',\n sendEmail: 'メール送信',\n sendSMS: 'SMS送信',\n sendPush: 'プッシュ送信',\n sendNotification: '通知送信',\n addTag: 'タグ追加',\n removeTag: 'タグ削除',\n updateProfile: 'プロフィール更新',\n webhook: 'Webhook呼び出し',\n \n // 等待\n wait: '待機',\n waitTime: '待機時間',\n minutes: '分',\n hours: '時間',\n days: '日',\n \n // 条件\n condition: '条件',\n ifThen: 'もし...ならば...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '参加者数',\n completed: '完了者数',\n active: 'アクティブ数',\n conversionRate: 'コンバージョン率',\n \n // 操作\n start: '起動',\n pause: '一時停止',\n resume: '再開',\n stop: '停止',\n duplicate: 'コピー',\n delete: '削除',\n },\n ko: {\n // 旅程\n journey: '사용자 여정',\n journeys: '여정 목록',\n createJourney: '여정 만들기',\n myJourneys: '내 여정',\n \n // 状态\n draft: '초안',\n active: '실행 중',\n paused: '일시 중지됨',\n completed: '완료됨',\n archived: '보관됨',\n \n // 触发器\n trigger: '트리거 조건',\n triggers: '트리거',\n event: '이벤트 트리거',\n schedule: '예약 트리거',\n segment: '세그먼트 트리거',\n manual: '수동 트리거',\n \n // 动作\n action: '작업',\n actions: '작업 목록',\n sendEmail: '이메일 전송',\n sendSMS: 'SMS 전송',\n sendPush: '푸시 알림 전송',\n sendNotification: '알림 전송',\n addTag: '태그 추가',\n removeTag: '태그 제거',\n updateProfile: '프로필 업데이트',\n webhook: 'Webhook 호출',\n \n // 等待\n wait: '대기',\n waitTime: '대기 시간',\n minutes: '분',\n hours: '시간',\n days: '일',\n \n // 条件\n condition: '조건',\n ifThen: '만약...라면...',\n abTest: 'A/B测试',\n \n // 统计\n entered: '참여자 수',\n completed: '완료자 수',\n active: '활성 사용자 수',\n conversionRate: '전환율',\n \n // 操作\n start: '시작',\n pause: '일시 정지',\n resume: '계속',\n stop: '중지',\n duplicate: '복사',\n delete: '삭제',\n },\n en: {\n journey: 'Journey',\n journeys: 'Journeys',\n createJourney: 'Create Journey',\n myJourneys: 'My Journeys',\n \n draft: 'Draft',\n active: 'Active',\n paused: 'Paused',\n completed: 'Completed',\n archived: 'Archived',\n \n trigger: 'Trigger',\n triggers: 'Triggers',\n event: 'Event',\n schedule: 'Schedule',\n segment: 'Segment',\n manual: 'Manual',\n \n action: 'Action',\n actions: 'Actions',\n sendEmail: 'Send Email',\n sendSMS: 'Send SMS',\n sendPush: 'Send Push',\n sendNotification: 'Send Notification',\n addTag: 'Add Tag',\n removeTag: 'Remove Tag',\n updateProfile: 'Update Profile',\n webhook: 'Webhook',\n \n wait: 'Wait',\n waitTime: 'Wait Time',\n minutes: 'minutes',\n hours: 'hours',\n days: 'days',\n \n condition: 'Condition',\n ifThen: 'If...Then...',\n abTest: 'A/B Test',\n \n entered: 'Entered',\n completed: 'Completed',\n active: 'Active',\n conversionRate: 'Conversion Rate',\n \n start: 'Start',\n pause: 'Pause',\n resume: 'Resume',\n stop: 'Stop',\n duplicate: 'Duplicate',\n delete: 'Delete',\n },\n};\n\nlet currentLanguage = 'zh';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Journey SDK - React Hooks\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { journeyApi } from '../services/journeyApi';\n\n/**\n * useJourneys - 旅程列表Hook\n */\nexport function useJourneys(options = {}) {\n const [journeys, setJourneys] = useState([]);\n const [loading, setLoading] = useState(false);\n const [page, setPage] = useState(1);\n const [hasMore, setHasMore] = useState(true);\n const [total, setTotal] = useState(0);\n\n const loadJourneys = useCallback(async (reset = false) => {\n const currentPage = reset ? 1 : page;\n setLoading(true);\n try {\n const result = await journeyApi.getJourneys({\n ...options,\n page: currentPage,\n pageSize: 20,\n });\n \n const newJourneys = result.journeys || [];\n setJourneys(prev => reset ? newJourneys : [...prev, ...newJourneys]);\n setTotal(result.total || 0);\n setHasMore(newJourneys.length >= 20);\n if (reset) setPage(1);\n } finally {\n setLoading(false);\n }\n }, [options.status, page]);\n\n const loadMore = useCallback(() => {\n if (hasMore && !loading) {\n setPage(p => p + 1);\n }\n }, [hasMore, loading]);\n\n useEffect(() => {\n loadJourneys(true);\n }, [options.status]);\n\n useEffect(() => {\n if (page > 1) loadJourneys();\n }, [page]);\n\n return {\n journeys,\n loading,\n total,\n hasMore,\n loadMore,\n refresh: () => loadJourneys(true),\n };\n}\n\n/**\n * useJourney - 单个旅程Hook\n */\nexport function useJourney(journeyId) {\n const [journey, setJourney] = useState(null);\n const [stats, setStats] = useState(null);\n const [loading, setLoading] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const loadJourney = useCallback(async () => {\n if (!journeyId) return;\n setLoading(true);\n try {\n const [journeyData, statsData] = await Promise.all([\n journeyApi.getJourney(journeyId),\n journeyApi.getJourneyStats(journeyId),\n ]);\n setJourney(journeyData);\n setStats(statsData);\n } finally {\n setLoading(false);\n }\n }, [journeyId]);\n\n // 保存旅程\n const saveJourney = useCallback(async (data) => {\n setSaving(true);\n try {\n const result = journeyId\n ? await journeyApi.updateJourney(journeyId, data)\n : await journeyApi.createJourney(data);\n setJourney(result);\n return result;\n } finally {\n setSaving(false);\n }\n }, [journeyId]);\n\n // 启动旅程\n const startJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.startJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n // 暂停旅程\n const pauseJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.pauseJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n // 停止旅程\n const stopJourney = useCallback(async () => {\n if (!journeyId) return false;\n try {\n await journeyApi.stopJourney(journeyId);\n loadJourney();\n return true;\n } catch (e) {\n return false;\n }\n }, [journeyId, loadJourney]);\n\n useEffect(() => {\n loadJourney();\n }, [journeyId]);\n\n return {\n journey,\n stats,\n loading,\n saving,\n saveJourney,\n startJourney,\n pauseJourney,\n stopJourney,\n refresh: loadJourney,\n };\n}\n\n/**\n * useJourneyBuilder - 旅程构建器Hook\n */\nexport function useJourneyBuilder(initialData = null) {\n const [nodes, setNodes] = useState(initialData?.nodes || []);\n const [edges, setEdges] = useState(initialData?.edges || []);\n const [selectedNode, setSelectedNode] = useState(null);\n\n // 添加节点\n const addNode = useCallback((type, data = {}) => {\n const newNode = {\n id: `node_${Date.now()}`,\n type,\n data,\n position: { x: 100, y: nodes.length * 150 },\n };\n setNodes(prev => [...prev, newNode]);\n return newNode;\n }, [nodes.length]);\n\n // 更新节点\n const updateNode = useCallback((nodeId, data) => {\n setNodes(prev => prev.map(node =>\n node.id === nodeId ? { ...node, data: { ...node.data, ...data } } : node\n ));\n }, []);\n\n // 删除节点\n const deleteNode = useCallback((nodeId) => {\n setNodes(prev => prev.filter(node => node.id !== nodeId));\n setEdges(prev => prev.filter(edge =>\n edge.source !== nodeId && edge.target !== nodeId\n ));\n if (selectedNode === nodeId) setSelectedNode(null);\n }, [selectedNode]);\n\n // 添加连线\n const addEdge = useCallback((source, target, label) => {\n const newEdge = {\n id: `edge_${Date.now()}`,\n source,\n target,\n label,\n };\n setEdges(prev => [...prev, newEdge]);\n return newEdge;\n }, []);\n\n // 删除连线\n const deleteEdge = useCallback((edgeId) => {\n setEdges(prev => prev.filter(edge => edge.id !== edgeId));\n }, []);\n\n // 导出数据\n const exportData = useCallback(() => {\n return { nodes, edges };\n }, [nodes, edges]);\n\n // 导入数据\n const importData = useCallback((data) => {\n setNodes(data.nodes || []);\n setEdges(data.edges || []);\n setSelectedNode(null);\n }, []);\n\n // 清空画布\n const clear = useCallback(() => {\n setNodes([]);\n setEdges([]);\n setSelectedNode(null);\n }, []);\n\n return {\n nodes,\n edges,\n selectedNode,\n setSelectedNode,\n addNode,\n updateNode,\n deleteNode,\n addEdge,\n deleteEdge,\n exportData,\n importData,\n clear,\n };\n}\n\n","/**\n * Journey SDK - 旅程组件\n */\n\nimport React from 'react';\nimport { t } from '../i18n';\nimport { JourneyStatus, TriggerType, ActionType } from '../types';\n\n/**\n * 状态颜色映射\n */\nconst statusColors = {\n [JourneyStatus.DRAFT]: '#6B7280',\n [JourneyStatus.ACTIVE]: '#10B981',\n [JourneyStatus.PAUSED]: '#F59E0B',\n [JourneyStatus.COMPLETED]: '#3B82F6',\n [JourneyStatus.ARCHIVED]: '#9CA3AF',\n};\n\n/**\n * 动作图标映射\n */\nconst actionIcons = {\n [ActionType.SEND_EMAIL]: '📧',\n [ActionType.SEND_SMS]: '📱',\n [ActionType.SEND_PUSH]: '🔔',\n [ActionType.SEND_NOTIFICATION]: '💬',\n [ActionType.ADD_TAG]: '🏷️',\n [ActionType.REMOVE_TAG]: '🚫',\n [ActionType.UPDATE_PROFILE]: '👤',\n [ActionType.WEBHOOK]: '🔗',\n [ActionType.WAIT]: '⏱️',\n [ActionType.CONDITION]: '🔀',\n};\n\n/**\n * JourneyCard 组件\n */\nexport function JourneyCard({\n journey,\n onClick,\n onStart,\n onPause,\n onStop,\n showActions = true,\n}) {\n const { id, name, description, status, stats } = journey;\n const statusColor = statusColors[status] || '#6B7280';\n const isActive = status === JourneyStatus.ACTIVE;\n const isDraft = status === JourneyStatus.DRAFT;\n const isPaused = status === JourneyStatus.PAUSED;\n\n return (\n <div className=\"eco-journey-card\" onClick={() => onClick?.(journey)}>\n <div className=\"eco-journey-card-header\">\n <h4 className=\"eco-journey-card-title\">{name}</h4>\n <span\n className=\"eco-journey-status\"\n style={{ backgroundColor: `${statusColor}20`, color: statusColor }}\n >\n {t(status)}\n </span>\n </div>\n\n {description && (\n <p className=\"eco-journey-card-desc\">{description}</p>\n )}\n\n {/* 统计数据 */}\n {stats && (\n <div className=\"eco-journey-stats\">\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.entered || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('entered')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.active || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('active')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">{stats.completed || 0}</span>\n <span className=\"eco-journey-stat-label\">{t('completed')}</span>\n </div>\n <div className=\"eco-journey-stat\">\n <span className=\"eco-journey-stat-value\">\n {((stats.conversion_rate || 0) * 100).toFixed(1)}%\n </span>\n <span className=\"eco-journey-stat-label\">{t('conversionRate')}</span>\n </div>\n </div>\n )}\n\n {/* 操作按钮 */}\n {showActions && (\n <div className=\"eco-journey-actions\" onClick={e => e.stopPropagation()}>\n {isDraft && (\n <button className=\"eco-journey-btn start\" onClick={() => onStart?.(id)}>\n {t('start')}\n </button>\n )}\n {isActive && (\n <button className=\"eco-journey-btn pause\" onClick={() => onPause?.(id)}>\n {t('pause')}\n </button>\n )}\n {isPaused && (\n <>\n <button className=\"eco-journey-btn resume\" onClick={() => onStart?.(id)}>\n {t('resume')}\n </button>\n <button className=\"eco-journey-btn stop\" onClick={() => onStop?.(id)}>\n {t('stop')}\n </button>\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * JourneyNode 组件 - 单个节点\n */\nexport function JourneyNode({\n node,\n selected = false,\n onClick,\n onDelete,\n}) {\n const { type, data } = node;\n const icon = actionIcons[type] || '📦';\n\n return (\n <div\n className={`eco-journey-node ${type} ${selected ? 'selected' : ''}`}\n onClick={() => onClick?.(node)}\n >\n <div className=\"eco-journey-node-icon\">{icon}</div>\n <div className=\"eco-journey-node-content\">\n <span className=\"eco-journey-node-type\">{t(type)}</span>\n {data?.name && <span className=\"eco-journey-node-name\">{data.name}</span>}\n </div>\n {onDelete && (\n <button\n className=\"eco-journey-node-delete\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete(node.id);\n }}\n >\n ×\n </button>\n )}\n </div>\n );\n}\n\n/**\n * TriggerSelector 组件 - 触发器选择\n */\nexport function TriggerSelector({ value, onChange }) {\n const triggers = [\n { type: TriggerType.EVENT, icon: '⚡', label: t('event') },\n { type: TriggerType.SCHEDULE, icon: '📅', label: t('schedule') },\n { type: TriggerType.SEGMENT, icon: '👥', label: t('segment') },\n { type: TriggerType.MANUAL, icon: '🖱️', label: t('manual') },\n ];\n\n return (\n <div className=\"eco-journey-trigger-selector\">\n {triggers.map(trigger => (\n <div\n key={trigger.type}\n className={`eco-journey-trigger-option ${value === trigger.type ? 'active' : ''}`}\n onClick={() => onChange?.(trigger.type)}\n >\n <span className=\"eco-journey-trigger-icon\">{trigger.icon}</span>\n <span className=\"eco-journey-trigger-label\">{trigger.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * ActionSelector 组件 - 动作选择\n */\nexport function ActionSelector({ onSelect }) {\n const actions = [\n { type: ActionType.SEND_EMAIL, icon: '📧', label: t('sendEmail') },\n { type: ActionType.SEND_SMS, icon: '📱', label: t('sendSMS') },\n { type: ActionType.SEND_PUSH, icon: '🔔', label: t('sendPush') },\n { type: ActionType.SEND_NOTIFICATION, icon: '💬', label: t('sendNotification') },\n { type: ActionType.WAIT, icon: '⏱️', label: t('wait') },\n { type: ActionType.CONDITION, icon: '🔀', label: t('condition') },\n { type: ActionType.ADD_TAG, icon: '🏷️', label: t('addTag') },\n { type: ActionType.WEBHOOK, icon: '🔗', label: t('webhook') },\n ];\n\n return (\n <div className=\"eco-journey-action-selector\">\n {actions.map(action => (\n <div\n key={action.type}\n className=\"eco-journey-action-option\"\n onClick={() => onSelect?.(action.type)}\n >\n <span className=\"eco-journey-action-icon\">{action.icon}</span>\n <span className=\"eco-journey-action-label\">{action.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\n/**\n * JourneyList 组件\n */\nexport function JourneyList({\n journeys = [],\n loading = false,\n onJourneyClick,\n onStart,\n onPause,\n onStop,\n}) {\n if (loading && journeys.length === 0) {\n return <div className=\"eco-journey-loading\">加载中...</div>;\n }\n\n if (journeys.length === 0) {\n return <div className=\"eco-journey-empty\">暂无旅程</div>;\n }\n\n return (\n <div className=\"eco-journey-list\">\n {journeys.map(journey => (\n <JourneyCard\n key={journey.id}\n journey={journey}\n onClick={onJourneyClick}\n onStart={onStart}\n onPause={onPause}\n onStop={onStop}\n />\n ))}\n </div>\n );\n}\n\n","/**\n * @quantabit/journey-sdk\n * Marketing Journey SDK - Full Version\n */\n\n// API Client\nexport { journeyApi, JourneyApiClient } from './services/journeyApi';\n\n// Types\nexport { JourneyStatus, TriggerType, ActionType, WaitType } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport { useJourneys, useJourney, useJourneyBuilder } from './hooks/useJourney';\n\n// React Components\nexport {\n JourneyCard,\n JourneyNode,\n TriggerSelector,\n ActionSelector,\n JourneyList,\n} from './components/JourneyBuilder';\n\n// Shortcut Methods\nimport { journeyApi } from './services/journeyApi';\n\nexport const getJourneys = (...args) => journeyApi.getJourneys(...args);\nexport const getJourney = (...args) => journeyApi.getJourney(...args);\nexport const createJourney = (...args) => journeyApi.createJourney(...args);\nexport const updateJourney = (...args) => journeyApi.updateJourney(...args);\nexport const deleteJourney = (...args) => journeyApi.deleteJourney(...args);\nexport const startJourney = (...args) => journeyApi.startJourney(...args);\nexport const pauseJourney = (...args) => journeyApi.pauseJourney(...args);\nexport const stopJourney = (...args) => journeyApi.stopJourney(...args);\nexport const getJourneyStats = (...args) => journeyApi.getJourneyStats(...args);\nexport const getJourneyUsers = (...args) => journeyApi.getJourneyUsers(...args);\n"],"names":["JourneyApiClient","BaseApiClient","constructor","config","getJourneys","params","get","getJourney","journeyId","createJourney","data","post","updateJourney","updates","put","deleteJourney","delete","analyzeJourney","getStepConversion","getDropoffPoints","getPathDistribution","getUserJourneys","userId","getMyJourneys","trackStep","stepId","step_id","getTouchpoints","addTouchpoint","touchpoint","updateTouchpoint","touchpointId","getStats","getTrend","exportReport","options","startJourney","pauseJourney","stopJourney","getJourneyStats","getJourneyUsers","journeyApi","JourneyStatus","DRAFT","ACTIVE","PAUSED","COMPLETED","ARCHIVED","TriggerType","EVENT","SEGMENT","SCHEDULE","API","ActionType","SEND_EMAIL","SEND_SMS","SEND_PUSH","SEND_IN_APP","WEBHOOK","WAIT","CONDITION","SPLIT","UPDATE_PROFILE","ADD_TAG","WaitType","DURATION","UNTIL","SUPPORTED_LANGUAGES","messages","zh","journey","journeys","myJourneys","draft","active","paused","completed","archived","trigger","triggers","event","schedule","segment","manual","action","actions","sendEmail","sendSMS","sendPush","sendNotification","addTag","removeTag","updateProfile","webhook","wait","waitTime","minutes","hours","days","condition","ifThen","abTest","entered","conversionRate","start","pause","resume","stop","duplicate","ja","ko","en","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","useJourneys","setJourneys","useState","loading","setLoading","page","setPage","hasMore","setHasMore","total","setTotal","loadJourneys","useCallback","reset","currentPage","result","pageSize","newJourneys","prev","length","status","loadMore","p","useEffect","refresh","useJourney","setJourney","stats","setStats","saving","setSaving","loadJourney","journeyData","statsData","Promise","all","saveJourney","e","useJourneyBuilder","initialData","nodes","setNodes","edges","setEdges","selectedNode","setSelectedNode","addNode","type","newNode","id","Date","now","position","x","y","updateNode","nodeId","map","node","deleteNode","filter","edge","source","target","addEdge","label","newEdge","deleteEdge","edgeId","exportData","importData","clear","statusColors","actionIcons","SEND_NOTIFICATION","REMOVE_TAG","JourneyCard","onClick","onStart","onPause","onStop","showActions","name","description","statusColor","isActive","isDraft","isPaused","React","createElement","className","style","backgroundColor","color","conversion_rate","toFixed","stopPropagation","Fragment","JourneyNode","selected","onDelete","icon","TriggerSelector","value","onChange","MANUAL","ActionSelector","onSelect","JourneyList","onJourneyClick","args"],"mappings":"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"}