@nywqs/scada-engine 1.1.3 → 1.1.5

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.
@@ -1 +1 @@
1
- [data-scada-theme] .scada-header[data-v-9bbedc41]{height:60px;background:#16213e;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #0f3460;gap:24px}[data-scada-theme] .header-left[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .logo[data-v-9bbedc41]{font-size:20px;font-weight:600;margin:0;color:#e2e8f0}[data-scada-theme] .version[data-v-9bbedc41]{font-size:12px;color:#64748b;padding:2px 8px;background:#0f172a;border-radius:4px}[data-scada-theme] .header-center[data-v-9bbedc41]{flex:1;display:flex;justify-content:center;align-items:center}[data-scada-theme] .header-right[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .tool-group[data-v-9bbedc41]{display:flex;gap:8px}[data-scada-theme] .header-btn[data-v-9bbedc41]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s;font-size:13px}[data-scada-theme] .header-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-1px)}[data-scada-theme] .header-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .tip[data-v-9bbedc41]{font-size:13px;color:#94a3b8}[data-scada-theme] .divider[data-v-9bbedc41]{width:1px;height:32px;background:#334155;margin:0 12px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:16px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .toolbar-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .toolbar-btn .icon-svg[data-v-9bbedc41]{width:18px;height:18px;display:block}[data-scada-theme] .canvas-info[data-v-9bbedc41]{display:flex;align-items:center;gap:16px}[data-scada-theme] .info-text[data-v-9bbedc41]{font-size:12px;color:#64748b}[data-scada-theme] .component-library[data-v-92bb4e17]{width:260px;height:100%;background:#1e293b;border-right:1px solid #0f3460;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .library-header[data-v-92bb4e17]{padding:16px;line-height:50px;text-align:center;border-bottom:1px solid #0f3460}[data-scada-theme] .library-header h3[data-v-92bb4e17]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .library-content[data-v-92bb4e17]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .component-section[data-v-92bb4e17]{margin-bottom:24px}[data-scada-theme] .component-section[data-v-92bb4e17]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-92bb4e17]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .component-grid[data-v-92bb4e17]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}[data-scada-theme] .component-item[data-v-92bb4e17]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;background:#0f172a;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .component-item[data-v-92bb4e17]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 8px #3b82f64d}[data-scada-theme] .component-item[data-v-92bb4e17]:active{transform:translateY(0)}[data-scada-theme] .component-icon[data-v-92bb4e17]{font-size:24px;color:#e2e8f0}[data-scada-theme] .component-name[data-v-92bb4e17]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar{width:8px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-area[data-v-a869f6aa]{flex:1;display:flex;align-items:center;justify-content:center;background:#0f172a;overflow:auto;position:relative}[data-scada-theme] .canvas-container[data-v-a869f6aa]{position:relative;border:2px solid #334155;box-shadow:0 4px 12px #0000004d;transition:transform .2s ease}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar{width:8px;height:8px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-config-panel[data-v-f309895b]{width:100%;height:100%;background:#1e293b;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .panel-header[data-v-f309895b]{padding:16px;border-bottom:1px solid #0f3460}[data-scada-theme] .panel-header h3[data-v-f309895b]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .panel-content[data-v-f309895b]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .config-section[data-v-f309895b]{margin-bottom:24px}[data-scada-theme] .config-section[data-v-f309895b]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-f309895b]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .config-item[data-v-f309895b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}[data-scada-theme] .config-item label[data-v-f309895b]{font-size:13px;color:#cbd5e1;flex-shrink:0}[data-scada-theme] .config-select[data-v-f309895b]{width:160px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;font-size:13px}[data-scada-theme] .config-number[data-v-f309895b]{width:80px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;text-align:center;font-size:13px}[data-scada-theme] .config-color[data-v-f309895b]{width:50px;height:32px;border:1px solid #334155;border-radius:4px;cursor:pointer;background:#0f172a}[data-scada-theme] .slider-group[data-v-f309895b]{display:flex;align-items:center;gap:8px;flex:1;max-width:160px}[data-scada-theme] .config-slider[data-v-f309895b]{flex:1}[data-scada-theme] .value-display[data-v-f309895b]{font-size:12px;color:#94a3b8;min-width:30px;text-align:right}[data-scada-theme] .number-input-group[data-v-f309895b]{display:flex;gap:4px}[data-scada-theme] .adjust-btn[data-v-f309895b]{width:32px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px}[data-scada-theme] .adjust-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .upload-btn[data-v-f309895b]{width:50px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}[data-scada-theme] .upload-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .image-upload[data-v-f309895b]{display:flex;gap:8px}[data-scada-theme] .clear-btn[data-v-f309895b]{width:32px;height:32px;background:#dc2626;color:#fff;border:1px solid #991b1b;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}[data-scada-theme] .clear-btn[data-v-f309895b]:hover{background:#b91c1c;border-color:#7f1d1d}[data-scada-theme] .switch[data-v-f309895b]{position:relative;display:inline-block;width:48px;height:24px}[data-scada-theme] .switch input[data-v-f309895b]{opacity:0;width:0;height:0}[data-scada-theme] .switch .slider[data-v-f309895b]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#475569;transition:.3s;border-radius:24px}[data-scada-theme] .switch .slider[data-v-f309895b]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]{background-color:#3b82f6}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]:before{transform:translate(24px)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar{width:8px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tab-pane[data-v-def84c5f]{animation:fadeIn-def84c5f .2s}@keyframes fadeIn-def84c5f{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-def84c5f]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-def84c5f]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item[data-v-def84c5f]{margin-bottom:12px}[data-scada-theme] .property-item-inline[data-v-def84c5f]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline[data-v-def84c5f]:has(.checkbox-wrapper){justify-content:flex-start}[data-scada-theme] .property-item-inline label[data-v-def84c5f]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-def84c5f],[data-scada-theme] .property-item-inline select[data-v-def84c5f]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:0 0 auto}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:focus,[data-scada-theme] .property-item-inline select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .color-input-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px}[data-scada-theme] .property-item-inline .color-input-wrapper input[type=color][data-v-def84c5f]{width:40px;height:28px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .property-item-inline .color-input-wrapper .color-value[data-v-def84c5f]{flex:1;min-width:0;font-size:11px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .property-item label[data-v-def84c5f]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item input[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item input[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .property-item input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-row[data-v-def84c5f]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-def84c5f]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-def84c5f]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .checkbox-wrapper[data-v-def84c5f]{display:inline-flex;align-items:center;gap:6px}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-def84c5f]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;pointer-events:auto!important;-webkit-appearance:auto!important;-moz-appearance:auto!important;appearance:auto!important;opacity:1!important;z-index:1!important;position:relative!important;flex-shrink:0}[data-scada-theme] .checkbox-label[data-v-def84c5f]{font-size:12px;color:#cbd5e1;white-space:nowrap}[data-scada-theme] select[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] select option[data-v-def84c5f]{background:#0f172a;color:#e2e8f0}[data-scada-theme] .property-hint[data-v-def84c5f]{display:block;font-size:11px;color:#64748b;margin-top:2px;font-weight:400}[data-scada-theme] .tab-pane[data-v-5b515f8a]{animation:fadeIn-5b515f8a .2s}@keyframes fadeIn-5b515f8a{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-5b515f8a]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-5b515f8a]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item-inline[data-v-5b515f8a]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline label[data-v-5b515f8a]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-5b515f8a],[data-scada-theme] .property-item-inline select[data-v-5b515f8a]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:focus,[data-scada-theme] .property-item-inline select[data-v-5b515f8a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-5b515f8a]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-5b515f8a]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}[data-scada-theme] .checkbox-label[data-v-5b515f8a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .edge-properties-tab[data-v-e47f1784]{padding:0}[data-scada-theme] .property-section[data-v-e47f1784]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-e47f1784]:last-child{border-bottom:none;margin-bottom:0}[data-scada-theme] .section-title[data-v-e47f1784]{font-size:13px;font-weight:600;color:#e2e8f0;margin:0 0 12px;padding:0}[data-scada-theme] .property-item[data-v-e47f1784]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-e47f1784]:last-child{margin-bottom:0}[data-scada-theme] .property-label[data-v-e47f1784]{display:block;font-size:12px;color:#94a3b8;margin-bottom:6px;font-weight:500}[data-scada-theme] .color-input-wrapper[data-v-e47f1784]{display:flex;gap:8px;align-items:center}[data-scada-theme] .color-input[data-v-e47f1784]{width:40px;height:32px;border:1px solid #475569;border-radius:4px;cursor:pointer;background:#1e293b;padding:2px}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-text[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;font-family:Consolas,monospace}[data-scada-theme] .color-text[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .number-input-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:8px}[data-scada-theme] .property-input[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px}[data-scada-theme] .property-input[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .input-unit[data-v-e47f1784]{font-size:12px;color:#64748b;min-width:24px}[data-scada-theme] .property-select[data-v-e47f1784]{width:100%;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;cursor:pointer}[data-scada-theme] .property-select[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .slider-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:12px}[data-scada-theme] .property-slider[data-v-e47f1784]{flex:1;height:4px;background:#334155;border-radius:2px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}[data-scada-theme] .property-slider[data-v-e47f1784]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer}[data-scada-theme] .property-slider[data-v-e47f1784]::-moz-range-thumb{width:14px;height:14px;background:#3b82f6;border-radius:50%;border:none;cursor:pointer}[data-scada-theme] .slider-value[data-v-e47f1784]{font-size:12px;color:#94a3b8;min-width:40px;text-align:right}[data-scada-theme] .delete-btn[data-v-e47f1784]{width:100%;height:36px;background:#dc2626;border:none;border-radius:4px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .delete-btn[data-v-e47f1784]:hover{background:#b91c1c}[data-scada-theme] .delete-btn[data-v-e47f1784]:active{transform:scale(.98)}[data-scada-theme] .event-card[data-v-af7c633a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-af7c633a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-af7c633a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-af7c633a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-af7c633a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-af7c633a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-af7c633a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-af7c633a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-af7c633a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-af7c633a]{animation:slideDown-af7c633a .2s ease-out}@keyframes slideDown-af7c633a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .event-field[data-v-af7c633a]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}[data-scada-theme] .event-field[data-v-af7c633a]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-af7c633a]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-af7c633a],[data-scada-theme] .event-field select[data-v-af7c633a],[data-scada-theme] .event-field textarea[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .event-field input[data-v-af7c633a]:focus,[data-scada-theme] .event-field select[data-v-af7c633a]:focus,[data-scada-theme] .event-field textarea[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-title[data-v-af7c633a]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-af7c633a]:first-child{margin-top:0}[data-scada-theme] .field-hint[data-v-af7c633a]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-config[data-v-af7c633a]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-af7c633a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-af7c633a],[data-scada-theme] .condition-input[data-v-af7c633a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-af7c633a]:focus,[data-scada-theme] .condition-input[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .config-section[data-v-af7c633a]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .btn-config[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-af7c633a]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .selected-workflow-info[data-v-af7c633a]{margin-top:12px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .info-row[data-v-af7c633a]{display:flex;align-items:center;gap:8px;margin-bottom:12px}[data-scada-theme] .info-label[data-v-af7c633a]{font-size:12px;color:#94a3b8}[data-scada-theme] .info-value[data-v-af7c633a]{font-size:13px;color:#10b981;font-weight:500}[data-scada-theme] .modal-overlay[data-v-7884b850]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-7884b850 .2s ease-out}@keyframes fadeIn-7884b850{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-7884b850]{width:800px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-7884b850 .3s ease-out}@keyframes slideUp-7884b850{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-7884b850]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-7884b850]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-7884b850]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .device-point-selector[data-v-7884b850]{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;height:500px;padding:16px 24px;overflow:hidden}[data-scada-theme] .modal-footer[data-v-7884b850]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7884b850],[data-scada-theme] .btn-confirm[data-v-7884b850]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-7884b850]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-7884b850]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7884b850]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7884b850]:hover{background:#2563eb}[data-scada-theme] .btn-confirm[data-v-7884b850]:disabled{background:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .device-list-panel[data-v-7884b850],[data-scada-theme] .point-list-panel[data-v-7884b850]{display:flex;flex-direction:column;background:#1e293b;border:1px solid #334155;border-radius:6px;overflow:hidden}[data-scada-theme] .panel-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#334155;border-bottom:1px solid #475569}[data-scada-theme] .panel-header h4[data-v-7884b850]{margin:0;font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .device-count[data-v-7884b850],[data-scada-theme] .point-count[data-v-7884b850]{font-size:12px;color:#94a3b8;background:#1e293b;padding:2px 8px;border-radius:10px}[data-scada-theme] .search-box[data-v-7884b850]{padding:12px 16px;border-bottom:1px solid #334155}[data-scada-theme] .search-input[data-v-7884b850]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .search-input[data-v-7884b850]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .search-input[data-v-7884b850]::placeholder{color:#64748b}[data-scada-theme] .device-list[data-v-7884b850],[data-scada-theme] .point-list[data-v-7884b850]{flex:1;overflow-y:auto;padding:8px}[data-scada-theme] .device-item[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .device-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .device-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .device-item.offline[data-v-7884b850]{opacity:.6}[data-scada-theme] .device-info[data-v-7884b850]{flex:1}[data-scada-theme] .device-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .status-dot[data-v-7884b850]{width:8px;height:8px;border-radius:50%;background:#64748b}[data-scada-theme] .status-dot.online[data-v-7884b850]{background:#10b981;box-shadow:0 0 8px #10b98180}[data-scada-theme] .status-dot.offline[data-v-7884b850]{background:#64748b}[data-scada-theme] .status-dot.error[data-v-7884b850]{background:#ef4444;box-shadow:0 0 8px #ef444480}[data-scada-theme] .device-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .device-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .device-arrow[data-v-7884b850]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .device-item:hover .device-arrow[data-v-7884b850]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .point-item[data-v-7884b850]{padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .point-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .point-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .point-item.disabled[data-v-7884b850]{opacity:.5;cursor:not-allowed}[data-scada-theme] .point-info[data-v-7884b850]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .point-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0}[data-scada-theme] .access-mode[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:400}[data-scada-theme] .access-mode.read[data-v-7884b850]{background:#3b82f633;color:#60a5fa}[data-scada-theme] .access-mode.write[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .access-mode.readWrite[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .point-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .point-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .point-unit[data-v-7884b850]{color:#3b82f6}[data-scada-theme] .point-type[data-v-7884b850]{background:#334155;padding:2px 6px;border-radius:3px}[data-scada-theme] .point-value[data-v-7884b850]{font-size:12px;color:#94a3b8}[data-scada-theme] .point-value .value[data-v-7884b850]{color:#e2e8f0;font-weight:500;margin:0 4px}[data-scada-theme] .quality[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;margin-left:8px}[data-scada-theme] .quality.good[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .quality.bad[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .quality.uncertain[data-v-7884b850]{background:#f59e0b33;color:#fbbf24}[data-scada-theme] .empty-hint[data-v-7884b850]{text-align:center;padding:40px 20px;color:#64748b;font-size:13px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar{width:6px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-track,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .modal-overlay[data-v-ef9e0ee1]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-ef9e0ee1 .2s ease-out}@keyframes fadeIn-ef9e0ee1{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-ef9e0ee1]{width:600px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-ef9e0ee1 .3s ease-out}@keyframes slideUp-ef9e0ee1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-ef9e0ee1]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-ef9e0ee1]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-ef9e0ee1]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-ef9e0ee1]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .modal-footer[data-v-ef9e0ee1]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1],[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]:hover{background:#2563eb}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]{max-height:60vh;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-item[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .config-item label[data-v-ef9e0ee1]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .required[data-v-ef9e0ee1]{color:#ef4444;margin-left:2px}[data-scada-theme] .field-hint[data-v-ef9e0ee1]{font-size:11px;color:#64748b;margin-top:4px;line-height:1.4}[data-scada-theme] .field-hint.error[data-v-ef9e0ee1]{color:#ef4444}[data-scada-theme] .config-item select[data-v-ef9e0ee1],[data-scada-theme] .config-item input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .config-item select[data-v-ef9e0ee1]:focus,[data-scada-theme] .config-item input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .unit-config[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .checkbox-label[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;font-size:13px;color:#cbd5e1;cursor:pointer}[data-scada-theme] .checkbox-label input[type=checkbox][data-v-ef9e0ee1]{width:auto;cursor:pointer}[data-scada-theme] .custom-unit[data-v-ef9e0ee1]{margin-left:24px}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .mapping-details[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:12px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .range-rules[data-v-ef9e0ee1],[data-scada-theme] .enum-mappings[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .range-rule[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping input[data-v-ef9e0ee1]{flex:1;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:first-child,[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:nth-child(3){max-width:80px}[data-scada-theme] .range-separator[data-v-ef9e0ee1],[data-scada-theme] .range-arrow[data-v-ef9e0ee1],[data-scada-theme] .enum-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:14px;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]{padding:8px 16px;background:#334155;border:1px dashed #475569;border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;border-style:solid}[data-scada-theme] .mapping-preview[data-v-ef9e0ee1]{padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .mapping-preview label[data-v-ef9e0ee1]{display:block;font-size:12px;color:#94a3b8;margin-bottom:8px}[data-scada-theme] .preview-content[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .preview-item[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1e293b;border-radius:4px;font-size:12px}[data-scada-theme] .preview-input[data-v-ef9e0ee1]{color:#94a3b8;font-family:monospace}[data-scada-theme] .preview-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:12px}[data-scada-theme] .preview-output[data-v-ef9e0ee1]{color:#3b82f6;font-weight:500}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar{width:6px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .event-card[data-v-3731c19a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-3731c19a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-3731c19a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-3731c19a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-3731c19a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-3731c19a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-3731c19a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-3731c19a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-3731c19a]{animation:slideDown-3731c19a .2s ease-out}@keyframes slideDown-3731c19a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .property-item[data-v-3731c19a]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-3731c19a]:last-child{margin-bottom:0}[data-scada-theme] .property-item label[data-v-3731c19a]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item select[data-v-3731c19a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item select[data-v-3731c19a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .selected-point[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .point-main[data-v-3731c19a]{display:flex;align-items:center;gap:8px;font-size:13px}[data-scada-theme] .device-name[data-v-3731c19a]{color:#94a3b8;font-size:12px}[data-scada-theme] .point-name[data-v-3731c19a]{color:#e2e8f0;font-weight:500}[data-scada-theme] .point-details[data-v-3731c19a]{display:flex;gap:8px;font-size:11px;color:#64748b}[data-scada-theme] .point-code[data-v-3731c19a]{font-family:monospace}[data-scada-theme] .point-unit[data-v-3731c19a]{color:#3b82f6}[data-scada-theme] .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .selector-arrow[data-v-3731c19a]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .point-selector-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .mapping-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .mapping-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .mapping-summary[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .mapping-type-label[data-v-3731c19a]{font-size:13px;color:#e2e8f0;font-weight:500}[data-scada-theme] .mapping-detail[data-v-3731c19a]{font-size:11px;color:#64748b}[data-scada-theme] .mapping-trigger .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .mapping-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .dialog-overlay[data-v-90af9944]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-90af9944 .2s}@keyframes fadeIn-90af9944{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-content[data-v-90af9944]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-90af9944 .3s}@keyframes slideUp-90af9944{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-90af9944]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-90af9944]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-90af9944]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-90af9944]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-90af9944]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .btn-add-group[data-v-90af9944]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-90af9944]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-90af9944]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-90af9944]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-90af9944]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-90af9944]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-90af9944],[data-scada-theme] .group-field select[data-v-90af9944]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-90af9944]:focus,[data-scada-theme] .group-field select[data-v-90af9944]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-90af9944]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-90af9944]{width:60px;height:36px}[data-scada-theme] .color-value[data-v-90af9944]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .btn-delete-group[data-v-90af9944]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-90af9944]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .empty-hint[data-v-90af9944]{font-size:12px;color:#64748b;text-align:center;padding:16px;background:#0f172a;border-radius:4px;margin-bottom:12px}[data-scada-theme] .dialog-footer[data-v-90af9944]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-90af9944],[data-scada-theme] .btn-confirm[data-v-90af9944]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-90af9944]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-90af9944]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-90af9944]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-90af9944]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-add3567b]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-add3567b .2s}@keyframes fadeIn-add3567b{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-large[data-v-add3567b]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-content[data-v-add3567b]{background:#1e293b;border-radius:8px;width:90%;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-add3567b .3s}@keyframes slideUp-add3567b{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-add3567b]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-add3567b]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-add3567b]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body-split[data-v-add3567b]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden;padding:24px}[data-scada-theme] .code-editor-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-add3567b]{flex:1;resize:none;height:100%!important}[data-scada-theme] .code-textarea[data-v-add3567b]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-add3567b]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-add3567b]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-add3567b]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-add3567b]{color:#10b981}[data-scada-theme] .status-error[data-v-add3567b]{color:#ef4444}[data-scada-theme] .btn-test[data-v-add3567b]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-add3567b]:hover{background:#059669;border-color:#059669}[data-scada-theme] .code-preview-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-add3567b]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-add3567b]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-add3567b]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-add3567b]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-add3567b]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-add3567b]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-add3567b]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-add3567b]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-add3567b]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-add3567b]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-add3567b]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-add3567b]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-add3567b]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-add3567b],[data-scada-theme] .btn-confirm[data-v-add3567b]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-add3567b]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-add3567b]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-add3567b]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-add3567b]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-c9a88e33]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000}[data-scada-theme] .dialog-container[data-v-c9a88e33]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .dialog-header[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-c9a88e33]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-close[data-v-c9a88e33]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-c9a88e33]{flex:1;overflow-y:auto;padding:20px 24px}[data-scada-theme] .empty-state[data-v-c9a88e33]{text-align:center;padding:40px 20px;color:#64748b}[data-scada-theme] .empty-state p[data-v-c9a88e33]{margin:8px 0;font-size:14px}[data-scada-theme] .empty-state .hint[data-v-c9a88e33]{font-size:12px;color:#475569}[data-scada-theme] .workflow-list[data-v-c9a88e33]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .workflow-item[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .workflow-item[data-v-c9a88e33]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .workflow-item.selected[data-v-c9a88e33]{border-color:#10b981;background:#10b9811a}[data-scada-theme] .workflow-info[data-v-c9a88e33]{flex:1}[data-scada-theme] .workflow-name[data-v-c9a88e33]{font-size:15px;font-weight:500;color:#e2e8f0;margin-bottom:6px}[data-scada-theme] .workflow-meta[data-v-c9a88e33]{display:flex;gap:12px;font-size:12px;color:#64748b}[data-scada-theme] .workflow-id[data-v-c9a88e33]{color:#94a3b8}[data-scada-theme] .workflow-date[data-v-c9a88e33]{color:#64748b}[data-scada-theme] .workflow-actions[data-v-c9a88e33]{display:flex;gap:8px}[data-scada-theme] .btn-icon[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:1px solid #334155;border-radius:4px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-icon[data-v-c9a88e33]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .dialog-footer[data-v-c9a88e33]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-c9a88e33],[data-scada-theme] .btn-primary[data-v-c9a88e33]{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-c9a88e33]{background:transparent;border:1px solid #475569;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-c9a88e33]:hover{background:#334155;border-color:#64748b}[data-scada-theme] .btn-primary[data-v-c9a88e33]{background:#10b981;border:1px solid #10b981;color:#fff}[data-scada-theme] .btn-primary[data-v-c9a88e33]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-primary[data-v-c9a88e33]:disabled{background:#334155;border-color:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .property-panel[data-v-7d3281c0]{width:300px;height:100%;background:#1e293b;border-left:1px solid #0f3460;overflow-y:auto}[data-scada-theme] .empty-state[data-v-7d3281c0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#64748b;text-align:center;padding:24px}[data-scada-theme] .empty-state p[data-v-7d3281c0]{font-size:16px;margin-bottom:8px}[data-scada-theme] .empty-state .hint[data-v-7d3281c0]{font-size:12px;color:#475569}[data-scada-theme] .properties[data-v-7d3281c0]{padding:12px}[data-scada-theme] .panel-title[data-v-7d3281c0]{font-size:15px;font-weight:600;color:#e2e8f0;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-7d3281c0]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .hint-text[data-v-7d3281c0]{font-size:12px;color:#64748b;margin-bottom:12px;line-height:1.5}[data-scada-theme] .empty-hint[data-v-7d3281c0]{display:flex;justify-content:center;align-items:center;padding:24px 16px;color:#64748b;font-size:12px;text-align:center;background:#0f172a;border-radius:4px;margin-bottom:10px}[data-scada-theme] .property-item[data-v-7d3281c0]{margin-bottom:10px}[data-scada-theme] .property-item label[data-v-7d3281c0]{display:block;font-size:11px;color:#cbd5e1;margin-bottom:4px}[data-scada-theme] .property-item input[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item input[data-v-7d3281c0]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item select[data-v-7d3281c0],[data-scada-theme] .property-item textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item select[data-v-7d3281c0]:focus,[data-scada-theme] .property-item textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item textarea[data-v-7d3281c0]{resize:vertical;min-height:50px;font-family:Consolas,Monaco,monospace}[data-scada-theme] .property-row[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-7d3281c0]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tabs[data-v-7d3281c0]{display:flex;gap:3px;margin-bottom:12px;padding:3px;background:#0f172a;border-radius:5px}[data-scada-theme] .tab-btn[data-v-7d3281c0]{flex:1;padding:6px 10px;background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:12px;font-weight:500;border-radius:4px;transition:all .2s}[data-scada-theme] .tab-btn[data-v-7d3281c0]:hover{color:#cbd5e1;background:#1e293b}[data-scada-theme] .tab-btn.active[data-v-7d3281c0]{color:#fff;background:#3b82f6}[data-scada-theme] .tab-content[data-v-7d3281c0]{min-height:0}[data-scada-theme] .tab-pane[data-v-7d3281c0]{animation:fadeIn-7d3281c0 .2s}@keyframes fadeIn-7d3281c0{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown-7d3281c0{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}[data-scada-theme] .section-header h4[data-v-7d3281c0]{margin:0}[data-scada-theme] .btn-add[data-v-7d3281c0]{padding:5px 10px;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-add[data-v-7d3281c0]:hover{background:#2563eb}[data-scada-theme] .event-list[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .event-card[data-v-7d3281c0]{background:#0f172a;border:1px solid #334155;border-radius:5px;padding:10px;transition:all .2s}[data-scada-theme] .event-card[data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-7d3281c0]:hover{background:#3b82f60d;margin:-4px -6px 6px;padding:4px 6px 10px;border-radius:4px}[data-scada-theme] .header-left[data-v-7d3281c0]{display:flex;align-items:center;gap:6px}[data-scada-theme] .collapse-icon[data-v-7d3281c0]{font-size:9px;color:#64748b;transition:transform .2s;display:inline-block;width:10px}[data-scada-theme] .event-type-label[data-v-7d3281c0]{font-size:12px;font-weight:500;color:#e2e8f0}[data-scada-theme] .event-action-badge[data-v-7d3281c0]{font-size:10px;padding:2px 6px;background:#3b82f6;color:#fff;border-radius:8px}[data-scada-theme] .event-card-body[data-v-7d3281c0]{animation:slideDown-7d3281c0 .2s ease-out}[data-scada-theme] .event-index[data-v-7d3281c0]{font-size:12px;font-weight:600;color:#3b82f6}[data-scada-theme] .btn-remove[data-v-7d3281c0]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}[data-scada-theme] .event-field[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-7d3281c0]{font-size:11px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-7d3281c0],[data-scada-theme] .event-field select[data-v-7d3281c0],[data-scada-theme] .event-field textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .event-field input[data-v-7d3281c0]:focus,[data-scada-theme] .event-field select[data-v-7d3281c0]:focus,[data-scada-theme] .event-field textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .field-hint[data-v-7d3281c0]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-group[data-v-7d3281c0]{background:#1e293b;border-radius:4px;padding:12px;margin-bottom:12px}[data-scada-theme] .config-section[data-v-7d3281c0]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .section-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-7d3281c0]:first-child{margin-top:0}[data-scada-theme] .btn-config[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .condition-config[data-v-7d3281c0]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-7d3281c0]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-7d3281c0],[data-scada-theme] .condition-input[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-7d3281c0]:focus,[data-scada-theme] .condition-input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .event-title[data-v-7d3281c0]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:hover{border-color:#475569}[data-scada-theme] .code-textarea[data-v-7d3281c0]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;resize:vertical;min-height:120px;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .dialog-overlay[data-v-7d3281c0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-7d3281c0 .2s}[data-scada-theme] .dialog-content[data-v-7d3281c0]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-7d3281c0 .3s}[data-scada-theme] .dialog-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-7d3281c0]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-7d3281c0]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-7d3281c0]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-7d3281c0]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .btn-add-group[data-v-7d3281c0]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-7d3281c0]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-7d3281c0]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-7d3281c0]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-7d3281c0],[data-scada-theme] .group-field select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-7d3281c0]:focus,[data-scada-theme] .group-field select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-7d3281c0]{width:60px;height:36px}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .dialog-large[data-v-7d3281c0]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-body-split[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden}[data-scada-theme] .code-editor-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-7d3281c0]{flex:1;resize:none;height:100%!important}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-7d3281c0]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-7d3281c0]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-7d3281c0]{color:#10b981}[data-scada-theme] .status-error[data-v-7d3281c0]{color:#ef4444}[data-scada-theme] .btn-test[data-v-7d3281c0]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-7d3281c0]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-clear[data-v-7d3281c0]{padding:4px 12px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:12px;transition:all .2s}[data-scada-theme] .btn-clear[data-v-7d3281c0]:hover{background:#334155;color:#cbd5e1}[data-scada-theme] .code-preview-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-7d3281c0]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-7d3281c0]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-7d3281c0]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-7d3281c0]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-7d3281c0]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-7d3281c0]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-7d3281c0]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-7d3281c0]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-7d3281c0]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-7d3281c0]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7d3281c0],[data-scada-theme] .btn-confirm[data-v-7d3281c0]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-7d3281c0]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-7d3281c0]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7d3281c0]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7d3281c0]:hover{background:#2563eb;border-color:#2563eb}@keyframes slideUp-7d3281c0{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .scada-footer[data-v-52b6d4b1]{height:32px;background:#1e293b;border-top:1px solid #0f3460;display:flex;align-items:center;padding:0 32px;flex-shrink:0}[data-scada-theme] .footer-content[data-v-52b6d4b1]{width:100%;display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .footer-left[data-v-52b6d4b1],[data-scada-theme] .footer-right[data-v-52b6d4b1]{display:flex;align-items:center;gap:12px}[data-scada-theme] .copyright[data-v-52b6d4b1],[data-scada-theme] .license[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .divider[data-v-52b6d4b1]{color:#475569!important;font-size:12px}[data-scada-theme] .contact-item[data-v-52b6d4b1]{display:flex;align-items:center;gap:4px}[data-scada-theme] .contact-item .icon[data-v-52b6d4b1]{font-size:12px}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]:hover{color:#3b82f6!important;cursor:pointer}[data-scada-theme] .authorized-icon[data-v-52b6d4b1]{font-size:14px;margin-right:6px}[data-scada-theme] .authorized-text[data-v-52b6d4b1]{font-size:12px;color:#10b981!important;font-weight:500}[data-scada-theme] .expiry-text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .element-selector-overlay[data-v-882704dd]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}[data-scada-theme] .element-selector-dialog[data-v-882704dd]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 24px #0000004d}[data-scada-theme] .dialog-header[data-v-882704dd]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-882704dd]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-882704dd]{width:28px;height:28px;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-882704dd]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-882704dd]{flex:1;padding:20px;display:flex;flex-direction:column;gap:16px;overflow:hidden}[data-scada-theme] .search-box input[data-v-882704dd]{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px}[data-scada-theme] .search-box input[data-v-882704dd]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .element-list[data-v-882704dd]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}[data-scada-theme] .element-item[data-v-882704dd]{display:flex;align-items:center;gap:12px;padding:12px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .element-item[data-v-882704dd]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .element-item.active[data-v-882704dd]{border-color:#3b82f6;background:#3b82f61a}[data-scada-theme] .element-icon[data-v-882704dd]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border-radius:6px;font-size:20px;flex-shrink:0}[data-scada-theme] .element-info[data-v-882704dd]{flex:1}[data-scada-theme] .element-name[data-v-882704dd]{font-size:14px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .element-type[data-v-882704dd]{font-size:12px;color:#94a3b8}[data-scada-theme] .element-check[data-v-882704dd]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#3b82f6;border-radius:50%;color:#fff;font-size:14px;font-weight:700}[data-scada-theme] .empty-state[data-v-882704dd]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;padding:40px 20px}[data-scada-theme] .empty-state p[data-v-882704dd]{margin:0;font-size:14px}[data-scada-theme] .empty-hint[data-v-882704dd]{margin-top:8px;font-size:12px;color:#475569}[data-scada-theme] .dialog-footer[data-v-882704dd]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-882704dd],[data-scada-theme] .btn-primary[data-v-882704dd]{padding:8px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-882704dd]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-882704dd]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-882704dd]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-882704dd]:hover{background:#2563eb}[data-scada-theme] .btn-primary[data-v-882704dd]:disabled{background:#475569;cursor:not-allowed;opacity:.5}[data-scada-theme] .node-config[data-v-fa65eb56]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-fa65eb56]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-fa65eb56]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-fa65eb56]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-fa65eb56]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-fa65eb56]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-fa65eb56]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-fa65eb56]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-fa65eb56],[data-scada-theme] .config-group textarea[data-v-fa65eb56],[data-scada-theme] .config-group select[data-v-fa65eb56]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-fa65eb56]:focus,[data-scada-theme] .config-group textarea[data-v-fa65eb56]:focus,[data-scada-theme] .config-group select[data-v-fa65eb56]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-42e029d4]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-42e029d4]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-42e029d4]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-42e029d4]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-42e029d4]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-42e029d4]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-42e029d4]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-42e029d4]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-42e029d4],[data-scada-theme] .config-group textarea[data-v-42e029d4],[data-scada-theme] .config-group select[data-v-42e029d4]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-42e029d4]:focus,[data-scada-theme] .config-group textarea[data-v-42e029d4]:focus,[data-scada-theme] .config-group select[data-v-42e029d4]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-15975920]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-15975920]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-15975920],[data-scada-theme] .config-group textarea[data-v-15975920],[data-scada-theme] .config-group select[data-v-15975920]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-15975920]:focus,[data-scada-theme] .config-group textarea[data-v-15975920]:focus,[data-scada-theme] .config-group select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .branches-section[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .section-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-15975920]{font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .btn-add[data-v-15975920]{padding:4px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add[data-v-15975920]:hover{background:#2563eb}[data-scada-theme] .branch-list[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .branch-item[data-v-15975920]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px}[data-scada-theme] .branch-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}[data-scada-theme] .branch-number[data-v-15975920]{font-size:12px;color:#3b82f6;font-weight:500}[data-scada-theme] .btn-remove[data-v-15975920]{width:20px;height:20px;background:#ef4444;color:#fff;border:none;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-15975920]:hover{background:#dc2626}[data-scada-theme] .branch-config[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-row[data-v-15975920]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .config-row label[data-v-15975920]{font-size:12px;color:#94a3b8}[data-scada-theme] .config-row input[data-v-15975920],[data-scada-theme] .config-row select[data-v-15975920]{padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .config-row input[data-v-15975920]:focus,[data-scada-theme] .config-row select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .default-branch-label[data-v-15975920]{font-size:12px;color:#94a3b8;text-align:center;padding:8px;background:#1e293b;border-radius:4px}[data-scada-theme] .node-config[data-v-4c312eea]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-4c312eea]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-4c312eea]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-4c312eea],[data-scada-theme] .config-group textarea[data-v-4c312eea],[data-scada-theme] .config-group select[data-v-4c312eea]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-4c312eea]:focus,[data-scada-theme] .config-group textarea[data-v-4c312eea]:focus,[data-scada-theme] .config-group select[data-v-4c312eea]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .config-group textarea[data-v-4c312eea]{resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .node-config[data-v-f7115383]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-f7115383]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-f7115383]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group textarea[data-v-f7115383]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .config-group textarea[data-v-f7115383]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .code-hint[data-v-f7115383]{padding:12px;background:#3b82f61a;border-left:3px solid #3b82f6;border-radius:4px}[data-scada-theme] .code-hint p[data-v-f7115383]{margin:0 0 8px;font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .code-hint ul[data-v-f7115383]{margin:0;padding-left:20px}[data-scada-theme] .code-hint li[data-v-f7115383]{font-size:12px;color:#64748b;margin-bottom:4px}[data-scada-theme] .node-config[data-v-323381bc]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-323381bc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-323381bc]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-323381bc],[data-scada-theme] .config-group select[data-v-323381bc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-323381bc]:focus,[data-scada-theme] .config-group select[data-v-323381bc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-d102fb63]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-d102fb63]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-d102fb63]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-d102fb63],[data-scada-theme] .config-group select[data-v-d102fb63]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-d102fb63]:focus,[data-scada-theme] .config-group select[data-v-d102fb63]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .timer-hint[data-v-d102fb63]{padding:12px;background:#faad141a;border-left:3px solid #faad14;border-radius:4px}[data-scada-theme] .timer-hint p[data-v-d102fb63]{margin:0;font-size:12px;color:#94a3b8}[data-scada-theme] .timer-hint.warning[data-v-d102fb63]{background:#ef44441a;border-left-color:#ef4444}[data-scada-theme] .property-panel[data-v-8304acbc]{width:300px;background:#1e293b;border-left:1px solid #334155;display:flex;flex-direction:column}[data-scada-theme] .property-panel h3[data-v-8304acbc]{margin:0;padding:16px;font-size:14px;font-weight:600;color:#e2e8f0;border-bottom:1px solid #334155}[data-scada-theme] .property-content[data-v-8304acbc]{padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}[data-scada-theme] .property-group[data-v-8304acbc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .property-group label[data-v-8304acbc]{font-size:13px;color:#94a3b8}[data-scada-theme] .property-group input[data-v-8304acbc],[data-scada-theme] .property-group textarea[data-v-8304acbc],[data-scada-theme] .property-group select[data-v-8304acbc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .property-group input[data-v-8304acbc]:focus,[data-scada-theme] .property-group textarea[data-v-8304acbc]:focus,[data-scada-theme] .property-group select[data-v-8304acbc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .property-group input[data-v-8304acbc]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-empty[data-v-8304acbc]{flex:1;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:13px}[data-scada-theme] .divider[data-v-8304acbc]{height:1px;background:#334155;margin:8px 0}[data-scada-theme] .toolbar[data-v-b3e0a4fc]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#1e293b;border-bottom:1px solid #334155}[data-scada-theme] .toolbar-left[data-v-b3e0a4fc]{display:flex;align-items:center;gap:24px}[data-scada-theme] .toolbar-left h2[data-v-b3e0a4fc]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .toolbar-right[data-v-b3e0a4fc]{display:flex;gap:12px}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc],[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]:hover{background:#2563eb}[data-scada-theme] .btn-close[data-v-b3e0a4fc]{width:36px;height:36px;padding:0;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:8px}[data-scada-theme] .btn-close[data-v-b3e0a4fc]:hover{background:#475569;border-color:#64748b;color:#e2e8f0}[data-scada-theme] .close-icon[data-v-b3e0a4fc]{font-size:24px;line-height:1}[data-scada-theme] .menu-overlay[data-v-aa6fccf8]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}[data-scada-theme] .add-node-menu[data-v-aa6fccf8]{position:fixed;z-index:1000;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:280px;max-width:320px}[data-scada-theme] .menu-header[data-v-aa6fccf8]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #334155;color:#e2e8f0;font-size:14px;font-weight:600}[data-scada-theme] .btn-close[data-v-aa6fccf8]{width:24px;height:24px;background:transparent;border:none;color:#94a3b8;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-aa6fccf8]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .menu-list[data-v-aa6fccf8]{padding:8px}[data-scada-theme] .menu-item[data-v-aa6fccf8]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .menu-item[data-v-aa6fccf8]:hover{background:#334155}[data-scada-theme] .menu-item-icon[data-v-aa6fccf8]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:18px;flex-shrink:0}[data-scada-theme] .node-icon-getProperty[data-v-aa6fccf8]{background:#1890ff1a}[data-scada-theme] .node-icon-setProperty[data-v-aa6fccf8]{background:#13c2c21a}[data-scada-theme] .node-icon-condition[data-v-aa6fccf8]{background:#faad141a}[data-scada-theme] .node-icon-httpRequest[data-v-aa6fccf8]{background:#722ed11a}[data-scada-theme] .node-icon-customCode[data-v-aa6fccf8]{background:#eb2f961a}[data-scada-theme] .node-icon-timer[data-v-aa6fccf8]{background:#52c41a1a}[data-scada-theme] .node-icon-clearTimer[data-v-aa6fccf8]{background:#ff4d4f1a}[data-scada-theme] .menu-item-info[data-v-aa6fccf8]{flex:1}[data-scada-theme] .menu-item-name[data-v-aa6fccf8]{font-size:14px;color:#e2e8f0;font-weight:500}[data-scada-theme] .menu-item-desc[data-v-aa6fccf8]{font-size:12px;color:#94a3b8;margin-top:2px}[data-scada-theme] .workflow-editor[data-v-649349a2]{display:flex;flex-direction:column;height:100vh;background:#0f172a;color:#e2e8f0}[data-scada-theme] .editor-main[data-v-649349a2]{display:flex;flex:1;overflow:hidden}[data-scada-theme] .canvas-area[data-v-649349a2]{flex:1;position:relative;overflow:hidden;background:#0f172a}[data-scada-theme] #workflow-container[data-v-649349a2]{width:100%;height:100%}[data-scada-theme] .workflow-dialog-overlay[data-v-4e7f6ab7]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:9999;display:flex;align-items:center;justify-content:center}[data-scada-theme] .workflow-dialog[data-v-4e7f6ab7]{width:100vw;height:100vh;background:#0f172a;overflow:hidden}.scada-layout[data-v-94b1d989]{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;background:#1a1a2e}[data-scada-theme] .scada-canvas-container[data-v-94b1d989]{flex:1;display:flex;background:#0f172a;overflow:hidden;min-height:0}[data-scada-theme][data-v-94b1d989] .x6-node-selected{outline:2px solid #3b82f6;outline-offset:2px;box-shadow:0 0 0 4px #3b82f626,0 0 12px #3b82f64d;transition:outline .15s ease,box-shadow .15s ease}[data-scada-theme][data-v-94b1d989] .x6-node-selected rect,[data-scada-theme][data-v-94b1d989] .x6-node-selected circle,[data-scada-theme][data-v-94b1d989] .x6-node-selected ellipse{filter:brightness(1.05)}.scada-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);padding:12px 24px;border-radius:6px;color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:9999;opacity:0;transition:all .3s ease;pointer-events:none}.scada-toast.show{transform:translate(-50%) translateY(0);opacity:1}.scada-toast-success{background:linear-gradient(135deg,#10b981,#059669)}.scada-toast-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.scada-toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes edge-flow-94b1d989{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}[data-scada-theme][data-v-94b1d989] .x6-edge path{transition:stroke .3s ease,stroke-width .3s ease}[data-scada-theme][data-v-94b1d989] .edge-flow-slow{animation:edge-flow-94b1d989 4s linear infinite}[data-scada-theme][data-v-94b1d989] .edge-flow-normal{animation:edge-flow-94b1d989 2s linear infinite}[data-scada-theme][data-v-94b1d989] .edge-flow-fast{animation:edge-flow-94b1d989 1s linear infinite}.scada-layout[data-scada-theme=dark]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;color:#e2e8f0!important;font-size:14px!important;line-height:1.5!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:none!important;display:flex!important;flex-direction:column!important;flex:1!important;width:100%!important;height:100%!important;min-height:100vh!important;background:#1a1a2e!important;overflow:hidden!important;position:relative!important}.scada-layout[data-scada-theme=dark] *,.scada-layout[data-scada-theme=dark] *:before,.scada-layout[data-scada-theme=dark] *:after{box-sizing:border-box!important;margin:0;padding:0}.scada-layout[data-scada-theme=dark]>*{box-sizing:border-box!important}.scada-layout[data-scada-theme=dark]>.scada-header,.scada-layout[data-scada-theme=dark]>.scada-footer{color:#e2e8f0!important;margin:0!important}.scada-layout[data-scada-theme=dark] .property-panel>.panel-header,.scada-layout[data-scada-theme=dark] .component-library>.library-header,.scada-layout[data-scada-theme=dark] .canvas-config-panel>.config-header{color:#e2e8f0!important;margin:0!important;padding:0!important}.scada-layout[data-scada-theme=dark] .scada-header h1,.scada-layout[data-scada-theme=dark] .scada-header h2,.scada-layout[data-scada-theme=dark] .scada-header h3,.scada-layout[data-scada-theme=dark] .scada-header h4{color:#e2e8f0!important;margin:0!important;padding:0!important;font-weight:600!important}.scada-layout[data-scada-theme=dark] .canvas-area input:not([class*=ant-]):not([type=range]):not([type=color]):not([type=checkbox]),.scada-layout[data-scada-theme=dark] .canvas-area select:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area textarea:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area button:not([class*=ant-]){-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;outline:none!important;border:none!important;background:none!important;margin:0!important;padding:0!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important}.scada-layout[data-scada-theme=dark] .canvas-area label,.scada-layout[data-scada-theme=dark] .canvas-area span,.scada-layout[data-scada-theme=dark] .canvas-area p,.scada-layout[data-scada-theme=dark] .canvas-area div{color:inherit!important;font-family:inherit!important;line-height:normal!important}.scada-layout[data-scada-theme] ::-webkit-scrollbar{width:8px;height:8px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}.scada-layout[data-scada-theme] ::-webkit-scrollbar-corner{background:#0f172a}.scada-layout .x6-node-selected rect{stroke:#3b82f6!important;stroke-width:2!important;filter:drop-shadow(0 0 8px rgba(59,130,246,.6))!important}.scada-layout .x6-edge-selected path{stroke:#3b82f6!important;stroke-width:3!important}.scada-layout .x6-widget-selection-box{border:2px solid #3b82f6!important;background-color:#3b82f61a!important}.scada-layout[data-scada-theme] input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(90deg,#475569,#334155);border-radius:2px;outline:none;opacity:.9;transition:opacity .2s}.scada-layout[data-scada-theme] input[type=range]:hover{opacity:1}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}
1
+ [data-scada-theme] .scada-header[data-v-9bbedc41]{height:60px;background:#16213e;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #0f3460;gap:24px}[data-scada-theme] .header-left[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .logo[data-v-9bbedc41]{font-size:20px;font-weight:600;margin:0;color:#e2e8f0}[data-scada-theme] .version[data-v-9bbedc41]{font-size:12px;color:#64748b;padding:2px 8px;background:#0f172a;border-radius:4px}[data-scada-theme] .header-center[data-v-9bbedc41]{flex:1;display:flex;justify-content:center;align-items:center}[data-scada-theme] .header-right[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .tool-group[data-v-9bbedc41]{display:flex;gap:8px}[data-scada-theme] .header-btn[data-v-9bbedc41]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s;font-size:13px}[data-scada-theme] .header-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-1px)}[data-scada-theme] .header-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .tip[data-v-9bbedc41]{font-size:13px;color:#94a3b8}[data-scada-theme] .divider[data-v-9bbedc41]{width:1px;height:32px;background:#334155;margin:0 12px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:16px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .toolbar-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .toolbar-btn .icon-svg[data-v-9bbedc41]{width:18px;height:18px;display:block}[data-scada-theme] .canvas-info[data-v-9bbedc41]{display:flex;align-items:center;gap:16px}[data-scada-theme] .info-text[data-v-9bbedc41]{font-size:12px;color:#64748b}[data-scada-theme] .component-library[data-v-92bb4e17]{width:260px;height:100%;background:#1e293b;border-right:1px solid #0f3460;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .library-header[data-v-92bb4e17]{padding:16px;line-height:50px;text-align:center;border-bottom:1px solid #0f3460}[data-scada-theme] .library-header h3[data-v-92bb4e17]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .library-content[data-v-92bb4e17]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .component-section[data-v-92bb4e17]{margin-bottom:24px}[data-scada-theme] .component-section[data-v-92bb4e17]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-92bb4e17]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .component-grid[data-v-92bb4e17]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}[data-scada-theme] .component-item[data-v-92bb4e17]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;background:#0f172a;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .component-item[data-v-92bb4e17]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 8px #3b82f64d}[data-scada-theme] .component-item[data-v-92bb4e17]:active{transform:translateY(0)}[data-scada-theme] .component-icon[data-v-92bb4e17]{font-size:24px;color:#e2e8f0}[data-scada-theme] .component-name[data-v-92bb4e17]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar{width:8px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-area[data-v-a869f6aa]{flex:1;display:flex;align-items:center;justify-content:center;background:#0f172a;overflow:auto;position:relative}[data-scada-theme] .canvas-container[data-v-a869f6aa]{position:relative;border:2px solid #334155;box-shadow:0 4px 12px #0000004d;transition:transform .2s ease}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar{width:8px;height:8px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-config-panel[data-v-f309895b]{width:100%;height:100%;background:#1e293b;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .panel-header[data-v-f309895b]{padding:16px;border-bottom:1px solid #0f3460}[data-scada-theme] .panel-header h3[data-v-f309895b]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .panel-content[data-v-f309895b]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .config-section[data-v-f309895b]{margin-bottom:24px}[data-scada-theme] .config-section[data-v-f309895b]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-f309895b]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .config-item[data-v-f309895b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}[data-scada-theme] .config-item label[data-v-f309895b]{font-size:13px;color:#cbd5e1;flex-shrink:0}[data-scada-theme] .config-select[data-v-f309895b]{width:160px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;font-size:13px}[data-scada-theme] .config-number[data-v-f309895b]{width:80px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;text-align:center;font-size:13px}[data-scada-theme] .config-color[data-v-f309895b]{width:50px;height:32px;border:1px solid #334155;border-radius:4px;cursor:pointer;background:#0f172a}[data-scada-theme] .slider-group[data-v-f309895b]{display:flex;align-items:center;gap:8px;flex:1;max-width:160px}[data-scada-theme] .config-slider[data-v-f309895b]{flex:1}[data-scada-theme] .value-display[data-v-f309895b]{font-size:12px;color:#94a3b8;min-width:30px;text-align:right}[data-scada-theme] .number-input-group[data-v-f309895b]{display:flex;gap:4px}[data-scada-theme] .adjust-btn[data-v-f309895b]{width:32px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px}[data-scada-theme] .adjust-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .upload-btn[data-v-f309895b]{width:50px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}[data-scada-theme] .upload-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .image-upload[data-v-f309895b]{display:flex;gap:8px}[data-scada-theme] .clear-btn[data-v-f309895b]{width:32px;height:32px;background:#dc2626;color:#fff;border:1px solid #991b1b;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}[data-scada-theme] .clear-btn[data-v-f309895b]:hover{background:#b91c1c;border-color:#7f1d1d}[data-scada-theme] .switch[data-v-f309895b]{position:relative;display:inline-block;width:48px;height:24px}[data-scada-theme] .switch input[data-v-f309895b]{opacity:0;width:0;height:0}[data-scada-theme] .switch .slider[data-v-f309895b]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#475569;transition:.3s;border-radius:24px}[data-scada-theme] .switch .slider[data-v-f309895b]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]{background-color:#3b82f6}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]:before{transform:translate(24px)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar{width:8px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tab-pane[data-v-def84c5f]{animation:fadeIn-def84c5f .2s}@keyframes fadeIn-def84c5f{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-def84c5f]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-def84c5f]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item[data-v-def84c5f]{margin-bottom:12px}[data-scada-theme] .property-item-inline[data-v-def84c5f]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline[data-v-def84c5f]:has(.checkbox-wrapper){justify-content:flex-start}[data-scada-theme] .property-item-inline label[data-v-def84c5f]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-def84c5f],[data-scada-theme] .property-item-inline select[data-v-def84c5f]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:0 0 auto}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:focus,[data-scada-theme] .property-item-inline select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .color-input-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px}[data-scada-theme] .property-item-inline .color-input-wrapper input[type=color][data-v-def84c5f]{width:40px;height:28px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .property-item-inline .color-input-wrapper .color-value[data-v-def84c5f]{flex:1;min-width:0;font-size:11px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .property-item label[data-v-def84c5f]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item input[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item input[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .property-item input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-row[data-v-def84c5f]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-def84c5f]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-def84c5f]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .checkbox-wrapper[data-v-def84c5f]{display:inline-flex;align-items:center;gap:6px}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-def84c5f]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;pointer-events:auto!important;-webkit-appearance:auto!important;-moz-appearance:auto!important;appearance:auto!important;opacity:1!important;z-index:1!important;position:relative!important;flex-shrink:0}[data-scada-theme] .checkbox-label[data-v-def84c5f]{font-size:12px;color:#cbd5e1;white-space:nowrap}[data-scada-theme] select[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] select option[data-v-def84c5f]{background:#0f172a;color:#e2e8f0}[data-scada-theme] .property-hint[data-v-def84c5f]{display:block;font-size:11px;color:#64748b;margin-top:2px;font-weight:400}[data-scada-theme] .tab-pane[data-v-5b515f8a]{animation:fadeIn-5b515f8a .2s}@keyframes fadeIn-5b515f8a{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-5b515f8a]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-5b515f8a]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item-inline[data-v-5b515f8a]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline label[data-v-5b515f8a]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-5b515f8a],[data-scada-theme] .property-item-inline select[data-v-5b515f8a]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:focus,[data-scada-theme] .property-item-inline select[data-v-5b515f8a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-5b515f8a]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-5b515f8a]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}[data-scada-theme] .checkbox-label[data-v-5b515f8a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .edge-properties-tab[data-v-e47f1784]{padding:0}[data-scada-theme] .property-section[data-v-e47f1784]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-e47f1784]:last-child{border-bottom:none;margin-bottom:0}[data-scada-theme] .section-title[data-v-e47f1784]{font-size:13px;font-weight:600;color:#e2e8f0;margin:0 0 12px;padding:0}[data-scada-theme] .property-item[data-v-e47f1784]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-e47f1784]:last-child{margin-bottom:0}[data-scada-theme] .property-label[data-v-e47f1784]{display:block;font-size:12px;color:#94a3b8;margin-bottom:6px;font-weight:500}[data-scada-theme] .color-input-wrapper[data-v-e47f1784]{display:flex;gap:8px;align-items:center}[data-scada-theme] .color-input[data-v-e47f1784]{width:40px;height:32px;border:1px solid #475569;border-radius:4px;cursor:pointer;background:#1e293b;padding:2px}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-text[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;font-family:Consolas,monospace}[data-scada-theme] .color-text[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .number-input-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:8px}[data-scada-theme] .property-input[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px}[data-scada-theme] .property-input[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .input-unit[data-v-e47f1784]{font-size:12px;color:#64748b;min-width:24px}[data-scada-theme] .property-select[data-v-e47f1784]{width:100%;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;cursor:pointer}[data-scada-theme] .property-select[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .slider-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:12px}[data-scada-theme] .property-slider[data-v-e47f1784]{flex:1;height:4px;background:#334155;border-radius:2px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}[data-scada-theme] .property-slider[data-v-e47f1784]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer}[data-scada-theme] .property-slider[data-v-e47f1784]::-moz-range-thumb{width:14px;height:14px;background:#3b82f6;border-radius:50%;border:none;cursor:pointer}[data-scada-theme] .slider-value[data-v-e47f1784]{font-size:12px;color:#94a3b8;min-width:40px;text-align:right}[data-scada-theme] .delete-btn[data-v-e47f1784]{width:100%;height:36px;background:#dc2626;border:none;border-radius:4px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .delete-btn[data-v-e47f1784]:hover{background:#b91c1c}[data-scada-theme] .delete-btn[data-v-e47f1784]:active{transform:scale(.98)}[data-scada-theme] .event-card[data-v-af7c633a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-af7c633a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-af7c633a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-af7c633a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-af7c633a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-af7c633a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-af7c633a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-af7c633a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-af7c633a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-af7c633a]{animation:slideDown-af7c633a .2s ease-out}@keyframes slideDown-af7c633a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .event-field[data-v-af7c633a]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}[data-scada-theme] .event-field[data-v-af7c633a]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-af7c633a]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-af7c633a],[data-scada-theme] .event-field select[data-v-af7c633a],[data-scada-theme] .event-field textarea[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .event-field input[data-v-af7c633a]:focus,[data-scada-theme] .event-field select[data-v-af7c633a]:focus,[data-scada-theme] .event-field textarea[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-title[data-v-af7c633a]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-af7c633a]:first-child{margin-top:0}[data-scada-theme] .field-hint[data-v-af7c633a]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-config[data-v-af7c633a]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-af7c633a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-af7c633a],[data-scada-theme] .condition-input[data-v-af7c633a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-af7c633a]:focus,[data-scada-theme] .condition-input[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .config-section[data-v-af7c633a]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .btn-config[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-af7c633a]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .selected-workflow-info[data-v-af7c633a]{margin-top:12px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .info-row[data-v-af7c633a]{display:flex;align-items:center;gap:8px;margin-bottom:12px}[data-scada-theme] .info-label[data-v-af7c633a]{font-size:12px;color:#94a3b8}[data-scada-theme] .info-value[data-v-af7c633a]{font-size:13px;color:#10b981;font-weight:500}[data-scada-theme] .modal-overlay[data-v-7884b850]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-7884b850 .2s ease-out}@keyframes fadeIn-7884b850{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-7884b850]{width:800px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-7884b850 .3s ease-out}@keyframes slideUp-7884b850{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-7884b850]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-7884b850]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-7884b850]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .device-point-selector[data-v-7884b850]{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;height:500px;padding:16px 24px;overflow:hidden}[data-scada-theme] .modal-footer[data-v-7884b850]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7884b850],[data-scada-theme] .btn-confirm[data-v-7884b850]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-7884b850]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-7884b850]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7884b850]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7884b850]:hover{background:#2563eb}[data-scada-theme] .btn-confirm[data-v-7884b850]:disabled{background:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .device-list-panel[data-v-7884b850],[data-scada-theme] .point-list-panel[data-v-7884b850]{display:flex;flex-direction:column;background:#1e293b;border:1px solid #334155;border-radius:6px;overflow:hidden}[data-scada-theme] .panel-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#334155;border-bottom:1px solid #475569}[data-scada-theme] .panel-header h4[data-v-7884b850]{margin:0;font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .device-count[data-v-7884b850],[data-scada-theme] .point-count[data-v-7884b850]{font-size:12px;color:#94a3b8;background:#1e293b;padding:2px 8px;border-radius:10px}[data-scada-theme] .search-box[data-v-7884b850]{padding:12px 16px;border-bottom:1px solid #334155}[data-scada-theme] .search-input[data-v-7884b850]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .search-input[data-v-7884b850]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .search-input[data-v-7884b850]::placeholder{color:#64748b}[data-scada-theme] .device-list[data-v-7884b850],[data-scada-theme] .point-list[data-v-7884b850]{flex:1;overflow-y:auto;padding:8px}[data-scada-theme] .device-item[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .device-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .device-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .device-item.offline[data-v-7884b850]{opacity:.6}[data-scada-theme] .device-info[data-v-7884b850]{flex:1}[data-scada-theme] .device-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .status-dot[data-v-7884b850]{width:8px;height:8px;border-radius:50%;background:#64748b}[data-scada-theme] .status-dot.online[data-v-7884b850]{background:#10b981;box-shadow:0 0 8px #10b98180}[data-scada-theme] .status-dot.offline[data-v-7884b850]{background:#64748b}[data-scada-theme] .status-dot.error[data-v-7884b850]{background:#ef4444;box-shadow:0 0 8px #ef444480}[data-scada-theme] .device-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .device-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .device-arrow[data-v-7884b850]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .device-item:hover .device-arrow[data-v-7884b850]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .point-item[data-v-7884b850]{padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .point-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .point-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .point-item.disabled[data-v-7884b850]{opacity:.5;cursor:not-allowed}[data-scada-theme] .point-info[data-v-7884b850]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .point-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0}[data-scada-theme] .access-mode[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:400}[data-scada-theme] .access-mode.read[data-v-7884b850]{background:#3b82f633;color:#60a5fa}[data-scada-theme] .access-mode.write[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .access-mode.readWrite[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .point-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .point-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .point-unit[data-v-7884b850]{color:#3b82f6}[data-scada-theme] .point-type[data-v-7884b850]{background:#334155;padding:2px 6px;border-radius:3px}[data-scada-theme] .point-value[data-v-7884b850]{font-size:12px;color:#94a3b8}[data-scada-theme] .point-value .value[data-v-7884b850]{color:#e2e8f0;font-weight:500;margin:0 4px}[data-scada-theme] .quality[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;margin-left:8px}[data-scada-theme] .quality.good[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .quality.bad[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .quality.uncertain[data-v-7884b850]{background:#f59e0b33;color:#fbbf24}[data-scada-theme] .empty-hint[data-v-7884b850]{text-align:center;padding:40px 20px;color:#64748b;font-size:13px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar{width:6px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-track,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .modal-overlay[data-v-ef9e0ee1]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-ef9e0ee1 .2s ease-out}@keyframes fadeIn-ef9e0ee1{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-ef9e0ee1]{width:600px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-ef9e0ee1 .3s ease-out}@keyframes slideUp-ef9e0ee1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-ef9e0ee1]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-ef9e0ee1]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-ef9e0ee1]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-ef9e0ee1]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .modal-footer[data-v-ef9e0ee1]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1],[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]:hover{background:#2563eb}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]{max-height:60vh;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-item[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .config-item label[data-v-ef9e0ee1]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .required[data-v-ef9e0ee1]{color:#ef4444;margin-left:2px}[data-scada-theme] .field-hint[data-v-ef9e0ee1]{font-size:11px;color:#64748b;margin-top:4px;line-height:1.4}[data-scada-theme] .field-hint.error[data-v-ef9e0ee1]{color:#ef4444}[data-scada-theme] .config-item select[data-v-ef9e0ee1],[data-scada-theme] .config-item input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .config-item select[data-v-ef9e0ee1]:focus,[data-scada-theme] .config-item input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .unit-config[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .checkbox-label[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;font-size:13px;color:#cbd5e1;cursor:pointer}[data-scada-theme] .checkbox-label input[type=checkbox][data-v-ef9e0ee1]{width:auto;cursor:pointer}[data-scada-theme] .custom-unit[data-v-ef9e0ee1]{margin-left:24px}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .mapping-details[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:12px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .range-rules[data-v-ef9e0ee1],[data-scada-theme] .enum-mappings[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .range-rule[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping input[data-v-ef9e0ee1]{flex:1;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:first-child,[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:nth-child(3){max-width:80px}[data-scada-theme] .range-separator[data-v-ef9e0ee1],[data-scada-theme] .range-arrow[data-v-ef9e0ee1],[data-scada-theme] .enum-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:14px;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]{padding:8px 16px;background:#334155;border:1px dashed #475569;border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;border-style:solid}[data-scada-theme] .mapping-preview[data-v-ef9e0ee1]{padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .mapping-preview label[data-v-ef9e0ee1]{display:block;font-size:12px;color:#94a3b8;margin-bottom:8px}[data-scada-theme] .preview-content[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .preview-item[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1e293b;border-radius:4px;font-size:12px}[data-scada-theme] .preview-input[data-v-ef9e0ee1]{color:#94a3b8;font-family:monospace}[data-scada-theme] .preview-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:12px}[data-scada-theme] .preview-output[data-v-ef9e0ee1]{color:#3b82f6;font-weight:500}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar{width:6px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .event-card[data-v-3731c19a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-3731c19a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-3731c19a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-3731c19a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-3731c19a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-3731c19a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-3731c19a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-3731c19a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-3731c19a]{animation:slideDown-3731c19a .2s ease-out}@keyframes slideDown-3731c19a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .property-item[data-v-3731c19a]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-3731c19a]:last-child{margin-bottom:0}[data-scada-theme] .property-item label[data-v-3731c19a]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item select[data-v-3731c19a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item select[data-v-3731c19a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .selected-point[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .point-main[data-v-3731c19a]{display:flex;align-items:center;gap:8px;font-size:13px}[data-scada-theme] .device-name[data-v-3731c19a]{color:#94a3b8;font-size:12px}[data-scada-theme] .point-name[data-v-3731c19a]{color:#e2e8f0;font-weight:500}[data-scada-theme] .point-details[data-v-3731c19a]{display:flex;gap:8px;font-size:11px;color:#64748b}[data-scada-theme] .point-code[data-v-3731c19a]{font-family:monospace}[data-scada-theme] .point-unit[data-v-3731c19a]{color:#3b82f6}[data-scada-theme] .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .selector-arrow[data-v-3731c19a]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .point-selector-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .mapping-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .mapping-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .mapping-summary[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .mapping-type-label[data-v-3731c19a]{font-size:13px;color:#e2e8f0;font-weight:500}[data-scada-theme] .mapping-detail[data-v-3731c19a]{font-size:11px;color:#64748b}[data-scada-theme] .mapping-trigger .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .mapping-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .dialog-overlay[data-v-90af9944]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-90af9944 .2s}@keyframes fadeIn-90af9944{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-content[data-v-90af9944]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-90af9944 .3s}@keyframes slideUp-90af9944{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-90af9944]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-90af9944]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-90af9944]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-90af9944]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-90af9944]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .btn-add-group[data-v-90af9944]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-90af9944]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-90af9944]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-90af9944]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-90af9944]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-90af9944]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-90af9944],[data-scada-theme] .group-field select[data-v-90af9944]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-90af9944]:focus,[data-scada-theme] .group-field select[data-v-90af9944]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-90af9944]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-90af9944]{width:60px;height:36px}[data-scada-theme] .color-value[data-v-90af9944]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .btn-delete-group[data-v-90af9944]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-90af9944]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .empty-hint[data-v-90af9944]{font-size:12px;color:#64748b;text-align:center;padding:16px;background:#0f172a;border-radius:4px;margin-bottom:12px}[data-scada-theme] .dialog-footer[data-v-90af9944]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-90af9944],[data-scada-theme] .btn-confirm[data-v-90af9944]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-90af9944]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-90af9944]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-90af9944]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-90af9944]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-add3567b]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-add3567b .2s}@keyframes fadeIn-add3567b{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-large[data-v-add3567b]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-content[data-v-add3567b]{background:#1e293b;border-radius:8px;width:90%;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-add3567b .3s}@keyframes slideUp-add3567b{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-add3567b]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-add3567b]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-add3567b]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body-split[data-v-add3567b]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden;padding:24px}[data-scada-theme] .code-editor-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-add3567b]{flex:1;resize:none;height:100%!important}[data-scada-theme] .code-textarea[data-v-add3567b]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-add3567b]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-add3567b]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-add3567b]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-add3567b]{color:#10b981}[data-scada-theme] .status-error[data-v-add3567b]{color:#ef4444}[data-scada-theme] .btn-test[data-v-add3567b]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-add3567b]:hover{background:#059669;border-color:#059669}[data-scada-theme] .code-preview-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-add3567b]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-add3567b]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-add3567b]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-add3567b]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-add3567b]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-add3567b]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-add3567b]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-add3567b]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-add3567b]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-add3567b]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-add3567b]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-add3567b]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-add3567b]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-add3567b],[data-scada-theme] .btn-confirm[data-v-add3567b]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-add3567b]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-add3567b]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-add3567b]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-add3567b]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-c9a88e33]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000}[data-scada-theme] .dialog-container[data-v-c9a88e33]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .dialog-header[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-c9a88e33]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-close[data-v-c9a88e33]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-c9a88e33]{flex:1;overflow-y:auto;padding:20px 24px}[data-scada-theme] .empty-state[data-v-c9a88e33]{text-align:center;padding:40px 20px;color:#64748b}[data-scada-theme] .empty-state p[data-v-c9a88e33]{margin:8px 0;font-size:14px}[data-scada-theme] .empty-state .hint[data-v-c9a88e33]{font-size:12px;color:#475569}[data-scada-theme] .workflow-list[data-v-c9a88e33]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .workflow-item[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .workflow-item[data-v-c9a88e33]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .workflow-item.selected[data-v-c9a88e33]{border-color:#10b981;background:#10b9811a}[data-scada-theme] .workflow-info[data-v-c9a88e33]{flex:1}[data-scada-theme] .workflow-name[data-v-c9a88e33]{font-size:15px;font-weight:500;color:#e2e8f0;margin-bottom:6px}[data-scada-theme] .workflow-meta[data-v-c9a88e33]{display:flex;gap:12px;font-size:12px;color:#64748b}[data-scada-theme] .workflow-id[data-v-c9a88e33]{color:#94a3b8}[data-scada-theme] .workflow-date[data-v-c9a88e33]{color:#64748b}[data-scada-theme] .workflow-actions[data-v-c9a88e33]{display:flex;gap:8px}[data-scada-theme] .btn-icon[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:1px solid #334155;border-radius:4px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-icon[data-v-c9a88e33]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .dialog-footer[data-v-c9a88e33]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-c9a88e33],[data-scada-theme] .btn-primary[data-v-c9a88e33]{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-c9a88e33]{background:transparent;border:1px solid #475569;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-c9a88e33]:hover{background:#334155;border-color:#64748b}[data-scada-theme] .btn-primary[data-v-c9a88e33]{background:#10b981;border:1px solid #10b981;color:#fff}[data-scada-theme] .btn-primary[data-v-c9a88e33]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-primary[data-v-c9a88e33]:disabled{background:#334155;border-color:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .property-panel[data-v-7d3281c0]{width:300px;height:100%;background:#1e293b;border-left:1px solid #0f3460;overflow-y:auto}[data-scada-theme] .empty-state[data-v-7d3281c0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#64748b;text-align:center;padding:24px}[data-scada-theme] .empty-state p[data-v-7d3281c0]{font-size:16px;margin-bottom:8px}[data-scada-theme] .empty-state .hint[data-v-7d3281c0]{font-size:12px;color:#475569}[data-scada-theme] .properties[data-v-7d3281c0]{padding:12px}[data-scada-theme] .panel-title[data-v-7d3281c0]{font-size:15px;font-weight:600;color:#e2e8f0;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-7d3281c0]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .hint-text[data-v-7d3281c0]{font-size:12px;color:#64748b;margin-bottom:12px;line-height:1.5}[data-scada-theme] .empty-hint[data-v-7d3281c0]{display:flex;justify-content:center;align-items:center;padding:24px 16px;color:#64748b;font-size:12px;text-align:center;background:#0f172a;border-radius:4px;margin-bottom:10px}[data-scada-theme] .property-item[data-v-7d3281c0]{margin-bottom:10px}[data-scada-theme] .property-item label[data-v-7d3281c0]{display:block;font-size:11px;color:#cbd5e1;margin-bottom:4px}[data-scada-theme] .property-item input[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item input[data-v-7d3281c0]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item select[data-v-7d3281c0],[data-scada-theme] .property-item textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item select[data-v-7d3281c0]:focus,[data-scada-theme] .property-item textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item textarea[data-v-7d3281c0]{resize:vertical;min-height:50px;font-family:Consolas,Monaco,monospace}[data-scada-theme] .property-row[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-7d3281c0]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tabs[data-v-7d3281c0]{display:flex;gap:3px;margin-bottom:12px;padding:3px;background:#0f172a;border-radius:5px}[data-scada-theme] .tab-btn[data-v-7d3281c0]{flex:1;padding:6px 10px;background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:12px;font-weight:500;border-radius:4px;transition:all .2s}[data-scada-theme] .tab-btn[data-v-7d3281c0]:hover{color:#cbd5e1;background:#1e293b}[data-scada-theme] .tab-btn.active[data-v-7d3281c0]{color:#fff;background:#3b82f6}[data-scada-theme] .tab-content[data-v-7d3281c0]{min-height:0}[data-scada-theme] .tab-pane[data-v-7d3281c0]{animation:fadeIn-7d3281c0 .2s}@keyframes fadeIn-7d3281c0{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown-7d3281c0{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}[data-scada-theme] .section-header h4[data-v-7d3281c0]{margin:0}[data-scada-theme] .btn-add[data-v-7d3281c0]{padding:5px 10px;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-add[data-v-7d3281c0]:hover{background:#2563eb}[data-scada-theme] .event-list[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .event-card[data-v-7d3281c0]{background:#0f172a;border:1px solid #334155;border-radius:5px;padding:10px;transition:all .2s}[data-scada-theme] .event-card[data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-7d3281c0]:hover{background:#3b82f60d;margin:-4px -6px 6px;padding:4px 6px 10px;border-radius:4px}[data-scada-theme] .header-left[data-v-7d3281c0]{display:flex;align-items:center;gap:6px}[data-scada-theme] .collapse-icon[data-v-7d3281c0]{font-size:9px;color:#64748b;transition:transform .2s;display:inline-block;width:10px}[data-scada-theme] .event-type-label[data-v-7d3281c0]{font-size:12px;font-weight:500;color:#e2e8f0}[data-scada-theme] .event-action-badge[data-v-7d3281c0]{font-size:10px;padding:2px 6px;background:#3b82f6;color:#fff;border-radius:8px}[data-scada-theme] .event-card-body[data-v-7d3281c0]{animation:slideDown-7d3281c0 .2s ease-out}[data-scada-theme] .event-index[data-v-7d3281c0]{font-size:12px;font-weight:600;color:#3b82f6}[data-scada-theme] .btn-remove[data-v-7d3281c0]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}[data-scada-theme] .event-field[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-7d3281c0]{font-size:11px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-7d3281c0],[data-scada-theme] .event-field select[data-v-7d3281c0],[data-scada-theme] .event-field textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .event-field input[data-v-7d3281c0]:focus,[data-scada-theme] .event-field select[data-v-7d3281c0]:focus,[data-scada-theme] .event-field textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .field-hint[data-v-7d3281c0]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-group[data-v-7d3281c0]{background:#1e293b;border-radius:4px;padding:12px;margin-bottom:12px}[data-scada-theme] .config-section[data-v-7d3281c0]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .section-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-7d3281c0]:first-child{margin-top:0}[data-scada-theme] .btn-config[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .condition-config[data-v-7d3281c0]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-7d3281c0]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-7d3281c0],[data-scada-theme] .condition-input[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-7d3281c0]:focus,[data-scada-theme] .condition-input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .event-title[data-v-7d3281c0]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:hover{border-color:#475569}[data-scada-theme] .code-textarea[data-v-7d3281c0]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;resize:vertical;min-height:120px;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .dialog-overlay[data-v-7d3281c0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-7d3281c0 .2s}[data-scada-theme] .dialog-content[data-v-7d3281c0]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-7d3281c0 .3s}[data-scada-theme] .dialog-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-7d3281c0]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-7d3281c0]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-7d3281c0]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-7d3281c0]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .btn-add-group[data-v-7d3281c0]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-7d3281c0]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-7d3281c0]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-7d3281c0]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-7d3281c0],[data-scada-theme] .group-field select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-7d3281c0]:focus,[data-scada-theme] .group-field select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-7d3281c0]{width:60px;height:36px}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .dialog-large[data-v-7d3281c0]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-body-split[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden}[data-scada-theme] .code-editor-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-7d3281c0]{flex:1;resize:none;height:100%!important}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-7d3281c0]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-7d3281c0]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-7d3281c0]{color:#10b981}[data-scada-theme] .status-error[data-v-7d3281c0]{color:#ef4444}[data-scada-theme] .btn-test[data-v-7d3281c0]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-7d3281c0]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-clear[data-v-7d3281c0]{padding:4px 12px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:12px;transition:all .2s}[data-scada-theme] .btn-clear[data-v-7d3281c0]:hover{background:#334155;color:#cbd5e1}[data-scada-theme] .code-preview-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-7d3281c0]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-7d3281c0]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-7d3281c0]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-7d3281c0]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-7d3281c0]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-7d3281c0]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-7d3281c0]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-7d3281c0]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-7d3281c0]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-7d3281c0]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7d3281c0],[data-scada-theme] .btn-confirm[data-v-7d3281c0]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-7d3281c0]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-7d3281c0]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7d3281c0]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7d3281c0]:hover{background:#2563eb;border-color:#2563eb}@keyframes slideUp-7d3281c0{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .scada-footer[data-v-52b6d4b1]{height:32px;background:#1e293b;border-top:1px solid #0f3460;display:flex;align-items:center;padding:0 32px;flex-shrink:0}[data-scada-theme] .footer-content[data-v-52b6d4b1]{width:100%;display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .footer-left[data-v-52b6d4b1],[data-scada-theme] .footer-right[data-v-52b6d4b1]{display:flex;align-items:center;gap:12px}[data-scada-theme] .copyright[data-v-52b6d4b1],[data-scada-theme] .license[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .divider[data-v-52b6d4b1]{color:#475569!important;font-size:12px}[data-scada-theme] .contact-item[data-v-52b6d4b1]{display:flex;align-items:center;gap:4px}[data-scada-theme] .contact-item .icon[data-v-52b6d4b1]{font-size:12px}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]:hover{color:#3b82f6!important;cursor:pointer}[data-scada-theme] .authorized-icon[data-v-52b6d4b1]{font-size:14px;margin-right:6px}[data-scada-theme] .authorized-text[data-v-52b6d4b1]{font-size:12px;color:#10b981!important;font-weight:500}[data-scada-theme] .expiry-text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .element-selector-overlay[data-v-882704dd]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}[data-scada-theme] .element-selector-dialog[data-v-882704dd]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 24px #0000004d}[data-scada-theme] .dialog-header[data-v-882704dd]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-882704dd]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-882704dd]{width:28px;height:28px;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-882704dd]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-882704dd]{flex:1;padding:20px;display:flex;flex-direction:column;gap:16px;overflow:hidden}[data-scada-theme] .search-box input[data-v-882704dd]{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px}[data-scada-theme] .search-box input[data-v-882704dd]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .element-list[data-v-882704dd]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}[data-scada-theme] .element-item[data-v-882704dd]{display:flex;align-items:center;gap:12px;padding:12px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .element-item[data-v-882704dd]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .element-item.active[data-v-882704dd]{border-color:#3b82f6;background:#3b82f61a}[data-scada-theme] .element-icon[data-v-882704dd]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border-radius:6px;font-size:20px;flex-shrink:0}[data-scada-theme] .element-info[data-v-882704dd]{flex:1}[data-scada-theme] .element-name[data-v-882704dd]{font-size:14px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .element-type[data-v-882704dd]{font-size:12px;color:#94a3b8}[data-scada-theme] .element-check[data-v-882704dd]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#3b82f6;border-radius:50%;color:#fff;font-size:14px;font-weight:700}[data-scada-theme] .empty-state[data-v-882704dd]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;padding:40px 20px}[data-scada-theme] .empty-state p[data-v-882704dd]{margin:0;font-size:14px}[data-scada-theme] .empty-hint[data-v-882704dd]{margin-top:8px;font-size:12px;color:#475569}[data-scada-theme] .dialog-footer[data-v-882704dd]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-882704dd],[data-scada-theme] .btn-primary[data-v-882704dd]{padding:8px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-882704dd]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-882704dd]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-882704dd]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-882704dd]:hover{background:#2563eb}[data-scada-theme] .btn-primary[data-v-882704dd]:disabled{background:#475569;cursor:not-allowed;opacity:.5}[data-scada-theme] .node-config[data-v-fa65eb56]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-fa65eb56]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-fa65eb56]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-fa65eb56]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-fa65eb56]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-fa65eb56]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-fa65eb56]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-fa65eb56]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-fa65eb56],[data-scada-theme] .config-group textarea[data-v-fa65eb56],[data-scada-theme] .config-group select[data-v-fa65eb56]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-fa65eb56]:focus,[data-scada-theme] .config-group textarea[data-v-fa65eb56]:focus,[data-scada-theme] .config-group select[data-v-fa65eb56]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-42e029d4]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-42e029d4]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-42e029d4]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-42e029d4]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-42e029d4]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-42e029d4]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-42e029d4]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-42e029d4]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-42e029d4],[data-scada-theme] .config-group textarea[data-v-42e029d4],[data-scada-theme] .config-group select[data-v-42e029d4]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-42e029d4]:focus,[data-scada-theme] .config-group textarea[data-v-42e029d4]:focus,[data-scada-theme] .config-group select[data-v-42e029d4]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-15975920]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-15975920]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-15975920],[data-scada-theme] .config-group textarea[data-v-15975920],[data-scada-theme] .config-group select[data-v-15975920]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-15975920]:focus,[data-scada-theme] .config-group textarea[data-v-15975920]:focus,[data-scada-theme] .config-group select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .branches-section[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .section-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-15975920]{font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .btn-add[data-v-15975920]{padding:4px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add[data-v-15975920]:hover{background:#2563eb}[data-scada-theme] .branch-list[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .branch-item[data-v-15975920]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px}[data-scada-theme] .branch-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}[data-scada-theme] .branch-number[data-v-15975920]{font-size:12px;color:#3b82f6;font-weight:500}[data-scada-theme] .btn-remove[data-v-15975920]{width:20px;height:20px;background:#ef4444;color:#fff;border:none;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-15975920]:hover{background:#dc2626}[data-scada-theme] .branch-config[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-row[data-v-15975920]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .config-row label[data-v-15975920]{font-size:12px;color:#94a3b8}[data-scada-theme] .config-row input[data-v-15975920],[data-scada-theme] .config-row select[data-v-15975920]{padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .config-row input[data-v-15975920]:focus,[data-scada-theme] .config-row select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .default-branch-label[data-v-15975920]{font-size:12px;color:#94a3b8;text-align:center;padding:8px;background:#1e293b;border-radius:4px}[data-scada-theme] .node-config[data-v-4c312eea]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-4c312eea]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-4c312eea]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-4c312eea],[data-scada-theme] .config-group textarea[data-v-4c312eea],[data-scada-theme] .config-group select[data-v-4c312eea]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-4c312eea]:focus,[data-scada-theme] .config-group textarea[data-v-4c312eea]:focus,[data-scada-theme] .config-group select[data-v-4c312eea]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .config-group textarea[data-v-4c312eea]{resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .node-config[data-v-f7115383]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-f7115383]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-f7115383]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group textarea[data-v-f7115383]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .config-group textarea[data-v-f7115383]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .code-hint[data-v-f7115383]{padding:12px;background:#3b82f61a;border-left:3px solid #3b82f6;border-radius:4px}[data-scada-theme] .code-hint p[data-v-f7115383]{margin:0 0 8px;font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .code-hint ul[data-v-f7115383]{margin:0;padding-left:20px}[data-scada-theme] .code-hint li[data-v-f7115383]{font-size:12px;color:#64748b;margin-bottom:4px}[data-scada-theme] .node-config[data-v-323381bc]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-323381bc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-323381bc]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-323381bc],[data-scada-theme] .config-group select[data-v-323381bc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-323381bc]:focus,[data-scada-theme] .config-group select[data-v-323381bc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-d102fb63]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-d102fb63]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-d102fb63]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-d102fb63],[data-scada-theme] .config-group select[data-v-d102fb63]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-d102fb63]:focus,[data-scada-theme] .config-group select[data-v-d102fb63]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .timer-hint[data-v-d102fb63]{padding:12px;background:#faad141a;border-left:3px solid #faad14;border-radius:4px}[data-scada-theme] .timer-hint p[data-v-d102fb63]{margin:0;font-size:12px;color:#94a3b8}[data-scada-theme] .timer-hint.warning[data-v-d102fb63]{background:#ef44441a;border-left-color:#ef4444}[data-scada-theme] .property-panel[data-v-8304acbc]{width:300px;background:#1e293b;border-left:1px solid #334155;display:flex;flex-direction:column}[data-scada-theme] .property-panel h3[data-v-8304acbc]{margin:0;padding:16px;font-size:14px;font-weight:600;color:#e2e8f0;border-bottom:1px solid #334155}[data-scada-theme] .property-content[data-v-8304acbc]{padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}[data-scada-theme] .property-group[data-v-8304acbc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .property-group label[data-v-8304acbc]{font-size:13px;color:#94a3b8}[data-scada-theme] .property-group input[data-v-8304acbc],[data-scada-theme] .property-group textarea[data-v-8304acbc],[data-scada-theme] .property-group select[data-v-8304acbc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .property-group input[data-v-8304acbc]:focus,[data-scada-theme] .property-group textarea[data-v-8304acbc]:focus,[data-scada-theme] .property-group select[data-v-8304acbc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .property-group input[data-v-8304acbc]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-empty[data-v-8304acbc]{flex:1;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:13px}[data-scada-theme] .divider[data-v-8304acbc]{height:1px;background:#334155;margin:8px 0}[data-scada-theme] .toolbar[data-v-b3e0a4fc]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#1e293b;border-bottom:1px solid #334155}[data-scada-theme] .toolbar-left[data-v-b3e0a4fc]{display:flex;align-items:center;gap:24px}[data-scada-theme] .toolbar-left h2[data-v-b3e0a4fc]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .toolbar-right[data-v-b3e0a4fc]{display:flex;gap:12px}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc],[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]:hover{background:#2563eb}[data-scada-theme] .btn-close[data-v-b3e0a4fc]{width:36px;height:36px;padding:0;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:8px}[data-scada-theme] .btn-close[data-v-b3e0a4fc]:hover{background:#475569;border-color:#64748b;color:#e2e8f0}[data-scada-theme] .close-icon[data-v-b3e0a4fc]{font-size:24px;line-height:1}[data-scada-theme] .menu-overlay[data-v-aa6fccf8]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}[data-scada-theme] .add-node-menu[data-v-aa6fccf8]{position:fixed;z-index:1000;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:280px;max-width:320px}[data-scada-theme] .menu-header[data-v-aa6fccf8]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #334155;color:#e2e8f0;font-size:14px;font-weight:600}[data-scada-theme] .btn-close[data-v-aa6fccf8]{width:24px;height:24px;background:transparent;border:none;color:#94a3b8;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-aa6fccf8]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .menu-list[data-v-aa6fccf8]{padding:8px}[data-scada-theme] .menu-item[data-v-aa6fccf8]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .menu-item[data-v-aa6fccf8]:hover{background:#334155}[data-scada-theme] .menu-item-icon[data-v-aa6fccf8]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:18px;flex-shrink:0}[data-scada-theme] .node-icon-getProperty[data-v-aa6fccf8]{background:#1890ff1a}[data-scada-theme] .node-icon-setProperty[data-v-aa6fccf8]{background:#13c2c21a}[data-scada-theme] .node-icon-condition[data-v-aa6fccf8]{background:#faad141a}[data-scada-theme] .node-icon-httpRequest[data-v-aa6fccf8]{background:#722ed11a}[data-scada-theme] .node-icon-customCode[data-v-aa6fccf8]{background:#eb2f961a}[data-scada-theme] .node-icon-timer[data-v-aa6fccf8]{background:#52c41a1a}[data-scada-theme] .node-icon-clearTimer[data-v-aa6fccf8]{background:#ff4d4f1a}[data-scada-theme] .menu-item-info[data-v-aa6fccf8]{flex:1}[data-scada-theme] .menu-item-name[data-v-aa6fccf8]{font-size:14px;color:#e2e8f0;font-weight:500}[data-scada-theme] .menu-item-desc[data-v-aa6fccf8]{font-size:12px;color:#94a3b8;margin-top:2px}[data-scada-theme] .workflow-editor[data-v-649349a2]{display:flex;flex-direction:column;height:100vh;background:#0f172a;color:#e2e8f0}[data-scada-theme] .editor-main[data-v-649349a2]{display:flex;flex:1;overflow:hidden}[data-scada-theme] .canvas-area[data-v-649349a2]{flex:1;position:relative;overflow:hidden;background:#0f172a}[data-scada-theme] #workflow-container[data-v-649349a2]{width:100%;height:100%}[data-scada-theme] .workflow-dialog-overlay[data-v-4e7f6ab7]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:9999;display:flex;align-items:center;justify-content:center}[data-scada-theme] .workflow-dialog[data-v-4e7f6ab7]{width:100vw;height:100vh;background:#0f172a;overflow:hidden}.scada-layout[data-v-4bf52faf]{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;background:#1a1a2e}[data-scada-theme] .scada-canvas-container[data-v-4bf52faf]{flex:1;display:flex;background:#0f172a;overflow:hidden;min-height:0}[data-scada-theme][data-v-4bf52faf] .x6-node-selected{outline:2px solid #3b82f6;outline-offset:2px;box-shadow:0 0 0 4px #3b82f626,0 0 12px #3b82f64d;transition:outline .15s ease,box-shadow .15s ease}[data-scada-theme][data-v-4bf52faf] .x6-node-selected rect,[data-scada-theme][data-v-4bf52faf] .x6-node-selected circle,[data-scada-theme][data-v-4bf52faf] .x6-node-selected ellipse{filter:brightness(1.05)}.scada-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);padding:12px 24px;border-radius:6px;color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:9999;opacity:0;transition:all .3s ease;pointer-events:none}.scada-toast.show{transform:translate(-50%) translateY(0);opacity:1}.scada-toast-success{background:linear-gradient(135deg,#10b981,#059669)}.scada-toast-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.scada-toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes edge-flow-4bf52faf{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}[data-scada-theme][data-v-4bf52faf] .x6-edge path{transition:stroke .3s ease,stroke-width .3s ease}[data-scada-theme][data-v-4bf52faf] .edge-flow-slow{animation:edge-flow-4bf52faf 4s linear infinite}[data-scada-theme][data-v-4bf52faf] .edge-flow-normal{animation:edge-flow-4bf52faf 2s linear infinite}[data-scada-theme][data-v-4bf52faf] .edge-flow-fast{animation:edge-flow-4bf52faf 1s linear infinite}.scada-layout[data-scada-theme=dark]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;color:#e2e8f0!important;font-size:14px!important;line-height:1.5!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:none!important;display:flex!important;flex-direction:column!important;flex:1!important;width:100%!important;height:100%!important;min-height:100vh!important;background:#1a1a2e!important;overflow:hidden!important;position:relative!important}.scada-layout[data-scada-theme=dark] *,.scada-layout[data-scada-theme=dark] *:before,.scada-layout[data-scada-theme=dark] *:after{box-sizing:border-box!important;margin:0;padding:0}.scada-layout[data-scada-theme=dark]>*{box-sizing:border-box!important}.scada-layout[data-scada-theme=dark]>.scada-header,.scada-layout[data-scada-theme=dark]>.scada-footer{color:#e2e8f0!important;margin:0!important}.scada-layout[data-scada-theme=dark] .property-panel>.panel-header,.scada-layout[data-scada-theme=dark] .component-library>.library-header,.scada-layout[data-scada-theme=dark] .canvas-config-panel>.config-header{color:#e2e8f0!important;margin:0!important;padding:0!important}.scada-layout[data-scada-theme=dark] .scada-header h1,.scada-layout[data-scada-theme=dark] .scada-header h2,.scada-layout[data-scada-theme=dark] .scada-header h3,.scada-layout[data-scada-theme=dark] .scada-header h4{color:#e2e8f0!important;margin:0!important;padding:0!important;font-weight:600!important}.scada-layout[data-scada-theme=dark] .canvas-area input:not([class*=ant-]):not([type=range]):not([type=color]):not([type=checkbox]),.scada-layout[data-scada-theme=dark] .canvas-area select:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area textarea:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area button:not([class*=ant-]){-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;outline:none!important;border:none!important;background:none!important;margin:0!important;padding:0!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important}.scada-layout[data-scada-theme=dark] .canvas-area label,.scada-layout[data-scada-theme=dark] .canvas-area span,.scada-layout[data-scada-theme=dark] .canvas-area p,.scada-layout[data-scada-theme=dark] .canvas-area div{color:inherit!important;font-family:inherit!important;line-height:normal!important}.scada-layout[data-scada-theme] ::-webkit-scrollbar{width:8px;height:8px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}.scada-layout[data-scada-theme] ::-webkit-scrollbar-corner{background:#0f172a}.scada-layout .x6-node-selected rect{stroke:#3b82f6!important;stroke-width:2!important;filter:drop-shadow(0 0 8px rgba(59,130,246,.6))!important}.scada-layout .x6-edge-selected path{stroke:#3b82f6!important;stroke-width:3!important}.scada-layout .x6-widget-selection-box{border:2px solid #3b82f6!important;background-color:#3b82f61a!important}.scada-layout[data-scada-theme] input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(90deg,#475569,#334155);border-radius:2px;outline:none;opacity:.9;transition:opacity .2s}.scada-layout[data-scada-theme] input[type=range]:hover{opacity:1}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}
@@ -4549,7 +4549,7 @@ const Yl = { class: "mapping-configurator" }, Kl = { class: "config-item" }, Jl
4549
4549
  a("updateNode", { data: O });
4550
4550
  }, P = (O) => {
4551
4551
  r.value.has(O) ? r.value.delete(O) : r.value.add(O);
4552
- }, K = (O) => r.value.has(O), Q = Y(!1), j = Y(-1), M = Y([]), xe = (O) => {
4552
+ }, K = (O) => r.value.has(O), Q = Y(!1), j = Y(-1), M = Y([]), pe = (O) => {
4553
4553
  var q;
4554
4554
  j.value = O;
4555
4555
  const U = l.value[O];
@@ -4560,7 +4560,7 @@ const Yl = { class: "mapping-configurator" }, Kl = { class: "config-item" }, Jl
4560
4560
  }], Q.value = !0;
4561
4561
  }, fe = () => {
4562
4562
  Q.value = !1;
4563
- }, pe = () => {
4563
+ }, xe = () => {
4564
4564
  M.value.push({
4565
4565
  target: "current",
4566
4566
  property: "",
@@ -4687,7 +4687,7 @@ const Yl = { class: "mapping-configurator" }, Kl = { class: "config-item" }, Jl
4687
4687
  onUpdateField: (te, Be) => L(J, te, Be),
4688
4688
  onUpdateCondition: (te, Be) => X(J, te, Be),
4689
4689
  onUpdateParams: (te, Be) => ee(J, te, Be),
4690
- onOpenAttributeConfig: (te) => xe(J),
4690
+ onOpenAttributeConfig: (te) => pe(J),
4691
4691
  onOpenCustomCode: (te) => Me(J),
4692
4692
  onOpenWorkflowSelector: (te) => Se(J)
4693
4693
  }, null, 8, ["event", "index", "is-collapsed", "node-properties", "onToggleCollapse", "onRemove", "onUpdateField", "onUpdateCondition", "onUpdateParams", "onOpenAttributeConfig", "onOpenCustomCode", "onOpenWorkflowSelector"]))), 128))
@@ -4734,7 +4734,7 @@ const Yl = { class: "mapping-configurator" }, Kl = { class: "config-item" }, Jl
4734
4734
  "node-properties": Ie(),
4735
4735
  onClose: fe,
4736
4736
  onSave: Ce,
4737
- onAddGroup: pe,
4737
+ onAddGroup: xe,
4738
4738
  onRemoveGroup: $e,
4739
4739
  onUpdateGroup: ke
4740
4740
  }, null, 8, ["attribute-groups", "node-properties"])) : G("", !0),
@@ -6093,7 +6093,7 @@ function bo() {
6093
6093
  ]);
6094
6094
  },
6095
6095
  _doProcessBlock: function(g, y) {
6096
- for (var B = this._hash.words, _ = B[0], u = B[1], c = B[2], p = B[3], C = B[4], b = B[5], D = B[6], S = B[7], N = _.high, E = _.low, k = u.high, I = u.low, R = c.high, L = c.low, X = p.high, ee = p.low, ae = C.high, A = C.low, T = b.high, H = b.low, $ = D.high, z = D.low, V = S.high, P = S.low, K = N, Q = E, j = k, M = I, xe = R, fe = L, pe = X, $e = ee, ke = ae, Ce = A, Te = T, we = H, ze = $, Me = z, Ze = V, We = P, Ee = 0; Ee < 80; Ee++) {
6096
+ for (var B = this._hash.words, _ = B[0], u = B[1], c = B[2], p = B[3], C = B[4], b = B[5], D = B[6], S = B[7], N = _.high, E = _.low, k = u.high, I = u.low, R = c.high, L = c.low, X = p.high, ee = p.low, ae = C.high, A = C.low, T = b.high, H = b.low, $ = D.high, z = D.low, V = S.high, P = S.low, K = N, Q = E, j = k, M = I, pe = R, fe = L, xe = X, $e = ee, ke = ae, Ce = A, Te = T, we = H, ze = $, Me = z, Ze = V, We = P, Ee = 0; Ee < 80; Ee++) {
6097
6097
  var he, Se, Le = d[Ee];
6098
6098
  if (Ee < 16)
6099
6099
  Se = Le.high = g[y + Ee * 2] | 0, he = Le.low = g[y + Ee * 2 + 1] | 0;
@@ -6101,10 +6101,10 @@ function bo() {
6101
6101
  var dt = d[Ee - 15], Ie = dt.high, qe = dt.low, ft = (Ie >>> 1 | qe << 31) ^ (Ie >>> 8 | qe << 24) ^ Ie >>> 7, O = (qe >>> 1 | Ie << 31) ^ (qe >>> 8 | Ie << 24) ^ (qe >>> 7 | Ie << 25), U = d[Ee - 2], q = U.high, J = U.low, te = (q >>> 19 | J << 13) ^ (q << 3 | J >>> 29) ^ q >>> 6, Be = (J >>> 19 | q << 13) ^ (J << 3 | q >>> 29) ^ (J >>> 6 | q << 26), Qe = d[Ee - 7], Bo = Qe.high, ko = Qe.low, n0 = d[Ee - 16], Ao = n0.high, a0 = n0.low;
6102
6102
  he = O + ko, Se = ft + Bo + (he >>> 0 < O >>> 0 ? 1 : 0), he = he + Be, Se = Se + te + (he >>> 0 < Be >>> 0 ? 1 : 0), he = he + a0, Se = Se + Ao + (he >>> 0 < a0 >>> 0 ? 1 : 0), Le.high = Se, Le.low = he;
6103
6103
  }
6104
- var _o = ke & Te ^ ~ke & ze, s0 = Ce & we ^ ~Ce & Me, Do = K & j ^ K & xe ^ j & xe, $o = Q & M ^ Q & fe ^ M & fe, Fo = (K >>> 28 | Q << 4) ^ (K << 30 | Q >>> 2) ^ (K << 25 | Q >>> 7), r0 = (Q >>> 28 | K << 4) ^ (Q << 30 | K >>> 2) ^ (Q << 25 | K >>> 7), wo = (ke >>> 14 | Ce << 18) ^ (ke >>> 18 | Ce << 14) ^ (ke << 23 | Ce >>> 9), So = (Ce >>> 14 | ke << 18) ^ (Ce >>> 18 | ke << 14) ^ (Ce << 23 | ke >>> 9), l0 = s[Ee], Io = l0.high, i0 = l0.low, Ae = We + So, Re = Ze + wo + (Ae >>> 0 < We >>> 0 ? 1 : 0), Ae = Ae + s0, Re = Re + _o + (Ae >>> 0 < s0 >>> 0 ? 1 : 0), Ae = Ae + i0, Re = Re + Io + (Ae >>> 0 < i0 >>> 0 ? 1 : 0), Ae = Ae + he, Re = Re + Se + (Ae >>> 0 < he >>> 0 ? 1 : 0), d0 = r0 + $o, zo = Fo + Do + (d0 >>> 0 < r0 >>> 0 ? 1 : 0);
6105
- Ze = ze, We = Me, ze = Te, Me = we, Te = ke, we = Ce, Ce = $e + Ae | 0, ke = pe + Re + (Ce >>> 0 < $e >>> 0 ? 1 : 0) | 0, pe = xe, $e = fe, xe = j, fe = M, j = K, M = Q, Q = Ae + d0 | 0, K = Re + zo + (Q >>> 0 < Ae >>> 0 ? 1 : 0) | 0;
6104
+ var _o = ke & Te ^ ~ke & ze, s0 = Ce & we ^ ~Ce & Me, Do = K & j ^ K & pe ^ j & pe, $o = Q & M ^ Q & fe ^ M & fe, Fo = (K >>> 28 | Q << 4) ^ (K << 30 | Q >>> 2) ^ (K << 25 | Q >>> 7), r0 = (Q >>> 28 | K << 4) ^ (Q << 30 | K >>> 2) ^ (Q << 25 | K >>> 7), wo = (ke >>> 14 | Ce << 18) ^ (ke >>> 18 | Ce << 14) ^ (ke << 23 | Ce >>> 9), So = (Ce >>> 14 | ke << 18) ^ (Ce >>> 18 | ke << 14) ^ (Ce << 23 | ke >>> 9), l0 = s[Ee], Io = l0.high, i0 = l0.low, Ae = We + So, Re = Ze + wo + (Ae >>> 0 < We >>> 0 ? 1 : 0), Ae = Ae + s0, Re = Re + _o + (Ae >>> 0 < s0 >>> 0 ? 1 : 0), Ae = Ae + i0, Re = Re + Io + (Ae >>> 0 < i0 >>> 0 ? 1 : 0), Ae = Ae + he, Re = Re + Se + (Ae >>> 0 < he >>> 0 ? 1 : 0), d0 = r0 + $o, zo = Fo + Do + (d0 >>> 0 < r0 >>> 0 ? 1 : 0);
6105
+ Ze = ze, We = Me, ze = Te, Me = we, Te = ke, we = Ce, Ce = $e + Ae | 0, ke = xe + Re + (Ce >>> 0 < $e >>> 0 ? 1 : 0) | 0, xe = pe, $e = fe, pe = j, fe = M, j = K, M = Q, Q = Ae + d0 | 0, K = Re + zo + (Q >>> 0 < Ae >>> 0 ? 1 : 0) | 0;
6106
6106
  }
6107
- E = _.low = E + Q, _.high = N + K + (E >>> 0 < Q >>> 0 ? 1 : 0), I = u.low = I + M, u.high = k + j + (I >>> 0 < M >>> 0 ? 1 : 0), L = c.low = L + fe, c.high = R + xe + (L >>> 0 < fe >>> 0 ? 1 : 0), ee = p.low = ee + $e, p.high = X + pe + (ee >>> 0 < $e >>> 0 ? 1 : 0), A = C.low = A + Ce, C.high = ae + ke + (A >>> 0 < Ce >>> 0 ? 1 : 0), H = b.low = H + we, b.high = T + Te + (H >>> 0 < we >>> 0 ? 1 : 0), z = D.low = z + Me, D.high = $ + ze + (z >>> 0 < Me >>> 0 ? 1 : 0), P = S.low = P + We, S.high = V + Ze + (P >>> 0 < We >>> 0 ? 1 : 0);
6107
+ E = _.low = E + Q, _.high = N + K + (E >>> 0 < Q >>> 0 ? 1 : 0), I = u.low = I + M, u.high = k + j + (I >>> 0 < M >>> 0 ? 1 : 0), L = c.low = L + fe, c.high = R + pe + (L >>> 0 < fe >>> 0 ? 1 : 0), ee = p.low = ee + $e, p.high = X + xe + (ee >>> 0 < $e >>> 0 ? 1 : 0), A = C.low = A + Ce, C.high = ae + ke + (A >>> 0 < Ce >>> 0 ? 1 : 0), H = b.low = H + we, b.high = T + Te + (H >>> 0 < we >>> 0 ? 1 : 0), z = D.low = z + Me, D.high = $ + ze + (z >>> 0 < Me >>> 0 ? 1 : 0), P = S.low = P + We, S.high = V + Ze + (P >>> 0 < We >>> 0 ? 1 : 0);
6108
6108
  },
6109
6109
  _doFinalize: function() {
6110
6110
  var g = this._data, y = g.words, B = this._nDataBytes * 8, _ = g.sigBytes * 8;
@@ -11703,31 +11703,39 @@ const Ge = new gp(), hp = {
11703
11703
  const V = ou(at.SCADA_EDITOR_DATA);
11704
11704
  if (((Q = V == null ? void 0 : V.cells) == null ? void 0 : Q.length) > 0)
11705
11705
  try {
11706
- const j = V.cells.map((M) => (M.position && typeof M.position == "object" && (typeof M.position.x != "number" || typeof M.position.y != "number") && (M.position = { x: 100, y: 100 }), M));
11706
+ const j = V.cells.map((M) => {
11707
+ var pe;
11708
+ return M.position && typeof M.position == "object" && (typeof M.position.x != "number" || typeof M.position.y != "number") && (M.position = { x: 100, y: 100 }), (M.shape === "edge" || M.shape === "animated-edge") && (M.router === "manhattan" || ((pe = M.router) == null ? void 0 : pe.name) === "manhattan") && (M.router = {
11709
+ name: "orth",
11710
+ args: {
11711
+ padding: 10
11712
+ }
11713
+ }), M;
11714
+ });
11707
11715
  r.fromJSON({ cells: j }), r.getEdges().forEach((M) => {
11708
11716
  var fe;
11709
- const xe = M.getData();
11710
- (fe = xe == null ? void 0 : xe.animation) != null && fe.enabled && B(M, xe.animation);
11717
+ const pe = M.getData();
11718
+ (fe = pe == null ? void 0 : pe.animation) != null && fe.enabled && B(M, pe.animation);
11711
11719
  });
11712
11720
  } catch (j) {
11713
11721
  console.error("恢复画布数据失败,清空缓存:", j), sessionStorage.removeItem(at.SCADA_EDITOR_DATA);
11714
11722
  }
11715
11723
  r.on("selection:changed", ({ selected: j }) => {
11716
- var xe, fe;
11717
- const M = j ? j.filter((pe) => pe.isNode()) : [];
11724
+ var pe, fe;
11725
+ const M = j ? j.filter((xe) => xe.isNode()) : [];
11718
11726
  if (l.value = M.length, j && j.length > 0) {
11719
- const pe = j[0];
11720
- if (pe.isNode())
11721
- a.value = pe, t.value = null;
11722
- else if (pe.isEdge()) {
11723
- t.value = pe, a.value = null;
11724
- const $e = pe.getAttrs();
11725
- pe.data = { ...pe.data, originalAttrs: $e }, pe.attr("line/stroke", "#3b82f6");
11727
+ const xe = j[0];
11728
+ if (xe.isNode())
11729
+ a.value = xe, t.value = null;
11730
+ else if (xe.isEdge()) {
11731
+ t.value = xe, a.value = null;
11732
+ const $e = xe.getAttrs();
11733
+ xe.data = { ...xe.data, originalAttrs: $e }, xe.attr("line/stroke", "#3b82f6");
11726
11734
  }
11727
11735
  } else {
11728
- if (t.value && ((xe = t.value.data) != null && xe.originalAttrs)) {
11729
- const pe = t.value.data.originalAttrs;
11730
- t.value.attr("line/stroke", ((fe = pe.line) == null ? void 0 : fe.stroke) || "#10b981");
11736
+ if (t.value && ((pe = t.value.data) != null && pe.originalAttrs)) {
11737
+ const xe = t.value.data.originalAttrs;
11738
+ t.value.attr("line/stroke", ((fe = xe.line) == null ? void 0 : fe.stroke) || "#10b981");
11731
11739
  }
11732
11740
  a.value = null, t.value = null;
11733
11741
  }
@@ -11741,12 +11749,12 @@ const Ge = new gp(), hp = {
11741
11749
  const M = j.getData();
11742
11750
  if (M.animation)
11743
11751
  if (M.animation.enabled === !0) {
11744
- const xe = {
11752
+ const pe = {
11745
11753
  type: M.animation.type || "none",
11746
11754
  duration: M.animation.duration || 1e3,
11747
11755
  loop: M.animation.loop !== !1
11748
11756
  };
11749
- Ge.startAnimation(j, xe);
11757
+ Ge.startAnimation(j, pe);
11750
11758
  } else
11751
11759
  Ge.stopAnimation(j.id);
11752
11760
  }), r.on("edge:change:data", ({ edge: j }) => {
@@ -12059,14 +12067,14 @@ const Ge = new gp(), hp = {
12059
12067
  }), K.config && se.updateConfig(K.config), K.workflows && Array.isArray(K.workflows) && K.workflows.length > 0)
12060
12068
  try {
12061
12069
  const Q = localStorage.getItem("saved-workflows"), j = Q ? JSON.parse(Q) : [];
12062
- let M = 0, xe = 0;
12070
+ let M = 0, pe = 0;
12063
12071
  K.workflows.forEach((fe) => {
12064
- const pe = j.findIndex(($e) => $e.id === fe.id);
12065
- pe >= 0 ? (j[pe] = {
12072
+ const xe = j.findIndex(($e) => $e.id === fe.id);
12073
+ xe >= 0 ? (j[xe] = {
12066
12074
  ...fe,
12067
12075
  updatedAt: Date.now()
12068
- }, xe++) : (j.push(fe), M++);
12069
- }), localStorage.setItem("saved-workflows", JSON.stringify(j)), ve(`导入成功 画布已加载,流程: 新增${M}个,更新${xe}个`, "success");
12076
+ }, pe++) : (j.push(fe), M++);
12077
+ }), localStorage.setItem("saved-workflows", JSON.stringify(j)), ve(`导入成功 画布已加载,流程: 新增${M}个,更新${pe}个`, "success");
12070
12078
  } catch (Q) {
12071
12079
  console.error("导入流程数据失败:", Q), ve("画布导入成功, 但流程数据导入失败", "warning");
12072
12080
  }
@@ -12340,7 +12348,7 @@ const Ge = new gp(), hp = {
12340
12348
  }, null, 8, ["visible", "scada-graph"])
12341
12349
  ]));
12342
12350
  }
12343
- }), yp = /* @__PURE__ */ le(bp, [["__scopeId", "data-v-94b1d989"]]), Cp = {
12351
+ }), yp = /* @__PURE__ */ le(bp, [["__scopeId", "data-v-4bf52faf"]]), Cp = {
12344
12352
  ScadaCanvas: yp,
12345
12353
  PropertyPanel: go,
12346
12354
  Header: Q0,
@@ -18,7 +18,7 @@
18
18
  // 获取当前节点位置
19
19
  const pos = node.getPosition();
20
20
  console.log('X:', pos.x, 'Y:', pos.y);
21
- }`,class:"code-textarea code-textarea-full"},null,40,$i)]),e.createElementVNode("div",Fi,[e.createElementVNode("div",wi,[n[7]||(n[7]=e.createElementVNode("label",null,"组件预览",-1)),e.createElementVNode("div",Si,[(r=t.value)!=null&&r.success?(e.openBlock(),e.createElementBlock("span",Ii,"✓ 执行成功")):(c=t.value)!=null&&c.error?(e.openBlock(),e.createElementBlock("span",zi,"✗ 执行失败")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ti,[t.value?t.value.error?(e.openBlock(),e.createElementBlock("div",Ri,[n[8]||(n[8]=e.createElementVNode("div",{class:"error-title"},"错误信息:",-1)),e.createElementVNode("div",Mi,e.toDisplayString(t.value.error),1)])):(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("div",{ref_key:"previewContainer",ref:a,class:"node-preview"},null,512),t.value.logs.length>0?(e.openBlock(),e.createElementBlock("div",Oi,[n[9]||(n[9]=e.createElementVNode("div",{class:"console-title"},"控制台输出:",-1)),e.createElementVNode("div",Ui,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value.logs,(f,u)=>(e.openBlock(),e.createElementBlock("div",{key:u,class:"log-item"},e.toDisplayString(f),1))),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Pi,' 点击"测试执行"按钮查看组件预览效果 '))])])]),e.createElementVNode("div",Li,[e.createElementVNode("button",{class:"btn-cancel",onClick:n[2]||(n[2]=f=>i.$emit("close"))},"取消"),e.createElementVNode("button",{class:"btn-confirm",onClick:n[3]||(n[3]=f=>i.$emit("save"))},"确定")])])])}}}),[["__scopeId","data-v-add3567b"]]),qi={class:"dialog-container"},Gi={class:"dialog-header"},ji={class:"dialog-body"},Xi={key:0,class:"empty-state"},Yi={key:1,class:"workflow-list"},Ki=["onClick"],Ji={class:"workflow-info"},Zi={class:"workflow-name"},Qi={class:"workflow-meta"},ec={class:"workflow-id"},tc={class:"workflow-date"},oc={class:"workflow-actions"},nc=["onClick"],ac={class:"dialog-footer"},rc=["disabled"],lc=te(e.defineComponent({__name:"WorkflowSelectorDialog",emits:["close","select"],setup(g,{emit:E}){const o=E,a=e.ref([]),t=e.ref(null),s=()=>{try{const n=localStorage.getItem("saved-workflows");n&&(a.value=JSON.parse(n))}catch(n){console.error("加载流程列表失败:",n)}},h=n=>{t.value=n},m=n=>{console.log("预览流程:",n)},l=()=>{t.value&&o("select",t.value)},i=n=>new Date(n).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"});return e.onMounted(()=>{s()}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:"dialog-overlay",onClick:r[2]||(r[2]=e.withModifiers(c=>n.$emit("close"),["self"]))},[e.createElementVNode("div",qi,[e.createElementVNode("div",Gi,[r[3]||(r[3]=e.createElementVNode("h3",null,"选择流程",-1)),e.createElementVNode("button",{class:"btn-close",onClick:r[0]||(r[0]=c=>n.$emit("close"))},"×")]),e.createElementVNode("div",ji,[a.value.length===0?(e.openBlock(),e.createElementBlock("div",Xi,[...r[4]||(r[4]=[e.createElementVNode("p",null,"暂无已保存的流程",-1),e.createElementVNode("p",{class:"hint"},"请先在流程编辑器中创建并保存流程",-1)])])):(e.openBlock(),e.createElementBlock("div",Yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,c=>{var f;return e.openBlock(),e.createElementBlock("div",{key:c.id,class:e.normalizeClass(["workflow-item",{selected:((f=t.value)==null?void 0:f.id)===c.id}]),onClick:u=>h(c)},[e.createElementVNode("div",Ji,[e.createElementVNode("div",Zi,e.toDisplayString(c.name),1),e.createElementVNode("div",Qi,[e.createElementVNode("span",ec,"ID: "+e.toDisplayString(c.id),1),e.createElementVNode("span",tc,e.toDisplayString(i(c.createdAt)),1)])]),e.createElementVNode("div",oc,[e.createElementVNode("button",{class:"btn-icon",onClick:e.withModifiers(u=>m(c),["stop"]),title:"预览"}," 👁️ ",8,nc)])],10,Ki)}),128))]))]),e.createElementVNode("div",ac,[e.createElementVNode("button",{class:"btn-secondary",onClick:r[1]||(r[1]=c=>n.$emit("close"))},"取消"),e.createElementVNode("button",{class:"btn-primary",disabled:!t.value,onClick:l}," 确定 ",8,rc)])])]))}}),[["__scopeId","data-v-c9a88e33"]]),Ie={SCADA_EDITOR_DATA:"scada_editor_data",SCADA_PREVIEW_DATA:"scada_preview_data"},ot=(g,E)=>{try{const o=JSON.stringify(E);return sessionStorage.setItem(g,o),!0}catch(o){return console.error(`保存到 sessionStorage 失败 [${g}]:`,o),!1}},eo=g=>{try{const E=sessionStorage.getItem(g);return E?JSON.parse(E):null}catch(E){return console.error(`从 sessionStorage 读取失败 [${g}]:`,E),null}},to=g=>{try{sessionStorage.removeItem(g)}catch(E){console.error(`从 sessionStorage 删除失败 [${g}]:`,E)}},sc=(g,E)=>{try{const o=JSON.stringify(E);return localStorage.setItem(g,o),!0}catch(o){return console.error(`保存到 localStorage 失败 [${g}]:`,o),!1}},ic=g=>{try{const E=localStorage.getItem(g);return E?JSON.parse(E):null}catch(E){return console.error(`从 localStorage 读取失败 [${g}]:`,E),null}},cc=g=>{try{localStorage.removeItem(g)}catch(E){console.error(`从 localStorage 删除失败 [${g}]:`,E)}},oo=(g,E)=>{try{const o=JSON.stringify(g,null,2),a=new Blob([o],{type:"application/json;charset=utf-8"}),t=URL.createObjectURL(a),s=document.createElement("a");return s.href=t,s.download=`${E}.json`,s.click(),URL.revokeObjectURL(t),!0}catch(o){return console.error("导出 JSON 文件失败:",o),!1}},nt=(g="")=>{const E=Date.now(),o=Math.random().toString(36).substring(2,11);return g?`${g}_${E}_${o}`:`${E}_${o}`},no=()=>nt("evt"),dc=()=>nt("node"),at=(g,E="YYYY-MM-DD HH:mm:ss")=>{const o=new Date(g),a=o.getFullYear(),t=String(o.getMonth()+1).padStart(2,"0"),s=String(o.getDate()).padStart(2,"0"),h=String(o.getHours()).padStart(2,"0"),m=String(o.getMinutes()).padStart(2,"0"),l=String(o.getSeconds()).padStart(2,"0");return E.replace("YYYY",String(a)).replace("MM",t).replace("DD",s).replace("HH",h).replace("mm",m).replace("ss",l)},rt=()=>Date.now(),ao=(g=50,E=50,o=400,a=300)=>({x:Math.random()*o+g,y:Math.random()*a+E}),oe=(g,E="info",o=3e3)=>{const a=document.createElement("div");a.className=`scada-toast scada-toast-${E}`,a.textContent=g,Object.assign(a.style,{position:"fixed",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 24px",borderRadius:"6px",fontSize:"14px",fontWeight:"500",zIndex:"10000",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",maxWidth:"80%",wordBreak:"break-word",opacity:"0",transition:"opacity 0.3s ease, transform 0.3s ease"});const s={success:{bg:"#10b981",text:"#fff"},error:{bg:"#ef4444",text:"#fff"},warning:{bg:"#f59e0b",text:"#fff"},info:{bg:"#3b82f6",text:"#fff"}}[E];a.style.backgroundColor=s.bg,a.style.color=s.text,document.body.appendChild(a),requestAnimationFrame(()=>{a.style.opacity="1"}),setTimeout(()=>{a.style.opacity="0",setTimeout(()=>{a.parentNode&&document.body.removeChild(a)},300)},o)},pc={class:"property-panel"},xc={key:1,class:"properties"},fc={key:2,class:"properties"},mc={class:"tabs"},uc={class:"tab-content"},gc={class:"tab-pane"},Ec={class:"property-section"},hc={key:0,class:"empty-hint"},vc={class:"event-list"},bc={class:"tab-pane"},yc={class:"property-section"},Cc={key:0,class:"empty-hint"},Bc={class:"event-list"},lt=te(e.defineComponent({__name:"PropertyPanel",props:{selectedNode:{},selectedEdge:{}},emits:["updateNode","deleteNode","updateEdge","deleteEdge"],setup(g,{emit:E}){const o=g,a=E,t=e.ref("basic"),s=e.ref([]),h=e.ref(new Set),m=e.ref([]),l=e.ref(new Set);e.watch(()=>o.selectedNode,R=>{var M,U;if((M=R==null?void 0:R.data)!=null&&M.events){const j=JSON.parse(JSON.stringify(R.data.events));j.forEach(K=>{K.id||(K.id=k())}),s.value=j}else s.value=[];h.value.clear(),(U=R==null?void 0:R.data)!=null&&U.bindings?m.value=JSON.parse(JSON.stringify(R.data.bindings)):m.value=[],l.value.clear()},{immediate:!0});const i=e.ref(0),n=e.ref(0);let r=null,c={x:0,y:0},f={width:0,height:0};e.watch(()=>o.selectedNode,R=>{if(r&&(clearInterval(r),r=null),R){const M=R.getPosition(),U=R.getSize();M&&typeof M.x=="number"&&typeof M.y=="number"?c=M:(c={x:0,y:0},console.warn("节点位置数据异常:",M)),U&&typeof U.width=="number"&&typeof U.height=="number"?f=U:(f={width:0,height:0},console.warn("节点尺寸数据异常:",U)),r=setInterval(()=>{if(o.selectedNode){const j=o.selectedNode.getPosition(),K=o.selectedNode.getSize();j&&typeof j.x=="number"&&typeof j.y=="number"&&(j.x!==c.x||j.y!==c.y)&&(c=j,i.value++),K&&typeof K.width=="number"&&typeof K.height=="number"&&(K.width!==f.width||K.height!==f.height)&&(f=K,n.value++)}},50)}}),e.onUnmounted(()=>{r&&clearInterval(r)});const u=e.computed(()=>{var M;return i.value,((M=o.selectedNode)==null?void 0:M.getPosition())||{x:0,y:0}}),b=e.computed(()=>{var M;return n.value,((M=o.selectedNode)==null?void 0:M.getSize())||{width:0,height:0}}),B=e.computed(()=>{var M;return((M=o.selectedNode)==null?void 0:M.getAttrs())||{}}),V=(R,M)=>{const U=Number(M.target.value),j=o.selectedNode.getPosition(),K=R==="x"?{x:U,y:j.y}:{x:j.x,y:U};a("updateNode",{position:K})},d=(R,M)=>{const U=Number(M.target.value),j=o.selectedNode.getSize(),K=R==="width"?{width:U,height:j.height}:{width:j.width,height:U};a("updateNode",{size:K})},p=R=>{const M=R.target.value;a("updateNode",{attrs:{text:{text:M},label:{text:M}}})},x=R=>{const M=R.target.value;a("updateNode",{attrs:{body:{fill:M}}})},y=R=>{const M=R.target.value;a("updateNode",{attrs:{body:{stroke:M}}})},v=R=>{const M=Number(R.target.value);a("updateNode",{attrs:{body:{strokeWidth:M}}})},D=R=>{const M=Number(R.target.value);a("updateNode",{attrs:{body:{opacity:M}}})},_=R=>{const M=R.target.value,U={...o.selectedNode.data,componentName:M};a("updateNode",{data:U})},S=(R,M)=>{if(!o.selectedNode)return;const U=R.split(".");if(U[0]==="attrs"){const j=U.slice(1).join("/");a("updateNode",{attrs:{[j]:M}})}else if(U[0]==="data"){const j=JSON.parse(JSON.stringify(o.selectedNode.data||{}));let K=j;for(let xe=1;xe<U.length-1;xe++){const Te=U[xe];K[Te]||(K[Te]={}),K=K[Te]}K[U[U.length-1]]=M,a("updateNode",{data:j})}},C=R=>{if(!o.selectedNode)return;const M={...o.selectedNode.data,dataSource:R};a("updateNode",{data:M})},k=no,$=()=>{const R={id:k(),name:"",type:"click",conditionType:"always",action:"attributeChange",params:{}};s.value.push(R),Q()},z=R=>{s.value.splice(R,1),Q()},O=(R,M,U)=>{const j=U.target.value;s.value[R][M]=j,Q()},W=(R,M,U)=>{const K=U.target.value;s.value[R].condition||(s.value[R].condition={}),s.value[R].condition[M]=K,Q()},Y=(R,M,U)=>{const K=U.target.value;s.value[R].params||(s.value[R].params={}),s.value[R].params[M]=K,Q()},Q=()=>{s.value.forEach(M=>{M.id||(M.id=k())});const R={...o.selectedNode.data,events:s.value};a("updateNode",{data:R})},N=R=>{h.value.has(R)?h.value.delete(R):h.value.add(R)},I=R=>h.value.has(R),P=()=>{const R={devicePointId:"",targetProperty:"",enabled:!0};m.value.push(R),T()},A=R=>{m.value.splice(R,1),T()},F=(R,M,U)=>{const K=U.target.value;m.value[R][M]=K,T()},T=()=>{const R={...o.selectedNode.data,bindings:m.value};a("updateNode",{data:R})},w=R=>{l.value.has(R)?l.value.delete(R):l.value.add(R)},q=R=>l.value.has(R),X=e.ref(!1),L=e.ref(-1),H=e.ref([]),ae=R=>{var U;L.value=R;const M=s.value[R];(U=M.params)!=null&&U.attributeGroups&&Array.isArray(M.params.attributeGroups)?H.value=JSON.parse(JSON.stringify(M.params.attributeGroups)):H.value=[{target:"current",property:"",value:""}],X.value=!0},re=()=>{X.value=!1},ne=()=>{H.value.push({target:"current",property:"",value:""})},ge=R=>{H.value.splice(R,1)},fe=(R,M,U)=>{H.value[R][M]=U},de=()=>{for(const R of H.value)if(!R.property){alert("请为每组配置选择目标属性");return}s.value[L.value].params||(s.value[L.value].params={}),s.value[L.value].params.attributeGroups=JSON.parse(JSON.stringify(H.value)),Q(),re()},ke=e.ref(!1),Ee=e.ref(""),be=e.ref(-1),_e=R=>{var U;be.value=R;const M=s.value[R];Ee.value=((U=M.params)==null?void 0:U.code)||"",ke.value=!0},ze=()=>{ke.value=!1},$e=()=>{s.value[be.value].params||(s.value[be.value].params={}),s.value[be.value].params.code=Ee.value,Q(),ze()},pe=e.ref(!1),se=e.ref(-1),he=R=>{se.value=R,pe.value=!0},Fe=()=>{pe.value=!1},qe=R=>{s.value[se.value].params||(s.value[se.value].params={});const M=s.value[se.value].params;M.processId=R.id,M.processName=R.name,M.processData=R.data,Q(),Fe()},ve=()=>{var M;if(!o.selectedNode)return[];const R=[];return(M=o.selectedNode.data)!=null&&M.props&&Array.isArray(o.selectedNode.data.props)&&o.selectedNode.data.props.forEach(U=>{U.bindable!==!1&&R.push({key:U.key,label:U.label,type:U.type||"text"})}),R},we=R=>{a("updateEdge",R)},qt=()=>{a("deleteEdge")};return(R,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",pc,[!g.selectedNode&&!g.selectedEdge?(e.openBlock(),e.createBlock(Ye,{key:0})):g.selectedEdge?(e.openBlock(),e.createElementBlock("div",xc,[M[5]||(M[5]=e.createElementVNode("h3",{class:"panel-title"},"连线属性",-1)),e.createVNode(tl,{"selected-edge":g.selectedEdge,onUpdateEdge:we,onDeleteEdge:qt},null,8,["selected-edge"])])):g.selectedNode?(e.openBlock(),e.createElementBlock("div",fc,[M[10]||(M[10]=e.createElementVNode("h3",{class:"panel-title"},"节点属性",-1)),e.createElementVNode("div",mc,[e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="basic"}]),onClick:M[0]||(M[0]=U=>t.value="basic")}," 基础 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="data"}]),onClick:M[1]||(M[1]=U=>t.value="data")}," 数据 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="binding"}]),onClick:M[2]||(M[2]=U=>t.value="binding")}," 绑定 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="event"}]),onClick:M[3]||(M[3]=U=>t.value="event")}," 事件 ",2)]),e.createElementVNode("div",uc,[e.withDirectives(e.createVNode(Ke,{"selected-node":g.selectedNode,"node-position":u.value,"node-size":b.value,"node-attrs":B.value,onUpdatePosition:V,onUpdateSize:d,onUpdateLabel:p,onUpdateFill:x,onUpdateStroke:y,onUpdateStrokeWidth:v,onUpdateOpacity:D,onUpdateComponentName:_,onUpdateDynamicProp:S},null,8,["selected-node","node-position","node-size","node-attrs"]),[[e.vShow,t.value==="basic"]]),e.withDirectives(e.createVNode(kr,{"selected-node":g.selectedNode,onUpdateDataSource:C},null,8,["selected-node"]),[[e.vShow,t.value==="data"]]),e.withDirectives(e.createElementVNode("div",gc,[e.createElementVNode("div",Ec,[e.createElementVNode("div",{class:"section-header"},[M[6]||(M[6]=e.createElementVNode("h4",null,"节点事件",-1)),e.createElementVNode("button",{class:"btn-add",onClick:$},"+ 添加事件")]),s.value.length===0?(e.openBlock(),e.createElementBlock("div",hc,[...M[7]||(M[7]=[e.createElementVNode("span",null,"暂无事件,点击上方按钮添加",-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",vc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(U,j)=>(e.openBlock(),e.createBlock(Je,{key:j,event:U,index:j,"is-collapsed":I(j),"node-properties":ve(),onToggleCollapse:K=>N(j),onRemove:K=>z(j),onUpdateField:(K,xe)=>O(j,K,xe),onUpdateCondition:(K,xe)=>W(j,K,xe),onUpdateParams:(K,xe)=>Y(j,K,xe),onOpenAttributeConfig:K=>ae(j),onOpenCustomCode:K=>_e(j),onOpenWorkflowSelector:K=>he(j)},null,8,["event","index","is-collapsed","node-properties","onToggleCollapse","onRemove","onUpdateField","onUpdateCondition","onUpdateParams","onOpenAttributeConfig","onOpenCustomCode","onOpenWorkflowSelector"]))),128))])])],512),[[e.vShow,t.value==="event"]]),e.withDirectives(e.createElementVNode("div",bc,[e.createElementVNode("div",yc,[e.createElementVNode("div",{class:"section-header"},[M[8]||(M[8]=e.createElementVNode("h4",null,"数据绑定",-1)),e.createElementVNode("button",{class:"btn-add",onClick:P},"+ 添加绑定")]),m.value.length===0?(e.openBlock(),e.createElementBlock("div",Cc,[...M[9]||(M[9]=[e.createElementVNode("span",null,"暂无绑定,点击上方按钮添加",-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Bc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(U,j)=>(e.openBlock(),e.createBlock(Qe,{key:j,binding:U,index:j,"is-collapsed":q(j),"node-properties":ve(),"event-list":s.value,onToggleCollapse:K=>w(j),onRemove:K=>A(j),onUpdateField:(K,xe)=>F(j,K,xe)},null,8,["binding","index","is-collapsed","node-properties","event-list","onToggleCollapse","onRemove","onUpdateField"]))),128))])])],512),[[e.vShow,t.value==="binding"]])])])):e.createCommentVNode("",!0)]),X.value?(e.openBlock(),e.createBlock(et,{key:0,"attribute-groups":H.value,"node-properties":ve(),onClose:re,onSave:de,onAddGroup:ne,onRemoveGroup:ge,onUpdateGroup:fe},null,8,["attribute-groups","node-properties"])):e.createCommentVNode("",!0),ke.value?(e.openBlock(),e.createBlock(tt,{key:1,code:Ee.value,"onUpdate:code":M[4]||(M[4]=U=>Ee.value=U),"selected-node":g.selectedNode,onClose:ze,onSave:$e},null,8,["code","selected-node"])):e.createCommentVNode("",!0),pe.value?(e.openBlock(),e.createBlock(lc,{key:2,onClose:Fe,onSelect:qe})):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-7d3281c0"]]);var J=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function kc(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,"default")?g.default:g}function Nc(g){if(g.__esModule)return g;var E=g.default;if(typeof E=="function"){var o=function a(){return this instanceof a?Reflect.construct(E,arguments,this.constructor):E.apply(this,arguments)};o.prototype=E.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(g).forEach(function(a){var t=Object.getOwnPropertyDescriptor(g,a);Object.defineProperty(o,a,t.get?t:{enumerable:!0,get:function(){return g[a]}})}),o}var ro={exports:{}};function Vc(g){throw new Error('Could not dynamically require "'+g+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var st={exports:{}};const Dc=Nc(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var lo;function ee(){return lo||(lo=1,function(g,E){(function(o,a){g.exports=a()})(J,function(){var o=o||function(a,t){var s;if(typeof window<"u"&&window.crypto&&(s=window.crypto),typeof self<"u"&&self.crypto&&(s=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(s=globalThis.crypto),!s&&typeof window<"u"&&window.msCrypto&&(s=window.msCrypto),!s&&typeof J<"u"&&J.crypto&&(s=J.crypto),!s&&typeof Vc=="function")try{s=Dc}catch{}var h=function(){if(s){if(typeof s.getRandomValues=="function")try{return s.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof s.randomBytes=="function")try{return s.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},m=Object.create||function(){function d(){}return function(p){var x;return d.prototype=p,x=new d,d.prototype=null,x}}(),l={},i=l.lib={},n=i.Base=function(){return{extend:function(d){var p=m(this);return d&&p.mixIn(d),(!p.hasOwnProperty("init")||this.init===p.init)&&(p.init=function(){p.$super.init.apply(this,arguments)}),p.init.prototype=p,p.$super=this,p},create:function(){var d=this.extend();return d.init.apply(d,arguments),d},init:function(){},mixIn:function(d){for(var p in d)d.hasOwnProperty(p)&&(this[p]=d[p]);d.hasOwnProperty("toString")&&(this.toString=d.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),r=i.WordArray=n.extend({init:function(d,p){d=this.words=d||[],p!=t?this.sigBytes=p:this.sigBytes=d.length*4},toString:function(d){return(d||f).stringify(this)},concat:function(d){var p=this.words,x=d.words,y=this.sigBytes,v=d.sigBytes;if(this.clamp(),y%4)for(var D=0;D<v;D++){var _=x[D>>>2]>>>24-D%4*8&255;p[y+D>>>2]|=_<<24-(y+D)%4*8}else for(var S=0;S<v;S+=4)p[y+S>>>2]=x[S>>>2];return this.sigBytes+=v,this},clamp:function(){var d=this.words,p=this.sigBytes;d[p>>>2]&=4294967295<<32-p%4*8,d.length=a.ceil(p/4)},clone:function(){var d=n.clone.call(this);return d.words=this.words.slice(0),d},random:function(d){for(var p=[],x=0;x<d;x+=4)p.push(h());return new r.init(p,d)}}),c=l.enc={},f=c.Hex={stringify:function(d){for(var p=d.words,x=d.sigBytes,y=[],v=0;v<x;v++){var D=p[v>>>2]>>>24-v%4*8&255;y.push((D>>>4).toString(16)),y.push((D&15).toString(16))}return y.join("")},parse:function(d){for(var p=d.length,x=[],y=0;y<p;y+=2)x[y>>>3]|=parseInt(d.substr(y,2),16)<<24-y%8*4;return new r.init(x,p/2)}},u=c.Latin1={stringify:function(d){for(var p=d.words,x=d.sigBytes,y=[],v=0;v<x;v++){var D=p[v>>>2]>>>24-v%4*8&255;y.push(String.fromCharCode(D))}return y.join("")},parse:function(d){for(var p=d.length,x=[],y=0;y<p;y++)x[y>>>2]|=(d.charCodeAt(y)&255)<<24-y%4*8;return new r.init(x,p)}},b=c.Utf8={stringify:function(d){try{return decodeURIComponent(escape(u.stringify(d)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(d){return u.parse(unescape(encodeURIComponent(d)))}},B=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(d){typeof d=="string"&&(d=b.parse(d)),this._data.concat(d),this._nDataBytes+=d.sigBytes},_process:function(d){var p,x=this._data,y=x.words,v=x.sigBytes,D=this.blockSize,_=D*4,S=v/_;d?S=a.ceil(S):S=a.max((S|0)-this._minBufferSize,0);var C=S*D,k=a.min(C*4,v);if(C){for(var $=0;$<C;$+=D)this._doProcessBlock(y,$);p=y.splice(0,C),x.sigBytes-=k}return new r.init(p,k)},clone:function(){var d=n.clone.call(this);return d._data=this._data.clone(),d},_minBufferSize:0});i.Hasher=B.extend({cfg:n.extend(),init:function(d){this.cfg=this.cfg.extend(d),this.reset()},reset:function(){B.reset.call(this),this._doReset()},update:function(d){return this._append(d),this._process(),this},finalize:function(d){d&&this._append(d);var p=this._doFinalize();return p},blockSize:16,_createHelper:function(d){return function(p,x){return new d.init(x).finalize(p)}},_createHmacHelper:function(d){return function(p,x){return new V.HMAC.init(d,x).finalize(p)}}});var V=l.algo={};return l}(Math);return o})}(st)),st.exports}var it={exports:{}},so;function Le(){return so||(so=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.Base,m=s.WordArray,l=t.x64={};l.Word=h.extend({init:function(i,n){this.high=i,this.low=n}}),l.WordArray=h.extend({init:function(i,n){i=this.words=i||[],n!=a?this.sigBytes=n:this.sigBytes=i.length*8},toX32:function(){for(var i=this.words,n=i.length,r=[],c=0;c<n;c++){var f=i[c];r.push(f.high),r.push(f.low)}return m.create(r,this.sigBytes)},clone:function(){for(var i=h.clone.call(this),n=i.words=this.words.slice(0),r=n.length,c=0;c<r;c++)n[c]=n[c].clone();return i}})}(),o})}(it)),it.exports}var ct={exports:{}},io;function Ac(){return io||(io=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){if(typeof ArrayBuffer=="function"){var a=o,t=a.lib,s=t.WordArray,h=s.init,m=s.init=function(l){if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),(l instanceof Int8Array||typeof Uint8ClampedArray<"u"&&l instanceof Uint8ClampedArray||l instanceof Int16Array||l instanceof Uint16Array||l instanceof Int32Array||l instanceof Uint32Array||l instanceof Float32Array||l instanceof Float64Array)&&(l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)),l instanceof Uint8Array){for(var i=l.byteLength,n=[],r=0;r<i;r++)n[r>>>2]|=l[r]<<24-r%4*8;h.call(this,n,i)}else h.apply(this,arguments)};m.prototype=s}}(),o.lib.WordArray})}(ct)),ct.exports}var dt={exports:{}},co;function _c(){return co||(co=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Utf16=h.Utf16BE={stringify:function(l){for(var i=l.words,n=l.sigBytes,r=[],c=0;c<n;c+=2){var f=i[c>>>2]>>>16-c%4*8&65535;r.push(String.fromCharCode(f))}return r.join("")},parse:function(l){for(var i=l.length,n=[],r=0;r<i;r++)n[r>>>1]|=l.charCodeAt(r)<<16-r%2*16;return s.create(n,i*2)}},h.Utf16LE={stringify:function(l){for(var i=l.words,n=l.sigBytes,r=[],c=0;c<n;c+=2){var f=m(i[c>>>2]>>>16-c%4*8&65535);r.push(String.fromCharCode(f))}return r.join("")},parse:function(l){for(var i=l.length,n=[],r=0;r<i;r++)n[r>>>1]|=m(l.charCodeAt(r)<<16-r%2*16);return s.create(n,i*2)}};function m(l){return l<<8&4278255360|l>>>8&16711935}}(),o.enc.Utf16})}(dt)),dt.exports}var pt={exports:{}},po;function De(){return po||(po=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Base64={stringify:function(l){var i=l.words,n=l.sigBytes,r=this._map;l.clamp();for(var c=[],f=0;f<n;f+=3)for(var u=i[f>>>2]>>>24-f%4*8&255,b=i[f+1>>>2]>>>24-(f+1)%4*8&255,B=i[f+2>>>2]>>>24-(f+2)%4*8&255,V=u<<16|b<<8|B,d=0;d<4&&f+d*.75<n;d++)c.push(r.charAt(V>>>6*(3-d)&63));var p=r.charAt(64);if(p)for(;c.length%4;)c.push(p);return c.join("")},parse:function(l){var i=l.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var c=0;c<n.length;c++)r[n.charCodeAt(c)]=c}var f=n.charAt(64);if(f){var u=l.indexOf(f);u!==-1&&(i=u)}return m(l,i,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function m(l,i,n){for(var r=[],c=0,f=0;f<i;f++)if(f%4){var u=n[l.charCodeAt(f-1)]<<f%4*2,b=n[l.charCodeAt(f)]>>>6-f%4*2,B=u|b;r[c>>>2]|=B<<24-c%4*8,c++}return s.create(r,c)}}(),o.enc.Base64})}(pt)),pt.exports}var xt={exports:{}},xo;function $c(){return xo||(xo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Base64url={stringify:function(l,i){i===void 0&&(i=!0);var n=l.words,r=l.sigBytes,c=i?this._safe_map:this._map;l.clamp();for(var f=[],u=0;u<r;u+=3)for(var b=n[u>>>2]>>>24-u%4*8&255,B=n[u+1>>>2]>>>24-(u+1)%4*8&255,V=n[u+2>>>2]>>>24-(u+2)%4*8&255,d=b<<16|B<<8|V,p=0;p<4&&u+p*.75<r;p++)f.push(c.charAt(d>>>6*(3-p)&63));var x=c.charAt(64);if(x)for(;f.length%4;)f.push(x);return f.join("")},parse:function(l,i){i===void 0&&(i=!0);var n=l.length,r=i?this._safe_map:this._map,c=this._reverseMap;if(!c){c=this._reverseMap=[];for(var f=0;f<r.length;f++)c[r.charCodeAt(f)]=f}var u=r.charAt(64);if(u){var b=l.indexOf(u);b!==-1&&(n=b)}return m(l,n,c)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function m(l,i,n){for(var r=[],c=0,f=0;f<i;f++)if(f%4){var u=n[l.charCodeAt(f-1)]<<f%4*2,b=n[l.charCodeAt(f)]>>>6-f%4*2,B=u|b;r[c>>>2]|=B<<24-c%4*8,c++}return s.create(r,c)}}(),o.enc.Base64url})}(xt)),xt.exports}var ft={exports:{}},fo;function Ae(){return fo||(fo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.algo,i=[];(function(){for(var b=0;b<64;b++)i[b]=a.abs(a.sin(b+1))*4294967296|0})();var n=l.MD5=m.extend({_doReset:function(){this._hash=new h.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(b,B){for(var V=0;V<16;V++){var d=B+V,p=b[d];b[d]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360}var x=this._hash.words,y=b[B+0],v=b[B+1],D=b[B+2],_=b[B+3],S=b[B+4],C=b[B+5],k=b[B+6],$=b[B+7],z=b[B+8],O=b[B+9],W=b[B+10],Y=b[B+11],Q=b[B+12],N=b[B+13],I=b[B+14],P=b[B+15],A=x[0],F=x[1],T=x[2],w=x[3];A=r(A,F,T,w,y,7,i[0]),w=r(w,A,F,T,v,12,i[1]),T=r(T,w,A,F,D,17,i[2]),F=r(F,T,w,A,_,22,i[3]),A=r(A,F,T,w,S,7,i[4]),w=r(w,A,F,T,C,12,i[5]),T=r(T,w,A,F,k,17,i[6]),F=r(F,T,w,A,$,22,i[7]),A=r(A,F,T,w,z,7,i[8]),w=r(w,A,F,T,O,12,i[9]),T=r(T,w,A,F,W,17,i[10]),F=r(F,T,w,A,Y,22,i[11]),A=r(A,F,T,w,Q,7,i[12]),w=r(w,A,F,T,N,12,i[13]),T=r(T,w,A,F,I,17,i[14]),F=r(F,T,w,A,P,22,i[15]),A=c(A,F,T,w,v,5,i[16]),w=c(w,A,F,T,k,9,i[17]),T=c(T,w,A,F,Y,14,i[18]),F=c(F,T,w,A,y,20,i[19]),A=c(A,F,T,w,C,5,i[20]),w=c(w,A,F,T,W,9,i[21]),T=c(T,w,A,F,P,14,i[22]),F=c(F,T,w,A,S,20,i[23]),A=c(A,F,T,w,O,5,i[24]),w=c(w,A,F,T,I,9,i[25]),T=c(T,w,A,F,_,14,i[26]),F=c(F,T,w,A,z,20,i[27]),A=c(A,F,T,w,N,5,i[28]),w=c(w,A,F,T,D,9,i[29]),T=c(T,w,A,F,$,14,i[30]),F=c(F,T,w,A,Q,20,i[31]),A=f(A,F,T,w,C,4,i[32]),w=f(w,A,F,T,z,11,i[33]),T=f(T,w,A,F,Y,16,i[34]),F=f(F,T,w,A,I,23,i[35]),A=f(A,F,T,w,v,4,i[36]),w=f(w,A,F,T,S,11,i[37]),T=f(T,w,A,F,$,16,i[38]),F=f(F,T,w,A,W,23,i[39]),A=f(A,F,T,w,N,4,i[40]),w=f(w,A,F,T,y,11,i[41]),T=f(T,w,A,F,_,16,i[42]),F=f(F,T,w,A,k,23,i[43]),A=f(A,F,T,w,O,4,i[44]),w=f(w,A,F,T,Q,11,i[45]),T=f(T,w,A,F,P,16,i[46]),F=f(F,T,w,A,D,23,i[47]),A=u(A,F,T,w,y,6,i[48]),w=u(w,A,F,T,$,10,i[49]),T=u(T,w,A,F,I,15,i[50]),F=u(F,T,w,A,C,21,i[51]),A=u(A,F,T,w,Q,6,i[52]),w=u(w,A,F,T,_,10,i[53]),T=u(T,w,A,F,W,15,i[54]),F=u(F,T,w,A,v,21,i[55]),A=u(A,F,T,w,z,6,i[56]),w=u(w,A,F,T,P,10,i[57]),T=u(T,w,A,F,k,15,i[58]),F=u(F,T,w,A,N,21,i[59]),A=u(A,F,T,w,S,6,i[60]),w=u(w,A,F,T,Y,10,i[61]),T=u(T,w,A,F,D,15,i[62]),F=u(F,T,w,A,O,21,i[63]),x[0]=x[0]+A|0,x[1]=x[1]+F|0,x[2]=x[2]+T|0,x[3]=x[3]+w|0},_doFinalize:function(){var b=this._data,B=b.words,V=this._nDataBytes*8,d=b.sigBytes*8;B[d>>>5]|=128<<24-d%32;var p=a.floor(V/4294967296),x=V;B[(d+64>>>9<<4)+15]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,B[(d+64>>>9<<4)+14]=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,b.sigBytes=(B.length+1)*4,this._process();for(var y=this._hash,v=y.words,D=0;D<4;D++){var _=v[D];v[D]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360}return y},clone:function(){var b=m.clone.call(this);return b._hash=this._hash.clone(),b}});function r(b,B,V,d,p,x,y){var v=b+(B&V|~B&d)+p+y;return(v<<x|v>>>32-x)+B}function c(b,B,V,d,p,x,y){var v=b+(B&d|V&~d)+p+y;return(v<<x|v>>>32-x)+B}function f(b,B,V,d,p,x,y){var v=b+(B^V^d)+p+y;return(v<<x|v>>>32-x)+B}function u(b,B,V,d,p,x,y){var v=b+(V^(B|~d))+p+y;return(v<<x|v>>>32-x)+B}t.MD5=m._createHelper(n),t.HmacMD5=m._createHmacHelper(n)}(Math),o.MD5})}(ft)),ft.exports}var mt={exports:{}},mo;function uo(){return mo||(mo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=t.Hasher,m=a.algo,l=[],i=m.SHA1=h.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(n,r){for(var c=this._hash.words,f=c[0],u=c[1],b=c[2],B=c[3],V=c[4],d=0;d<80;d++){if(d<16)l[d]=n[r+d]|0;else{var p=l[d-3]^l[d-8]^l[d-14]^l[d-16];l[d]=p<<1|p>>>31}var x=(f<<5|f>>>27)+V+l[d];d<20?x+=(u&b|~u&B)+1518500249:d<40?x+=(u^b^B)+1859775393:d<60?x+=(u&b|u&B|b&B)-1894007588:x+=(u^b^B)-899497514,V=B,B=b,b=u<<30|u>>>2,u=f,f=x}c[0]=c[0]+f|0,c[1]=c[1]+u|0,c[2]=c[2]+b|0,c[3]=c[3]+B|0,c[4]=c[4]+V|0},_doFinalize:function(){var n=this._data,r=n.words,c=this._nDataBytes*8,f=n.sigBytes*8;return r[f>>>5]|=128<<24-f%32,r[(f+64>>>9<<4)+14]=Math.floor(c/4294967296),r[(f+64>>>9<<4)+15]=c,n.sigBytes=r.length*4,this._process(),this._hash},clone:function(){var n=h.clone.call(this);return n._hash=this._hash.clone(),n}});a.SHA1=h._createHelper(i),a.HmacSHA1=h._createHmacHelper(i)}(),o.SHA1})}(mt)),mt.exports}var ut={exports:{}},go;function gt(){return go||(go=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.algo,i=[],n=[];(function(){function f(V){for(var d=a.sqrt(V),p=2;p<=d;p++)if(!(V%p))return!1;return!0}function u(V){return(V-(V|0))*4294967296|0}for(var b=2,B=0;B<64;)f(b)&&(B<8&&(i[B]=u(a.pow(b,1/2))),n[B]=u(a.pow(b,1/3)),B++),b++})();var r=[],c=l.SHA256=m.extend({_doReset:function(){this._hash=new h.init(i.slice(0))},_doProcessBlock:function(f,u){for(var b=this._hash.words,B=b[0],V=b[1],d=b[2],p=b[3],x=b[4],y=b[5],v=b[6],D=b[7],_=0;_<64;_++){if(_<16)r[_]=f[u+_]|0;else{var S=r[_-15],C=(S<<25|S>>>7)^(S<<14|S>>>18)^S>>>3,k=r[_-2],$=(k<<15|k>>>17)^(k<<13|k>>>19)^k>>>10;r[_]=C+r[_-7]+$+r[_-16]}var z=x&y^~x&v,O=B&V^B&d^V&d,W=(B<<30|B>>>2)^(B<<19|B>>>13)^(B<<10|B>>>22),Y=(x<<26|x>>>6)^(x<<21|x>>>11)^(x<<7|x>>>25),Q=D+Y+z+n[_]+r[_],N=W+O;D=v,v=y,y=x,x=p+Q|0,p=d,d=V,V=B,B=Q+N|0}b[0]=b[0]+B|0,b[1]=b[1]+V|0,b[2]=b[2]+d|0,b[3]=b[3]+p|0,b[4]=b[4]+x|0,b[5]=b[5]+y|0,b[6]=b[6]+v|0,b[7]=b[7]+D|0},_doFinalize:function(){var f=this._data,u=f.words,b=this._nDataBytes*8,B=f.sigBytes*8;return u[B>>>5]|=128<<24-B%32,u[(B+64>>>9<<4)+14]=a.floor(b/4294967296),u[(B+64>>>9<<4)+15]=b,f.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var f=m.clone.call(this);return f._hash=this._hash.clone(),f}});t.SHA256=m._createHelper(c),t.HmacSHA256=m._createHmacHelper(c)}(Math),o.SHA256})}(ut)),ut.exports}var Et={exports:{}},Eo;function Fc(){return Eo||(Eo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),gt())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.algo,m=h.SHA256,l=h.SHA224=m.extend({_doReset:function(){this._hash=new s.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var i=m._doFinalize.call(this);return i.sigBytes-=4,i}});a.SHA224=m._createHelper(l),a.HmacSHA224=m._createHmacHelper(l)}(),o.SHA224})}(Et)),Et.exports}var ht={exports:{}},ho;function vo(){return ho||(ho=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le())})(J,function(o){return function(){var a=o,t=a.lib,s=t.Hasher,h=a.x64,m=h.Word,l=h.WordArray,i=a.algo;function n(){return m.create.apply(m,arguments)}var r=[n(1116352408,3609767458),n(1899447441,602891725),n(3049323471,3964484399),n(3921009573,2173295548),n(961987163,4081628472),n(1508970993,3053834265),n(2453635748,2937671579),n(2870763221,3664609560),n(3624381080,2734883394),n(310598401,1164996542),n(607225278,1323610764),n(1426881987,3590304994),n(1925078388,4068182383),n(2162078206,991336113),n(2614888103,633803317),n(3248222580,3479774868),n(3835390401,2666613458),n(4022224774,944711139),n(264347078,2341262773),n(604807628,2007800933),n(770255983,1495990901),n(1249150122,1856431235),n(1555081692,3175218132),n(1996064986,2198950837),n(2554220882,3999719339),n(2821834349,766784016),n(2952996808,2566594879),n(3210313671,3203337956),n(3336571891,1034457026),n(3584528711,2466948901),n(113926993,3758326383),n(338241895,168717936),n(666307205,1188179964),n(773529912,1546045734),n(1294757372,1522805485),n(1396182291,2643833823),n(1695183700,2343527390),n(1986661051,1014477480),n(2177026350,1206759142),n(2456956037,344077627),n(2730485921,1290863460),n(2820302411,3158454273),n(3259730800,3505952657),n(3345764771,106217008),n(3516065817,3606008344),n(3600352804,1432725776),n(4094571909,1467031594),n(275423344,851169720),n(430227734,3100823752),n(506948616,1363258195),n(659060556,3750685593),n(883997877,3785050280),n(958139571,3318307427),n(1322822218,3812723403),n(1537002063,2003034995),n(1747873779,3602036899),n(1955562222,1575990012),n(2024104815,1125592928),n(2227730452,2716904306),n(2361852424,442776044),n(2428436474,593698344),n(2756734187,3733110249),n(3204031479,2999351573),n(3329325298,3815920427),n(3391569614,3928383900),n(3515267271,566280711),n(3940187606,3454069534),n(4118630271,4000239992),n(116418474,1914138554),n(174292421,2731055270),n(289380356,3203993006),n(460393269,320620315),n(685471733,587496836),n(852142971,1086792851),n(1017036298,365543100),n(1126000580,2618297676),n(1288033470,3409855158),n(1501505948,4234509866),n(1607167915,987167468),n(1816402316,1246189591)],c=[];(function(){for(var u=0;u<80;u++)c[u]=n()})();var f=i.SHA512=s.extend({_doReset:function(){this._hash=new l.init([new m.init(1779033703,4089235720),new m.init(3144134277,2227873595),new m.init(1013904242,4271175723),new m.init(2773480762,1595750129),new m.init(1359893119,2917565137),new m.init(2600822924,725511199),new m.init(528734635,4215389547),new m.init(1541459225,327033209)])},_doProcessBlock:function(u,b){for(var B=this._hash.words,V=B[0],d=B[1],p=B[2],x=B[3],y=B[4],v=B[5],D=B[6],_=B[7],S=V.high,C=V.low,k=d.high,$=d.low,z=p.high,O=p.low,W=x.high,Y=x.low,Q=y.high,N=y.low,I=v.high,P=v.low,A=D.high,F=D.low,T=_.high,w=_.low,q=S,X=C,L=k,H=$,ae=z,re=O,ne=W,ge=Y,fe=Q,de=N,ke=I,Ee=P,be=A,_e=F,ze=T,$e=w,pe=0;pe<80;pe++){var se,he,Fe=c[pe];if(pe<16)he=Fe.high=u[b+pe*2]|0,se=Fe.low=u[b+pe*2+1]|0;else{var qe=c[pe-15],ve=qe.high,we=qe.low,qt=(ve>>>1|we<<31)^(ve>>>8|we<<24)^ve>>>7,R=(we>>>1|ve<<31)^(we>>>8|ve<<24)^(we>>>7|ve<<25),M=c[pe-2],U=M.high,j=M.low,K=(U>>>19|j<<13)^(U<<3|j>>>29)^U>>>6,xe=(j>>>19|U<<13)^(j<<3|U>>>29)^(j>>>6|U<<26),Te=c[pe-7],ip=Te.high,cp=Te.low,Ko=c[pe-16],dp=Ko.high,Jo=Ko.low;se=R+cp,he=qt+ip+(se>>>0<R>>>0?1:0),se=se+xe,he=he+K+(se>>>0<xe>>>0?1:0),se=se+Jo,he=he+dp+(se>>>0<Jo>>>0?1:0),Fe.high=he,Fe.low=se}var pp=fe&ke^~fe&be,Zo=de&Ee^~de&_e,xp=q&L^q&ae^L&ae,fp=X&H^X&re^H&re,mp=(q>>>28|X<<4)^(q<<30|X>>>2)^(q<<25|X>>>7),Qo=(X>>>28|q<<4)^(X<<30|q>>>2)^(X<<25|q>>>7),up=(fe>>>14|de<<18)^(fe>>>18|de<<14)^(fe<<23|de>>>9),gp=(de>>>14|fe<<18)^(de>>>18|fe<<14)^(de<<23|fe>>>9),en=r[pe],Ep=en.high,tn=en.low,me=$e+gp,Ne=ze+up+(me>>>0<$e>>>0?1:0),me=me+Zo,Ne=Ne+pp+(me>>>0<Zo>>>0?1:0),me=me+tn,Ne=Ne+Ep+(me>>>0<tn>>>0?1:0),me=me+se,Ne=Ne+he+(me>>>0<se>>>0?1:0),on=Qo+fp,hp=mp+xp+(on>>>0<Qo>>>0?1:0);ze=be,$e=_e,be=ke,_e=Ee,ke=fe,Ee=de,de=ge+me|0,fe=ne+Ne+(de>>>0<ge>>>0?1:0)|0,ne=ae,ge=re,ae=L,re=H,L=q,H=X,X=me+on|0,q=Ne+hp+(X>>>0<me>>>0?1:0)|0}C=V.low=C+X,V.high=S+q+(C>>>0<X>>>0?1:0),$=d.low=$+H,d.high=k+L+($>>>0<H>>>0?1:0),O=p.low=O+re,p.high=z+ae+(O>>>0<re>>>0?1:0),Y=x.low=Y+ge,x.high=W+ne+(Y>>>0<ge>>>0?1:0),N=y.low=N+de,y.high=Q+fe+(N>>>0<de>>>0?1:0),P=v.low=P+Ee,v.high=I+ke+(P>>>0<Ee>>>0?1:0),F=D.low=F+_e,D.high=A+be+(F>>>0<_e>>>0?1:0),w=_.low=w+$e,_.high=T+ze+(w>>>0<$e>>>0?1:0)},_doFinalize:function(){var u=this._data,b=u.words,B=this._nDataBytes*8,V=u.sigBytes*8;b[V>>>5]|=128<<24-V%32,b[(V+128>>>10<<5)+30]=Math.floor(B/4294967296),b[(V+128>>>10<<5)+31]=B,u.sigBytes=b.length*4,this._process();var d=this._hash.toX32();return d},clone:function(){var u=s.clone.call(this);return u._hash=this._hash.clone(),u},blockSize:1024/32});a.SHA512=s._createHelper(f),a.HmacSHA512=s._createHmacHelper(f)}(),o.SHA512})}(ht)),ht.exports}var vt={exports:{}},bo;function wc(){return bo||(bo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le(),vo())})(J,function(o){return function(){var a=o,t=a.x64,s=t.Word,h=t.WordArray,m=a.algo,l=m.SHA512,i=m.SHA384=l.extend({_doReset:function(){this._hash=new h.init([new s.init(3418070365,3238371032),new s.init(1654270250,914150663),new s.init(2438529370,812702999),new s.init(355462360,4144912697),new s.init(1731405415,4290775857),new s.init(2394180231,1750603025),new s.init(3675008525,1694076839),new s.init(1203062813,3204075428)])},_doFinalize:function(){var n=l._doFinalize.call(this);return n.sigBytes-=16,n}});a.SHA384=l._createHelper(i),a.HmacSHA384=l._createHmacHelper(i)}(),o.SHA384})}(vt)),vt.exports}var bt={exports:{}},yo;function Sc(){return yo||(yo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.x64,i=l.Word,n=t.algo,r=[],c=[],f=[];(function(){for(var B=1,V=0,d=0;d<24;d++){r[B+5*V]=(d+1)*(d+2)/2%64;var p=V%5,x=(2*B+3*V)%5;B=p,V=x}for(var B=0;B<5;B++)for(var V=0;V<5;V++)c[B+5*V]=V+(2*B+3*V)%5*5;for(var y=1,v=0;v<24;v++){for(var D=0,_=0,S=0;S<7;S++){if(y&1){var C=(1<<S)-1;C<32?_^=1<<C:D^=1<<C-32}y&128?y=y<<1^113:y<<=1}f[v]=i.create(D,_)}})();var u=[];(function(){for(var B=0;B<25;B++)u[B]=i.create()})();var b=n.SHA3=m.extend({cfg:m.cfg.extend({outputLength:512}),_doReset:function(){for(var B=this._state=[],V=0;V<25;V++)B[V]=new i.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(B,V){for(var d=this._state,p=this.blockSize/2,x=0;x<p;x++){var y=B[V+2*x],v=B[V+2*x+1];y=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,v=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360;var D=d[x];D.high^=v,D.low^=y}for(var _=0;_<24;_++){for(var S=0;S<5;S++){for(var C=0,k=0,$=0;$<5;$++){var D=d[S+5*$];C^=D.high,k^=D.low}var z=u[S];z.high=C,z.low=k}for(var S=0;S<5;S++)for(var O=u[(S+4)%5],W=u[(S+1)%5],Y=W.high,Q=W.low,C=O.high^(Y<<1|Q>>>31),k=O.low^(Q<<1|Y>>>31),$=0;$<5;$++){var D=d[S+5*$];D.high^=C,D.low^=k}for(var N=1;N<25;N++){var C,k,D=d[N],I=D.high,P=D.low,A=r[N];A<32?(C=I<<A|P>>>32-A,k=P<<A|I>>>32-A):(C=P<<A-32|I>>>64-A,k=I<<A-32|P>>>64-A);var F=u[c[N]];F.high=C,F.low=k}var T=u[0],w=d[0];T.high=w.high,T.low=w.low;for(var S=0;S<5;S++)for(var $=0;$<5;$++){var N=S+5*$,D=d[N],q=u[N],X=u[(S+1)%5+5*$],L=u[(S+2)%5+5*$];D.high=q.high^~X.high&L.high,D.low=q.low^~X.low&L.low}var D=d[0],H=f[_];D.high^=H.high,D.low^=H.low}},_doFinalize:function(){var B=this._data,V=B.words;this._nDataBytes*8;var d=B.sigBytes*8,p=this.blockSize*32;V[d>>>5]|=1<<24-d%32,V[(a.ceil((d+1)/p)*p>>>5)-1]|=128,B.sigBytes=V.length*4,this._process();for(var x=this._state,y=this.cfg.outputLength/8,v=y/8,D=[],_=0;_<v;_++){var S=x[_],C=S.high,k=S.low;C=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,k=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D.push(k),D.push(C)}return new h.init(D,y)},clone:function(){for(var B=m.clone.call(this),V=B._state=this._state.slice(0),d=0;d<25;d++)V[d]=V[d].clone();return B}});t.SHA3=m._createHelper(b),t.HmacSHA3=m._createHmacHelper(b)}(Math),o.SHA3})}(bt)),bt.exports}var yt={exports:{}},Co;function Ic(){return Co||(Co=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){/** @preserve
21
+ }`,class:"code-textarea code-textarea-full"},null,40,$i)]),e.createElementVNode("div",Fi,[e.createElementVNode("div",wi,[n[7]||(n[7]=e.createElementVNode("label",null,"组件预览",-1)),e.createElementVNode("div",Si,[(r=t.value)!=null&&r.success?(e.openBlock(),e.createElementBlock("span",Ii,"✓ 执行成功")):(c=t.value)!=null&&c.error?(e.openBlock(),e.createElementBlock("span",zi,"✗ 执行失败")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ti,[t.value?t.value.error?(e.openBlock(),e.createElementBlock("div",Ri,[n[8]||(n[8]=e.createElementVNode("div",{class:"error-title"},"错误信息:",-1)),e.createElementVNode("div",Mi,e.toDisplayString(t.value.error),1)])):(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("div",{ref_key:"previewContainer",ref:a,class:"node-preview"},null,512),t.value.logs.length>0?(e.openBlock(),e.createElementBlock("div",Oi,[n[9]||(n[9]=e.createElementVNode("div",{class:"console-title"},"控制台输出:",-1)),e.createElementVNode("div",Ui,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value.logs,(f,u)=>(e.openBlock(),e.createElementBlock("div",{key:u,class:"log-item"},e.toDisplayString(f),1))),128))])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Pi,' 点击"测试执行"按钮查看组件预览效果 '))])])]),e.createElementVNode("div",Li,[e.createElementVNode("button",{class:"btn-cancel",onClick:n[2]||(n[2]=f=>i.$emit("close"))},"取消"),e.createElementVNode("button",{class:"btn-confirm",onClick:n[3]||(n[3]=f=>i.$emit("save"))},"确定")])])])}}}),[["__scopeId","data-v-add3567b"]]),qi={class:"dialog-container"},Gi={class:"dialog-header"},ji={class:"dialog-body"},Xi={key:0,class:"empty-state"},Yi={key:1,class:"workflow-list"},Ki=["onClick"],Ji={class:"workflow-info"},Zi={class:"workflow-name"},Qi={class:"workflow-meta"},ec={class:"workflow-id"},tc={class:"workflow-date"},oc={class:"workflow-actions"},nc=["onClick"],ac={class:"dialog-footer"},rc=["disabled"],lc=te(e.defineComponent({__name:"WorkflowSelectorDialog",emits:["close","select"],setup(g,{emit:E}){const o=E,a=e.ref([]),t=e.ref(null),s=()=>{try{const n=localStorage.getItem("saved-workflows");n&&(a.value=JSON.parse(n))}catch(n){console.error("加载流程列表失败:",n)}},h=n=>{t.value=n},m=n=>{console.log("预览流程:",n)},l=()=>{t.value&&o("select",t.value)},i=n=>new Date(n).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"});return e.onMounted(()=>{s()}),(n,r)=>(e.openBlock(),e.createElementBlock("div",{class:"dialog-overlay",onClick:r[2]||(r[2]=e.withModifiers(c=>n.$emit("close"),["self"]))},[e.createElementVNode("div",qi,[e.createElementVNode("div",Gi,[r[3]||(r[3]=e.createElementVNode("h3",null,"选择流程",-1)),e.createElementVNode("button",{class:"btn-close",onClick:r[0]||(r[0]=c=>n.$emit("close"))},"×")]),e.createElementVNode("div",ji,[a.value.length===0?(e.openBlock(),e.createElementBlock("div",Xi,[...r[4]||(r[4]=[e.createElementVNode("p",null,"暂无已保存的流程",-1),e.createElementVNode("p",{class:"hint"},"请先在流程编辑器中创建并保存流程",-1)])])):(e.openBlock(),e.createElementBlock("div",Yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,c=>{var f;return e.openBlock(),e.createElementBlock("div",{key:c.id,class:e.normalizeClass(["workflow-item",{selected:((f=t.value)==null?void 0:f.id)===c.id}]),onClick:u=>h(c)},[e.createElementVNode("div",Ji,[e.createElementVNode("div",Zi,e.toDisplayString(c.name),1),e.createElementVNode("div",Qi,[e.createElementVNode("span",ec,"ID: "+e.toDisplayString(c.id),1),e.createElementVNode("span",tc,e.toDisplayString(i(c.createdAt)),1)])]),e.createElementVNode("div",oc,[e.createElementVNode("button",{class:"btn-icon",onClick:e.withModifiers(u=>m(c),["stop"]),title:"预览"}," 👁️ ",8,nc)])],10,Ki)}),128))]))]),e.createElementVNode("div",ac,[e.createElementVNode("button",{class:"btn-secondary",onClick:r[1]||(r[1]=c=>n.$emit("close"))},"取消"),e.createElementVNode("button",{class:"btn-primary",disabled:!t.value,onClick:l}," 确定 ",8,rc)])])]))}}),[["__scopeId","data-v-c9a88e33"]]),Ie={SCADA_EDITOR_DATA:"scada_editor_data",SCADA_PREVIEW_DATA:"scada_preview_data"},ot=(g,E)=>{try{const o=JSON.stringify(E);return sessionStorage.setItem(g,o),!0}catch(o){return console.error(`保存到 sessionStorage 失败 [${g}]:`,o),!1}},eo=g=>{try{const E=sessionStorage.getItem(g);return E?JSON.parse(E):null}catch(E){return console.error(`从 sessionStorage 读取失败 [${g}]:`,E),null}},to=g=>{try{sessionStorage.removeItem(g)}catch(E){console.error(`从 sessionStorage 删除失败 [${g}]:`,E)}},sc=(g,E)=>{try{const o=JSON.stringify(E);return localStorage.setItem(g,o),!0}catch(o){return console.error(`保存到 localStorage 失败 [${g}]:`,o),!1}},ic=g=>{try{const E=localStorage.getItem(g);return E?JSON.parse(E):null}catch(E){return console.error(`从 localStorage 读取失败 [${g}]:`,E),null}},cc=g=>{try{localStorage.removeItem(g)}catch(E){console.error(`从 localStorage 删除失败 [${g}]:`,E)}},oo=(g,E)=>{try{const o=JSON.stringify(g,null,2),a=new Blob([o],{type:"application/json;charset=utf-8"}),t=URL.createObjectURL(a),s=document.createElement("a");return s.href=t,s.download=`${E}.json`,s.click(),URL.revokeObjectURL(t),!0}catch(o){return console.error("导出 JSON 文件失败:",o),!1}},nt=(g="")=>{const E=Date.now(),o=Math.random().toString(36).substring(2,11);return g?`${g}_${E}_${o}`:`${E}_${o}`},no=()=>nt("evt"),dc=()=>nt("node"),at=(g,E="YYYY-MM-DD HH:mm:ss")=>{const o=new Date(g),a=o.getFullYear(),t=String(o.getMonth()+1).padStart(2,"0"),s=String(o.getDate()).padStart(2,"0"),h=String(o.getHours()).padStart(2,"0"),m=String(o.getMinutes()).padStart(2,"0"),l=String(o.getSeconds()).padStart(2,"0");return E.replace("YYYY",String(a)).replace("MM",t).replace("DD",s).replace("HH",h).replace("mm",m).replace("ss",l)},rt=()=>Date.now(),ao=(g=50,E=50,o=400,a=300)=>({x:Math.random()*o+g,y:Math.random()*a+E}),ne=(g,E="info",o=3e3)=>{const a=document.createElement("div");a.className=`scada-toast scada-toast-${E}`,a.textContent=g,Object.assign(a.style,{position:"fixed",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 24px",borderRadius:"6px",fontSize:"14px",fontWeight:"500",zIndex:"10000",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",maxWidth:"80%",wordBreak:"break-word",opacity:"0",transition:"opacity 0.3s ease, transform 0.3s ease"});const s={success:{bg:"#10b981",text:"#fff"},error:{bg:"#ef4444",text:"#fff"},warning:{bg:"#f59e0b",text:"#fff"},info:{bg:"#3b82f6",text:"#fff"}}[E];a.style.backgroundColor=s.bg,a.style.color=s.text,document.body.appendChild(a),requestAnimationFrame(()=>{a.style.opacity="1"}),setTimeout(()=>{a.style.opacity="0",setTimeout(()=>{a.parentNode&&document.body.removeChild(a)},300)},o)},pc={class:"property-panel"},xc={key:1,class:"properties"},fc={key:2,class:"properties"},mc={class:"tabs"},uc={class:"tab-content"},gc={class:"tab-pane"},Ec={class:"property-section"},hc={key:0,class:"empty-hint"},vc={class:"event-list"},bc={class:"tab-pane"},yc={class:"property-section"},Cc={key:0,class:"empty-hint"},Bc={class:"event-list"},lt=te(e.defineComponent({__name:"PropertyPanel",props:{selectedNode:{},selectedEdge:{}},emits:["updateNode","deleteNode","updateEdge","deleteEdge"],setup(g,{emit:E}){const o=g,a=E,t=e.ref("basic"),s=e.ref([]),h=e.ref(new Set),m=e.ref([]),l=e.ref(new Set);e.watch(()=>o.selectedNode,R=>{var M,U;if((M=R==null?void 0:R.data)!=null&&M.events){const j=JSON.parse(JSON.stringify(R.data.events));j.forEach(K=>{K.id||(K.id=k())}),s.value=j}else s.value=[];h.value.clear(),(U=R==null?void 0:R.data)!=null&&U.bindings?m.value=JSON.parse(JSON.stringify(R.data.bindings)):m.value=[],l.value.clear()},{immediate:!0});const i=e.ref(0),n=e.ref(0);let r=null,c={x:0,y:0},f={width:0,height:0};e.watch(()=>o.selectedNode,R=>{if(r&&(clearInterval(r),r=null),R){const M=R.getPosition(),U=R.getSize();M&&typeof M.x=="number"&&typeof M.y=="number"?c=M:(c={x:0,y:0},console.warn("节点位置数据异常:",M)),U&&typeof U.width=="number"&&typeof U.height=="number"?f=U:(f={width:0,height:0},console.warn("节点尺寸数据异常:",U)),r=setInterval(()=>{if(o.selectedNode){const j=o.selectedNode.getPosition(),K=o.selectedNode.getSize();j&&typeof j.x=="number"&&typeof j.y=="number"&&(j.x!==c.x||j.y!==c.y)&&(c=j,i.value++),K&&typeof K.width=="number"&&typeof K.height=="number"&&(K.width!==f.width||K.height!==f.height)&&(f=K,n.value++)}},50)}}),e.onUnmounted(()=>{r&&clearInterval(r)});const u=e.computed(()=>{var M;return i.value,((M=o.selectedNode)==null?void 0:M.getPosition())||{x:0,y:0}}),b=e.computed(()=>{var M;return n.value,((M=o.selectedNode)==null?void 0:M.getSize())||{width:0,height:0}}),B=e.computed(()=>{var M;return((M=o.selectedNode)==null?void 0:M.getAttrs())||{}}),V=(R,M)=>{const U=Number(M.target.value),j=o.selectedNode.getPosition(),K=R==="x"?{x:U,y:j.y}:{x:j.x,y:U};a("updateNode",{position:K})},d=(R,M)=>{const U=Number(M.target.value),j=o.selectedNode.getSize(),K=R==="width"?{width:U,height:j.height}:{width:j.width,height:U};a("updateNode",{size:K})},p=R=>{const M=R.target.value;a("updateNode",{attrs:{text:{text:M},label:{text:M}}})},x=R=>{const M=R.target.value;a("updateNode",{attrs:{body:{fill:M}}})},y=R=>{const M=R.target.value;a("updateNode",{attrs:{body:{stroke:M}}})},v=R=>{const M=Number(R.target.value);a("updateNode",{attrs:{body:{strokeWidth:M}}})},D=R=>{const M=Number(R.target.value);a("updateNode",{attrs:{body:{opacity:M}}})},_=R=>{const M=R.target.value,U={...o.selectedNode.data,componentName:M};a("updateNode",{data:U})},S=(R,M)=>{if(!o.selectedNode)return;const U=R.split(".");if(U[0]==="attrs"){const j=U.slice(1).join("/");a("updateNode",{attrs:{[j]:M}})}else if(U[0]==="data"){const j=JSON.parse(JSON.stringify(o.selectedNode.data||{}));let K=j;for(let xe=1;xe<U.length-1;xe++){const Te=U[xe];K[Te]||(K[Te]={}),K=K[Te]}K[U[U.length-1]]=M,a("updateNode",{data:j})}},C=R=>{if(!o.selectedNode)return;const M={...o.selectedNode.data,dataSource:R};a("updateNode",{data:M})},k=no,$=()=>{const R={id:k(),name:"",type:"click",conditionType:"always",action:"attributeChange",params:{}};s.value.push(R),Q()},z=R=>{s.value.splice(R,1),Q()},O=(R,M,U)=>{const j=U.target.value;s.value[R][M]=j,Q()},W=(R,M,U)=>{const K=U.target.value;s.value[R].condition||(s.value[R].condition={}),s.value[R].condition[M]=K,Q()},Y=(R,M,U)=>{const K=U.target.value;s.value[R].params||(s.value[R].params={}),s.value[R].params[M]=K,Q()},Q=()=>{s.value.forEach(M=>{M.id||(M.id=k())});const R={...o.selectedNode.data,events:s.value};a("updateNode",{data:R})},N=R=>{h.value.has(R)?h.value.delete(R):h.value.add(R)},I=R=>h.value.has(R),P=()=>{const R={devicePointId:"",targetProperty:"",enabled:!0};m.value.push(R),T()},A=R=>{m.value.splice(R,1),T()},F=(R,M,U)=>{const K=U.target.value;m.value[R][M]=K,T()},T=()=>{const R={...o.selectedNode.data,bindings:m.value};a("updateNode",{data:R})},w=R=>{l.value.has(R)?l.value.delete(R):l.value.add(R)},q=R=>l.value.has(R),X=e.ref(!1),L=e.ref(-1),H=e.ref([]),oe=R=>{var U;L.value=R;const M=s.value[R];(U=M.params)!=null&&U.attributeGroups&&Array.isArray(M.params.attributeGroups)?H.value=JSON.parse(JSON.stringify(M.params.attributeGroups)):H.value=[{target:"current",property:"",value:""}],X.value=!0},re=()=>{X.value=!1},ae=()=>{H.value.push({target:"current",property:"",value:""})},ge=R=>{H.value.splice(R,1)},fe=(R,M,U)=>{H.value[R][M]=U},de=()=>{for(const R of H.value)if(!R.property){alert("请为每组配置选择目标属性");return}s.value[L.value].params||(s.value[L.value].params={}),s.value[L.value].params.attributeGroups=JSON.parse(JSON.stringify(H.value)),Q(),re()},ke=e.ref(!1),Ee=e.ref(""),be=e.ref(-1),_e=R=>{var U;be.value=R;const M=s.value[R];Ee.value=((U=M.params)==null?void 0:U.code)||"",ke.value=!0},ze=()=>{ke.value=!1},$e=()=>{s.value[be.value].params||(s.value[be.value].params={}),s.value[be.value].params.code=Ee.value,Q(),ze()},pe=e.ref(!1),se=e.ref(-1),he=R=>{se.value=R,pe.value=!0},Fe=()=>{pe.value=!1},qe=R=>{s.value[se.value].params||(s.value[se.value].params={});const M=s.value[se.value].params;M.processId=R.id,M.processName=R.name,M.processData=R.data,Q(),Fe()},ve=()=>{var M;if(!o.selectedNode)return[];const R=[];return(M=o.selectedNode.data)!=null&&M.props&&Array.isArray(o.selectedNode.data.props)&&o.selectedNode.data.props.forEach(U=>{U.bindable!==!1&&R.push({key:U.key,label:U.label,type:U.type||"text"})}),R},we=R=>{a("updateEdge",R)},qt=()=>{a("deleteEdge")};return(R,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",pc,[!g.selectedNode&&!g.selectedEdge?(e.openBlock(),e.createBlock(Ye,{key:0})):g.selectedEdge?(e.openBlock(),e.createElementBlock("div",xc,[M[5]||(M[5]=e.createElementVNode("h3",{class:"panel-title"},"连线属性",-1)),e.createVNode(tl,{"selected-edge":g.selectedEdge,onUpdateEdge:we,onDeleteEdge:qt},null,8,["selected-edge"])])):g.selectedNode?(e.openBlock(),e.createElementBlock("div",fc,[M[10]||(M[10]=e.createElementVNode("h3",{class:"panel-title"},"节点属性",-1)),e.createElementVNode("div",mc,[e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="basic"}]),onClick:M[0]||(M[0]=U=>t.value="basic")}," 基础 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="data"}]),onClick:M[1]||(M[1]=U=>t.value="data")}," 数据 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="binding"}]),onClick:M[2]||(M[2]=U=>t.value="binding")}," 绑定 ",2),e.createElementVNode("button",{class:e.normalizeClass(["tab-btn",{active:t.value==="event"}]),onClick:M[3]||(M[3]=U=>t.value="event")}," 事件 ",2)]),e.createElementVNode("div",uc,[e.withDirectives(e.createVNode(Ke,{"selected-node":g.selectedNode,"node-position":u.value,"node-size":b.value,"node-attrs":B.value,onUpdatePosition:V,onUpdateSize:d,onUpdateLabel:p,onUpdateFill:x,onUpdateStroke:y,onUpdateStrokeWidth:v,onUpdateOpacity:D,onUpdateComponentName:_,onUpdateDynamicProp:S},null,8,["selected-node","node-position","node-size","node-attrs"]),[[e.vShow,t.value==="basic"]]),e.withDirectives(e.createVNode(kr,{"selected-node":g.selectedNode,onUpdateDataSource:C},null,8,["selected-node"]),[[e.vShow,t.value==="data"]]),e.withDirectives(e.createElementVNode("div",gc,[e.createElementVNode("div",Ec,[e.createElementVNode("div",{class:"section-header"},[M[6]||(M[6]=e.createElementVNode("h4",null,"节点事件",-1)),e.createElementVNode("button",{class:"btn-add",onClick:$},"+ 添加事件")]),s.value.length===0?(e.openBlock(),e.createElementBlock("div",hc,[...M[7]||(M[7]=[e.createElementVNode("span",null,"暂无事件,点击上方按钮添加",-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",vc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(U,j)=>(e.openBlock(),e.createBlock(Je,{key:j,event:U,index:j,"is-collapsed":I(j),"node-properties":ve(),onToggleCollapse:K=>N(j),onRemove:K=>z(j),onUpdateField:(K,xe)=>O(j,K,xe),onUpdateCondition:(K,xe)=>W(j,K,xe),onUpdateParams:(K,xe)=>Y(j,K,xe),onOpenAttributeConfig:K=>oe(j),onOpenCustomCode:K=>_e(j),onOpenWorkflowSelector:K=>he(j)},null,8,["event","index","is-collapsed","node-properties","onToggleCollapse","onRemove","onUpdateField","onUpdateCondition","onUpdateParams","onOpenAttributeConfig","onOpenCustomCode","onOpenWorkflowSelector"]))),128))])])],512),[[e.vShow,t.value==="event"]]),e.withDirectives(e.createElementVNode("div",bc,[e.createElementVNode("div",yc,[e.createElementVNode("div",{class:"section-header"},[M[8]||(M[8]=e.createElementVNode("h4",null,"数据绑定",-1)),e.createElementVNode("button",{class:"btn-add",onClick:P},"+ 添加绑定")]),m.value.length===0?(e.openBlock(),e.createElementBlock("div",Cc,[...M[9]||(M[9]=[e.createElementVNode("span",null,"暂无绑定,点击上方按钮添加",-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Bc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(U,j)=>(e.openBlock(),e.createBlock(Qe,{key:j,binding:U,index:j,"is-collapsed":q(j),"node-properties":ve(),"event-list":s.value,onToggleCollapse:K=>w(j),onRemove:K=>A(j),onUpdateField:(K,xe)=>F(j,K,xe)},null,8,["binding","index","is-collapsed","node-properties","event-list","onToggleCollapse","onRemove","onUpdateField"]))),128))])])],512),[[e.vShow,t.value==="binding"]])])])):e.createCommentVNode("",!0)]),X.value?(e.openBlock(),e.createBlock(et,{key:0,"attribute-groups":H.value,"node-properties":ve(),onClose:re,onSave:de,onAddGroup:ae,onRemoveGroup:ge,onUpdateGroup:fe},null,8,["attribute-groups","node-properties"])):e.createCommentVNode("",!0),ke.value?(e.openBlock(),e.createBlock(tt,{key:1,code:Ee.value,"onUpdate:code":M[4]||(M[4]=U=>Ee.value=U),"selected-node":g.selectedNode,onClose:ze,onSave:$e},null,8,["code","selected-node"])):e.createCommentVNode("",!0),pe.value?(e.openBlock(),e.createBlock(lc,{key:2,onClose:Fe,onSelect:qe})):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-7d3281c0"]]);var J=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function kc(g){return g&&g.__esModule&&Object.prototype.hasOwnProperty.call(g,"default")?g.default:g}function Nc(g){if(g.__esModule)return g;var E=g.default;if(typeof E=="function"){var o=function a(){return this instanceof a?Reflect.construct(E,arguments,this.constructor):E.apply(this,arguments)};o.prototype=E.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(g).forEach(function(a){var t=Object.getOwnPropertyDescriptor(g,a);Object.defineProperty(o,a,t.get?t:{enumerable:!0,get:function(){return g[a]}})}),o}var ro={exports:{}};function Vc(g){throw new Error('Could not dynamically require "'+g+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var st={exports:{}};const Dc=Nc(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var lo;function ee(){return lo||(lo=1,function(g,E){(function(o,a){g.exports=a()})(J,function(){var o=o||function(a,t){var s;if(typeof window<"u"&&window.crypto&&(s=window.crypto),typeof self<"u"&&self.crypto&&(s=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(s=globalThis.crypto),!s&&typeof window<"u"&&window.msCrypto&&(s=window.msCrypto),!s&&typeof J<"u"&&J.crypto&&(s=J.crypto),!s&&typeof Vc=="function")try{s=Dc}catch{}var h=function(){if(s){if(typeof s.getRandomValues=="function")try{return s.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof s.randomBytes=="function")try{return s.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},m=Object.create||function(){function d(){}return function(p){var x;return d.prototype=p,x=new d,d.prototype=null,x}}(),l={},i=l.lib={},n=i.Base=function(){return{extend:function(d){var p=m(this);return d&&p.mixIn(d),(!p.hasOwnProperty("init")||this.init===p.init)&&(p.init=function(){p.$super.init.apply(this,arguments)}),p.init.prototype=p,p.$super=this,p},create:function(){var d=this.extend();return d.init.apply(d,arguments),d},init:function(){},mixIn:function(d){for(var p in d)d.hasOwnProperty(p)&&(this[p]=d[p]);d.hasOwnProperty("toString")&&(this.toString=d.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),r=i.WordArray=n.extend({init:function(d,p){d=this.words=d||[],p!=t?this.sigBytes=p:this.sigBytes=d.length*4},toString:function(d){return(d||f).stringify(this)},concat:function(d){var p=this.words,x=d.words,y=this.sigBytes,v=d.sigBytes;if(this.clamp(),y%4)for(var D=0;D<v;D++){var _=x[D>>>2]>>>24-D%4*8&255;p[y+D>>>2]|=_<<24-(y+D)%4*8}else for(var S=0;S<v;S+=4)p[y+S>>>2]=x[S>>>2];return this.sigBytes+=v,this},clamp:function(){var d=this.words,p=this.sigBytes;d[p>>>2]&=4294967295<<32-p%4*8,d.length=a.ceil(p/4)},clone:function(){var d=n.clone.call(this);return d.words=this.words.slice(0),d},random:function(d){for(var p=[],x=0;x<d;x+=4)p.push(h());return new r.init(p,d)}}),c=l.enc={},f=c.Hex={stringify:function(d){for(var p=d.words,x=d.sigBytes,y=[],v=0;v<x;v++){var D=p[v>>>2]>>>24-v%4*8&255;y.push((D>>>4).toString(16)),y.push((D&15).toString(16))}return y.join("")},parse:function(d){for(var p=d.length,x=[],y=0;y<p;y+=2)x[y>>>3]|=parseInt(d.substr(y,2),16)<<24-y%8*4;return new r.init(x,p/2)}},u=c.Latin1={stringify:function(d){for(var p=d.words,x=d.sigBytes,y=[],v=0;v<x;v++){var D=p[v>>>2]>>>24-v%4*8&255;y.push(String.fromCharCode(D))}return y.join("")},parse:function(d){for(var p=d.length,x=[],y=0;y<p;y++)x[y>>>2]|=(d.charCodeAt(y)&255)<<24-y%4*8;return new r.init(x,p)}},b=c.Utf8={stringify:function(d){try{return decodeURIComponent(escape(u.stringify(d)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(d){return u.parse(unescape(encodeURIComponent(d)))}},B=i.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(d){typeof d=="string"&&(d=b.parse(d)),this._data.concat(d),this._nDataBytes+=d.sigBytes},_process:function(d){var p,x=this._data,y=x.words,v=x.sigBytes,D=this.blockSize,_=D*4,S=v/_;d?S=a.ceil(S):S=a.max((S|0)-this._minBufferSize,0);var C=S*D,k=a.min(C*4,v);if(C){for(var $=0;$<C;$+=D)this._doProcessBlock(y,$);p=y.splice(0,C),x.sigBytes-=k}return new r.init(p,k)},clone:function(){var d=n.clone.call(this);return d._data=this._data.clone(),d},_minBufferSize:0});i.Hasher=B.extend({cfg:n.extend(),init:function(d){this.cfg=this.cfg.extend(d),this.reset()},reset:function(){B.reset.call(this),this._doReset()},update:function(d){return this._append(d),this._process(),this},finalize:function(d){d&&this._append(d);var p=this._doFinalize();return p},blockSize:16,_createHelper:function(d){return function(p,x){return new d.init(x).finalize(p)}},_createHmacHelper:function(d){return function(p,x){return new V.HMAC.init(d,x).finalize(p)}}});var V=l.algo={};return l}(Math);return o})}(st)),st.exports}var it={exports:{}},so;function Le(){return so||(so=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.Base,m=s.WordArray,l=t.x64={};l.Word=h.extend({init:function(i,n){this.high=i,this.low=n}}),l.WordArray=h.extend({init:function(i,n){i=this.words=i||[],n!=a?this.sigBytes=n:this.sigBytes=i.length*8},toX32:function(){for(var i=this.words,n=i.length,r=[],c=0;c<n;c++){var f=i[c];r.push(f.high),r.push(f.low)}return m.create(r,this.sigBytes)},clone:function(){for(var i=h.clone.call(this),n=i.words=this.words.slice(0),r=n.length,c=0;c<r;c++)n[c]=n[c].clone();return i}})}(),o})}(it)),it.exports}var ct={exports:{}},io;function Ac(){return io||(io=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){if(typeof ArrayBuffer=="function"){var a=o,t=a.lib,s=t.WordArray,h=s.init,m=s.init=function(l){if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),(l instanceof Int8Array||typeof Uint8ClampedArray<"u"&&l instanceof Uint8ClampedArray||l instanceof Int16Array||l instanceof Uint16Array||l instanceof Int32Array||l instanceof Uint32Array||l instanceof Float32Array||l instanceof Float64Array)&&(l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)),l instanceof Uint8Array){for(var i=l.byteLength,n=[],r=0;r<i;r++)n[r>>>2]|=l[r]<<24-r%4*8;h.call(this,n,i)}else h.apply(this,arguments)};m.prototype=s}}(),o.lib.WordArray})}(ct)),ct.exports}var dt={exports:{}},co;function _c(){return co||(co=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Utf16=h.Utf16BE={stringify:function(l){for(var i=l.words,n=l.sigBytes,r=[],c=0;c<n;c+=2){var f=i[c>>>2]>>>16-c%4*8&65535;r.push(String.fromCharCode(f))}return r.join("")},parse:function(l){for(var i=l.length,n=[],r=0;r<i;r++)n[r>>>1]|=l.charCodeAt(r)<<16-r%2*16;return s.create(n,i*2)}},h.Utf16LE={stringify:function(l){for(var i=l.words,n=l.sigBytes,r=[],c=0;c<n;c+=2){var f=m(i[c>>>2]>>>16-c%4*8&65535);r.push(String.fromCharCode(f))}return r.join("")},parse:function(l){for(var i=l.length,n=[],r=0;r<i;r++)n[r>>>1]|=m(l.charCodeAt(r)<<16-r%2*16);return s.create(n,i*2)}};function m(l){return l<<8&4278255360|l>>>8&16711935}}(),o.enc.Utf16})}(dt)),dt.exports}var pt={exports:{}},po;function De(){return po||(po=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Base64={stringify:function(l){var i=l.words,n=l.sigBytes,r=this._map;l.clamp();for(var c=[],f=0;f<n;f+=3)for(var u=i[f>>>2]>>>24-f%4*8&255,b=i[f+1>>>2]>>>24-(f+1)%4*8&255,B=i[f+2>>>2]>>>24-(f+2)%4*8&255,V=u<<16|b<<8|B,d=0;d<4&&f+d*.75<n;d++)c.push(r.charAt(V>>>6*(3-d)&63));var p=r.charAt(64);if(p)for(;c.length%4;)c.push(p);return c.join("")},parse:function(l){var i=l.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var c=0;c<n.length;c++)r[n.charCodeAt(c)]=c}var f=n.charAt(64);if(f){var u=l.indexOf(f);u!==-1&&(i=u)}return m(l,i,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function m(l,i,n){for(var r=[],c=0,f=0;f<i;f++)if(f%4){var u=n[l.charCodeAt(f-1)]<<f%4*2,b=n[l.charCodeAt(f)]>>>6-f%4*2,B=u|b;r[c>>>2]|=B<<24-c%4*8,c++}return s.create(r,c)}}(),o.enc.Base64})}(pt)),pt.exports}var xt={exports:{}},xo;function $c(){return xo||(xo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.enc;h.Base64url={stringify:function(l,i){i===void 0&&(i=!0);var n=l.words,r=l.sigBytes,c=i?this._safe_map:this._map;l.clamp();for(var f=[],u=0;u<r;u+=3)for(var b=n[u>>>2]>>>24-u%4*8&255,B=n[u+1>>>2]>>>24-(u+1)%4*8&255,V=n[u+2>>>2]>>>24-(u+2)%4*8&255,d=b<<16|B<<8|V,p=0;p<4&&u+p*.75<r;p++)f.push(c.charAt(d>>>6*(3-p)&63));var x=c.charAt(64);if(x)for(;f.length%4;)f.push(x);return f.join("")},parse:function(l,i){i===void 0&&(i=!0);var n=l.length,r=i?this._safe_map:this._map,c=this._reverseMap;if(!c){c=this._reverseMap=[];for(var f=0;f<r.length;f++)c[r.charCodeAt(f)]=f}var u=r.charAt(64);if(u){var b=l.indexOf(u);b!==-1&&(n=b)}return m(l,n,c)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function m(l,i,n){for(var r=[],c=0,f=0;f<i;f++)if(f%4){var u=n[l.charCodeAt(f-1)]<<f%4*2,b=n[l.charCodeAt(f)]>>>6-f%4*2,B=u|b;r[c>>>2]|=B<<24-c%4*8,c++}return s.create(r,c)}}(),o.enc.Base64url})}(xt)),xt.exports}var ft={exports:{}},fo;function Ae(){return fo||(fo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.algo,i=[];(function(){for(var b=0;b<64;b++)i[b]=a.abs(a.sin(b+1))*4294967296|0})();var n=l.MD5=m.extend({_doReset:function(){this._hash=new h.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(b,B){for(var V=0;V<16;V++){var d=B+V,p=b[d];b[d]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360}var x=this._hash.words,y=b[B+0],v=b[B+1],D=b[B+2],_=b[B+3],S=b[B+4],C=b[B+5],k=b[B+6],$=b[B+7],z=b[B+8],O=b[B+9],W=b[B+10],Y=b[B+11],Q=b[B+12],N=b[B+13],I=b[B+14],P=b[B+15],A=x[0],F=x[1],T=x[2],w=x[3];A=r(A,F,T,w,y,7,i[0]),w=r(w,A,F,T,v,12,i[1]),T=r(T,w,A,F,D,17,i[2]),F=r(F,T,w,A,_,22,i[3]),A=r(A,F,T,w,S,7,i[4]),w=r(w,A,F,T,C,12,i[5]),T=r(T,w,A,F,k,17,i[6]),F=r(F,T,w,A,$,22,i[7]),A=r(A,F,T,w,z,7,i[8]),w=r(w,A,F,T,O,12,i[9]),T=r(T,w,A,F,W,17,i[10]),F=r(F,T,w,A,Y,22,i[11]),A=r(A,F,T,w,Q,7,i[12]),w=r(w,A,F,T,N,12,i[13]),T=r(T,w,A,F,I,17,i[14]),F=r(F,T,w,A,P,22,i[15]),A=c(A,F,T,w,v,5,i[16]),w=c(w,A,F,T,k,9,i[17]),T=c(T,w,A,F,Y,14,i[18]),F=c(F,T,w,A,y,20,i[19]),A=c(A,F,T,w,C,5,i[20]),w=c(w,A,F,T,W,9,i[21]),T=c(T,w,A,F,P,14,i[22]),F=c(F,T,w,A,S,20,i[23]),A=c(A,F,T,w,O,5,i[24]),w=c(w,A,F,T,I,9,i[25]),T=c(T,w,A,F,_,14,i[26]),F=c(F,T,w,A,z,20,i[27]),A=c(A,F,T,w,N,5,i[28]),w=c(w,A,F,T,D,9,i[29]),T=c(T,w,A,F,$,14,i[30]),F=c(F,T,w,A,Q,20,i[31]),A=f(A,F,T,w,C,4,i[32]),w=f(w,A,F,T,z,11,i[33]),T=f(T,w,A,F,Y,16,i[34]),F=f(F,T,w,A,I,23,i[35]),A=f(A,F,T,w,v,4,i[36]),w=f(w,A,F,T,S,11,i[37]),T=f(T,w,A,F,$,16,i[38]),F=f(F,T,w,A,W,23,i[39]),A=f(A,F,T,w,N,4,i[40]),w=f(w,A,F,T,y,11,i[41]),T=f(T,w,A,F,_,16,i[42]),F=f(F,T,w,A,k,23,i[43]),A=f(A,F,T,w,O,4,i[44]),w=f(w,A,F,T,Q,11,i[45]),T=f(T,w,A,F,P,16,i[46]),F=f(F,T,w,A,D,23,i[47]),A=u(A,F,T,w,y,6,i[48]),w=u(w,A,F,T,$,10,i[49]),T=u(T,w,A,F,I,15,i[50]),F=u(F,T,w,A,C,21,i[51]),A=u(A,F,T,w,Q,6,i[52]),w=u(w,A,F,T,_,10,i[53]),T=u(T,w,A,F,W,15,i[54]),F=u(F,T,w,A,v,21,i[55]),A=u(A,F,T,w,z,6,i[56]),w=u(w,A,F,T,P,10,i[57]),T=u(T,w,A,F,k,15,i[58]),F=u(F,T,w,A,N,21,i[59]),A=u(A,F,T,w,S,6,i[60]),w=u(w,A,F,T,Y,10,i[61]),T=u(T,w,A,F,D,15,i[62]),F=u(F,T,w,A,O,21,i[63]),x[0]=x[0]+A|0,x[1]=x[1]+F|0,x[2]=x[2]+T|0,x[3]=x[3]+w|0},_doFinalize:function(){var b=this._data,B=b.words,V=this._nDataBytes*8,d=b.sigBytes*8;B[d>>>5]|=128<<24-d%32;var p=a.floor(V/4294967296),x=V;B[(d+64>>>9<<4)+15]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,B[(d+64>>>9<<4)+14]=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,b.sigBytes=(B.length+1)*4,this._process();for(var y=this._hash,v=y.words,D=0;D<4;D++){var _=v[D];v[D]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360}return y},clone:function(){var b=m.clone.call(this);return b._hash=this._hash.clone(),b}});function r(b,B,V,d,p,x,y){var v=b+(B&V|~B&d)+p+y;return(v<<x|v>>>32-x)+B}function c(b,B,V,d,p,x,y){var v=b+(B&d|V&~d)+p+y;return(v<<x|v>>>32-x)+B}function f(b,B,V,d,p,x,y){var v=b+(B^V^d)+p+y;return(v<<x|v>>>32-x)+B}function u(b,B,V,d,p,x,y){var v=b+(V^(B|~d))+p+y;return(v<<x|v>>>32-x)+B}t.MD5=m._createHelper(n),t.HmacMD5=m._createHmacHelper(n)}(Math),o.MD5})}(ft)),ft.exports}var mt={exports:{}},mo;function uo(){return mo||(mo=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=t.Hasher,m=a.algo,l=[],i=m.SHA1=h.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(n,r){for(var c=this._hash.words,f=c[0],u=c[1],b=c[2],B=c[3],V=c[4],d=0;d<80;d++){if(d<16)l[d]=n[r+d]|0;else{var p=l[d-3]^l[d-8]^l[d-14]^l[d-16];l[d]=p<<1|p>>>31}var x=(f<<5|f>>>27)+V+l[d];d<20?x+=(u&b|~u&B)+1518500249:d<40?x+=(u^b^B)+1859775393:d<60?x+=(u&b|u&B|b&B)-1894007588:x+=(u^b^B)-899497514,V=B,B=b,b=u<<30|u>>>2,u=f,f=x}c[0]=c[0]+f|0,c[1]=c[1]+u|0,c[2]=c[2]+b|0,c[3]=c[3]+B|0,c[4]=c[4]+V|0},_doFinalize:function(){var n=this._data,r=n.words,c=this._nDataBytes*8,f=n.sigBytes*8;return r[f>>>5]|=128<<24-f%32,r[(f+64>>>9<<4)+14]=Math.floor(c/4294967296),r[(f+64>>>9<<4)+15]=c,n.sigBytes=r.length*4,this._process(),this._hash},clone:function(){var n=h.clone.call(this);return n._hash=this._hash.clone(),n}});a.SHA1=h._createHelper(i),a.HmacSHA1=h._createHmacHelper(i)}(),o.SHA1})}(mt)),mt.exports}var ut={exports:{}},go;function gt(){return go||(go=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.algo,i=[],n=[];(function(){function f(V){for(var d=a.sqrt(V),p=2;p<=d;p++)if(!(V%p))return!1;return!0}function u(V){return(V-(V|0))*4294967296|0}for(var b=2,B=0;B<64;)f(b)&&(B<8&&(i[B]=u(a.pow(b,1/2))),n[B]=u(a.pow(b,1/3)),B++),b++})();var r=[],c=l.SHA256=m.extend({_doReset:function(){this._hash=new h.init(i.slice(0))},_doProcessBlock:function(f,u){for(var b=this._hash.words,B=b[0],V=b[1],d=b[2],p=b[3],x=b[4],y=b[5],v=b[6],D=b[7],_=0;_<64;_++){if(_<16)r[_]=f[u+_]|0;else{var S=r[_-15],C=(S<<25|S>>>7)^(S<<14|S>>>18)^S>>>3,k=r[_-2],$=(k<<15|k>>>17)^(k<<13|k>>>19)^k>>>10;r[_]=C+r[_-7]+$+r[_-16]}var z=x&y^~x&v,O=B&V^B&d^V&d,W=(B<<30|B>>>2)^(B<<19|B>>>13)^(B<<10|B>>>22),Y=(x<<26|x>>>6)^(x<<21|x>>>11)^(x<<7|x>>>25),Q=D+Y+z+n[_]+r[_],N=W+O;D=v,v=y,y=x,x=p+Q|0,p=d,d=V,V=B,B=Q+N|0}b[0]=b[0]+B|0,b[1]=b[1]+V|0,b[2]=b[2]+d|0,b[3]=b[3]+p|0,b[4]=b[4]+x|0,b[5]=b[5]+y|0,b[6]=b[6]+v|0,b[7]=b[7]+D|0},_doFinalize:function(){var f=this._data,u=f.words,b=this._nDataBytes*8,B=f.sigBytes*8;return u[B>>>5]|=128<<24-B%32,u[(B+64>>>9<<4)+14]=a.floor(b/4294967296),u[(B+64>>>9<<4)+15]=b,f.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var f=m.clone.call(this);return f._hash=this._hash.clone(),f}});t.SHA256=m._createHelper(c),t.HmacSHA256=m._createHmacHelper(c)}(Math),o.SHA256})}(ut)),ut.exports}var Et={exports:{}},Eo;function Fc(){return Eo||(Eo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),gt())})(J,function(o){return function(){var a=o,t=a.lib,s=t.WordArray,h=a.algo,m=h.SHA256,l=h.SHA224=m.extend({_doReset:function(){this._hash=new s.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var i=m._doFinalize.call(this);return i.sigBytes-=4,i}});a.SHA224=m._createHelper(l),a.HmacSHA224=m._createHmacHelper(l)}(),o.SHA224})}(Et)),Et.exports}var ht={exports:{}},ho;function vo(){return ho||(ho=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le())})(J,function(o){return function(){var a=o,t=a.lib,s=t.Hasher,h=a.x64,m=h.Word,l=h.WordArray,i=a.algo;function n(){return m.create.apply(m,arguments)}var r=[n(1116352408,3609767458),n(1899447441,602891725),n(3049323471,3964484399),n(3921009573,2173295548),n(961987163,4081628472),n(1508970993,3053834265),n(2453635748,2937671579),n(2870763221,3664609560),n(3624381080,2734883394),n(310598401,1164996542),n(607225278,1323610764),n(1426881987,3590304994),n(1925078388,4068182383),n(2162078206,991336113),n(2614888103,633803317),n(3248222580,3479774868),n(3835390401,2666613458),n(4022224774,944711139),n(264347078,2341262773),n(604807628,2007800933),n(770255983,1495990901),n(1249150122,1856431235),n(1555081692,3175218132),n(1996064986,2198950837),n(2554220882,3999719339),n(2821834349,766784016),n(2952996808,2566594879),n(3210313671,3203337956),n(3336571891,1034457026),n(3584528711,2466948901),n(113926993,3758326383),n(338241895,168717936),n(666307205,1188179964),n(773529912,1546045734),n(1294757372,1522805485),n(1396182291,2643833823),n(1695183700,2343527390),n(1986661051,1014477480),n(2177026350,1206759142),n(2456956037,344077627),n(2730485921,1290863460),n(2820302411,3158454273),n(3259730800,3505952657),n(3345764771,106217008),n(3516065817,3606008344),n(3600352804,1432725776),n(4094571909,1467031594),n(275423344,851169720),n(430227734,3100823752),n(506948616,1363258195),n(659060556,3750685593),n(883997877,3785050280),n(958139571,3318307427),n(1322822218,3812723403),n(1537002063,2003034995),n(1747873779,3602036899),n(1955562222,1575990012),n(2024104815,1125592928),n(2227730452,2716904306),n(2361852424,442776044),n(2428436474,593698344),n(2756734187,3733110249),n(3204031479,2999351573),n(3329325298,3815920427),n(3391569614,3928383900),n(3515267271,566280711),n(3940187606,3454069534),n(4118630271,4000239992),n(116418474,1914138554),n(174292421,2731055270),n(289380356,3203993006),n(460393269,320620315),n(685471733,587496836),n(852142971,1086792851),n(1017036298,365543100),n(1126000580,2618297676),n(1288033470,3409855158),n(1501505948,4234509866),n(1607167915,987167468),n(1816402316,1246189591)],c=[];(function(){for(var u=0;u<80;u++)c[u]=n()})();var f=i.SHA512=s.extend({_doReset:function(){this._hash=new l.init([new m.init(1779033703,4089235720),new m.init(3144134277,2227873595),new m.init(1013904242,4271175723),new m.init(2773480762,1595750129),new m.init(1359893119,2917565137),new m.init(2600822924,725511199),new m.init(528734635,4215389547),new m.init(1541459225,327033209)])},_doProcessBlock:function(u,b){for(var B=this._hash.words,V=B[0],d=B[1],p=B[2],x=B[3],y=B[4],v=B[5],D=B[6],_=B[7],S=V.high,C=V.low,k=d.high,$=d.low,z=p.high,O=p.low,W=x.high,Y=x.low,Q=y.high,N=y.low,I=v.high,P=v.low,A=D.high,F=D.low,T=_.high,w=_.low,q=S,X=C,L=k,H=$,oe=z,re=O,ae=W,ge=Y,fe=Q,de=N,ke=I,Ee=P,be=A,_e=F,ze=T,$e=w,pe=0;pe<80;pe++){var se,he,Fe=c[pe];if(pe<16)he=Fe.high=u[b+pe*2]|0,se=Fe.low=u[b+pe*2+1]|0;else{var qe=c[pe-15],ve=qe.high,we=qe.low,qt=(ve>>>1|we<<31)^(ve>>>8|we<<24)^ve>>>7,R=(we>>>1|ve<<31)^(we>>>8|ve<<24)^(we>>>7|ve<<25),M=c[pe-2],U=M.high,j=M.low,K=(U>>>19|j<<13)^(U<<3|j>>>29)^U>>>6,xe=(j>>>19|U<<13)^(j<<3|U>>>29)^(j>>>6|U<<26),Te=c[pe-7],ip=Te.high,cp=Te.low,Ko=c[pe-16],dp=Ko.high,Jo=Ko.low;se=R+cp,he=qt+ip+(se>>>0<R>>>0?1:0),se=se+xe,he=he+K+(se>>>0<xe>>>0?1:0),se=se+Jo,he=he+dp+(se>>>0<Jo>>>0?1:0),Fe.high=he,Fe.low=se}var pp=fe&ke^~fe&be,Zo=de&Ee^~de&_e,xp=q&L^q&oe^L&oe,fp=X&H^X&re^H&re,mp=(q>>>28|X<<4)^(q<<30|X>>>2)^(q<<25|X>>>7),Qo=(X>>>28|q<<4)^(X<<30|q>>>2)^(X<<25|q>>>7),up=(fe>>>14|de<<18)^(fe>>>18|de<<14)^(fe<<23|de>>>9),gp=(de>>>14|fe<<18)^(de>>>18|fe<<14)^(de<<23|fe>>>9),en=r[pe],Ep=en.high,tn=en.low,me=$e+gp,Ne=ze+up+(me>>>0<$e>>>0?1:0),me=me+Zo,Ne=Ne+pp+(me>>>0<Zo>>>0?1:0),me=me+tn,Ne=Ne+Ep+(me>>>0<tn>>>0?1:0),me=me+se,Ne=Ne+he+(me>>>0<se>>>0?1:0),on=Qo+fp,hp=mp+xp+(on>>>0<Qo>>>0?1:0);ze=be,$e=_e,be=ke,_e=Ee,ke=fe,Ee=de,de=ge+me|0,fe=ae+Ne+(de>>>0<ge>>>0?1:0)|0,ae=oe,ge=re,oe=L,re=H,L=q,H=X,X=me+on|0,q=Ne+hp+(X>>>0<me>>>0?1:0)|0}C=V.low=C+X,V.high=S+q+(C>>>0<X>>>0?1:0),$=d.low=$+H,d.high=k+L+($>>>0<H>>>0?1:0),O=p.low=O+re,p.high=z+oe+(O>>>0<re>>>0?1:0),Y=x.low=Y+ge,x.high=W+ae+(Y>>>0<ge>>>0?1:0),N=y.low=N+de,y.high=Q+fe+(N>>>0<de>>>0?1:0),P=v.low=P+Ee,v.high=I+ke+(P>>>0<Ee>>>0?1:0),F=D.low=F+_e,D.high=A+be+(F>>>0<_e>>>0?1:0),w=_.low=w+$e,_.high=T+ze+(w>>>0<$e>>>0?1:0)},_doFinalize:function(){var u=this._data,b=u.words,B=this._nDataBytes*8,V=u.sigBytes*8;b[V>>>5]|=128<<24-V%32,b[(V+128>>>10<<5)+30]=Math.floor(B/4294967296),b[(V+128>>>10<<5)+31]=B,u.sigBytes=b.length*4,this._process();var d=this._hash.toX32();return d},clone:function(){var u=s.clone.call(this);return u._hash=this._hash.clone(),u},blockSize:1024/32});a.SHA512=s._createHelper(f),a.HmacSHA512=s._createHmacHelper(f)}(),o.SHA512})}(ht)),ht.exports}var vt={exports:{}},bo;function wc(){return bo||(bo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le(),vo())})(J,function(o){return function(){var a=o,t=a.x64,s=t.Word,h=t.WordArray,m=a.algo,l=m.SHA512,i=m.SHA384=l.extend({_doReset:function(){this._hash=new h.init([new s.init(3418070365,3238371032),new s.init(1654270250,914150663),new s.init(2438529370,812702999),new s.init(355462360,4144912697),new s.init(1731405415,4290775857),new s.init(2394180231,1750603025),new s.init(3675008525,1694076839),new s.init(1203062813,3204075428)])},_doFinalize:function(){var n=l._doFinalize.call(this);return n.sigBytes-=16,n}});a.SHA384=l._createHelper(i),a.HmacSHA384=l._createHmacHelper(i)}(),o.SHA384})}(vt)),vt.exports}var bt={exports:{}},yo;function Sc(){return yo||(yo=1,function(g,E){(function(o,a,t){g.exports=a(ee(),Le())})(J,function(o){return function(a){var t=o,s=t.lib,h=s.WordArray,m=s.Hasher,l=t.x64,i=l.Word,n=t.algo,r=[],c=[],f=[];(function(){for(var B=1,V=0,d=0;d<24;d++){r[B+5*V]=(d+1)*(d+2)/2%64;var p=V%5,x=(2*B+3*V)%5;B=p,V=x}for(var B=0;B<5;B++)for(var V=0;V<5;V++)c[B+5*V]=V+(2*B+3*V)%5*5;for(var y=1,v=0;v<24;v++){for(var D=0,_=0,S=0;S<7;S++){if(y&1){var C=(1<<S)-1;C<32?_^=1<<C:D^=1<<C-32}y&128?y=y<<1^113:y<<=1}f[v]=i.create(D,_)}})();var u=[];(function(){for(var B=0;B<25;B++)u[B]=i.create()})();var b=n.SHA3=m.extend({cfg:m.cfg.extend({outputLength:512}),_doReset:function(){for(var B=this._state=[],V=0;V<25;V++)B[V]=new i.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(B,V){for(var d=this._state,p=this.blockSize/2,x=0;x<p;x++){var y=B[V+2*x],v=B[V+2*x+1];y=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,v=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360;var D=d[x];D.high^=v,D.low^=y}for(var _=0;_<24;_++){for(var S=0;S<5;S++){for(var C=0,k=0,$=0;$<5;$++){var D=d[S+5*$];C^=D.high,k^=D.low}var z=u[S];z.high=C,z.low=k}for(var S=0;S<5;S++)for(var O=u[(S+4)%5],W=u[(S+1)%5],Y=W.high,Q=W.low,C=O.high^(Y<<1|Q>>>31),k=O.low^(Q<<1|Y>>>31),$=0;$<5;$++){var D=d[S+5*$];D.high^=C,D.low^=k}for(var N=1;N<25;N++){var C,k,D=d[N],I=D.high,P=D.low,A=r[N];A<32?(C=I<<A|P>>>32-A,k=P<<A|I>>>32-A):(C=P<<A-32|I>>>64-A,k=I<<A-32|P>>>64-A);var F=u[c[N]];F.high=C,F.low=k}var T=u[0],w=d[0];T.high=w.high,T.low=w.low;for(var S=0;S<5;S++)for(var $=0;$<5;$++){var N=S+5*$,D=d[N],q=u[N],X=u[(S+1)%5+5*$],L=u[(S+2)%5+5*$];D.high=q.high^~X.high&L.high,D.low=q.low^~X.low&L.low}var D=d[0],H=f[_];D.high^=H.high,D.low^=H.low}},_doFinalize:function(){var B=this._data,V=B.words;this._nDataBytes*8;var d=B.sigBytes*8,p=this.blockSize*32;V[d>>>5]|=1<<24-d%32,V[(a.ceil((d+1)/p)*p>>>5)-1]|=128,B.sigBytes=V.length*4,this._process();for(var x=this._state,y=this.cfg.outputLength/8,v=y/8,D=[],_=0;_<v;_++){var S=x[_],C=S.high,k=S.low;C=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,k=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,D.push(k),D.push(C)}return new h.init(D,y)},clone:function(){for(var B=m.clone.call(this),V=B._state=this._state.slice(0),d=0;d<25;d++)V[d]=V[d].clone();return B}});t.SHA3=m._createHelper(b),t.HmacSHA3=m._createHmacHelper(b)}(Math),o.SHA3})}(bt)),bt.exports}var yt={exports:{}},Co;function Ic(){return Co||(Co=1,function(g,E){(function(o,a){g.exports=a(ee())})(J,function(o){/** @preserve
22
22
  (c) 2012 by Cédric Mesnil. All rights reserved.
23
23
 
24
24
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
@@ -50,4 +50,4 @@
50
50
  `;if(k+=x.map($=>" • "+$).join(`
51
51
  `),k+=`
52
52
 
53
- 是否继续保存?`,!confirm(k))return}const y=prompt("请输入流程名称:","未命名流程");if(!y||!y.trim())return;const v=t.toJSON(),D=t.getNodes().map(k=>({id:k.id,shape:k.shape,position:k.getPosition(),size:k.getSize(),attrs:k.getAttrs(),data:k.getData()})),_=t.getEdges().map(k=>({id:k.id,source:k.getSourceCellId(),target:k.getTargetCellId(),attrs:k.getAttrs(),data:k.getData()})),C={id:"workflow_"+Date.now(),name:y.trim(),data:{...v,nodes:D,edges:_},createdAt:Date.now(),updatedAt:Date.now()};try{const k=localStorage.getItem("saved-workflows"),$=k?JSON.parse(k):[];$.push(C),localStorage.setItem("saved-workflows",JSON.stringify($)),alert("✓ 流程保存成功!"),console.log("流程已保存:",C)}catch(k){console.error("保存流程失败:",k),alert("保存失败,请重试")}};e.onMounted(()=>{n(),window.addEventListener("resize",d)});const d=()=>{!t||!a.value||t.resize(a.value.clientWidth,a.value.clientHeight)};return e.onBeforeUnmount(()=>{window.removeEventListener("resize",d);const p=x=>{if(x.key==="Delete"||x.key==="Backspace"){if(!t)return;const y=t.getSelectedCells();y.length&&(x.preventDefault(),t.removeCells(y),s.value&&y.includes(s.value.cell)&&(s.value=null))}};document.removeEventListener("keydown",p),t&&t.dispose()}),(p,x)=>(e.openBlock(),e.createElementBlock("div",K1,[e.createVNode(O1,{"show-close":g.showClose,onClear:u,onValidate:B,onSave:V,onClose:x[0]||(x[0]=y=>p.$emit("close"))},null,8,["show-close"]),e.createElementVNode("div",J1,[e.createElementVNode("div",Z1,[e.createElementVNode("div",{id:"workflow-container",ref_key:"containerRef",ref:a},null,512)]),e.createVNode(R1,{"selected-cell":s.value,"onUpdate:label":c},null,8,["selected-cell"])]),e.createVNode(X1,{visible:h.value,position:m.value,"node-types":o.value,onClose:x[1]||(x[1]=y=>h.value=!1),onSelect:f},null,8,["visible","position","node-types"])]))}}),[["__scopeId","data-v-649349a2"]]),ep={key:0,class:"workflow-dialog-overlay"},tp={class:"workflow-dialog"},op=te(e.defineComponent({__name:"WorkflowDialog",props:{visible:{type:Boolean},scadaGraph:{default:null}},emits:["update:visible","close"],setup(g,{emit:E}){const o=g,a=E;e.watch(()=>o.visible,h=>{h?document.body.style.overflow="hidden":document.body.style.overflow=""});const t=()=>{a("update:visible",!1),a("close")},s=h=>{h.key==="Escape"&&o.visible&&t()};return typeof window<"u"&&window.addEventListener("keydown",s),(h,m)=>g.visible?(e.openBlock(),e.createElementBlock("div",ep,[e.createElementVNode("div",tp,[e.createVNode(Q1,{"scada-graph":g.scadaGraph,"show-close":!0,onClose:t},null,8,["scada-graph"])])])):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-4e7f6ab7"]]);class np{constructor(){Ue(this,"animations",new Map)}startAnimation(E,o){if(!E||o.type==="none")return;this.stopAnimation(E.id);const a=E.id;let t=null;switch(o.type){case"blink":t=this.createBlinkAnimation(E,o);break;case"scale":t=this.createScaleAnimation(E,o);break;case"rotate":t=this.createRotateAnimation(E,o);break;case"float":t=this.createFloatAnimation(E,o);break;case"pulse":t=this.createPulseAnimation(E,o);break}t&&this.animations.set(a,t)}stopAnimation(E){const o=this.animations.get(E);o&&(o.stop&&o.stop(),o.intervalId&&clearInterval(o.intervalId),this.animations.delete(E))}createBlinkAnimation(E,o){const a=E.getAttrByPath("body/opacity")||1;let t=!0;const s=setInterval(()=>{t=!t,E.setAttrByPath("body/opacity",t?a:.2),o.loop||(clearInterval(s),E.setAttrByPath("body/opacity",a))},o.duration/2);return{intervalId:s,stop:()=>{clearInterval(s),E.setAttrByPath("body/opacity",a)}}}createScaleAnimation(E,o){const a=E.getSize();let t=!0;const s=.05;let h=1;const m=setInterval(()=>{t?(h+=s,h>=1.2&&(t=!1)):(h-=s,h<=.8&&(t=!0)),E.resize(a.width*h,a.height*h),!o.loop&&h>=.99&&h<=1.01&&(clearInterval(m),E.resize(a.width,a.height))},o.duration/20);return{intervalId:m,stop:()=>{clearInterval(m),E.resize(a.width,a.height)}}}createRotateAnimation(E,o){let a=0;const t=360/(o.duration/50),s=setInterval(()=>{a=(a+t)%360,E.rotate(a,{absolute:!0}),!o.loop&&a>=360&&(clearInterval(s),E.rotate(0,{absolute:!0}))},50);return{intervalId:s,stop:()=>{clearInterval(s),E.rotate(0,{absolute:!0})}}}createFloatAnimation(E,o){const a=E.position();let t=!0;const s=2;let h=a.y;const m=setInterval(()=>{t?(h-=s,h<=a.y-10&&(t=!1)):(h+=s,h>=a.y+10&&(t=!0)),E.position(a.x,h),!o.loop&&Math.abs(h-a.y)<1&&(clearInterval(m),E.position(a.x,a.y))},o.duration/40);return{intervalId:m,stop:()=>{clearInterval(m),E.position(a.x,a.y)}}}createPulseAnimation(E,o){const a=E.getAttrByPath("body/fill"),t=E.getAttrByPath("body/stroke");let s=0,h=!0;const m=setInterval(()=>{h?(s+=.1,s>=1&&(h=!1)):(s-=.1,s<=0&&(h=!0)),E.setAttrByPath("body/opacity",.5+s*.5),!o.loop&&s<=.05&&(clearInterval(m),E.setAttrByPath("body/fill",a),E.setAttrByPath("body/stroke",t),E.setAttrByPath("body/opacity",1))},o.duration/20);return{intervalId:m,stop:()=>{clearInterval(m),E.setAttrByPath("body/fill",a),E.setAttrByPath("body/stroke",t),E.setAttrByPath("body/opacity",1)}}}clearAll(){this.animations.forEach((E,o)=>{this.stopAnimation(o)}),this.animations.clear()}}const Be=new np,ap={class:"scada-layout","data-scada-theme":"dark"},rp={class:"scada-canvas-container"},Xo=te(e.defineComponent({name:"ScadaCanvas",inheritAttrs:!0,__name:"ScadaCanvas",props:{authCode:{default:""},customFooter:{default:void 0}},setup(g,{expose:E}){const o=e.ref(null),a=e.ref(null),t=e.ref(null),s=e.ref(0),h=e.ref(null),m=e.ref(!1);let l=null;e.onMounted(()=>{var q,X;if(!((q=o.value)!=null&&q.containerRef))return;const N=Z.getConfig();ue.Graph.registerEdge("animated-edge",{inherit:"edge",markup:[{tagName:"path",selector:"line",attrs:{fill:"none"}},{tagName:"path",selector:"wrap",attrs:{fill:"none",stroke:"transparent",strokeWidth:20}},{tagName:"circle",selector:"circle"}],attrs:{line:{connection:!0,stroke:"#10b981",strokeWidth:2,targetMarker:{name:"block",width:8,height:6}},wrap:{connection:!0,strokeLinecap:"round",strokeLinejoin:"round"}}},!0);const I=o.value.containerRef,P=N.size.width,A=N.size.height;(L=>{I.style.width=`${P}px`,I.style.height=`${A}px`,I.style.transform=`scale(${L})`,I.style.transformOrigin="center center"})(N.zoom.scale),l=new ue.Graph({container:I,width:P,height:A,background:N.background.image?{color:N.background.color||"#1e293b",image:N.background.image,size:N.background.size||"cover",repeat:N.background.repeat||"no-repeat",position:"center"}:{color:N.background.color||"#1e293b"},grid:N.grid.enabled?{size:N.grid.size,visible:!0,type:N.grid.type||"dot",args:{color:N.grid.color||"#475569",thickness:1}}:!1,interacting:{nodeMovable:!0},panning:{enabled:!0,modifiers:"shift"},mousewheel:{enabled:!0,modifiers:["ctrl","meta"]},connecting:{router:{name:"orth",args:{padding:10}},connector:{name:"rounded",args:{radius:8}},snap:N.magnetism.enabled?{radius:N.magnetism.threshold||10}:!1,allowBlank:!1,allowLoop:!1,allowNode:!1,allowEdge:!1,highlight:!0,createEdge(){return l.createEdge({shape:"animated-edge",zIndex:0})},validateConnection({targetMagnet:L}){return!!L}}}),l.use(new Gt.Selection({enabled:!0,movable:!0,rubberband:!0,showNodeSelectionBox:!1,showEdgeSelectionBox:!1,multiple:!0,pointerEvents:"none"})),N.guides.enabled&&l.use(new nn.Snapline({enabled:!0,sharp:!0,clean:!0}));const T=eo(Ie.SCADA_EDITOR_DATA);if(((X=T==null?void 0:T.cells)==null?void 0:X.length)>0)try{const L=T.cells.map(H=>(H.position&&typeof H.position=="object"&&(typeof H.position.x!="number"||typeof H.position.y!="number")&&(H.position={x:100,y:100}),H));l.fromJSON({cells:L}),l.getEdges().forEach(H=>{var re;const ae=H.getData();(re=ae==null?void 0:ae.animation)!=null&&re.enabled&&B(H,ae.animation)})}catch(L){console.error("恢复画布数据失败,清空缓存:",L),sessionStorage.removeItem(Ie.SCADA_EDITOR_DATA)}l.on("selection:changed",({selected:L})=>{var ae,re;const H=L?L.filter(ne=>ne.isNode()):[];if(s.value=H.length,L&&L.length>0){const ne=L[0];if(ne.isNode())a.value=ne,t.value=null;else if(ne.isEdge()){t.value=ne,a.value=null;const ge=ne.getAttrs();ne.data={...ne.data,originalAttrs:ge},ne.attr("line/stroke","#3b82f6")}}else{if(t.value&&((ae=t.value.data)!=null&&ae.originalAttrs)){const ne=t.value.data.originalAttrs;t.value.attr("line/stroke",((re=ne.line)==null?void 0:re.stroke)||"#10b981")}a.value=null,t.value=null}}),l.on("edge:click",({edge:L})=>{l.select(L)}),l.on("blank:click",()=>{t.value=null,a.value=null}),l.on("node:change:position",()=>{}),l.on("node:change:size",()=>{}),l.on("node:change:data",({node:L})=>{const H=L.getData();if(H.animation)if(H.animation.enabled===!0){const ae={type:H.animation.type||"none",duration:H.animation.duration||1e3,loop:H.animation.loop!==!1};Be.startAnimation(L,ae)}else Be.stopAnimation(L.id)}),l.on("edge:change:data",({edge:L})=>{const H=L.getData();H!=null&&H.animation&&B(L,H.animation)});const w=L=>{if(L.key==="Delete"&&l){if(a.value){const H=a.value.id;Be.stopAnimation(H),l.removeNode(H),a.value=null}else if(t.value){const H=t.value.id;l.removeEdge(H),t.value=null}}};document.addEventListener("keydown",w),e.onUnmounted(()=>{document.removeEventListener("keydown",w)})}),e.onUnmounted(()=>{if(l){Be.clearAll();const N={cells:l.toJSON().cells};ot(Ie.SCADA_EDITOR_DATA,N),l.dispose()}}),e.watch(()=>Z.getConfig(),N=>{var P;if(!l)return;N.background.image?l.drawBackground({color:N.background.color||"#1e293b",image:N.background.image,size:N.background.size||"cover",repeat:N.background.repeat||"no-repeat",position:"center"}):l.drawBackground({color:N.background.color||"#1e293b"});const I=(P=o.value)==null?void 0:P.containerRef;I&&(I.style.transform=`scale(${N.zoom.scale})`,I.style.transformOrigin="center center",l.resize(N.size.width,N.size.height),I.style.width=`${N.size.width}px`,I.style.height=`${N.size.height}px`),N.grid.enabled?(l.drawGrid({type:N.grid.type||"dot",args:{color:N.grid.color||"#475569",thickness:1}}),l.showGrid()):l.hideGrid(),N.grid.enabled&&N.grid.size&&l.setGridSize(N.grid.size),l.translate(N.offset.x,N.offset.y)},{deep:!0});const i=e.ref({}),n=(N,I)=>(i.value[N]||(i.value[N]=0),i.value[N]++,`${I}_${i.value[N]}`),r=N=>{var q,X,L,H;if(!l)return;const I=Pe.getComponent(N);if(!I){console.error(`未找到组件配置: ${N}`);return}const P=n(N,I.metadata.name),A={enabled:!1,type:"none",duration:1e3,loop:!0},F=ao(50,50,400,300),T={x:F.x,y:F.y,shape:I.shape,width:I.width,height:I.height,label:I.label,attrs:I.attrs,ports:I.ports,data:{...I.data,componentType:N,componentName:P,props:I.props,animation:A,originalStroke:((X=(q=I.attrs)==null?void 0:q.body)==null?void 0:X.stroke)||"#2563eb",originalStrokeWidth:((H=(L=I.attrs)==null?void 0:L.body)==null?void 0:H.strokeWidth)||2}},w=l.addNode(T);l.cleanSelection(),l.select(w)},c=N=>{if(a.value&&(N.attrs&&Object.keys(N.attrs).forEach(I=>{const P=N.attrs[I];typeof P=="object"?Object.keys(P).forEach(A=>{a.value.attr(`${I}/${A}`,P[A])}):a.value.attr(I,P)}),N.position&&(typeof N.position.x=="number"&&typeof N.position.y=="number"?a.value.setPosition(N.position):console.error("position 数据格式错误:",N.position)),N.size&&(typeof N.size.width=="number"&&typeof N.size.height=="number"?a.value.setSize(N.size):console.error("size 数据格式错误:",N.size)),N.data)){const I={...N.data};delete I.position,delete I.size,a.value.store.set("data",I)}},f=()=>{if(!a.value||!l)return;const N=a.value.id;Be.stopAnimation(N),l.removeNode(N),a.value=null},u=N=>{if(t.value){if(N.attrs){Object.keys(N.attrs).forEach(P=>{const A=N.attrs[P];typeof A=="object"?Object.keys(A).forEach(F=>{var T,w;t.value.attr(`${P}/${F}`,A[F]),(w=(T=t.value.data)==null?void 0:T.originalAttrs)!=null&&w[P]&&(t.value.data.originalAttrs[P][F]=A[F])}):t.value.attr(P,A)});const I=t.value.getAttrs();t.value.data={...t.value.data,originalAttrs:I},t.value.attr("line/stroke","#3b82f6")}N.router&&t.value.setRouter(N.router),N.connector&&t.value.setConnector(N.connector),N.animation&&B(t.value,N.animation),N.data&&t.value.setData({...t.value.data,...N.data})}},b=()=>{!t.value||!l||(l.removeEdge(t.value.id),t.value=null)},B=(N,I)=>{if(!N||typeof N.attr!="function"){console.warn("applyEdgeAnimation: edge 对象无效",N);return}if(!I||!I.enabled){N.attr("line/strokeDasharray",void 0),typeof N.removeAttr=="function"&&N.removeAttr("line/class"),N.attr("circle",void 0),typeof N.stopTransition=="function"&&N.stopTransition("attrs/circle/atConnectionRatio");return}const P=I.duration||2e3;N.attr("circle",{r:4,atConnectionRatio:0,fill:{type:"radialGradient",stops:[{offset:"0%",color:"#FFF"},{offset:"100%",color:N.attr("line/stroke")||"#10b981"}]},stroke:N.attr("line/stroke")||"#10b981",strokeWidth:1});const A=()=>{N.attr("circle/atConnectionRatio",0,{silent:!0}),N.transition("attrs/circle/atConnectionRatio",1,{delay:0,duration:P,timing:"linear",complete:()=>{A()}})};A()},V=()=>{l&&confirm("确定要清空画布吗?")&&(Be.clearAll(),l.clearCells(),a.value=null,to(Ie.SCADA_EDITOR_DATA))},d=()=>{if(!l)return;const N=Z.getConfig().zoom.scale,I=Math.min(5,N+.1);Z.setZoom(I)},p=()=>{if(!l)return;const N=Z.getConfig().zoom.scale,I=Math.max(.1,N-.1);Z.setZoom(I)},x=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=Math.min(...N.map(P=>P.getPosition().x));N.forEach(P=>{P.setPosition({x:I,y:P.getPosition().y})})},y=()=>{if(!l)return;const N=l.getSelectedCells().filter(A=>A.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=N.map(A=>A.getPosition().x+A.getSize().width/2),P=I.reduce((A,F)=>A+F,0)/I.length;N.forEach(A=>{const F=P-A.getSize().width/2;A.setPosition({x:F,y:A.getPosition().y})})},v=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=Math.max(...N.map(P=>P.getPosition().x+P.getSize().width));N.forEach(P=>{const A=I-P.getSize().width;P.setPosition({x:A,y:P.getPosition().y})})},D=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=Math.min(...N.map(P=>P.getPosition().y));N.forEach(P=>{P.setPosition({x:P.getPosition().x,y:I})})},_=()=>{if(!l)return;const N=l.getSelectedCells().filter(A=>A.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=N.map(A=>A.getPosition().y+A.getSize().height/2),P=I.reduce((A,F)=>A+F,0)/I.length;N.forEach(A=>{const F=P-A.getSize().height/2;A.setPosition({x:A.getPosition().x,y:F})})},S=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){oe("请选择至少两个节点","warning");return}const I=Math.max(...N.map(P=>P.getPosition().y+P.getSize().height));N.forEach(P=>{const A=I-P.getSize().height;P.setPosition({x:P.getPosition().x,y:A})})},C=()=>{if(!l)return;const N=l.getSelectedCells().filter(w=>w.isNode());if(N.length<3){oe("请选择至少三个节点","warning");return}const I=N.sort((w,q)=>w.getPosition().x-q.getPosition().x),P=I[0],T=(I[I.length-1].getPosition().x-P.getPosition().x)/(I.length-1);I.forEach((w,q)=>{if(q===0||q===I.length-1)return;const X=P.getPosition().x+T*q;w.setPosition({x:X,y:w.getPosition().y})})},k=()=>{if(!l)return;const N=l.getSelectedCells().filter(w=>w.isNode());if(N.length<3){oe("请选择至少三个节点","warning");return}const I=N.sort((w,q)=>w.getPosition().y-q.getPosition().y),P=I[0],T=(I[I.length-1].getPosition().y-P.getPosition().y)/(I.length-1);I.forEach((w,q)=>{if(q===0||q===I.length-1)return;const X=P.getPosition().y+T*q;w.setPosition({x:w.getPosition().x,y:X})})},$=()=>{if(!l){oe("画布未初始化","error");return}try{const N={version:"1.0.0",timestamp:new Date().toISOString(),config:{size:Z.getConfig().size,background:Z.getConfig().background,grid:Z.getConfig().grid,guides:Z.getConfig().guides,magnetism:Z.getConfig().magnetism,zoom:Z.getConfig().zoom},cells:l.toJSON().cells},I=new Blob([JSON.stringify(N,null,2)],{type:"application/json"}),P=URL.createObjectURL(I),A=document.createElement("a"),F=`scada-canvas-${new Date().getTime()}.json`;A.href=P,A.download=F,A.click(),URL.revokeObjectURL(P),oe("保存成功","success")}catch(N){console.error("保存失败",N),oe("保存失败,请查看控制台","error")}},z=()=>{h.value&&h.value.click()},O=N=>{var F;const P=(F=N.target.files)==null?void 0:F[0];if(!P){oe("请选择文件","error");return}const A=new FileReader;A.onload=T=>{var w;try{const q=JSON.parse((w=T.target)==null?void 0:w.result);if(!q.cells){oe("无效的JSON文件格式","error");return}if(!confirm("导入将清空当前画布,是否继续?"))return;if(l){if(l.clearCells(),l.fromJSON({cells:q.cells}),l.getEdges().forEach(X=>{var H;const L=X.getData();(H=L==null?void 0:L.animation)!=null&&H.enabled&&B(X,L.animation)}),q.config&&Z.updateConfig(q.config),q.workflows&&Array.isArray(q.workflows)&&q.workflows.length>0)try{const X=localStorage.getItem("saved-workflows"),L=X?JSON.parse(X):[];let H=0,ae=0;q.workflows.forEach(re=>{const ne=L.findIndex(ge=>ge.id===re.id);ne>=0?(L[ne]={...re,updatedAt:Date.now()},ae++):(L.push(re),H++)}),localStorage.setItem("saved-workflows",JSON.stringify(L)),oe(`导入成功 画布已加载,流程: 新增${H}个,更新${ae}个`,"success")}catch(X){console.error("导入流程数据失败:",X),oe("画布导入成功, 但流程数据导入失败","warning")}else oe("导入成功","success");h.value&&(h.value.value="")}}catch(q){console.error("导入失败",q),oe("导入失败,JSON格式错误","error"),h.value&&(h.value.value="")}},A.readAsText(P)},W=()=>{if(!l)return;const N={cells:l.toJSON().cells,config:{width:Z.getConfig().size.width,height:Z.getConfig().size.height,background:Z.getConfig().background,grid:Z.getConfig().grid}};ot(Ie.SCADA_PREVIEW_DATA,N)},Y=()=>{m.value=!0},Q=()=>{if(!l){oe("画布未初始化","error");return}try{const N={version:"1.0.0",timestamp:at(rt()),config:{size:Z.getConfig().size,background:Z.getConfig().background,grid:Z.getConfig().grid,guides:Z.getConfig().guides,magnetism:Z.getConfig().magnetism,zoom:Z.getConfig().zoom},cells:l.toJSON().cells,nodes:l.getNodes().map(A=>({id:A.id,type:A.shape,position:A.getPosition(),size:A.getSize(),label:A.attr("label/text"),data:A.getData()})),edges:l.getEdges().map(A=>({id:A.id,source:A.getSourceCellId(),target:A.getTargetCellId()})),workflows:[]},I=new Set;if(l.getNodes().forEach(A=>{const F=A.getData();F!=null&&F.events&&Array.isArray(F.events)&&F.events.forEach(T=>{var w;T.action==="callProcess"&&((w=T.params)!=null&&w.processId)&&I.add(T.params.processId)})}),I.size>0)try{const A=localStorage.getItem("saved-workflows");if(A){const F=JSON.parse(A);N.workflows=F.filter(T=>I.has(T.id))}}catch(A){console.error("加载流程数据失败:",A)}const P=oo(N,"scada-export");oe(`已导出为 ${P}`,"success")}catch(N){console.error("导出失败",N),oe("导出失败,请查看控制台","error")}};return E({save:$,import:z,export:Q,preview:W,workflow:Y,zoomIn:d,zoomOut:p,clearAll:V,alignLeft:x,alignCenter:y,alignRight:v,alignTop:D,alignMiddle:_,alignBottom:S,distributeHorizontal:C,distributeVertical:k,addNode:r,updateNode:c,deleteNode:f,getSelectedNode:()=>a.value,selectNode:N=>{if(!l)return!1;const I=l.getCellById(N);return I?(l.select(I),!0):!1},clearSelection:()=>{l&&(l.unselect(l.getSelectedCells()),a.value=null)},getGraph:()=>l,getCanvasData:()=>l?{version:"1.0.0",timestamp:at(rt()),config:Z.getConfig(),cells:l.toJSON().cells,nodes:l.getNodes().map(N=>({id:N.id,type:N.shape,position:N.getPosition(),size:N.getSize(),label:N.attr("label/text"),data:N.getData()})),edges:l.getEdges().map(N=>({id:N.id,source:N.getSourceCellId(),target:N.getTargetCellId()}))}:null,loadCanvasData:N=>{if(!l)return!1;try{return l.clearCells(),l.fromJSON({cells:N.cells}),N.config&&Z.updateConfig(N.config),!0}catch(I){return console.error("加载画布数据失败:",I),!1}},getAllNodes:()=>l?l.getNodes().map(N=>({id:N.id,type:N.shape,position:N.getPosition(),size:N.getSize(),label:N.attr("label/text"),data:N.getData()})):[],getNodeById:N=>{if(!l)return null;const I=l.getCellById(N);if(!I||!I.isNode())return null;const P=I;return{id:P.id,type:P.shape,position:P.getPosition(),size:P.getSize(),label:P.attr("label/text"),data:P.getData()}},getConfigManager:()=>Z,updateCanvasConfig:N=>{Z.updateConfig(N)},setZoom:N=>{Z.setZoom(N)},setCanvasSize:(N,I)=>{Z.updateSize({width:N,height:I})},setBackgroundColor:N=>{Z.updateBackground({color:N})},getAnimationEngine:()=>Be}),(N,I)=>(e.openBlock(),e.createElementBlock("div",ap,[e.createVNode(Ge,{"selected-nodes-count":s.value,onSave:$,onImport:z,onWorkflow:Y,onPreview:W,onExport:Q,onZoomIn:d,onZoomOut:p,onClearAll:V,onAlignLeft:x,onAlignCenter:y,onAlignRight:v,onAlignTop:D,onAlignMiddle:_,onAlignBottom:S,onDistributeHorizontal:C,onDistributeVertical:k},null,8,["selected-nodes-count"]),e.createElementVNode("input",{ref_key:"fileInputRef",ref:h,type:"file",accept:".json",style:{display:"none"},onChange:O},null,544),e.createElementVNode("div",rp,[e.createVNode(Xe,{onAddComponent:r}),e.createVNode(Kn,{ref_key:"canvasAreaRef",ref:o},null,512),e.createVNode(lt,{ref:"propertyPanelRef","selected-node":a.value,"selected-edge":t.value,onUpdateNode:c,onDeleteNode:f,onUpdateEdge:u,onDeleteEdge:b},null,8,["selected-node","selected-edge"])]),e.createVNode(Ed,{"auth-code":g.authCode,"custom-footer":g.customFooter},null,8,["auth-code","custom-footer"]),e.createVNode(op,{visible:m.value,"onUpdate:visible":I[0]||(I[0]=P=>m.value=P),"scada-graph":e.unref(l),onClose:I[1]||(I[1]=P=>m.value=!1)},null,8,["visible","scada-graph"])]))}}),[["__scopeId","data-v-94b1d989"]]),lp={ScadaCanvas:Xo,PropertyPanel:lt,Header:Ge,ComponentLibrary:Xe,CanvasConfigPanel:Ye,BindingCard:Qe,EventCard:Je,BasicPropertiesTab:Ke,AttributeConfigDialog:et,CustomCodeDialog:tt},Yo=g=>{Object.entries(lp).forEach(([E,o])=>{g.component(E,o)})},sp={install:Yo,version:"1.0.0"};G.AttributeConfigDialog=et,G.BasicComponents=wn,G.BasicPropertiesTab=Ke,G.BindingCard=Qe,G.CanvasConfigPanel=Ye,G.ComponentLibrary=Xe,G.CustomCodeDialog=tt,G.EventCard=Je,G.Header=Ge,G.IoTComponents=Sn,G.PropertyPanel=lt,G.STORAGE_KEYS=Ie,G.ScadaCanvas=Xo,G.animationEngine=Be,G.canvasConfigItems=zn,G.canvasConfigManager=Z,G.componentRegistry=Pe,G.default=sp,G.defaultCanvasConfig=je,G.exportToJSON=oo,G.formatTimestamp=at,G.generateEventId=no,G.generateNodeId=dc,G.generateUniqueId=nt,G.getCurrentTimestamp=rt,G.install=Yo,G.loadFromLocal=ic,G.loadFromSession=eo,G.randomPosition=ao,G.removeFromLocal=cc,G.removeFromSession=to,G.saveToLocal=sc,G.saveToSession=ot,G.showMessage=oe,G.sizePresetMap=Re,Object.defineProperties(G,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
53
+ 是否继续保存?`,!confirm(k))return}const y=prompt("请输入流程名称:","未命名流程");if(!y||!y.trim())return;const v=t.toJSON(),D=t.getNodes().map(k=>({id:k.id,shape:k.shape,position:k.getPosition(),size:k.getSize(),attrs:k.getAttrs(),data:k.getData()})),_=t.getEdges().map(k=>({id:k.id,source:k.getSourceCellId(),target:k.getTargetCellId(),attrs:k.getAttrs(),data:k.getData()})),C={id:"workflow_"+Date.now(),name:y.trim(),data:{...v,nodes:D,edges:_},createdAt:Date.now(),updatedAt:Date.now()};try{const k=localStorage.getItem("saved-workflows"),$=k?JSON.parse(k):[];$.push(C),localStorage.setItem("saved-workflows",JSON.stringify($)),alert("✓ 流程保存成功!"),console.log("流程已保存:",C)}catch(k){console.error("保存流程失败:",k),alert("保存失败,请重试")}};e.onMounted(()=>{n(),window.addEventListener("resize",d)});const d=()=>{!t||!a.value||t.resize(a.value.clientWidth,a.value.clientHeight)};return e.onBeforeUnmount(()=>{window.removeEventListener("resize",d);const p=x=>{if(x.key==="Delete"||x.key==="Backspace"){if(!t)return;const y=t.getSelectedCells();y.length&&(x.preventDefault(),t.removeCells(y),s.value&&y.includes(s.value.cell)&&(s.value=null))}};document.removeEventListener("keydown",p),t&&t.dispose()}),(p,x)=>(e.openBlock(),e.createElementBlock("div",K1,[e.createVNode(O1,{"show-close":g.showClose,onClear:u,onValidate:B,onSave:V,onClose:x[0]||(x[0]=y=>p.$emit("close"))},null,8,["show-close"]),e.createElementVNode("div",J1,[e.createElementVNode("div",Z1,[e.createElementVNode("div",{id:"workflow-container",ref_key:"containerRef",ref:a},null,512)]),e.createVNode(R1,{"selected-cell":s.value,"onUpdate:label":c},null,8,["selected-cell"])]),e.createVNode(X1,{visible:h.value,position:m.value,"node-types":o.value,onClose:x[1]||(x[1]=y=>h.value=!1),onSelect:f},null,8,["visible","position","node-types"])]))}}),[["__scopeId","data-v-649349a2"]]),ep={key:0,class:"workflow-dialog-overlay"},tp={class:"workflow-dialog"},op=te(e.defineComponent({__name:"WorkflowDialog",props:{visible:{type:Boolean},scadaGraph:{default:null}},emits:["update:visible","close"],setup(g,{emit:E}){const o=g,a=E;e.watch(()=>o.visible,h=>{h?document.body.style.overflow="hidden":document.body.style.overflow=""});const t=()=>{a("update:visible",!1),a("close")},s=h=>{h.key==="Escape"&&o.visible&&t()};return typeof window<"u"&&window.addEventListener("keydown",s),(h,m)=>g.visible?(e.openBlock(),e.createElementBlock("div",ep,[e.createElementVNode("div",tp,[e.createVNode(Q1,{"scada-graph":g.scadaGraph,"show-close":!0,onClose:t},null,8,["scada-graph"])])])):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-4e7f6ab7"]]);class np{constructor(){Ue(this,"animations",new Map)}startAnimation(E,o){if(!E||o.type==="none")return;this.stopAnimation(E.id);const a=E.id;let t=null;switch(o.type){case"blink":t=this.createBlinkAnimation(E,o);break;case"scale":t=this.createScaleAnimation(E,o);break;case"rotate":t=this.createRotateAnimation(E,o);break;case"float":t=this.createFloatAnimation(E,o);break;case"pulse":t=this.createPulseAnimation(E,o);break}t&&this.animations.set(a,t)}stopAnimation(E){const o=this.animations.get(E);o&&(o.stop&&o.stop(),o.intervalId&&clearInterval(o.intervalId),this.animations.delete(E))}createBlinkAnimation(E,o){const a=E.getAttrByPath("body/opacity")||1;let t=!0;const s=setInterval(()=>{t=!t,E.setAttrByPath("body/opacity",t?a:.2),o.loop||(clearInterval(s),E.setAttrByPath("body/opacity",a))},o.duration/2);return{intervalId:s,stop:()=>{clearInterval(s),E.setAttrByPath("body/opacity",a)}}}createScaleAnimation(E,o){const a=E.getSize();let t=!0;const s=.05;let h=1;const m=setInterval(()=>{t?(h+=s,h>=1.2&&(t=!1)):(h-=s,h<=.8&&(t=!0)),E.resize(a.width*h,a.height*h),!o.loop&&h>=.99&&h<=1.01&&(clearInterval(m),E.resize(a.width,a.height))},o.duration/20);return{intervalId:m,stop:()=>{clearInterval(m),E.resize(a.width,a.height)}}}createRotateAnimation(E,o){let a=0;const t=360/(o.duration/50),s=setInterval(()=>{a=(a+t)%360,E.rotate(a,{absolute:!0}),!o.loop&&a>=360&&(clearInterval(s),E.rotate(0,{absolute:!0}))},50);return{intervalId:s,stop:()=>{clearInterval(s),E.rotate(0,{absolute:!0})}}}createFloatAnimation(E,o){const a=E.position();let t=!0;const s=2;let h=a.y;const m=setInterval(()=>{t?(h-=s,h<=a.y-10&&(t=!1)):(h+=s,h>=a.y+10&&(t=!0)),E.position(a.x,h),!o.loop&&Math.abs(h-a.y)<1&&(clearInterval(m),E.position(a.x,a.y))},o.duration/40);return{intervalId:m,stop:()=>{clearInterval(m),E.position(a.x,a.y)}}}createPulseAnimation(E,o){const a=E.getAttrByPath("body/fill"),t=E.getAttrByPath("body/stroke");let s=0,h=!0;const m=setInterval(()=>{h?(s+=.1,s>=1&&(h=!1)):(s-=.1,s<=0&&(h=!0)),E.setAttrByPath("body/opacity",.5+s*.5),!o.loop&&s<=.05&&(clearInterval(m),E.setAttrByPath("body/fill",a),E.setAttrByPath("body/stroke",t),E.setAttrByPath("body/opacity",1))},o.duration/20);return{intervalId:m,stop:()=>{clearInterval(m),E.setAttrByPath("body/fill",a),E.setAttrByPath("body/stroke",t),E.setAttrByPath("body/opacity",1)}}}clearAll(){this.animations.forEach((E,o)=>{this.stopAnimation(o)}),this.animations.clear()}}const Be=new np,ap={class:"scada-layout","data-scada-theme":"dark"},rp={class:"scada-canvas-container"},Xo=te(e.defineComponent({name:"ScadaCanvas",inheritAttrs:!0,__name:"ScadaCanvas",props:{authCode:{default:""},customFooter:{default:void 0}},setup(g,{expose:E}){const o=e.ref(null),a=e.ref(null),t=e.ref(null),s=e.ref(0),h=e.ref(null),m=e.ref(!1);let l=null;e.onMounted(()=>{var q,X;if(!((q=o.value)!=null&&q.containerRef))return;const N=Z.getConfig();ue.Graph.registerEdge("animated-edge",{inherit:"edge",markup:[{tagName:"path",selector:"line",attrs:{fill:"none"}},{tagName:"path",selector:"wrap",attrs:{fill:"none",stroke:"transparent",strokeWidth:20}},{tagName:"circle",selector:"circle"}],attrs:{line:{connection:!0,stroke:"#10b981",strokeWidth:2,targetMarker:{name:"block",width:8,height:6}},wrap:{connection:!0,strokeLinecap:"round",strokeLinejoin:"round"}}},!0);const I=o.value.containerRef,P=N.size.width,A=N.size.height;(L=>{I.style.width=`${P}px`,I.style.height=`${A}px`,I.style.transform=`scale(${L})`,I.style.transformOrigin="center center"})(N.zoom.scale),l=new ue.Graph({container:I,width:P,height:A,background:N.background.image?{color:N.background.color||"#1e293b",image:N.background.image,size:N.background.size||"cover",repeat:N.background.repeat||"no-repeat",position:"center"}:{color:N.background.color||"#1e293b"},grid:N.grid.enabled?{size:N.grid.size,visible:!0,type:N.grid.type||"dot",args:{color:N.grid.color||"#475569",thickness:1}}:!1,interacting:{nodeMovable:!0},panning:{enabled:!0,modifiers:"shift"},mousewheel:{enabled:!0,modifiers:["ctrl","meta"]},connecting:{router:{name:"orth",args:{padding:10}},connector:{name:"rounded",args:{radius:8}},snap:N.magnetism.enabled?{radius:N.magnetism.threshold||10}:!1,allowBlank:!1,allowLoop:!1,allowNode:!1,allowEdge:!1,highlight:!0,createEdge(){return l.createEdge({shape:"animated-edge",zIndex:0})},validateConnection({targetMagnet:L}){return!!L}}}),l.use(new Gt.Selection({enabled:!0,movable:!0,rubberband:!0,showNodeSelectionBox:!1,showEdgeSelectionBox:!1,multiple:!0,pointerEvents:"none"})),N.guides.enabled&&l.use(new nn.Snapline({enabled:!0,sharp:!0,clean:!0}));const T=eo(Ie.SCADA_EDITOR_DATA);if(((X=T==null?void 0:T.cells)==null?void 0:X.length)>0)try{const L=T.cells.map(H=>{var oe;return H.position&&typeof H.position=="object"&&(typeof H.position.x!="number"||typeof H.position.y!="number")&&(H.position={x:100,y:100}),(H.shape==="edge"||H.shape==="animated-edge")&&(H.router==="manhattan"||((oe=H.router)==null?void 0:oe.name)==="manhattan")&&(H.router={name:"orth",args:{padding:10}}),H});l.fromJSON({cells:L}),l.getEdges().forEach(H=>{var re;const oe=H.getData();(re=oe==null?void 0:oe.animation)!=null&&re.enabled&&B(H,oe.animation)})}catch(L){console.error("恢复画布数据失败,清空缓存:",L),sessionStorage.removeItem(Ie.SCADA_EDITOR_DATA)}l.on("selection:changed",({selected:L})=>{var oe,re;const H=L?L.filter(ae=>ae.isNode()):[];if(s.value=H.length,L&&L.length>0){const ae=L[0];if(ae.isNode())a.value=ae,t.value=null;else if(ae.isEdge()){t.value=ae,a.value=null;const ge=ae.getAttrs();ae.data={...ae.data,originalAttrs:ge},ae.attr("line/stroke","#3b82f6")}}else{if(t.value&&((oe=t.value.data)!=null&&oe.originalAttrs)){const ae=t.value.data.originalAttrs;t.value.attr("line/stroke",((re=ae.line)==null?void 0:re.stroke)||"#10b981")}a.value=null,t.value=null}}),l.on("edge:click",({edge:L})=>{l.select(L)}),l.on("blank:click",()=>{t.value=null,a.value=null}),l.on("node:change:position",()=>{}),l.on("node:change:size",()=>{}),l.on("node:change:data",({node:L})=>{const H=L.getData();if(H.animation)if(H.animation.enabled===!0){const oe={type:H.animation.type||"none",duration:H.animation.duration||1e3,loop:H.animation.loop!==!1};Be.startAnimation(L,oe)}else Be.stopAnimation(L.id)}),l.on("edge:change:data",({edge:L})=>{const H=L.getData();H!=null&&H.animation&&B(L,H.animation)});const w=L=>{if(L.key==="Delete"&&l){if(a.value){const H=a.value.id;Be.stopAnimation(H),l.removeNode(H),a.value=null}else if(t.value){const H=t.value.id;l.removeEdge(H),t.value=null}}};document.addEventListener("keydown",w),e.onUnmounted(()=>{document.removeEventListener("keydown",w)})}),e.onUnmounted(()=>{if(l){Be.clearAll();const N={cells:l.toJSON().cells};ot(Ie.SCADA_EDITOR_DATA,N),l.dispose()}}),e.watch(()=>Z.getConfig(),N=>{var P;if(!l)return;N.background.image?l.drawBackground({color:N.background.color||"#1e293b",image:N.background.image,size:N.background.size||"cover",repeat:N.background.repeat||"no-repeat",position:"center"}):l.drawBackground({color:N.background.color||"#1e293b"});const I=(P=o.value)==null?void 0:P.containerRef;I&&(I.style.transform=`scale(${N.zoom.scale})`,I.style.transformOrigin="center center",l.resize(N.size.width,N.size.height),I.style.width=`${N.size.width}px`,I.style.height=`${N.size.height}px`),N.grid.enabled?(l.drawGrid({type:N.grid.type||"dot",args:{color:N.grid.color||"#475569",thickness:1}}),l.showGrid()):l.hideGrid(),N.grid.enabled&&N.grid.size&&l.setGridSize(N.grid.size),l.translate(N.offset.x,N.offset.y)},{deep:!0});const i=e.ref({}),n=(N,I)=>(i.value[N]||(i.value[N]=0),i.value[N]++,`${I}_${i.value[N]}`),r=N=>{var q,X,L,H;if(!l)return;const I=Pe.getComponent(N);if(!I){console.error(`未找到组件配置: ${N}`);return}const P=n(N,I.metadata.name),A={enabled:!1,type:"none",duration:1e3,loop:!0},F=ao(50,50,400,300),T={x:F.x,y:F.y,shape:I.shape,width:I.width,height:I.height,label:I.label,attrs:I.attrs,ports:I.ports,data:{...I.data,componentType:N,componentName:P,props:I.props,animation:A,originalStroke:((X=(q=I.attrs)==null?void 0:q.body)==null?void 0:X.stroke)||"#2563eb",originalStrokeWidth:((H=(L=I.attrs)==null?void 0:L.body)==null?void 0:H.strokeWidth)||2}},w=l.addNode(T);l.cleanSelection(),l.select(w)},c=N=>{if(a.value&&(N.attrs&&Object.keys(N.attrs).forEach(I=>{const P=N.attrs[I];typeof P=="object"?Object.keys(P).forEach(A=>{a.value.attr(`${I}/${A}`,P[A])}):a.value.attr(I,P)}),N.position&&(typeof N.position.x=="number"&&typeof N.position.y=="number"?a.value.setPosition(N.position):console.error("position 数据格式错误:",N.position)),N.size&&(typeof N.size.width=="number"&&typeof N.size.height=="number"?a.value.setSize(N.size):console.error("size 数据格式错误:",N.size)),N.data)){const I={...N.data};delete I.position,delete I.size,a.value.store.set("data",I)}},f=()=>{if(!a.value||!l)return;const N=a.value.id;Be.stopAnimation(N),l.removeNode(N),a.value=null},u=N=>{if(t.value){if(N.attrs){Object.keys(N.attrs).forEach(P=>{const A=N.attrs[P];typeof A=="object"?Object.keys(A).forEach(F=>{var T,w;t.value.attr(`${P}/${F}`,A[F]),(w=(T=t.value.data)==null?void 0:T.originalAttrs)!=null&&w[P]&&(t.value.data.originalAttrs[P][F]=A[F])}):t.value.attr(P,A)});const I=t.value.getAttrs();t.value.data={...t.value.data,originalAttrs:I},t.value.attr("line/stroke","#3b82f6")}N.router&&t.value.setRouter(N.router),N.connector&&t.value.setConnector(N.connector),N.animation&&B(t.value,N.animation),N.data&&t.value.setData({...t.value.data,...N.data})}},b=()=>{!t.value||!l||(l.removeEdge(t.value.id),t.value=null)},B=(N,I)=>{if(!N||typeof N.attr!="function"){console.warn("applyEdgeAnimation: edge 对象无效",N);return}if(!I||!I.enabled){N.attr("line/strokeDasharray",void 0),typeof N.removeAttr=="function"&&N.removeAttr("line/class"),N.attr("circle",void 0),typeof N.stopTransition=="function"&&N.stopTransition("attrs/circle/atConnectionRatio");return}const P=I.duration||2e3;N.attr("circle",{r:4,atConnectionRatio:0,fill:{type:"radialGradient",stops:[{offset:"0%",color:"#FFF"},{offset:"100%",color:N.attr("line/stroke")||"#10b981"}]},stroke:N.attr("line/stroke")||"#10b981",strokeWidth:1});const A=()=>{N.attr("circle/atConnectionRatio",0,{silent:!0}),N.transition("attrs/circle/atConnectionRatio",1,{delay:0,duration:P,timing:"linear",complete:()=>{A()}})};A()},V=()=>{l&&confirm("确定要清空画布吗?")&&(Be.clearAll(),l.clearCells(),a.value=null,to(Ie.SCADA_EDITOR_DATA))},d=()=>{if(!l)return;const N=Z.getConfig().zoom.scale,I=Math.min(5,N+.1);Z.setZoom(I)},p=()=>{if(!l)return;const N=Z.getConfig().zoom.scale,I=Math.max(.1,N-.1);Z.setZoom(I)},x=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=Math.min(...N.map(P=>P.getPosition().x));N.forEach(P=>{P.setPosition({x:I,y:P.getPosition().y})})},y=()=>{if(!l)return;const N=l.getSelectedCells().filter(A=>A.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=N.map(A=>A.getPosition().x+A.getSize().width/2),P=I.reduce((A,F)=>A+F,0)/I.length;N.forEach(A=>{const F=P-A.getSize().width/2;A.setPosition({x:F,y:A.getPosition().y})})},v=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=Math.max(...N.map(P=>P.getPosition().x+P.getSize().width));N.forEach(P=>{const A=I-P.getSize().width;P.setPosition({x:A,y:P.getPosition().y})})},D=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=Math.min(...N.map(P=>P.getPosition().y));N.forEach(P=>{P.setPosition({x:P.getPosition().x,y:I})})},_=()=>{if(!l)return;const N=l.getSelectedCells().filter(A=>A.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=N.map(A=>A.getPosition().y+A.getSize().height/2),P=I.reduce((A,F)=>A+F,0)/I.length;N.forEach(A=>{const F=P-A.getSize().height/2;A.setPosition({x:A.getPosition().x,y:F})})},S=()=>{if(!l)return;const N=l.getSelectedCells().filter(P=>P.isNode());if(N.length<2){ne("请选择至少两个节点","warning");return}const I=Math.max(...N.map(P=>P.getPosition().y+P.getSize().height));N.forEach(P=>{const A=I-P.getSize().height;P.setPosition({x:P.getPosition().x,y:A})})},C=()=>{if(!l)return;const N=l.getSelectedCells().filter(w=>w.isNode());if(N.length<3){ne("请选择至少三个节点","warning");return}const I=N.sort((w,q)=>w.getPosition().x-q.getPosition().x),P=I[0],T=(I[I.length-1].getPosition().x-P.getPosition().x)/(I.length-1);I.forEach((w,q)=>{if(q===0||q===I.length-1)return;const X=P.getPosition().x+T*q;w.setPosition({x:X,y:w.getPosition().y})})},k=()=>{if(!l)return;const N=l.getSelectedCells().filter(w=>w.isNode());if(N.length<3){ne("请选择至少三个节点","warning");return}const I=N.sort((w,q)=>w.getPosition().y-q.getPosition().y),P=I[0],T=(I[I.length-1].getPosition().y-P.getPosition().y)/(I.length-1);I.forEach((w,q)=>{if(q===0||q===I.length-1)return;const X=P.getPosition().y+T*q;w.setPosition({x:w.getPosition().x,y:X})})},$=()=>{if(!l){ne("画布未初始化","error");return}try{const N={version:"1.0.0",timestamp:new Date().toISOString(),config:{size:Z.getConfig().size,background:Z.getConfig().background,grid:Z.getConfig().grid,guides:Z.getConfig().guides,magnetism:Z.getConfig().magnetism,zoom:Z.getConfig().zoom},cells:l.toJSON().cells},I=new Blob([JSON.stringify(N,null,2)],{type:"application/json"}),P=URL.createObjectURL(I),A=document.createElement("a"),F=`scada-canvas-${new Date().getTime()}.json`;A.href=P,A.download=F,A.click(),URL.revokeObjectURL(P),ne("保存成功","success")}catch(N){console.error("保存失败",N),ne("保存失败,请查看控制台","error")}},z=()=>{h.value&&h.value.click()},O=N=>{var F;const P=(F=N.target.files)==null?void 0:F[0];if(!P){ne("请选择文件","error");return}const A=new FileReader;A.onload=T=>{var w;try{const q=JSON.parse((w=T.target)==null?void 0:w.result);if(!q.cells){ne("无效的JSON文件格式","error");return}if(!confirm("导入将清空当前画布,是否继续?"))return;if(l){if(l.clearCells(),l.fromJSON({cells:q.cells}),l.getEdges().forEach(X=>{var H;const L=X.getData();(H=L==null?void 0:L.animation)!=null&&H.enabled&&B(X,L.animation)}),q.config&&Z.updateConfig(q.config),q.workflows&&Array.isArray(q.workflows)&&q.workflows.length>0)try{const X=localStorage.getItem("saved-workflows"),L=X?JSON.parse(X):[];let H=0,oe=0;q.workflows.forEach(re=>{const ae=L.findIndex(ge=>ge.id===re.id);ae>=0?(L[ae]={...re,updatedAt:Date.now()},oe++):(L.push(re),H++)}),localStorage.setItem("saved-workflows",JSON.stringify(L)),ne(`导入成功 画布已加载,流程: 新增${H}个,更新${oe}个`,"success")}catch(X){console.error("导入流程数据失败:",X),ne("画布导入成功, 但流程数据导入失败","warning")}else ne("导入成功","success");h.value&&(h.value.value="")}}catch(q){console.error("导入失败",q),ne("导入失败,JSON格式错误","error"),h.value&&(h.value.value="")}},A.readAsText(P)},W=()=>{if(!l)return;const N={cells:l.toJSON().cells,config:{width:Z.getConfig().size.width,height:Z.getConfig().size.height,background:Z.getConfig().background,grid:Z.getConfig().grid}};ot(Ie.SCADA_PREVIEW_DATA,N)},Y=()=>{m.value=!0},Q=()=>{if(!l){ne("画布未初始化","error");return}try{const N={version:"1.0.0",timestamp:at(rt()),config:{size:Z.getConfig().size,background:Z.getConfig().background,grid:Z.getConfig().grid,guides:Z.getConfig().guides,magnetism:Z.getConfig().magnetism,zoom:Z.getConfig().zoom},cells:l.toJSON().cells,nodes:l.getNodes().map(A=>({id:A.id,type:A.shape,position:A.getPosition(),size:A.getSize(),label:A.attr("label/text"),data:A.getData()})),edges:l.getEdges().map(A=>({id:A.id,source:A.getSourceCellId(),target:A.getTargetCellId()})),workflows:[]},I=new Set;if(l.getNodes().forEach(A=>{const F=A.getData();F!=null&&F.events&&Array.isArray(F.events)&&F.events.forEach(T=>{var w;T.action==="callProcess"&&((w=T.params)!=null&&w.processId)&&I.add(T.params.processId)})}),I.size>0)try{const A=localStorage.getItem("saved-workflows");if(A){const F=JSON.parse(A);N.workflows=F.filter(T=>I.has(T.id))}}catch(A){console.error("加载流程数据失败:",A)}const P=oo(N,"scada-export");ne(`已导出为 ${P}`,"success")}catch(N){console.error("导出失败",N),ne("导出失败,请查看控制台","error")}};return E({save:$,import:z,export:Q,preview:W,workflow:Y,zoomIn:d,zoomOut:p,clearAll:V,alignLeft:x,alignCenter:y,alignRight:v,alignTop:D,alignMiddle:_,alignBottom:S,distributeHorizontal:C,distributeVertical:k,addNode:r,updateNode:c,deleteNode:f,getSelectedNode:()=>a.value,selectNode:N=>{if(!l)return!1;const I=l.getCellById(N);return I?(l.select(I),!0):!1},clearSelection:()=>{l&&(l.unselect(l.getSelectedCells()),a.value=null)},getGraph:()=>l,getCanvasData:()=>l?{version:"1.0.0",timestamp:at(rt()),config:Z.getConfig(),cells:l.toJSON().cells,nodes:l.getNodes().map(N=>({id:N.id,type:N.shape,position:N.getPosition(),size:N.getSize(),label:N.attr("label/text"),data:N.getData()})),edges:l.getEdges().map(N=>({id:N.id,source:N.getSourceCellId(),target:N.getTargetCellId()}))}:null,loadCanvasData:N=>{if(!l)return!1;try{return l.clearCells(),l.fromJSON({cells:N.cells}),N.config&&Z.updateConfig(N.config),!0}catch(I){return console.error("加载画布数据失败:",I),!1}},getAllNodes:()=>l?l.getNodes().map(N=>({id:N.id,type:N.shape,position:N.getPosition(),size:N.getSize(),label:N.attr("label/text"),data:N.getData()})):[],getNodeById:N=>{if(!l)return null;const I=l.getCellById(N);if(!I||!I.isNode())return null;const P=I;return{id:P.id,type:P.shape,position:P.getPosition(),size:P.getSize(),label:P.attr("label/text"),data:P.getData()}},getConfigManager:()=>Z,updateCanvasConfig:N=>{Z.updateConfig(N)},setZoom:N=>{Z.setZoom(N)},setCanvasSize:(N,I)=>{Z.updateSize({width:N,height:I})},setBackgroundColor:N=>{Z.updateBackground({color:N})},getAnimationEngine:()=>Be}),(N,I)=>(e.openBlock(),e.createElementBlock("div",ap,[e.createVNode(Ge,{"selected-nodes-count":s.value,onSave:$,onImport:z,onWorkflow:Y,onPreview:W,onExport:Q,onZoomIn:d,onZoomOut:p,onClearAll:V,onAlignLeft:x,onAlignCenter:y,onAlignRight:v,onAlignTop:D,onAlignMiddle:_,onAlignBottom:S,onDistributeHorizontal:C,onDistributeVertical:k},null,8,["selected-nodes-count"]),e.createElementVNode("input",{ref_key:"fileInputRef",ref:h,type:"file",accept:".json",style:{display:"none"},onChange:O},null,544),e.createElementVNode("div",rp,[e.createVNode(Xe,{onAddComponent:r}),e.createVNode(Kn,{ref_key:"canvasAreaRef",ref:o},null,512),e.createVNode(lt,{ref:"propertyPanelRef","selected-node":a.value,"selected-edge":t.value,onUpdateNode:c,onDeleteNode:f,onUpdateEdge:u,onDeleteEdge:b},null,8,["selected-node","selected-edge"])]),e.createVNode(Ed,{"auth-code":g.authCode,"custom-footer":g.customFooter},null,8,["auth-code","custom-footer"]),e.createVNode(op,{visible:m.value,"onUpdate:visible":I[0]||(I[0]=P=>m.value=P),"scada-graph":e.unref(l),onClose:I[1]||(I[1]=P=>m.value=!1)},null,8,["visible","scada-graph"])]))}}),[["__scopeId","data-v-4bf52faf"]]),lp={ScadaCanvas:Xo,PropertyPanel:lt,Header:Ge,ComponentLibrary:Xe,CanvasConfigPanel:Ye,BindingCard:Qe,EventCard:Je,BasicPropertiesTab:Ke,AttributeConfigDialog:et,CustomCodeDialog:tt},Yo=g=>{Object.entries(lp).forEach(([E,o])=>{g.component(E,o)})},sp={install:Yo,version:"1.0.0"};G.AttributeConfigDialog=et,G.BasicComponents=wn,G.BasicPropertiesTab=Ke,G.BindingCard=Qe,G.CanvasConfigPanel=Ye,G.ComponentLibrary=Xe,G.CustomCodeDialog=tt,G.EventCard=Je,G.Header=Ge,G.IoTComponents=Sn,G.PropertyPanel=lt,G.STORAGE_KEYS=Ie,G.ScadaCanvas=Xo,G.animationEngine=Be,G.canvasConfigItems=zn,G.canvasConfigManager=Z,G.componentRegistry=Pe,G.default=sp,G.defaultCanvasConfig=je,G.exportToJSON=oo,G.formatTimestamp=at,G.generateEventId=no,G.generateNodeId=dc,G.generateUniqueId=nt,G.getCurrentTimestamp=rt,G.install=Yo,G.loadFromLocal=ic,G.loadFromSession=eo,G.randomPosition=ao,G.removeFromLocal=cc,G.removeFromSession=to,G.saveToLocal=sc,G.saveToSession=ot,G.showMessage=ne,G.sizePresetMap=Re,Object.defineProperties(G,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nywqs/scada-engine",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "自研 SCADA 组态引擎 - 基于 AntV X6",
5
5
  "type": "module",
6
6
  "main": "./dist/scada-engine.umd.js",