irr-gh 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/irr-gh.css +1 -1
- package/dist/irr-gh.js +34 -12
- package/dist/irr-gh.umd.cjs +2 -2
- package/package.json +1 -1
package/dist/irr-gh.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.irrigation-config-panel[data-v-9a48687c]{position:absolute;top:12px;right:12px;width:300px;background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-panel);z-index:10;border:1px solid var(--irr-color-border-secondary);max-height:calc(100% - 24px);display:flex;flex-direction:column}.irrigation-config-panel__header[data-v-9a48687c]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__title[data-v-9a48687c]{font-size:var(--irr-font-size);font-weight:600;color:var(--irr-color-text)}.irrigation-config-panel__close[data-v-9a48687c]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:var(--irr-radius);color:var(--irr-color-text-tertiary);transition:all .2s}.irrigation-config-panel__close[data-v-9a48687c]:hover{background:var(--irr-color-bg-secondary);color:var(--irr-color-text)}.irrigation-config-panel__tabs[data-v-9a48687c]{display:flex;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__tab[data-v-9a48687c]{flex:1;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--irr-color-text-secondary);transition:all .2s;position:relative}.irrigation-config-panel__tab[data-v-9a48687c]:hover{color:var(--irr-color-text);background:var(--irr-color-bg-secondary)}.irrigation-config-panel__tab.active[data-v-9a48687c]{color:var(--irr-color-primary);font-weight:500}.irrigation-config-panel__tab.active[data-v-9a48687c]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--irr-color-primary)}.irrigation-config-panel__content[data-v-9a48687c]{flex:1;padding:16px;overflow-y:auto;max-height:400px}.irrigation-config-panel__section[data-v-9a48687c]{margin-bottom:16px}.irrigation-config-panel__section[data-v-9a48687c]:last-child{margin-bottom:0}.irrigation-config-panel__section-title[data-v-9a48687c]{font-size:13px;font-weight:600;color:var(--irr-color-text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__item[data-v-9a48687c]{margin-bottom:12px}.irrigation-config-panel__item[data-v-9a48687c]:last-child{margin-bottom:0}.irrigation-config-panel__label[data-v-9a48687c]{display:block;font-size:var(--irr-font-size-sm);color:var(--irr-color-text-secondary);margin-bottom:6px}.irrigation-config-panel__control[data-v-9a48687c]{display:flex;align-items:center;gap:8px}.irrigation-config-panel__control input[type=color][data-v-9a48687c]{width:32px;height:32px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);cursor:pointer;padding:2px}.irrigation-config-panel__control input[type=range][data-v-9a48687c]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--irr-color-border-light);border-radius:2px;outline:none}.irrigation-config-panel__control input[type=range][data-v-9a48687c]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--irr-color-primary);border-radius:50%;cursor:pointer}.irrigation-config-panel__control select[data-v-9a48687c]{flex:1;height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:13px;background:var(--irr-color-bg);cursor:pointer}.irrigation-config-panel__text-input[data-v-9a48687c]{flex:1;height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:13px}.irrigation-config-panel__text-input[data-v-9a48687c]:focus{outline:none;border-color:var(--irr-color-primary)}.irrigation-config-panel__value[data-v-9a48687c]{font-size:var(--irr-font-size-sm);color:var(--irr-color-text-tertiary);min-width:40px;text-align:right}.irrigation-config-panel__footer[data-v-9a48687c]{padding:12px 16px;border-top:1px solid var(--irr-color-border-light);display:flex;justify-content:center}.irrigation-config-panel__reset-btn[data-v-9a48687c]{padding:8px 24px;border:1px solid var(--irr-color-border);background:var(--irr-color-bg);border-radius:var(--irr-radius);cursor:pointer;font-size:13px;color:var(--irr-color-text-secondary);transition:all .2s}.irrigation-config-panel__reset-btn[data-v-9a48687c]:hover{border-color:var(--irr-color-danger);color:var(--irr-color-danger);background:var(--irr-color-danger-bg)}@media(max-width:768px){.irrigation-config-panel[data-v-9a48687c]{width:calc(100% - 24px);max-height:60%;inset:auto 12px 12px}}.element-editor-overlay[data-v-db54e541]{position:fixed;inset:0;background:var(--irr-color-bg-mask);z-index:1000;display:flex;align-items:center;justify-content:center}.element-editor[data-v-db54e541]{background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-lg);width:360px;max-height:80vh;display:flex;flex-direction:column}.element-editor__header[data-v-db54e541]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--irr-color-border-light)}.element-editor__title[data-v-db54e541]{font-size:16px;font-weight:600;color:var(--irr-color-text)}.element-editor__close[data-v-db54e541]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:var(--irr-radius);color:var(--irr-color-text-tertiary);transition:all .2s}.element-editor__close[data-v-db54e541]:hover{background:var(--irr-color-bg-secondary);color:var(--irr-color-text)}.element-editor__content[data-v-db54e541]{flex:1;padding:16px 20px;overflow-y:auto}.element-editor__section[data-v-db54e541]{margin-bottom:20px}.element-editor__section[data-v-db54e541]:last-child{margin-bottom:0}.element-editor__section-title[data-v-db54e541]{font-size:var(--irr-font-size);font-weight:600;color:var(--irr-color-text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--irr-color-border-light)}.element-editor__item[data-v-db54e541]{margin-bottom:14px}.element-editor__item[data-v-db54e541]:last-child{margin-bottom:0}.element-editor__label[data-v-db54e541]{display:block;font-size:13px;color:var(--irr-color-text-secondary);margin-bottom:6px}.element-editor__control[data-v-db54e541]{display:flex;align-items:center;gap:10px}.element-editor__control input[type=color][data-v-db54e541]{width:36px;height:36px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);cursor:pointer;padding:2px}.element-editor__control input[type=range][data-v-db54e541]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--irr-color-border-light);border-radius:2px;outline:none}.element-editor__control input[type=range][data-v-db54e541]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--irr-color-primary);border-radius:50%;cursor:pointer}.element-editor__control input[type=checkbox][data-v-db54e541]{width:18px;height:18px;cursor:pointer}.element-editor__control select[data-v-db54e541]{flex:1;height:36px;padding:0 12px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:var(--irr-font-size);background:var(--irr-color-bg);cursor:pointer}.element-editor__text-input[data-v-db54e541]{flex:1;height:36px;padding:0 12px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:var(--irr-font-size)}.element-editor__text-input[data-v-db54e541]:focus{outline:none;border-color:var(--irr-color-primary)}.element-editor__value[data-v-db54e541]{font-size:13px;color:var(--irr-color-text-tertiary);min-width:45px;text-align:right}.element-editor__footer[data-v-db54e541]{padding:16px 20px;border-top:1px solid var(--irr-color-border-light);display:flex;justify-content:flex-end}.element-editor__confirm-btn[data-v-db54e541]{padding:8px 24px;background:var(--irr-color-primary);color:#fff;border:none;border-radius:var(--irr-radius);cursor:pointer;font-size:var(--irr-font-size);transition:all .2s}.element-editor__confirm-btn[data-v-db54e541]:hover{background:var(--irr-color-primary-hover)}.evolution-timeline[data-v-a2514df2]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:var(--irr-color-bg-elevated);border:1px solid var(--irr-color-border);border-radius:var(--irr-radius-lg);padding:12px 16px;box-shadow:var(--irr-shadow);z-index:100;min-width:400px;-webkit-user-select:none;user-select:none}.timeline-controls[data-v-a2514df2]{display:flex;align-items:center;gap:8px}.control-btn[data-v-a2514df2]{width:32px;height:32px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);background:var(--irr-color-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--irr-font-size-sm);transition:all .2s}.control-btn[data-v-a2514df2]:hover:not(:disabled){border-color:var(--irr-color-primary);color:var(--irr-color-primary)}.control-btn[data-v-a2514df2]:disabled{opacity:.5;cursor:not-allowed}.control-btn.active[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary);color:#fff}.play-btn[data-v-a2514df2]{width:40px;background:var(--irr-color-primary);border-color:var(--irr-color-primary);color:#fff}.play-btn[data-v-a2514df2]:hover{background:var(--irr-color-primary-hover);border-color:var(--irr-color-primary-hover);color:#fff}.icon-play[data-v-a2514df2],.icon-pause[data-v-a2514df2]{font-size:var(--irr-font-size)}.timeline-track[data-v-a2514df2]{flex:1;height:24px;position:relative;cursor:pointer;padding:8px 0}.track-bg[data-v-a2514df2]{position:absolute;top:50%;left:0;right:0;height:4px;background:var(--irr-color-track);border-radius:2px;transform:translateY(-50%)}.track-progress[data-v-a2514df2]{position:absolute;top:50%;left:0;height:4px;background:var(--irr-color-primary);border-radius:2px;transform:translateY(-50%);transition:width .2s}.track-points[data-v-a2514df2]{position:absolute;inset:0}.track-point[data-v-a2514df2]{position:absolute;transform:translate(-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center}.point-dot[data-v-a2514df2]{width:12px;height:12px;border-radius:50%;background:var(--irr-color-bg);border:2px solid var(--irr-color-border);transition:all .2s;margin-top:6px}.track-point:hover .point-dot[data-v-a2514df2]{border-color:var(--irr-color-primary);transform:scale(1.2)}.track-point.passed .point-dot[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary)}.track-point.active .point-dot[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary);transform:scale(1.3);box-shadow:0 0 0 3px var(--irr-color-primary-shadow)}.point-label[data-v-a2514df2]{font-size:10px;color:var(--irr-color-text-quaternary);margin-top:4px;white-space:nowrap}.track-point.active .point-label[data-v-a2514df2]{color:var(--irr-color-primary);font-weight:700}.speed-control select[data-v-a2514df2]{height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);background:var(--irr-color-bg);cursor:pointer;font-size:var(--irr-font-size-sm)}.speed-control select[data-v-a2514df2]:hover{border-color:var(--irr-color-primary)}.loop-btn[data-v-a2514df2]{font-size:var(--irr-font-size)}.timeline-info[data-v-a2514df2]{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--irr-color-border-light);font-size:var(--irr-font-size-sm);color:var(--irr-color-text-quaternary)}.current-label[data-v-a2514df2]{color:var(--irr-color-primary);font-weight:500}.irrigation-toolbar[data-v-d97c0ccd]{position:absolute;top:12px;left:12px;padding:12px 16px;background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-sm);display:flex;gap:24px;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--irr-color-border-secondary)}.irrigation-toolbar__section[data-v-d97c0ccd]{display:flex;align-items:center;gap:8px}.irrigation-toolbar__label[data-v-d97c0ccd]{color:var(--irr-color-text-quaternary);font-size:var(--irr-font-size);white-space:nowrap}.irrigation-toolbar button[data-v-d97c0ccd]{padding:8px 12px;border:1px solid var(--irr-color-border);background:var(--irr-color-bg);border-radius:var(--irr-radius);cursor:pointer;font-size:var(--irr-font-size);transition:all .2s;display:flex;align-items:center;gap:4px;min-height:32px}.irrigation-toolbar button[data-v-d97c0ccd]:hover:not(:disabled){border-color:var(--irr-color-primary);color:var(--irr-color-primary);background:var(--irr-color-primary-bg-hover)}.irrigation-toolbar button[data-v-d97c0ccd]:active:not(:disabled){background:var(--irr-color-primary-bg)}.irrigation-toolbar button[data-v-d97c0ccd]:disabled{opacity:.5;cursor:not-allowed}.irrigation-toolbar button.is-active[data-v-d97c0ccd]{border-color:var(--irr-color-primary);color:var(--irr-color-primary);background:var(--irr-color-primary-bg)}.irrigation-toolbar__icon[data-v-d97c0ccd]{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.irrigation-toolbar__btn-text[data-v-d97c0ccd]{font-size:var(--irr-font-size-sm);white-space:nowrap}@media(max-width:768px){.irrigation-toolbar__btn-text[data-v-d97c0ccd]{display:none}.irrigation-toolbar button[data-v-d97c0ccd]{padding:8px;min-height:auto}.irrigation-toolbar[data-v-d97c0ccd]{gap:12px;padding:8px}.irrigation-toolbar__section[data-v-d97c0ccd]{gap:6px}}:root{--irr-color-primary: #1890ff;--irr-color-primary-hover: #40a9ff;--irr-color-primary-active: #096dd9;--irr-color-primary-bg: #e6f7ff;--irr-color-primary-bg-hover: #f0f9ff;--irr-color-primary-shadow: rgba(24, 144, 255, .2);--irr-color-danger: #ff4d4f;--irr-color-danger-bg: #fff1f0;--irr-color-text: #262626;--irr-color-text-secondary: #595959;--irr-color-text-tertiary: #8c8c8c;--irr-color-text-quaternary: #666;--irr-color-bg: #fff;--irr-color-bg-secondary: #f5f5f5;--irr-color-bg-overlay: rgba(255, 255, 255, .8);--irr-color-bg-mask: rgba(0, 0, 0, .45);--irr-color-bg-elevated: rgba(255, 255, 255, .95);--irr-color-border: #d9d9d9;--irr-color-border-light: #f0f0f0;--irr-color-border-secondary: rgba(0, 0, 0, .1);--irr-shadow: 0 2px 8px rgba(0, 0, 0, .15);--irr-shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--irr-shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--irr-shadow-panel: 0 2px 12px rgba(0, 0, 0, .15);--irr-radius: 4px;--irr-radius-lg: 8px;--irr-font-size: 14px;--irr-font-size-sm: 12px;--irr-color-track: #e8e8e8}.irrigation-graph[data-v-730f4c35]{position:relative;width:100%;height:100%;overflow:hidden}.irrigation-graph__canvas[data-v-730f4c35]{position:relative;width:100%;height:100%}.irrigation-graph__loading[data-v-730f4c35]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--irr-color-bg-overlay);z-index:20}
|
|
1
|
+
.irrigation-config-panel[data-v-9a48687c]{position:absolute;top:12px;right:12px;width:300px;background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-panel);z-index:10;border:1px solid var(--irr-color-border-secondary);max-height:calc(100% - 24px);display:flex;flex-direction:column}.irrigation-config-panel__header[data-v-9a48687c]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__title[data-v-9a48687c]{font-size:var(--irr-font-size);font-weight:600;color:var(--irr-color-text)}.irrigation-config-panel__close[data-v-9a48687c]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:var(--irr-radius);color:var(--irr-color-text-tertiary);transition:all .2s}.irrigation-config-panel__close[data-v-9a48687c]:hover{background:var(--irr-color-bg-secondary);color:var(--irr-color-text)}.irrigation-config-panel__tabs[data-v-9a48687c]{display:flex;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__tab[data-v-9a48687c]{flex:1;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--irr-color-text-secondary);transition:all .2s;position:relative}.irrigation-config-panel__tab[data-v-9a48687c]:hover{color:var(--irr-color-text);background:var(--irr-color-bg-secondary)}.irrigation-config-panel__tab.active[data-v-9a48687c]{color:var(--irr-color-primary);font-weight:500}.irrigation-config-panel__tab.active[data-v-9a48687c]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--irr-color-primary)}.irrigation-config-panel__content[data-v-9a48687c]{flex:1;padding:16px;overflow-y:auto;max-height:400px}.irrigation-config-panel__section[data-v-9a48687c]{margin-bottom:16px}.irrigation-config-panel__section[data-v-9a48687c]:last-child{margin-bottom:0}.irrigation-config-panel__section-title[data-v-9a48687c]{font-size:13px;font-weight:600;color:var(--irr-color-text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--irr-color-border-light)}.irrigation-config-panel__item[data-v-9a48687c]{margin-bottom:12px}.irrigation-config-panel__item[data-v-9a48687c]:last-child{margin-bottom:0}.irrigation-config-panel__label[data-v-9a48687c]{display:block;font-size:var(--irr-font-size-sm);color:var(--irr-color-text-secondary);margin-bottom:6px}.irrigation-config-panel__control[data-v-9a48687c]{display:flex;align-items:center;gap:8px}.irrigation-config-panel__control input[type=color][data-v-9a48687c]{width:32px;height:32px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);cursor:pointer;padding:2px}.irrigation-config-panel__control input[type=range][data-v-9a48687c]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--irr-color-border-light);border-radius:2px;outline:none}.irrigation-config-panel__control input[type=range][data-v-9a48687c]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--irr-color-primary);border-radius:50%;cursor:pointer}.irrigation-config-panel__control select[data-v-9a48687c]{flex:1;height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:13px;background:var(--irr-color-bg);cursor:pointer}.irrigation-config-panel__text-input[data-v-9a48687c]{flex:1;height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:13px}.irrigation-config-panel__text-input[data-v-9a48687c]:focus{outline:none;border-color:var(--irr-color-primary)}.irrigation-config-panel__value[data-v-9a48687c]{font-size:var(--irr-font-size-sm);color:var(--irr-color-text-tertiary);min-width:40px;text-align:right}.irrigation-config-panel__footer[data-v-9a48687c]{padding:12px 16px;border-top:1px solid var(--irr-color-border-light);display:flex;justify-content:center}.irrigation-config-panel__reset-btn[data-v-9a48687c]{padding:8px 24px;border:1px solid var(--irr-color-border);background:var(--irr-color-bg);border-radius:var(--irr-radius);cursor:pointer;font-size:13px;color:var(--irr-color-text-secondary);transition:all .2s}.irrigation-config-panel__reset-btn[data-v-9a48687c]:hover{border-color:var(--irr-color-danger);color:var(--irr-color-danger);background:var(--irr-color-danger-bg)}@media(max-width:768px){.irrigation-config-panel[data-v-9a48687c]{width:calc(100% - 24px);max-height:60%;inset:auto 12px 12px}}.element-editor-overlay[data-v-db54e541]{position:fixed;inset:0;background:var(--irr-color-bg-mask);z-index:1000;display:flex;align-items:center;justify-content:center}.element-editor[data-v-db54e541]{background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-lg);width:360px;max-height:80vh;display:flex;flex-direction:column}.element-editor__header[data-v-db54e541]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--irr-color-border-light)}.element-editor__title[data-v-db54e541]{font-size:16px;font-weight:600;color:var(--irr-color-text)}.element-editor__close[data-v-db54e541]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:var(--irr-radius);color:var(--irr-color-text-tertiary);transition:all .2s}.element-editor__close[data-v-db54e541]:hover{background:var(--irr-color-bg-secondary);color:var(--irr-color-text)}.element-editor__content[data-v-db54e541]{flex:1;padding:16px 20px;overflow-y:auto}.element-editor__section[data-v-db54e541]{margin-bottom:20px}.element-editor__section[data-v-db54e541]:last-child{margin-bottom:0}.element-editor__section-title[data-v-db54e541]{font-size:var(--irr-font-size);font-weight:600;color:var(--irr-color-text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--irr-color-border-light)}.element-editor__item[data-v-db54e541]{margin-bottom:14px}.element-editor__item[data-v-db54e541]:last-child{margin-bottom:0}.element-editor__label[data-v-db54e541]{display:block;font-size:13px;color:var(--irr-color-text-secondary);margin-bottom:6px}.element-editor__control[data-v-db54e541]{display:flex;align-items:center;gap:10px}.element-editor__control input[type=color][data-v-db54e541]{width:36px;height:36px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);cursor:pointer;padding:2px}.element-editor__control input[type=range][data-v-db54e541]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--irr-color-border-light);border-radius:2px;outline:none}.element-editor__control input[type=range][data-v-db54e541]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--irr-color-primary);border-radius:50%;cursor:pointer}.element-editor__control input[type=checkbox][data-v-db54e541]{width:18px;height:18px;cursor:pointer}.element-editor__control select[data-v-db54e541]{flex:1;height:36px;padding:0 12px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:var(--irr-font-size);background:var(--irr-color-bg);cursor:pointer}.element-editor__text-input[data-v-db54e541]{flex:1;height:36px;padding:0 12px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);font-size:var(--irr-font-size)}.element-editor__text-input[data-v-db54e541]:focus{outline:none;border-color:var(--irr-color-primary)}.element-editor__value[data-v-db54e541]{font-size:13px;color:var(--irr-color-text-tertiary);min-width:45px;text-align:right}.element-editor__footer[data-v-db54e541]{padding:16px 20px;border-top:1px solid var(--irr-color-border-light);display:flex;justify-content:flex-end}.element-editor__confirm-btn[data-v-db54e541]{padding:8px 24px;background:var(--irr-color-primary);color:#fff;border:none;border-radius:var(--irr-radius);cursor:pointer;font-size:var(--irr-font-size);transition:all .2s}.element-editor__confirm-btn[data-v-db54e541]:hover{background:var(--irr-color-primary-hover)}.evolution-timeline[data-v-a2514df2]{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:var(--irr-color-bg-elevated);border:1px solid var(--irr-color-border);border-radius:var(--irr-radius-lg);padding:12px 16px;box-shadow:var(--irr-shadow);z-index:100;min-width:400px;-webkit-user-select:none;user-select:none}.timeline-controls[data-v-a2514df2]{display:flex;align-items:center;gap:8px}.control-btn[data-v-a2514df2]{width:32px;height:32px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);background:var(--irr-color-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--irr-font-size-sm);transition:all .2s}.control-btn[data-v-a2514df2]:hover:not(:disabled){border-color:var(--irr-color-primary);color:var(--irr-color-primary)}.control-btn[data-v-a2514df2]:disabled{opacity:.5;cursor:not-allowed}.control-btn.active[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary);color:#fff}.play-btn[data-v-a2514df2]{width:40px;background:var(--irr-color-primary);border-color:var(--irr-color-primary);color:#fff}.play-btn[data-v-a2514df2]:hover{background:var(--irr-color-primary-hover);border-color:var(--irr-color-primary-hover);color:#fff}.icon-play[data-v-a2514df2],.icon-pause[data-v-a2514df2]{font-size:var(--irr-font-size)}.timeline-track[data-v-a2514df2]{flex:1;height:24px;position:relative;cursor:pointer;padding:8px 0}.track-bg[data-v-a2514df2]{position:absolute;top:50%;left:0;right:0;height:4px;background:var(--irr-color-track);border-radius:2px;transform:translateY(-50%)}.track-progress[data-v-a2514df2]{position:absolute;top:50%;left:0;height:4px;background:var(--irr-color-primary);border-radius:2px;transform:translateY(-50%);transition:width .2s}.track-points[data-v-a2514df2]{position:absolute;inset:0}.track-point[data-v-a2514df2]{position:absolute;transform:translate(-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center}.point-dot[data-v-a2514df2]{width:12px;height:12px;border-radius:50%;background:var(--irr-color-bg);border:2px solid var(--irr-color-border);transition:all .2s;margin-top:6px}.track-point:hover .point-dot[data-v-a2514df2]{border-color:var(--irr-color-primary);transform:scale(1.2)}.track-point.passed .point-dot[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary)}.track-point.active .point-dot[data-v-a2514df2]{background:var(--irr-color-primary);border-color:var(--irr-color-primary);transform:scale(1.3);box-shadow:0 0 0 3px var(--irr-color-primary-shadow)}.point-label[data-v-a2514df2]{font-size:10px;color:var(--irr-color-text-quaternary);margin-top:4px;white-space:nowrap}.track-point.active .point-label[data-v-a2514df2]{color:var(--irr-color-primary);font-weight:700}.speed-control select[data-v-a2514df2]{height:32px;padding:0 8px;border:1px solid var(--irr-color-border);border-radius:var(--irr-radius);background:var(--irr-color-bg);cursor:pointer;font-size:var(--irr-font-size-sm)}.speed-control select[data-v-a2514df2]:hover{border-color:var(--irr-color-primary)}.loop-btn[data-v-a2514df2]{font-size:var(--irr-font-size)}.timeline-info[data-v-a2514df2]{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--irr-color-border-light);font-size:var(--irr-font-size-sm);color:var(--irr-color-text-quaternary)}.current-label[data-v-a2514df2]{color:var(--irr-color-primary);font-weight:500}.irrigation-toolbar[data-v-d97c0ccd]{position:absolute;top:12px;left:12px;padding:12px 16px;background:var(--irr-color-bg);border-radius:var(--irr-radius-lg);box-shadow:var(--irr-shadow-sm);display:flex;gap:24px;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--irr-color-border-secondary)}.irrigation-toolbar__section[data-v-d97c0ccd]{display:flex;align-items:center;gap:8px}.irrigation-toolbar__label[data-v-d97c0ccd]{color:var(--irr-color-text-quaternary);font-size:var(--irr-font-size);white-space:nowrap}.irrigation-toolbar button[data-v-d97c0ccd]{padding:8px 12px;border:1px solid var(--irr-color-border);background:var(--irr-color-bg);border-radius:var(--irr-radius);cursor:pointer;font-size:var(--irr-font-size);transition:all .2s;display:flex;align-items:center;gap:4px;min-height:32px}.irrigation-toolbar button[data-v-d97c0ccd]:hover:not(:disabled){border-color:var(--irr-color-primary);color:var(--irr-color-primary);background:var(--irr-color-primary-bg-hover)}.irrigation-toolbar button[data-v-d97c0ccd]:active:not(:disabled){background:var(--irr-color-primary-bg)}.irrigation-toolbar button[data-v-d97c0ccd]:disabled{opacity:.5;cursor:not-allowed}.irrigation-toolbar button.is-active[data-v-d97c0ccd]{border-color:var(--irr-color-primary);color:var(--irr-color-primary);background:var(--irr-color-primary-bg)}.irrigation-toolbar__icon[data-v-d97c0ccd]{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.irrigation-toolbar__btn-text[data-v-d97c0ccd]{font-size:var(--irr-font-size-sm);white-space:nowrap}@media(max-width:768px){.irrigation-toolbar__btn-text[data-v-d97c0ccd]{display:none}.irrigation-toolbar button[data-v-d97c0ccd]{padding:8px;min-height:auto}.irrigation-toolbar[data-v-d97c0ccd]{gap:12px;padding:8px}.irrigation-toolbar__section[data-v-d97c0ccd]{gap:6px}}:root{--irr-color-primary: #1890ff;--irr-color-primary-hover: #40a9ff;--irr-color-primary-active: #096dd9;--irr-color-primary-bg: #e6f7ff;--irr-color-primary-bg-hover: #f0f9ff;--irr-color-primary-shadow: rgba(24, 144, 255, .2);--irr-color-danger: #ff4d4f;--irr-color-danger-bg: #fff1f0;--irr-color-text: #262626;--irr-color-text-secondary: #595959;--irr-color-text-tertiary: #8c8c8c;--irr-color-text-quaternary: #666;--irr-color-bg: #fff;--irr-color-bg-secondary: #f5f5f5;--irr-color-bg-overlay: rgba(255, 255, 255, .8);--irr-color-bg-mask: rgba(0, 0, 0, .45);--irr-color-bg-elevated: rgba(255, 255, 255, .95);--irr-color-border: #d9d9d9;--irr-color-border-light: #f0f0f0;--irr-color-border-secondary: rgba(0, 0, 0, .1);--irr-shadow: 0 2px 8px rgba(0, 0, 0, .15);--irr-shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--irr-shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--irr-shadow-panel: 0 2px 12px rgba(0, 0, 0, .15);--irr-radius: 4px;--irr-radius-lg: 8px;--irr-font-size: 14px;--irr-font-size-sm: 12px;--irr-color-track: #e8e8e8}.irrigation-graph[data-v-82817f02]{position:relative;width:100%;height:100%;overflow:hidden}.irrigation-graph__canvas[data-v-82817f02]{position:relative;width:100%;height:100%}.irrigation-graph__loading[data-v-82817f02]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--irr-color-bg-overlay);z-index:20}
|
package/dist/irr-gh.js
CHANGED
|
@@ -472,7 +472,8 @@ function zd(A) {
|
|
|
472
472
|
key: "fix-element-size",
|
|
473
473
|
type: "fix-element-size",
|
|
474
474
|
enable: !0,
|
|
475
|
-
node: { shape: "label" }
|
|
475
|
+
node: { shape: "label" },
|
|
476
|
+
edge: { shape: "label" }
|
|
476
477
|
}), {
|
|
477
478
|
behaviors: t,
|
|
478
479
|
cleanup: () => {
|
|
@@ -20109,7 +20110,7 @@ class vd {
|
|
|
20109
20110
|
// 保持标签配置
|
|
20110
20111
|
labelText: i.data?.label || ""
|
|
20111
20112
|
};
|
|
20112
|
-
return a.fill && (f.fill = a.fill), a.stroke && (f.stroke = a.stroke), a.labelFill && (f.labelFill = a.labelFill), a.labelFontSize && (f.labelFontSize = a.labelFontSize || 16), a.labelPlacement && (f.labelPlacement = a.labelPlacement), f.zIndex = 10, f;
|
|
20113
|
+
return a.fill && (f.fill = a.fill), a.stroke && (f.stroke = a.stroke), a.labelFill && (f.labelFill = a.labelFill), a.labelFontSize && (f.labelFontSize = a.labelFontSize || 16), a.labelPlacement && (f.labelPlacement = a.labelPlacement), a.labelWordWrap != null && (f.labelWordWrap = a.labelWordWrap), a.labelMaxWidth != null && (f.labelMaxWidth = a.labelMaxWidth), a.labelMaxLines != null && (f.labelMaxLines = a.labelMaxLines), a.labelLineHeight != null && (f.labelLineHeight = a.labelLineHeight), f.zIndex = 10, f;
|
|
20113
20114
|
}
|
|
20114
20115
|
const l = {
|
|
20115
20116
|
// 基础样式
|
|
@@ -20273,9 +20274,34 @@ class vd {
|
|
|
20273
20274
|
}
|
|
20274
20275
|
/**
|
|
20275
20276
|
* 适应视图
|
|
20277
|
+
*
|
|
20278
|
+
* fix-element-size 行为会在缩放时给标签施加 1/zoom 的补偿缩放,导致两个问题:
|
|
20279
|
+
* 1. fixElementSize 的 skipIfExceedViewport 会跳过视口外的元素,
|
|
20280
|
+
* 当从缩小状态 zoomTo(1) 时,视口变小,部分标签未被重置,
|
|
20281
|
+
* 使 fitView 的包围盒计算被膨胀的标签污染。
|
|
20282
|
+
* 2. fitView 内部使用 mode:'relative' 的 scale,但 fix-element-size
|
|
20283
|
+
* 直接将 event.data.scale 当作绝对缩放值存储。
|
|
20284
|
+
* 仅当起始 zoom=1 时,相对缩放比才等于绝对缩放比。
|
|
20285
|
+
*
|
|
20286
|
+
* 修复流程:
|
|
20287
|
+
* 1. 临时启用 reset 模式并 draw,触发 restoreCachedStyles 重置所有标签缩放
|
|
20288
|
+
* 2. 禁用 fix-element-size 后 zoomTo(1),确保标签保持原始尺寸
|
|
20289
|
+
* 3. 重新启用 fix-element-size,从 zoom=1 出发执行 fitView(带动画)
|
|
20290
|
+
* 此时 fitView 的相对缩放比 == 绝对缩放比,fix-element-size 获得正确值
|
|
20276
20291
|
*/
|
|
20277
|
-
fitView() {
|
|
20278
|
-
|
|
20292
|
+
async fitView() {
|
|
20293
|
+
if (!this.graph) return;
|
|
20294
|
+
this.options.fixElementSize !== !1 ? (this.graph.updateBehavior({
|
|
20295
|
+
key: "fix-element-size",
|
|
20296
|
+
reset: !0,
|
|
20297
|
+
enable: !1
|
|
20298
|
+
}), await this.graph.draw(), this.graph.updateBehavior({
|
|
20299
|
+
key: "fix-element-size",
|
|
20300
|
+
reset: !1
|
|
20301
|
+
}), await this.graph.zoomTo(1, !1), this.graph.updateBehavior({
|
|
20302
|
+
key: "fix-element-size",
|
|
20303
|
+
enable: !0
|
|
20304
|
+
}), await this.graph.fitView(), this.state.zoom = this.graph.getZoom()) : (await this.graph.fitView(), this.state.zoom = this.graph.getZoom());
|
|
20279
20305
|
}
|
|
20280
20306
|
/**
|
|
20281
20307
|
* 聚焦到节点
|
|
@@ -22141,7 +22167,7 @@ class il {
|
|
|
22141
22167
|
const s = r.get(n.id || "");
|
|
22142
22168
|
if (!s) continue;
|
|
22143
22169
|
const o = s.direction === "up" || s.direction === "down";
|
|
22144
|
-
n.style || (n.style = {}), n.style.labelPlacement =
|
|
22170
|
+
n.style || (n.style = {}), o ? n.style.labelPlacement = "right" : (n.style.labelPlacement = "bottom", n.style.labelWordWrap = !0, n.style.labelMaxWidth = 30, n.style.labelMaxLines = 20, n.style.labelLineHeight = 20);
|
|
22145
22171
|
}
|
|
22146
22172
|
}
|
|
22147
22173
|
/**
|
|
@@ -23337,7 +23363,7 @@ const MF = {
|
|
|
23337
23363
|
enableZoom: { type: Boolean, default: !0 },
|
|
23338
23364
|
enableBrush: { type: Boolean, default: !1 },
|
|
23339
23365
|
enableMinimap: { type: Boolean, default: !1 },
|
|
23340
|
-
fixElementSize: { type: Boolean, default: !
|
|
23366
|
+
fixElementSize: { type: Boolean, default: !0 },
|
|
23341
23367
|
fitView: { type: Boolean, default: !0 },
|
|
23342
23368
|
autoResize: { type: Boolean, default: !0 },
|
|
23343
23369
|
fitViewPadding: {},
|
|
@@ -23477,11 +23503,7 @@ const MF = {
|
|
|
23477
23503
|
}), B.value.onContextMenu(Jt));
|
|
23478
23504
|
}
|
|
23479
23505
|
function Jt(W) {
|
|
23480
|
-
W.menuValue === "edit" && Oe(
|
|
23481
|
-
W.targetType,
|
|
23482
|
-
W.targetId,
|
|
23483
|
-
W.targetData
|
|
23484
|
-
);
|
|
23506
|
+
W.menuValue === "edit" && Oe(W.targetType, W.targetId, W.targetData);
|
|
23485
23507
|
}
|
|
23486
23508
|
function Oe(W, qA, $t) {
|
|
23487
23509
|
if (f.value = W, d.value = qA, W === "node") {
|
|
@@ -23704,7 +23726,7 @@ const MF = {
|
|
|
23704
23726
|
Ya(W.$slots, "default", {}, void 0, !0)
|
|
23705
23727
|
], 4));
|
|
23706
23728
|
}
|
|
23707
|
-
}), HU = /* @__PURE__ */ Yn(MU, [["__scopeId", "data-v-
|
|
23729
|
+
}), HU = /* @__PURE__ */ Yn(MU, [["__scopeId", "data-v-82817f02"]]), ub = {
|
|
23708
23730
|
install(A) {
|
|
23709
23731
|
A.component("IrrigationGraph", HU), A.component("EvolutionTimeline", yd);
|
|
23710
23732
|
}
|
package/dist/irr-gh.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(V,Q){typeof exports=="object"&&typeof module<"u"?Q(exports,require("vue"),require("@antv/g6")):typeof define=="function"&&define.amd?define(["exports","vue","@antv/g6"],Q):(V=typeof globalThis<"u"?globalThis:V||self,Q(V.IrrGh={},V.Vue,V.G6))})(this,(function(V,Q,We){"use strict";function bA(A){const t=A.style;return{x:t?.x??0,y:t?.y??0}}function pe(A,t,e){A.style||(A.style={}),A.style.x=t,A.style.y=e}function nl(A,t){if(A.length<2)return;const e=A.map(n=>bA(n));let r;if(t==="top")r=Math.min(...e.map(n=>n.y));else if(t==="bottom")r=Math.max(...e.map(n=>n.y));else{const n=Math.min(...e.map(a=>a.y)),i=Math.max(...e.map(a=>a.y));r=(n+i)/2}for(const n of A){const i=bA(n);pe(n,i.x,r)}}function il(A,t){if(A.length<2)return;const e=A.map(n=>bA(n));let r;if(t==="left")r=Math.min(...e.map(n=>n.x));else if(t==="right")r=Math.max(...e.map(n=>n.x));else{const n=Math.min(...e.map(a=>a.x)),i=Math.max(...e.map(a=>a.x));r=(n+i)/2}for(const n of A){const i=bA(n);pe(n,r,i.y)}}function al(A,t){if(A.length<3)return;const e=[...A].sort((s,o)=>bA(s).x-bA(o).x),r=bA(e[0]),i=bA(e[e.length-1]).x-r.x,a=t??i/(A.length-1);for(let s=1;s<e.length-1;s++){const o=e[s],l=bA(o);pe(o,r.x+a*s,l.y)}}function sl(A,t){if(A.length<3)return;const e=[...A].sort((s,o)=>bA(s).y-bA(o).y),r=bA(e[0]),i=bA(e[e.length-1]).y-r.y,a=t??i/(A.length-1);for(let s=1;s<e.length-1;s++){const o=e[s],l=bA(o);pe(o,l.x,r.y+a*s)}}function Kn(A,t,e){for(const r of A){const n=bA(r);pe(r,n.x+t,n.y+e)}}function Vt(A){if(A.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0,centerX:0,centerY:0};const t=A.map(a=>bA(a)),e=Math.min(...t.map(a=>a.x)),r=Math.min(...t.map(a=>a.y)),n=Math.max(...t.map(a=>a.x)),i=Math.max(...t.map(a=>a.y));return{minX:e,minY:r,maxX:n,maxY:i,width:n-e,height:i-r,centerX:(e+n)/2,centerY:(r+i)/2}}function Ka(A,t,e){const r=Vt(A),n=t-r.centerX,i=e-r.centerY;Kn(A,n,i)}function _a(A,t){return(A.nodes||[]).filter(e=>e.businessData?.canalId===t)}function ol(A,t){const e=A.edges||[],r=A.nodes||[],n=e.filter(a=>a.target===t).map(a=>a.source),i=e.filter(a=>a.source===t).map(a=>a.target);return{sources:r.filter(a=>n.includes(a.id)),targets:r.filter(a=>i.includes(a.id))}}function ll(A,t,e){if(A.length<2)return;const r=[...A].sort((i,a)=>{const s=bA(i),o=bA(a);return t==="horizontal"?s.x-o.x:s.y-o.y}),n=bA(r[0]);for(let i=1;i<r.length;i++){const a=r[i],s=bA(a);t==="horizontal"?pe(a,n.x+e*i,s.y):pe(a,s.x,n.y+e*i)}}function ul(A,t){if(A.length===0)return;const e=Vt(A);for(const r of A){const n=bA(r);if(t==="horizontal"){const i=e.centerX*2-n.x;pe(r,i,n.y)}else{const i=e.centerY*2-n.y;pe(r,n.x,i)}}}function cl(A,t=!0){if(A.length===0)return;const e=Vt(A);for(const r of A){const n=bA(r),i=n.x-e.centerX,a=n.y-e.centerY;let s,o;t?(s=e.centerX+a,o=e.centerY-i):(s=e.centerX-a,o=e.centerY+i),pe(r,s,o)}}function xd(A,t,e){const r=t/2,n=e/2;Ka(A,r,n)}function bd(A,t){return _a(A,t)}function fl(A){return A==="horizontal"?"x":"y"}function Id(A){return A==="horizontal"?"y":"x"}function Sd(A,t){if(A.length===0)return{start:0,end:0,center:0};const e=Vt(A);return fl(t)==="x"?{start:e.minX,end:e.maxX,center:e.centerX}:{start:e.minY,end:e.maxY,center:e.centerY}}function Td(A,t,e,r){if(t.length===0)return;const n=Vt(t),i=e-n.centerX,a=r-n.centerY;Kn(A,i,a)}const Md=Object.freeze(Object.defineProperty({__proto__:null,adjustNodesToCenter:Td,alignNodesHorizontally:nl,alignNodesVertically:il,autoAdjustSpacing:ll,centerNodesToCanvas:xd,centerNodesToPosition:Ka,distributeNodesHorizontally:al,distributeNodesVertically:sl,flipNodes:ul,getConnectedNodes:ol,getCrossAxis:Id,getMainAxis:fl,getMainCanalExtent:Sd,getMainCanalNodes:bd,getNodePosition:bA,getNodesBoundingBox:Vt,getNodesByCanalId:_a,moveNodes:Kn,rotateNodes90:cl,setNodePosition:pe},Symbol.toStringTag,{value:"Module"}));function hl(A){return JSON.stringify(A,null,2)}function dl(A){try{const t=JSON.parse(A);return{nodes:t.nodes||[],edges:t.edges||[],combos:t.combos||[]}}catch(t){return console.error("Failed to parse graph data:",t),{nodes:[],edges:[],combos:[]}}}function Hd(A,t="irrigation-graph.json"){const e=hl(A),r=new Blob([e],{type:"application/json"}),n=URL.createObjectURL(r),i=document.createElement("a");i.href=n,i.download=t,i.click(),URL.revokeObjectURL(n)}function kd(A){return new Promise((t,e)=>{const r=new FileReader;r.onload=n=>{try{const i=n.target?.result,a=dl(i);t(a)}catch(i){e(i)}},r.onerror=()=>e(new Error("Failed to read file")),r.readAsText(A)})}async function Ld(A){try{return await navigator.clipboard.writeText(A),!0}catch(t){return console.error("Failed to copy to clipboard:",t),!1}}function Nd(A="node"){return`${A}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function Dd(A){return JSON.parse(JSON.stringify(A))}function Ga(A,t){let e=null;return(...r)=>{e&&clearTimeout(e),e=setTimeout(()=>{A(...r)},t)}}function Pd(A,t){let e=0;return(...r)=>{const n=Date.now();n-e>=t&&(A(...r),e=n)}}function Va(A,t,e,r){return Math.sqrt(Math.pow(e-A,2)+Math.pow(r-t,2))}function Od(A,t,e,r,n,i){const a=n-e,s=i-r,o=Math.sqrt(a*a+s*s);if(o===0)return Va(A,t,e,r);const l=Math.max(0,Math.min(1,((A-e)*a+(t-r)*s)/(o*o))),u=e+l*a,c=r+l*s;return Va(A,t,u,c)}function Rd(A){const t=[],e=new Set;if(!A.nodes||!Array.isArray(A.nodes))t.push("nodes must be an array");else for(const r of A.nodes)r.id?e.has(r.id)?t.push(`Duplicate node id: ${r.id}`):e.add(r.id):t.push("Node must have an id");if(A.edges&&Array.isArray(A.edges))for(const r of A.edges)(!r.source||!r.target)&&t.push("Edge must have source and target"),r.source&&!e.has(r.source)&&t.push(`Edge source node not found: ${r.source}`),r.target&&!e.has(r.target)&&t.push(`Edge target node not found: ${r.target}`);return{valid:t.length===0,errors:t}}const za={fill:"#000000",fontSize:12,fontWeight:"normal",fontFamily:"sans-serif",textAlign:"center",textBaseline:"middle",backgroundFill:"#ffffff",backgroundRadius:0,visible:!0,offset:[0,0]},Ct={label:{...za}},Et={label:{...za}},Kd={node:{...Ct},edge:{...Et}};function _d({manager:A,currentData:t,emit:e}){const r=Q.ref(!1),n=Q.ref("node"),i=Q.ref({node:{...Ct},edge:{...Et}});function a(){r.value=!r.value}function s(){r.value=!1}function o(v){n.value=v}function l(v){return{fill:"labelFill",fontSize:"labelFontSize",fontWeight:"labelFontWeight",fontFamily:"labelFontFamily",textAlign:"labelTextAlign",textBaseline:"labelTextBaseline",backgroundFill:"labelBackgroundFill",backgroundRadius:"labelBackgroundRadius"}[v]||null}async function u(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const y={};if(w.label){const E=w.label;E.fill!==void 0&&(y.labelFill=E.fill),E.fontSize!==void 0&&(y.labelFontSize=E.fontSize),E.fontWeight!==void 0&&(y.labelFontWeight=E.fontWeight),E.fontFamily!==void 0&&(y.labelFontFamily=E.fontFamily),E.textAlign!==void 0&&(y.labelTextAlign=E.textAlign),E.textBaseline!==void 0&&(y.labelTextBaseline=E.textBaseline),E.backgroundFill!==void 0&&(y.labelBackgroundFill=E.backgroundFill),E.backgroundRadius!==void 0&&(y.labelBackgroundRadius=E.backgroundRadius)}if(v==="node"){const E=p.getNodeData();if(E&&E.length>0){const F=E.map(x=>{const T=x.style||{};return A.value.updateNode(x.id,{style:{...T,...y}})});await Promise.all(F)}t.value?.points&&t.value.points.forEach(F=>{F.style||(F.style={}),y.labelFill!==void 0&&(F.style.labelFill=y.labelFill),y.labelFontSize!==void 0&&(F.style.labelFontSize=y.labelFontSize),y.labelFontWeight!==void 0&&(F.style.labelFontWeight=y.labelFontWeight),y.labelFontFamily!==void 0&&(F.style.labelFontFamily=y.labelFontFamily),y.labelTextAlign!==void 0&&(F.style.labelTextAlign=y.labelTextAlign),y.labelTextBaseline!==void 0&&(F.style.labelTextBaseline=y.labelTextBaseline),y.labelBackgroundFill!==void 0&&(F.style.labelBackgroundFill=y.labelBackgroundFill),y.labelBackgroundRadius!==void 0&&(F.style.labelBackgroundRadius=y.labelBackgroundRadius)})}else{const E=p.getEdgeData();if(E&&E.length>0){const F=E.map(x=>{const T=x.style||{};return A.value.updateEdge(x.id,{style:{...T,...y}})});await Promise.all(F)}t.value?.canals&&t.value.canals.forEach(F=>{F.style||(F.style={}),y.labelFill!==void 0&&(F.style.labelFill=y.labelFill),y.labelFontSize!==void 0&&(F.style.labelFontSize=y.labelFontSize),y.labelFontWeight!==void 0&&(F.style.labelFontWeight=y.labelFontWeight),y.labelFontFamily!==void 0&&(F.style.labelFontFamily=y.labelFontFamily),y.labelTextAlign!==void 0&&(F.style.labelTextAlign=y.labelTextAlign),y.labelTextBaseline!==void 0&&(F.style.labelTextBaseline=y.labelTextBaseline),y.labelBackgroundFill!==void 0&&(F.style.labelBackgroundFill=y.labelBackgroundFill),y.labelBackgroundRadius!==void 0&&(F.style.labelBackgroundRadius=y.labelBackgroundRadius)})}e("dataChange",A.value.getData())}const c=Ga((...v)=>{const w=v[0],p=v[1],y={};p.labelFill!==void 0&&(y.fill=p.labelFill),p.labelFontSize!==void 0&&(y.fontSize=p.labelFontSize),p.labelFontWeight!==void 0&&(y.fontWeight=p.labelFontWeight),p.labelFontFamily!==void 0&&(y.fontFamily=p.labelFontFamily),p.labelTextAlign!==void 0&&(y.textAlign=p.labelTextAlign),p.labelTextBaseline!==void 0&&(y.textBaseline=p.labelTextBaseline),p.labelBackgroundFill!==void 0&&(y.backgroundFill=p.labelBackgroundFill),p.labelBackgroundRadius!==void 0&&(y.backgroundRadius=p.labelBackgroundRadius),u(w,{label:y})},100);async function f(v){if(!A.value||!A.value.getGraph())return;const{type:p,path:y,value:E}=v,F=y.split(".");if(F[0]==="label"){const T=F[1];p==="node"?(i.value.node||(i.value.node={...Ct}),i.value.node.label||(i.value.node.label={...Ct.label}),i.value.node.label[T]=E):(i.value.edge||(i.value.edge={...Et}),i.value.edge.label||(i.value.edge.label={...Et.label}),i.value.edge.label[T]=E)}const x={};if(y.startsWith("label.")){const T=y.replace("label.",""),B=l(T);B&&(x[B]=E)}c(p,x)}async function d(v){const{type:w}=v;(w==="node"||w===null)&&(i.value.node={...Ct},await u("node",i.value.node)),(w==="edge"||w===null)&&(i.value.edge={...Et},await u("edge",i.value.edge))}async function h(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const E=p.getNodeData(v)?.style||{};if(await A.value.updateNode(v,{style:{...E,...w}}),t.value?.points){const F=t.value.points.find(x=>x.id===v);F&&(F.style||(F.style={}),Object.assign(F.style,w))}e("dataChange",A.value.getData())}async function g(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const E=p.getEdgeData(v)?.style||{};if(await A.value.updateEdge(v,{style:{...E,...w}}),t.value?.canals){const F=t.value.canals.find(x=>x.id===v);F&&(F.style||(F.style={}),Object.assign(F.style,w))}e("dataChange",A.value.getData())}return{configPanelVisible:r,configActiveTab:n,globalConfig:i,toggleConfigPanel:a,closeConfigPanel:s,handleConfigTabChange:o,handleConfigChange:f,handleConfigReset:d,updateNodeStyle:h,updateEdgeStyle:g}}function gl(A){const t=[],e=[];A.enableZoom!==!1&&t.push({type:"zoom-canvas",sensitivity:1,minZoom:.1,maxZoom:5}),A.enableDrag!==!1&&t.push({type:"drag-element",key:"drag-element",enable:n=>{const i=n?.target?.id;return!(typeof i=="string"&&i.startsWith("buffer-polygon-"))}});let r=!1;if(typeof document<"u"){const n=a=>{a.key==="Shift"&&(r=!0)},i=a=>{a.key==="Shift"&&(r=!1)};document.addEventListener("keydown",n),document.addEventListener("keyup",i),e.push(()=>{document.removeEventListener("keydown",n),document.removeEventListener("keyup",i)})}return t.push({type:"drag-canvas",key:"drag-canvas",enable:n=>r?!1:n.targetType==="canvas"}),t.push({type:"click-select",multiple:!0}),A.enableBrush&&t.push({type:"brush-select",trigger:"shift"}),t.push({type:"hover-activate"}),t.push({type:"collapse-expand",key:"collapse-expand",trigger:"dblclick"}),A.fixElementSize!==!1&&t.push({key:"fix-element-size",type:"fix-element-size",enable:!0,node:{shape:"label"}}),{behaviors:t,cleanup:()=>{e.forEach(n=>n()),e.length=0}}}function zt(A){"@babel/helpers - typeof";return zt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zt(A)}function Gd(A,t){if(zt(A)!="object"||!A)return A;var e=A[Symbol.toPrimitive];if(e!==void 0){var r=e.call(A,t);if(zt(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(A)}function Bl(A){var t=Gd(A,"string");return zt(t)=="symbol"?t:t+""}function nA(A,t,e){return(t=Bl(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}function vl(A,t){var e=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(A,n).enumerable})),e.push.apply(e,r)}return e}function iA(A){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?vl(Object(e),!0).forEach(function(r){nA(A,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):vl(Object(e)).forEach(function(r){Object.defineProperty(A,r,Object.getOwnPropertyDescriptor(e,r))})}return A}function K(A,t){if(!(A instanceof t))throw new TypeError("Cannot call a class as a function")}function pl(A,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(A,Bl(r.key),r)}}function _(A,t,e){return t&&pl(A.prototype,t),e&&pl(A,e),Object.defineProperty(A,"prototype",{writable:!1}),A}function _n(A,t){(t==null||t>A.length)&&(t=A.length);for(var e=0,r=Array(t);e<t;e++)r[e]=A[e];return r}function Vd(A){if(Array.isArray(A))return _n(A)}function zd(A){if(typeof Symbol<"u"&&A[Symbol.iterator]!=null||A["@@iterator"]!=null)return Array.from(A)}function Wa(A,t){if(A){if(typeof A=="string")return _n(A,t);var e={}.toString.call(A).slice(8,-1);return e==="Object"&&A.constructor&&(e=A.constructor.name),e==="Map"||e==="Set"?Array.from(A):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?_n(A,t):void 0}}function Wd(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
1
|
+
(function(V,Q){typeof exports=="object"&&typeof module<"u"?Q(exports,require("vue"),require("@antv/g6")):typeof define=="function"&&define.amd?define(["exports","vue","@antv/g6"],Q):(V=typeof globalThis<"u"?globalThis:V||self,Q(V.IrrGh={},V.Vue,V.G6))})(this,(function(V,Q,We){"use strict";function bA(A){const t=A.style;return{x:t?.x??0,y:t?.y??0}}function pe(A,t,e){A.style||(A.style={}),A.style.x=t,A.style.y=e}function nl(A,t){if(A.length<2)return;const e=A.map(n=>bA(n));let r;if(t==="top")r=Math.min(...e.map(n=>n.y));else if(t==="bottom")r=Math.max(...e.map(n=>n.y));else{const n=Math.min(...e.map(a=>a.y)),i=Math.max(...e.map(a=>a.y));r=(n+i)/2}for(const n of A){const i=bA(n);pe(n,i.x,r)}}function il(A,t){if(A.length<2)return;const e=A.map(n=>bA(n));let r;if(t==="left")r=Math.min(...e.map(n=>n.x));else if(t==="right")r=Math.max(...e.map(n=>n.x));else{const n=Math.min(...e.map(a=>a.x)),i=Math.max(...e.map(a=>a.x));r=(n+i)/2}for(const n of A){const i=bA(n);pe(n,r,i.y)}}function al(A,t){if(A.length<3)return;const e=[...A].sort((s,o)=>bA(s).x-bA(o).x),r=bA(e[0]),i=bA(e[e.length-1]).x-r.x,a=t??i/(A.length-1);for(let s=1;s<e.length-1;s++){const o=e[s],l=bA(o);pe(o,r.x+a*s,l.y)}}function sl(A,t){if(A.length<3)return;const e=[...A].sort((s,o)=>bA(s).y-bA(o).y),r=bA(e[0]),i=bA(e[e.length-1]).y-r.y,a=t??i/(A.length-1);for(let s=1;s<e.length-1;s++){const o=e[s],l=bA(o);pe(o,l.x,r.y+a*s)}}function Kn(A,t,e){for(const r of A){const n=bA(r);pe(r,n.x+t,n.y+e)}}function Vt(A){if(A.length===0)return{minX:0,minY:0,maxX:0,maxY:0,width:0,height:0,centerX:0,centerY:0};const t=A.map(a=>bA(a)),e=Math.min(...t.map(a=>a.x)),r=Math.min(...t.map(a=>a.y)),n=Math.max(...t.map(a=>a.x)),i=Math.max(...t.map(a=>a.y));return{minX:e,minY:r,maxX:n,maxY:i,width:n-e,height:i-r,centerX:(e+n)/2,centerY:(r+i)/2}}function Ka(A,t,e){const r=Vt(A),n=t-r.centerX,i=e-r.centerY;Kn(A,n,i)}function _a(A,t){return(A.nodes||[]).filter(e=>e.businessData?.canalId===t)}function ol(A,t){const e=A.edges||[],r=A.nodes||[],n=e.filter(a=>a.target===t).map(a=>a.source),i=e.filter(a=>a.source===t).map(a=>a.target);return{sources:r.filter(a=>n.includes(a.id)),targets:r.filter(a=>i.includes(a.id))}}function ll(A,t,e){if(A.length<2)return;const r=[...A].sort((i,a)=>{const s=bA(i),o=bA(a);return t==="horizontal"?s.x-o.x:s.y-o.y}),n=bA(r[0]);for(let i=1;i<r.length;i++){const a=r[i],s=bA(a);t==="horizontal"?pe(a,n.x+e*i,s.y):pe(a,s.x,n.y+e*i)}}function ul(A,t){if(A.length===0)return;const e=Vt(A);for(const r of A){const n=bA(r);if(t==="horizontal"){const i=e.centerX*2-n.x;pe(r,i,n.y)}else{const i=e.centerY*2-n.y;pe(r,n.x,i)}}}function cl(A,t=!0){if(A.length===0)return;const e=Vt(A);for(const r of A){const n=bA(r),i=n.x-e.centerX,a=n.y-e.centerY;let s,o;t?(s=e.centerX+a,o=e.centerY-i):(s=e.centerX-a,o=e.centerY+i),pe(r,s,o)}}function xd(A,t,e){const r=t/2,n=e/2;Ka(A,r,n)}function bd(A,t){return _a(A,t)}function fl(A){return A==="horizontal"?"x":"y"}function Id(A){return A==="horizontal"?"y":"x"}function Sd(A,t){if(A.length===0)return{start:0,end:0,center:0};const e=Vt(A);return fl(t)==="x"?{start:e.minX,end:e.maxX,center:e.centerX}:{start:e.minY,end:e.maxY,center:e.centerY}}function Td(A,t,e,r){if(t.length===0)return;const n=Vt(t),i=e-n.centerX,a=r-n.centerY;Kn(A,i,a)}const Md=Object.freeze(Object.defineProperty({__proto__:null,adjustNodesToCenter:Td,alignNodesHorizontally:nl,alignNodesVertically:il,autoAdjustSpacing:ll,centerNodesToCanvas:xd,centerNodesToPosition:Ka,distributeNodesHorizontally:al,distributeNodesVertically:sl,flipNodes:ul,getConnectedNodes:ol,getCrossAxis:Id,getMainAxis:fl,getMainCanalExtent:Sd,getMainCanalNodes:bd,getNodePosition:bA,getNodesBoundingBox:Vt,getNodesByCanalId:_a,moveNodes:Kn,rotateNodes90:cl,setNodePosition:pe},Symbol.toStringTag,{value:"Module"}));function hl(A){return JSON.stringify(A,null,2)}function dl(A){try{const t=JSON.parse(A);return{nodes:t.nodes||[],edges:t.edges||[],combos:t.combos||[]}}catch(t){return console.error("Failed to parse graph data:",t),{nodes:[],edges:[],combos:[]}}}function Hd(A,t="irrigation-graph.json"){const e=hl(A),r=new Blob([e],{type:"application/json"}),n=URL.createObjectURL(r),i=document.createElement("a");i.href=n,i.download=t,i.click(),URL.revokeObjectURL(n)}function kd(A){return new Promise((t,e)=>{const r=new FileReader;r.onload=n=>{try{const i=n.target?.result,a=dl(i);t(a)}catch(i){e(i)}},r.onerror=()=>e(new Error("Failed to read file")),r.readAsText(A)})}async function Ld(A){try{return await navigator.clipboard.writeText(A),!0}catch(t){return console.error("Failed to copy to clipboard:",t),!1}}function Nd(A="node"){return`${A}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function Dd(A){return JSON.parse(JSON.stringify(A))}function Ga(A,t){let e=null;return(...r)=>{e&&clearTimeout(e),e=setTimeout(()=>{A(...r)},t)}}function Pd(A,t){let e=0;return(...r)=>{const n=Date.now();n-e>=t&&(A(...r),e=n)}}function Va(A,t,e,r){return Math.sqrt(Math.pow(e-A,2)+Math.pow(r-t,2))}function Od(A,t,e,r,n,i){const a=n-e,s=i-r,o=Math.sqrt(a*a+s*s);if(o===0)return Va(A,t,e,r);const l=Math.max(0,Math.min(1,((A-e)*a+(t-r)*s)/(o*o))),u=e+l*a,c=r+l*s;return Va(A,t,u,c)}function Rd(A){const t=[],e=new Set;if(!A.nodes||!Array.isArray(A.nodes))t.push("nodes must be an array");else for(const r of A.nodes)r.id?e.has(r.id)?t.push(`Duplicate node id: ${r.id}`):e.add(r.id):t.push("Node must have an id");if(A.edges&&Array.isArray(A.edges))for(const r of A.edges)(!r.source||!r.target)&&t.push("Edge must have source and target"),r.source&&!e.has(r.source)&&t.push(`Edge source node not found: ${r.source}`),r.target&&!e.has(r.target)&&t.push(`Edge target node not found: ${r.target}`);return{valid:t.length===0,errors:t}}const za={fill:"#000000",fontSize:12,fontWeight:"normal",fontFamily:"sans-serif",textAlign:"center",textBaseline:"middle",backgroundFill:"#ffffff",backgroundRadius:0,visible:!0,offset:[0,0]},Ct={label:{...za}},Et={label:{...za}},Kd={node:{...Ct},edge:{...Et}};function _d({manager:A,currentData:t,emit:e}){const r=Q.ref(!1),n=Q.ref("node"),i=Q.ref({node:{...Ct},edge:{...Et}});function a(){r.value=!r.value}function s(){r.value=!1}function o(v){n.value=v}function l(v){return{fill:"labelFill",fontSize:"labelFontSize",fontWeight:"labelFontWeight",fontFamily:"labelFontFamily",textAlign:"labelTextAlign",textBaseline:"labelTextBaseline",backgroundFill:"labelBackgroundFill",backgroundRadius:"labelBackgroundRadius"}[v]||null}async function u(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const y={};if(w.label){const E=w.label;E.fill!==void 0&&(y.labelFill=E.fill),E.fontSize!==void 0&&(y.labelFontSize=E.fontSize),E.fontWeight!==void 0&&(y.labelFontWeight=E.fontWeight),E.fontFamily!==void 0&&(y.labelFontFamily=E.fontFamily),E.textAlign!==void 0&&(y.labelTextAlign=E.textAlign),E.textBaseline!==void 0&&(y.labelTextBaseline=E.textBaseline),E.backgroundFill!==void 0&&(y.labelBackgroundFill=E.backgroundFill),E.backgroundRadius!==void 0&&(y.labelBackgroundRadius=E.backgroundRadius)}if(v==="node"){const E=p.getNodeData();if(E&&E.length>0){const F=E.map(x=>{const T=x.style||{};return A.value.updateNode(x.id,{style:{...T,...y}})});await Promise.all(F)}t.value?.points&&t.value.points.forEach(F=>{F.style||(F.style={}),y.labelFill!==void 0&&(F.style.labelFill=y.labelFill),y.labelFontSize!==void 0&&(F.style.labelFontSize=y.labelFontSize),y.labelFontWeight!==void 0&&(F.style.labelFontWeight=y.labelFontWeight),y.labelFontFamily!==void 0&&(F.style.labelFontFamily=y.labelFontFamily),y.labelTextAlign!==void 0&&(F.style.labelTextAlign=y.labelTextAlign),y.labelTextBaseline!==void 0&&(F.style.labelTextBaseline=y.labelTextBaseline),y.labelBackgroundFill!==void 0&&(F.style.labelBackgroundFill=y.labelBackgroundFill),y.labelBackgroundRadius!==void 0&&(F.style.labelBackgroundRadius=y.labelBackgroundRadius)})}else{const E=p.getEdgeData();if(E&&E.length>0){const F=E.map(x=>{const T=x.style||{};return A.value.updateEdge(x.id,{style:{...T,...y}})});await Promise.all(F)}t.value?.canals&&t.value.canals.forEach(F=>{F.style||(F.style={}),y.labelFill!==void 0&&(F.style.labelFill=y.labelFill),y.labelFontSize!==void 0&&(F.style.labelFontSize=y.labelFontSize),y.labelFontWeight!==void 0&&(F.style.labelFontWeight=y.labelFontWeight),y.labelFontFamily!==void 0&&(F.style.labelFontFamily=y.labelFontFamily),y.labelTextAlign!==void 0&&(F.style.labelTextAlign=y.labelTextAlign),y.labelTextBaseline!==void 0&&(F.style.labelTextBaseline=y.labelTextBaseline),y.labelBackgroundFill!==void 0&&(F.style.labelBackgroundFill=y.labelBackgroundFill),y.labelBackgroundRadius!==void 0&&(F.style.labelBackgroundRadius=y.labelBackgroundRadius)})}e("dataChange",A.value.getData())}const c=Ga((...v)=>{const w=v[0],p=v[1],y={};p.labelFill!==void 0&&(y.fill=p.labelFill),p.labelFontSize!==void 0&&(y.fontSize=p.labelFontSize),p.labelFontWeight!==void 0&&(y.fontWeight=p.labelFontWeight),p.labelFontFamily!==void 0&&(y.fontFamily=p.labelFontFamily),p.labelTextAlign!==void 0&&(y.textAlign=p.labelTextAlign),p.labelTextBaseline!==void 0&&(y.textBaseline=p.labelTextBaseline),p.labelBackgroundFill!==void 0&&(y.backgroundFill=p.labelBackgroundFill),p.labelBackgroundRadius!==void 0&&(y.backgroundRadius=p.labelBackgroundRadius),u(w,{label:y})},100);async function f(v){if(!A.value||!A.value.getGraph())return;const{type:p,path:y,value:E}=v,F=y.split(".");if(F[0]==="label"){const T=F[1];p==="node"?(i.value.node||(i.value.node={...Ct}),i.value.node.label||(i.value.node.label={...Ct.label}),i.value.node.label[T]=E):(i.value.edge||(i.value.edge={...Et}),i.value.edge.label||(i.value.edge.label={...Et.label}),i.value.edge.label[T]=E)}const x={};if(y.startsWith("label.")){const T=y.replace("label.",""),B=l(T);B&&(x[B]=E)}c(p,x)}async function d(v){const{type:w}=v;(w==="node"||w===null)&&(i.value.node={...Ct},await u("node",i.value.node)),(w==="edge"||w===null)&&(i.value.edge={...Et},await u("edge",i.value.edge))}async function h(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const E=p.getNodeData(v)?.style||{};if(await A.value.updateNode(v,{style:{...E,...w}}),t.value?.points){const F=t.value.points.find(x=>x.id===v);F&&(F.style||(F.style={}),Object.assign(F.style,w))}e("dataChange",A.value.getData())}async function g(v,w){if(!A.value)return;const p=A.value.getGraph();if(!p)return;const E=p.getEdgeData(v)?.style||{};if(await A.value.updateEdge(v,{style:{...E,...w}}),t.value?.canals){const F=t.value.canals.find(x=>x.id===v);F&&(F.style||(F.style={}),Object.assign(F.style,w))}e("dataChange",A.value.getData())}return{configPanelVisible:r,configActiveTab:n,globalConfig:i,toggleConfigPanel:a,closeConfigPanel:s,handleConfigTabChange:o,handleConfigChange:f,handleConfigReset:d,updateNodeStyle:h,updateEdgeStyle:g}}function gl(A){const t=[],e=[];A.enableZoom!==!1&&t.push({type:"zoom-canvas",sensitivity:1,minZoom:.1,maxZoom:5}),A.enableDrag!==!1&&t.push({type:"drag-element",key:"drag-element",enable:n=>{const i=n?.target?.id;return!(typeof i=="string"&&i.startsWith("buffer-polygon-"))}});let r=!1;if(typeof document<"u"){const n=a=>{a.key==="Shift"&&(r=!0)},i=a=>{a.key==="Shift"&&(r=!1)};document.addEventListener("keydown",n),document.addEventListener("keyup",i),e.push(()=>{document.removeEventListener("keydown",n),document.removeEventListener("keyup",i)})}return t.push({type:"drag-canvas",key:"drag-canvas",enable:n=>r?!1:n.targetType==="canvas"}),t.push({type:"click-select",multiple:!0}),A.enableBrush&&t.push({type:"brush-select",trigger:"shift"}),t.push({type:"hover-activate"}),t.push({type:"collapse-expand",key:"collapse-expand",trigger:"dblclick"}),A.fixElementSize!==!1&&t.push({key:"fix-element-size",type:"fix-element-size",enable:!0,node:{shape:"label"},edge:{shape:"label"}}),{behaviors:t,cleanup:()=>{e.forEach(n=>n()),e.length=0}}}function zt(A){"@babel/helpers - typeof";return zt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zt(A)}function Gd(A,t){if(zt(A)!="object"||!A)return A;var e=A[Symbol.toPrimitive];if(e!==void 0){var r=e.call(A,t);if(zt(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(A)}function Bl(A){var t=Gd(A,"string");return zt(t)=="symbol"?t:t+""}function nA(A,t,e){return(t=Bl(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}function vl(A,t){var e=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(A,n).enumerable})),e.push.apply(e,r)}return e}function iA(A){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?vl(Object(e),!0).forEach(function(r){nA(A,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):vl(Object(e)).forEach(function(r){Object.defineProperty(A,r,Object.getOwnPropertyDescriptor(e,r))})}return A}function K(A,t){if(!(A instanceof t))throw new TypeError("Cannot call a class as a function")}function pl(A,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(A,Bl(r.key),r)}}function _(A,t,e){return t&&pl(A.prototype,t),e&&pl(A,e),Object.defineProperty(A,"prototype",{writable:!1}),A}function _n(A,t){(t==null||t>A.length)&&(t=A.length);for(var e=0,r=Array(t);e<t;e++)r[e]=A[e];return r}function Vd(A){if(Array.isArray(A))return _n(A)}function zd(A){if(typeof Symbol<"u"&&A[Symbol.iterator]!=null||A["@@iterator"]!=null)return Array.from(A)}function Wa(A,t){if(A){if(typeof A=="string")return _n(A,t);var e={}.toString.call(A).slice(8,-1);return e==="Object"&&A.constructor&&(e=A.constructor.name),e==="Map"||e==="Set"?Array.from(A):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?_n(A,t):void 0}}function Wd(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oA(A){return Vd(A)||zd(A)||Wa(A)||Wd()}function Br(A){return Br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Br(A)}function ml(){try{var A=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ml=function(){return!!A})()}function Xd(A){if(A===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}function Yd(A,t){if(t&&(zt(t)=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Xd(A)}function uA(A,t,e){return t=Br(t),Yd(A,ml()?Reflect.construct(t,e||[],Br(A).constructor):t.apply(A,e))}function Xa(A,t){return Xa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},Xa(A,t)}function cA(A,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(t&&t.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),Object.defineProperty(A,"prototype",{writable:!1}),t&&Xa(A,t)}function Jd(A){if(Array.isArray(A))return A}function $d(A,t){var e=A==null?null:typeof Symbol<"u"&&A[Symbol.iterator]||A["@@iterator"];if(e!=null){var r,n,i,a,s=[],o=!0,l=!1;try{if(i=(e=e.call(A)).next,t===0){if(Object(e)!==e)return;o=!1}else for(;!(o=(r=i.call(e)).done)&&(s.push(r.value),s.length!==t);o=!0);}catch(u){l=!0,n=u}finally{try{if(!o&&e.return!=null&&(a=e.return(),Object(a)!==a))return}finally{if(l)throw n}}return s}}function Zd(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
3
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vA(A,t){return Jd(A)||$d(A,t)||Wa(A,t)||Zd()}function qd(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var Ya={exports:{}},yl;function jd(){return yl||(yl=1,(function(A){var t=Object.prototype.hasOwnProperty,e="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(e=!1));function n(o,l,u){this.fn=o,this.context=l,this.once=u||!1}function i(o,l,u,c,f){if(typeof u!="function")throw new TypeError("The listener must be a function");var d=new n(u,c||o,f),h=e?e+l:l;return o._events[h]?o._events[h].fn?o._events[h]=[o._events[h],d]:o._events[h].push(d):(o._events[h]=d,o._eventsCount++),o}function a(o,l){--o._eventsCount===0?o._events=new r:delete o._events[l]}function s(){this._events=new r,this._eventsCount=0}s.prototype.eventNames=function(){var l=[],u,c;if(this._eventsCount===0)return l;for(c in u=this._events)t.call(u,c)&&l.push(e?c.slice(1):c);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(u)):l},s.prototype.listeners=function(l){var u=e?e+l:l,c=this._events[u];if(!c)return[];if(c.fn)return[c.fn];for(var f=0,d=c.length,h=new Array(d);f<d;f++)h[f]=c[f].fn;return h},s.prototype.listenerCount=function(l){var u=e?e+l:l,c=this._events[u];return c?c.fn?1:c.length:0},s.prototype.emit=function(l,u,c,f,d,h){var g=e?e+l:l;if(!this._events[g])return!1;var v=this._events[g],w=arguments.length,p,y;if(v.fn){switch(v.once&&this.removeListener(l,v.fn,void 0,!0),w){case 1:return v.fn.call(v.context),!0;case 2:return v.fn.call(v.context,u),!0;case 3:return v.fn.call(v.context,u,c),!0;case 4:return v.fn.call(v.context,u,c,f),!0;case 5:return v.fn.call(v.context,u,c,f,d),!0;case 6:return v.fn.call(v.context,u,c,f,d,h),!0}for(y=1,p=new Array(w-1);y<w;y++)p[y-1]=arguments[y];v.fn.apply(v.context,p)}else{var E=v.length,F;for(y=0;y<E;y++)switch(v[y].once&&this.removeListener(l,v[y].fn,void 0,!0),w){case 1:v[y].fn.call(v[y].context);break;case 2:v[y].fn.call(v[y].context,u);break;case 3:v[y].fn.call(v[y].context,u,c);break;case 4:v[y].fn.call(v[y].context,u,c,f);break;default:if(!p)for(F=1,p=new Array(w-1);F<w;F++)p[F-1]=arguments[F];v[y].fn.apply(v[y].context,p)}}return!0},s.prototype.on=function(l,u,c){return i(this,l,u,c,!1)},s.prototype.once=function(l,u,c){return i(this,l,u,c,!0)},s.prototype.removeListener=function(l,u,c,f){var d=e?e+l:l;if(!this._events[d])return this;if(!u)return a(this,d),this;var h=this._events[d];if(h.fn)h.fn===u&&(!f||h.once)&&(!c||h.context===c)&&a(this,d);else{for(var g=0,v=[],w=h.length;g<w;g++)(h[g].fn!==u||f&&!h[g].once||c&&h[g].context!==c)&&v.push(h[g]);v.length?this._events[d]=v.length===1?v[0]:v:a(this,d)}return this},s.prototype.removeAllListeners=function(l){var u;return l?(u=e?e+l:l,this._events[u]&&a(this,u)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=e,s.EventEmitter=s,A.exports=s})(Ya)),Ya.exports}var Ag=jd();const wl=qd(Ag);var FA=1e-6,GA=typeof Float32Array<"u"?Float32Array:Array,eg="zyx";function Cl(){var A=new GA(9);return GA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[5]=0,A[6]=0,A[7]=0),A[0]=1,A[4]=1,A[8]=1,A}function tg(A,t){return A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=t[4],A[4]=t[5],A[5]=t[6],A[6]=t[8],A[7]=t[9],A[8]=t[10],A}function rg(A,t,e,r,n,i,a,s,o){var l=new GA(9);return l[0]=A,l[1]=t,l[2]=e,l[3]=r,l[4]=n,l[5]=i,l[6]=a,l[7]=s,l[8]=o,l}function TA(){var A=new GA(16);return GA!=Float32Array&&(A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=0,A[12]=0,A[13]=0,A[14]=0),A[0]=1,A[5]=1,A[10]=1,A[15]=1,A}function El(A){var t=new GA(16);return t[0]=A[0],t[1]=A[1],t[2]=A[2],t[3]=A[3],t[4]=A[4],t[5]=A[5],t[6]=A[6],t[7]=A[7],t[8]=A[8],t[9]=A[9],t[10]=A[10],t[11]=A[11],t[12]=A[12],t[13]=A[13],t[14]=A[14],t[15]=A[15],t}function Gn(A,t){return A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=t[3],A[4]=t[4],A[5]=t[5],A[6]=t[6],A[7]=t[7],A[8]=t[8],A[9]=t[9],A[10]=t[10],A[11]=t[11],A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15],A}function ng(A,t,e,r,n,i,a,s,o,l,u,c,f,d,h,g){var v=new GA(16);return v[0]=A,v[1]=t,v[2]=e,v[3]=r,v[4]=n,v[5]=i,v[6]=a,v[7]=s,v[8]=o,v[9]=l,v[10]=u,v[11]=c,v[12]=f,v[13]=d,v[14]=h,v[15]=g,v}function Ja(A,t,e,r,n,i,a,s,o,l,u,c,f,d,h,g,v){return A[0]=t,A[1]=e,A[2]=r,A[3]=n,A[4]=i,A[5]=a,A[6]=s,A[7]=o,A[8]=l,A[9]=u,A[10]=c,A[11]=f,A[12]=d,A[13]=h,A[14]=g,A[15]=v,A}function Qt(A){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ql(A,t){if(A===t){var e=t[1],r=t[2],n=t[3],i=t[6],a=t[7],s=t[11];A[1]=t[4],A[2]=t[8],A[3]=t[12],A[4]=e,A[6]=t[9],A[7]=t[13],A[8]=r,A[9]=i,A[11]=t[14],A[12]=n,A[13]=a,A[14]=s}else A[0]=t[0],A[1]=t[4],A[2]=t[8],A[3]=t[12],A[4]=t[1],A[5]=t[5],A[6]=t[9],A[7]=t[13],A[8]=t[2],A[9]=t[6],A[10]=t[10],A[11]=t[14],A[12]=t[3],A[13]=t[7],A[14]=t[11],A[15]=t[15];return A}function ot(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],s=t[5],o=t[6],l=t[7],u=t[8],c=t[9],f=t[10],d=t[11],h=t[12],g=t[13],v=t[14],w=t[15],p=e*s-r*a,y=e*o-n*a,E=e*l-i*a,F=r*o-n*s,x=r*l-i*s,T=n*l-i*o,B=u*g-c*h,m=u*v-f*h,C=u*w-d*h,S=c*v-f*g,U=c*w-d*g,I=f*w-d*v,H=p*I-y*U+E*S+F*C-x*m+T*B;return H?(H=1/H,A[0]=(s*I-o*U+l*S)*H,A[1]=(n*U-r*I-i*S)*H,A[2]=(g*T-v*x+w*F)*H,A[3]=(f*x-c*T-d*F)*H,A[4]=(o*C-a*I-l*m)*H,A[5]=(e*I-n*C+i*m)*H,A[6]=(v*E-h*T-w*y)*H,A[7]=(u*T-f*E+d*y)*H,A[8]=(a*U-s*C+l*B)*H,A[9]=(r*C-e*U-i*B)*H,A[10]=(h*x-g*E+w*p)*H,A[11]=(c*E-u*x-d*p)*H,A[12]=(s*m-a*S-o*B)*H,A[13]=(e*S-r*m+n*B)*H,A[14]=(g*y-h*F-v*p)*H,A[15]=(u*F-c*y+f*p)*H,A):null}function ig(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],s=t[5],o=t[6],l=t[7],u=t[8],c=t[9],f=t[10],d=t[11],h=t[12],g=t[13],v=t[14],w=t[15],p=e*s-r*a,y=e*o-n*a,E=e*l-i*a,F=r*o-n*s,x=r*l-i*s,T=n*l-i*o,B=u*g-c*h,m=u*v-f*h,C=u*w-d*h,S=c*v-f*g,U=c*w-d*g,I=f*w-d*v;return A[0]=s*I-o*U+l*S,A[1]=n*U-r*I-i*S,A[2]=g*T-v*x+w*F,A[3]=f*x-c*T-d*F,A[4]=o*C-a*I-l*m,A[5]=e*I-n*C+i*m,A[6]=v*E-h*T-w*y,A[7]=u*T-f*E+d*y,A[8]=a*U-s*C+l*B,A[9]=r*C-e*U-i*B,A[10]=h*x-g*E+w*p,A[11]=c*E-u*x-d*p,A[12]=s*m-a*S-o*B,A[13]=e*S-r*m+n*B,A[14]=g*y-h*F-v*p,A[15]=u*F-c*y+f*p,A}function Fl(A){var t=A[0],e=A[1],r=A[2],n=A[3],i=A[4],a=A[5],s=A[6],o=A[7],l=A[8],u=A[9],c=A[10],f=A[11],d=A[12],h=A[13],g=A[14],v=A[15],w=t*a-e*i,p=t*s-r*i,y=e*s-r*a,E=l*h-u*d,F=l*g-c*d,x=u*g-c*h,T=t*x-e*F+r*E,B=i*x-a*F+s*E,m=l*y-u*p+c*w,C=d*y-h*p+g*w;return o*T-n*B+v*m-f*C}function Xe(A,t,e){var r=t[0],n=t[1],i=t[2],a=t[3],s=t[4],o=t[5],l=t[6],u=t[7],c=t[8],f=t[9],d=t[10],h=t[11],g=t[12],v=t[13],w=t[14],p=t[15],y=e[0],E=e[1],F=e[2],x=e[3];return A[0]=y*r+E*s+F*c+x*g,A[1]=y*n+E*o+F*f+x*v,A[2]=y*i+E*l+F*d+x*w,A[3]=y*a+E*u+F*h+x*p,y=e[4],E=e[5],F=e[6],x=e[7],A[4]=y*r+E*s+F*c+x*g,A[5]=y*n+E*o+F*f+x*v,A[6]=y*i+E*l+F*d+x*w,A[7]=y*a+E*u+F*h+x*p,y=e[8],E=e[9],F=e[10],x=e[11],A[8]=y*r+E*s+F*c+x*g,A[9]=y*n+E*o+F*f+x*v,A[10]=y*i+E*l+F*d+x*w,A[11]=y*a+E*u+F*h+x*p,y=e[12],E=e[13],F=e[14],x=e[15],A[12]=y*r+E*s+F*c+x*g,A[13]=y*n+E*o+F*f+x*v,A[14]=y*i+E*l+F*d+x*w,A[15]=y*a+E*u+F*h+x*p,A}function vr(A,t,e){var r=e[0],n=e[1],i=e[2],a,s,o,l,u,c,f,d,h,g,v,w;return t===A?(A[12]=t[0]*r+t[4]*n+t[8]*i+t[12],A[13]=t[1]*r+t[5]*n+t[9]*i+t[13],A[14]=t[2]*r+t[6]*n+t[10]*i+t[14],A[15]=t[3]*r+t[7]*n+t[11]*i+t[15]):(a=t[0],s=t[1],o=t[2],l=t[3],u=t[4],c=t[5],f=t[6],d=t[7],h=t[8],g=t[9],v=t[10],w=t[11],A[0]=a,A[1]=s,A[2]=o,A[3]=l,A[4]=u,A[5]=c,A[6]=f,A[7]=d,A[8]=h,A[9]=g,A[10]=v,A[11]=w,A[12]=a*r+u*n+h*i+t[12],A[13]=s*r+c*n+g*i+t[13],A[14]=o*r+f*n+v*i+t[14],A[15]=l*r+d*n+w*i+t[15]),A}function Ul(A,t,e){var r=e[0],n=e[1],i=e[2];return A[0]=t[0]*r,A[1]=t[1]*r,A[2]=t[2]*r,A[3]=t[3]*r,A[4]=t[4]*n,A[5]=t[5]*n,A[6]=t[6]*n,A[7]=t[7]*n,A[8]=t[8]*i,A[9]=t[9]*i,A[10]=t[10]*i,A[11]=t[11]*i,A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15],A}function ag(A,t,e,r){var n=r[0],i=r[1],a=r[2],s=Math.sqrt(n*n+i*i+a*a),o,l,u,c,f,d,h,g,v,w,p,y,E,F,x,T,B,m,C,S,U,I,H,b;return s<FA?null:(s=1/s,n*=s,i*=s,a*=s,o=Math.sin(e),l=Math.cos(e),u=1-l,c=t[0],f=t[1],d=t[2],h=t[3],g=t[4],v=t[5],w=t[6],p=t[7],y=t[8],E=t[9],F=t[10],x=t[11],T=n*n*u+l,B=i*n*u+a*o,m=a*n*u-i*o,C=n*i*u-a*o,S=i*i*u+l,U=a*i*u+n*o,I=n*a*u+i*o,H=i*a*u-n*o,b=a*a*u+l,A[0]=c*T+g*B+y*m,A[1]=f*T+v*B+E*m,A[2]=d*T+w*B+F*m,A[3]=h*T+p*B+x*m,A[4]=c*C+g*S+y*U,A[5]=f*C+v*S+E*U,A[6]=d*C+w*S+F*U,A[7]=h*C+p*S+x*U,A[8]=c*I+g*H+y*b,A[9]=f*I+v*H+E*b,A[10]=d*I+w*H+F*b,A[11]=h*I+p*H+x*b,t!==A&&(A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15]),A)}function xl(A,t,e){var r=Math.sin(e),n=Math.cos(e),i=t[4],a=t[5],s=t[6],o=t[7],l=t[8],u=t[9],c=t[10],f=t[11];return t!==A&&(A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=t[3],A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15]),A[4]=i*n+l*r,A[5]=a*n+u*r,A[6]=s*n+c*r,A[7]=o*n+f*r,A[8]=l*n-i*r,A[9]=u*n-a*r,A[10]=c*n-s*r,A[11]=f*n-o*r,A}function bl(A,t,e){var r=Math.sin(e),n=Math.cos(e),i=t[0],a=t[1],s=t[2],o=t[3],l=t[8],u=t[9],c=t[10],f=t[11];return t!==A&&(A[4]=t[4],A[5]=t[5],A[6]=t[6],A[7]=t[7],A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15]),A[0]=i*n-l*r,A[1]=a*n-u*r,A[2]=s*n-c*r,A[3]=o*n-f*r,A[8]=i*r+l*n,A[9]=a*r+u*n,A[10]=s*r+c*n,A[11]=o*r+f*n,A}function sg(A,t,e){var r=Math.sin(e),n=Math.cos(e),i=t[0],a=t[1],s=t[2],o=t[3],l=t[4],u=t[5],c=t[6],f=t[7];return t!==A&&(A[8]=t[8],A[9]=t[9],A[10]=t[10],A[11]=t[11],A[12]=t[12],A[13]=t[13],A[14]=t[14],A[15]=t[15]),A[0]=i*n+l*r,A[1]=a*n+u*r,A[2]=s*n+c*r,A[3]=o*n+f*r,A[4]=l*n-i*r,A[5]=u*n-a*r,A[6]=c*n-s*r,A[7]=f*n-o*r,A}function Ft(A,t){return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=t[0],A[13]=t[1],A[14]=t[2],A[15]=1,A}function pr(A,t){return A[0]=t[0],A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=t[1],A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=t[2],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Il(A,t,e){var r=e[0],n=e[1],i=e[2],a=Math.sqrt(r*r+n*n+i*i),s,o,l;return a<FA?null:(a=1/a,r*=a,n*=a,i*=a,s=Math.sin(t),o=Math.cos(t),l=1-o,A[0]=r*r*l+o,A[1]=n*r*l+i*s,A[2]=i*r*l-n*s,A[3]=0,A[4]=r*n*l-i*s,A[5]=n*n*l+o,A[6]=i*n*l+r*s,A[7]=0,A[8]=r*i*l+n*s,A[9]=n*i*l-r*s,A[10]=i*i*l+o,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A)}function Sl(A,t){var e=Math.sin(t),r=Math.cos(t);return A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=r,A[6]=e,A[7]=0,A[8]=0,A[9]=-e,A[10]=r,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Tl(A,t){var e=Math.sin(t),r=Math.cos(t);return A[0]=r,A[1]=0,A[2]=-e,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=e,A[9]=0,A[10]=r,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function $a(A,t){var e=Math.sin(t),r=Math.cos(t);return A[0]=r,A[1]=e,A[2]=0,A[3]=0,A[4]=-e,A[5]=r,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function Ml(A,t,e){var r=t[0],n=t[1],i=t[2],a=t[3],s=r+r,o=n+n,l=i+i,u=r*s,c=r*o,f=r*l,d=n*o,h=n*l,g=i*l,v=a*s,w=a*o,p=a*l;return A[0]=1-(d+g),A[1]=c+p,A[2]=f-w,A[3]=0,A[4]=c-p,A[5]=1-(u+g),A[6]=h+v,A[7]=0,A[8]=f+w,A[9]=h-v,A[10]=1-(u+d),A[11]=0,A[12]=e[0],A[13]=e[1],A[14]=e[2],A[15]=1,A}function og(A,t){var e=new GA(3),r=-t[0],n=-t[1],i=-t[2],a=t[3],s=t[4],o=t[5],l=t[6],u=t[7],c=r*r+n*n+i*i+a*a;return c>0?(e[0]=(s*a+u*r+o*i-l*n)*2/c,e[1]=(o*a+u*n+l*r-s*i)*2/c,e[2]=(l*a+u*i+s*n-o*r)*2/c):(e[0]=(s*a+u*r+o*i-l*n)*2,e[1]=(o*a+u*n+l*r-s*i)*2,e[2]=(l*a+u*i+s*n-o*r)*2),Ml(A,t,e),A}function Vn(A,t){return A[0]=t[12],A[1]=t[13],A[2]=t[14],A}function mr(A,t){var e=t[0],r=t[1],n=t[2],i=t[4],a=t[5],s=t[6],o=t[8],l=t[9],u=t[10];return A[0]=Math.sqrt(e*e+r*r+n*n),A[1]=Math.sqrt(i*i+a*a+s*s),A[2]=Math.sqrt(o*o+l*l+u*u),A}function zn(A,t){var e=new GA(3);mr(e,t);var r=1/e[0],n=1/e[1],i=1/e[2],a=t[0]*r,s=t[1]*n,o=t[2]*i,l=t[4]*r,u=t[5]*n,c=t[6]*i,f=t[8]*r,d=t[9]*n,h=t[10]*i,g=a+u+h,v=0;return g>0?(v=Math.sqrt(g+1)*2,A[3]=.25*v,A[0]=(c-d)/v,A[1]=(f-o)/v,A[2]=(s-l)/v):a>u&&a>h?(v=Math.sqrt(1+a-u-h)*2,A[3]=(c-d)/v,A[0]=.25*v,A[1]=(s+l)/v,A[2]=(f+o)/v):u>h?(v=Math.sqrt(1+u-a-h)*2,A[3]=(f-o)/v,A[0]=(s+l)/v,A[1]=.25*v,A[2]=(c+d)/v):(v=Math.sqrt(1+h-a-u)*2,A[3]=(s-l)/v,A[0]=(f+o)/v,A[1]=(c+d)/v,A[2]=.25*v),A}function lg(A,t,e,r){t[0]=r[12],t[1]=r[13],t[2]=r[14];var n=r[0],i=r[1],a=r[2],s=r[4],o=r[5],l=r[6],u=r[8],c=r[9],f=r[10];e[0]=Math.sqrt(n*n+i*i+a*a),e[1]=Math.sqrt(s*s+o*o+l*l),e[2]=Math.sqrt(u*u+c*c+f*f);var d=1/e[0],h=1/e[1],g=1/e[2],v=n*d,w=i*h,p=a*g,y=s*d,E=o*h,F=l*g,x=u*d,T=c*h,B=f*g,m=v+E+B,C=0;return m>0?(C=Math.sqrt(m+1)*2,A[3]=.25*C,A[0]=(F-T)/C,A[1]=(x-p)/C,A[2]=(w-y)/C):v>E&&v>B?(C=Math.sqrt(1+v-E-B)*2,A[3]=(F-T)/C,A[0]=.25*C,A[1]=(w+y)/C,A[2]=(x+p)/C):E>B?(C=Math.sqrt(1+E-v-B)*2,A[3]=(x-p)/C,A[0]=(w+y)/C,A[1]=.25*C,A[2]=(F+T)/C):(C=Math.sqrt(1+B-v-E)*2,A[3]=(w-y)/C,A[0]=(x+p)/C,A[1]=(F+T)/C,A[2]=.25*C),A}function ug(A,t,e,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=n+n,l=i+i,u=a+a,c=n*o,f=n*l,d=n*u,h=i*l,g=i*u,v=a*u,w=s*o,p=s*l,y=s*u,E=r[0],F=r[1],x=r[2];return A[0]=(1-(h+v))*E,A[1]=(f+y)*E,A[2]=(d-p)*E,A[3]=0,A[4]=(f-y)*F,A[5]=(1-(c+v))*F,A[6]=(g+w)*F,A[7]=0,A[8]=(d+p)*x,A[9]=(g-w)*x,A[10]=(1-(c+h))*x,A[11]=0,A[12]=e[0],A[13]=e[1],A[14]=e[2],A[15]=1,A}function Wr(A,t,e,r,n){var i=t[0],a=t[1],s=t[2],o=t[3],l=i+i,u=a+a,c=s+s,f=i*l,d=i*u,h=i*c,g=a*u,v=a*c,w=s*c,p=o*l,y=o*u,E=o*c,F=r[0],x=r[1],T=r[2],B=n[0],m=n[1],C=n[2],S=(1-(g+w))*F,U=(d+E)*F,I=(h-y)*F,H=(d-E)*x,b=(1-(f+w))*x,k=(v+p)*x,M=(h+y)*T,L=(v-p)*T,N=(1-(f+g))*T;return A[0]=S,A[1]=U,A[2]=I,A[3]=0,A[4]=H,A[5]=b,A[6]=k,A[7]=0,A[8]=M,A[9]=L,A[10]=N,A[11]=0,A[12]=e[0]+B-(S*B+H*m+M*C),A[13]=e[1]+m-(U*B+b*m+L*C),A[14]=e[2]+C-(I*B+k*m+N*C),A[15]=1,A}function Za(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=e+e,s=r+r,o=n+n,l=e*a,u=r*a,c=r*s,f=n*a,d=n*s,h=n*o,g=i*a,v=i*s,w=i*o;return A[0]=1-c-h,A[1]=u+w,A[2]=f-v,A[3]=0,A[4]=u-w,A[5]=1-l-h,A[6]=d+g,A[7]=0,A[8]=f+v,A[9]=d-g,A[10]=1-l-c,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A}function cg(A,t,e,r,n,i,a){var s=1/(e-t),o=1/(n-r),l=1/(i-a);return A[0]=i*2*s,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=i*2*o,A[6]=0,A[7]=0,A[8]=(e+t)*s,A[9]=(n+r)*o,A[10]=(a+i)*l,A[11]=-1,A[12]=0,A[13]=0,A[14]=a*i*2*l,A[15]=0,A}function Hl(A,t,e,r,n){var i=1/Math.tan(t/2);if(A[0]=i/e,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=i,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,n!=null&&n!==1/0){var a=1/(r-n);A[10]=(n+r)*a,A[14]=2*n*r*a}else A[10]=-1,A[14]=-2*r;return A}var fg=Hl;function hg(A,t,e,r,n){var i=1/Math.tan(t/2);if(A[0]=i/e,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=i,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[11]=-1,A[12]=0,A[13]=0,A[15]=0,n!=null&&n!==1/0){var a=1/(r-n);A[10]=n*a,A[14]=n*r*a}else A[10]=-1,A[14]=-r;return A}function dg(A,t,e,r){var n=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),a=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),o=2/(a+s),l=2/(n+i);return A[0]=o,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=l,A[6]=0,A[7]=0,A[8]=-((a-s)*o*.5),A[9]=(n-i)*l*.5,A[10]=r/(e-r),A[11]=-1,A[12]=0,A[13]=0,A[14]=r*e/(e-r),A[15]=0,A}function kl(A,t,e,r,n,i,a){var s=1/(t-e),o=1/(r-n),l=1/(i-a);return A[0]=-2*s,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*o,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=2*l,A[11]=0,A[12]=(t+e)*s,A[13]=(n+r)*o,A[14]=(a+i)*l,A[15]=1,A}var Ll=kl;function Nl(A,t,e,r,n,i,a){var s=1/(t-e),o=1/(r-n),l=1/(i-a);return A[0]=-2*s,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=-2*o,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=l,A[11]=0,A[12]=(t+e)*s,A[13]=(n+r)*o,A[14]=i*l,A[15]=1,A}function Dl(A,t,e,r){var n,i,a,s,o,l,u,c,f,d,h=t[0],g=t[1],v=t[2],w=r[0],p=r[1],y=r[2],E=e[0],F=e[1],x=e[2];return Math.abs(h-E)<FA&&Math.abs(g-F)<FA&&Math.abs(v-x)<FA?Qt(A):(u=h-E,c=g-F,f=v-x,d=1/Math.sqrt(u*u+c*c+f*f),u*=d,c*=d,f*=d,n=p*f-y*c,i=y*u-w*f,a=w*c-p*u,d=Math.sqrt(n*n+i*i+a*a),d?(d=1/d,n*=d,i*=d,a*=d):(n=0,i=0,a=0),s=c*a-f*i,o=f*n-u*a,l=u*i-c*n,d=Math.sqrt(s*s+o*o+l*l),d?(d=1/d,s*=d,o*=d,l*=d):(s=0,o=0,l=0),A[0]=n,A[1]=s,A[2]=u,A[3]=0,A[4]=i,A[5]=o,A[6]=c,A[7]=0,A[8]=a,A[9]=l,A[10]=f,A[11]=0,A[12]=-(n*h+i*g+a*v),A[13]=-(s*h+o*g+l*v),A[14]=-(u*h+c*g+f*v),A[15]=1,A)}function gg(A,t,e,r){var n=t[0],i=t[1],a=t[2],s=r[0],o=r[1],l=r[2],u=n-e[0],c=i-e[1],f=a-e[2],d=u*u+c*c+f*f;d>0&&(d=1/Math.sqrt(d),u*=d,c*=d,f*=d);var h=o*f-l*c,g=l*u-s*f,v=s*c-o*u;return d=h*h+g*g+v*v,d>0&&(d=1/Math.sqrt(d),h*=d,g*=d,v*=d),A[0]=h,A[1]=g,A[2]=v,A[3]=0,A[4]=c*v-f*g,A[5]=f*h-u*v,A[6]=u*g-c*h,A[7]=0,A[8]=u,A[9]=c,A[10]=f,A[11]=0,A[12]=n,A[13]=i,A[14]=a,A[15]=1,A}function Bg(A){return"mat4("+A[0]+", "+A[1]+", "+A[2]+", "+A[3]+", "+A[4]+", "+A[5]+", "+A[6]+", "+A[7]+", "+A[8]+", "+A[9]+", "+A[10]+", "+A[11]+", "+A[12]+", "+A[13]+", "+A[14]+", "+A[15]+")"}function vg(A){return Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]+A[3]*A[3]+A[4]*A[4]+A[5]*A[5]+A[6]*A[6]+A[7]*A[7]+A[8]*A[8]+A[9]*A[9]+A[10]*A[10]+A[11]*A[11]+A[12]*A[12]+A[13]*A[13]+A[14]*A[14]+A[15]*A[15])}function pg(A,t,e){return A[0]=t[0]+e[0],A[1]=t[1]+e[1],A[2]=t[2]+e[2],A[3]=t[3]+e[3],A[4]=t[4]+e[4],A[5]=t[5]+e[5],A[6]=t[6]+e[6],A[7]=t[7]+e[7],A[8]=t[8]+e[8],A[9]=t[9]+e[9],A[10]=t[10]+e[10],A[11]=t[11]+e[11],A[12]=t[12]+e[12],A[13]=t[13]+e[13],A[14]=t[14]+e[14],A[15]=t[15]+e[15],A}function Pl(A,t,e){return A[0]=t[0]-e[0],A[1]=t[1]-e[1],A[2]=t[2]-e[2],A[3]=t[3]-e[3],A[4]=t[4]-e[4],A[5]=t[5]-e[5],A[6]=t[6]-e[6],A[7]=t[7]-e[7],A[8]=t[8]-e[8],A[9]=t[9]-e[9],A[10]=t[10]-e[10],A[11]=t[11]-e[11],A[12]=t[12]-e[12],A[13]=t[13]-e[13],A[14]=t[14]-e[14],A[15]=t[15]-e[15],A}function mg(A,t,e){return A[0]=t[0]*e,A[1]=t[1]*e,A[2]=t[2]*e,A[3]=t[3]*e,A[4]=t[4]*e,A[5]=t[5]*e,A[6]=t[6]*e,A[7]=t[7]*e,A[8]=t[8]*e,A[9]=t[9]*e,A[10]=t[10]*e,A[11]=t[11]*e,A[12]=t[12]*e,A[13]=t[13]*e,A[14]=t[14]*e,A[15]=t[15]*e,A}function yg(A,t,e,r){return A[0]=t[0]+e[0]*r,A[1]=t[1]+e[1]*r,A[2]=t[2]+e[2]*r,A[3]=t[3]+e[3]*r,A[4]=t[4]+e[4]*r,A[5]=t[5]+e[5]*r,A[6]=t[6]+e[6]*r,A[7]=t[7]+e[7]*r,A[8]=t[8]+e[8]*r,A[9]=t[9]+e[9]*r,A[10]=t[10]+e[10]*r,A[11]=t[11]+e[11]*r,A[12]=t[12]+e[12]*r,A[13]=t[13]+e[13]*r,A[14]=t[14]+e[14]*r,A[15]=t[15]+e[15]*r,A}function wg(A,t){return A[0]===t[0]&&A[1]===t[1]&&A[2]===t[2]&&A[3]===t[3]&&A[4]===t[4]&&A[5]===t[5]&&A[6]===t[6]&&A[7]===t[7]&&A[8]===t[8]&&A[9]===t[9]&&A[10]===t[10]&&A[11]===t[11]&&A[12]===t[12]&&A[13]===t[13]&&A[14]===t[14]&&A[15]===t[15]}function Cg(A,t){var e=A[0],r=A[1],n=A[2],i=A[3],a=A[4],s=A[5],o=A[6],l=A[7],u=A[8],c=A[9],f=A[10],d=A[11],h=A[12],g=A[13],v=A[14],w=A[15],p=t[0],y=t[1],E=t[2],F=t[3],x=t[4],T=t[5],B=t[6],m=t[7],C=t[8],S=t[9],U=t[10],I=t[11],H=t[12],b=t[13],k=t[14],M=t[15];return Math.abs(e-p)<=FA*Math.max(1,Math.abs(e),Math.abs(p))&&Math.abs(r-y)<=FA*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(n-E)<=FA*Math.max(1,Math.abs(n),Math.abs(E))&&Math.abs(i-F)<=FA*Math.max(1,Math.abs(i),Math.abs(F))&&Math.abs(a-x)<=FA*Math.max(1,Math.abs(a),Math.abs(x))&&Math.abs(s-T)<=FA*Math.max(1,Math.abs(s),Math.abs(T))&&Math.abs(o-B)<=FA*Math.max(1,Math.abs(o),Math.abs(B))&&Math.abs(l-m)<=FA*Math.max(1,Math.abs(l),Math.abs(m))&&Math.abs(u-C)<=FA*Math.max(1,Math.abs(u),Math.abs(C))&&Math.abs(c-S)<=FA*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(f-U)<=FA*Math.max(1,Math.abs(f),Math.abs(U))&&Math.abs(d-I)<=FA*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(h-H)<=FA*Math.max(1,Math.abs(h),Math.abs(H))&&Math.abs(g-b)<=FA*Math.max(1,Math.abs(g),Math.abs(b))&&Math.abs(v-k)<=FA*Math.max(1,Math.abs(v),Math.abs(k))&&Math.abs(w-M)<=FA*Math.max(1,Math.abs(w),Math.abs(M))}var Ol=Xe,Eg=Pl;const Qg=Object.freeze(Object.defineProperty({__proto__:null,add:pg,adjoint:ig,clone:El,copy:Gn,create:TA,decompose:lg,determinant:Fl,equals:Cg,exactEquals:wg,frob:vg,fromQuat:Za,fromQuat2:og,fromRotation:Il,fromRotationTranslation:Ml,fromRotationTranslationScale:ug,fromRotationTranslationScaleOrigin:Wr,fromScaling:pr,fromTranslation:Ft,fromValues:ng,fromXRotation:Sl,fromYRotation:Tl,fromZRotation:$a,frustum:cg,getRotation:zn,getScaling:mr,getTranslation:Vn,identity:Qt,invert:ot,lookAt:Dl,mul:Ol,multiply:Xe,multiplyScalar:mg,multiplyScalarAndAdd:yg,ortho:Ll,orthoNO:kl,orthoZO:Nl,perspective:fg,perspectiveFromFieldOfView:dg,perspectiveNO:Hl,perspectiveZO:hg,rotate:ag,rotateX:xl,rotateY:bl,rotateZ:sg,scale:Ul,set:Ja,str:Bg,sub:Eg,subtract:Pl,targetTo:gg,translate:vr,transpose:Ql},Symbol.toStringTag,{value:"Module"}));function dA(){var A=new GA(3);return GA!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A}function lt(A){var t=new GA(3);return t[0]=A[0],t[1]=A[1],t[2]=A[2],t}function ut(A){var t=A[0],e=A[1],r=A[2];return Math.sqrt(t*t+e*e+r*r)}function pA(A,t,e){var r=new GA(3);return r[0]=A,r[1]=t,r[2]=e,r}function Ye(A,t){return A[0]=t[0],A[1]=t[1],A[2]=t[2],A}function me(A,t,e,r){return A[0]=t,A[1]=e,A[2]=r,A}function Ut(A,t,e){return A[0]=t[0]+e[0],A[1]=t[1]+e[1],A[2]=t[2]+e[2],A}function qa(A,t,e){return A[0]=t[0]-e[0],A[1]=t[1]-e[1],A[2]=t[2]-e[2],A}function Fg(A,t,e){return A[0]=t[0]*e[0],A[1]=t[1]*e[1],A[2]=t[2]*e[2],A}function Ug(A,t,e){return A[0]=Math.min(t[0],e[0]),A[1]=Math.min(t[1],e[1]),A[2]=Math.min(t[2],e[2]),A}function xg(A,t,e){return A[0]=Math.max(t[0],e[0]),A[1]=Math.max(t[1],e[1]),A[2]=Math.max(t[2],e[2]),A}function Wn(A,t,e){return A[0]=t[0]*e,A[1]=t[1]*e,A[2]=t[2]*e,A}function bg(A,t){var e=t[0]-A[0],r=t[1]-A[1],n=t[2]-A[2];return Math.sqrt(e*e+r*r+n*n)}function Wt(A,t){var e=t[0],r=t[1],n=t[2],i=e*e+r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),A[0]=t[0]*i,A[1]=t[1]*i,A[2]=t[2]*i,A}function xt(A,t){return A[0]*t[0]+A[1]*t[1]+A[2]*t[2]}function Xn(A,t,e){var r=t[0],n=t[1],i=t[2],a=e[0],s=e[1],o=e[2];return A[0]=n*o-i*s,A[1]=i*a-r*o,A[2]=r*s-n*a,A}function ja(A,t,e,r){var n=t[0],i=t[1],a=t[2];return A[0]=n+r*(e[0]-n),A[1]=i+r*(e[1]-i),A[2]=a+r*(e[2]-a),A}function Xr(A,t,e){var r=t[0],n=t[1],i=t[2],a=e[3]*r+e[7]*n+e[11]*i+e[15];return a=a||1,A[0]=(e[0]*r+e[4]*n+e[8]*i+e[12])/a,A[1]=(e[1]*r+e[5]*n+e[9]*i+e[13])/a,A[2]=(e[2]*r+e[6]*n+e[10]*i+e[14])/a,A}function Ig(A,t,e){var r=t[0],n=t[1],i=t[2];return A[0]=r*e[0]+n*e[3]+i*e[6],A[1]=r*e[1]+n*e[4]+i*e[7],A[2]=r*e[2]+n*e[5]+i*e[8],A}function Sg(A,t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=t[0],o=t[1],l=t[2],u=n*l-i*o,c=i*s-r*l,f=r*o-n*s;return u=u+u,c=c+c,f=f+f,A[0]=s+a*u+n*f-i*c,A[1]=o+a*c+i*u-r*f,A[2]=l+a*f+r*c-n*u,A}function Yr(A,t){var e=A[0],r=A[1],n=A[2],i=t[0],a=t[1],s=t[2];return Math.abs(e-i)<=FA*Math.max(1,Math.abs(e),Math.abs(i))&&Math.abs(r-a)<=FA*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-s)<=FA*Math.max(1,Math.abs(n),Math.abs(s))}var Rl=qa,Kl=bg,_l=ut;(function(){var A=dA();return function(t,e,r,n,i,a){var s,o;for(e||(e=3),r||(r=0),n?o=Math.min(n*e+r,t.length):o=t.length,s=r;s<o;s+=e)A[0]=t[s],A[1]=t[s+1],A[2]=t[s+2],i(A,A,a),t[s]=A[0],t[s+1]=A[1],t[s+2]=A[2];return t}})();function Je(){var A=new GA(4);return GA!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0,A[3]=0),A}function Jr(A,t,e,r){var n=new GA(4);return n[0]=A,n[1]=t,n[2]=e,n[3]=r,n}function Tg(A,t){return A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=t[3],A}function Mg(A,t,e,r,n){return A[0]=t,A[1]=e,A[2]=r,A[3]=n,A}function Hg(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=e*e+r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),A[0]=e*a,A[1]=r*a,A[2]=n*a,A[3]=i*a,A}function ct(A,t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return A[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,A[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,A[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,A[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,A}(function(){var A=Je();return function(t,e,r,n,i,a){var s,o;for(e||(e=4),r||(r=0),n?o=Math.min(n*e+r,t.length):o=t.length,s=r;s<o;s+=e)A[0]=t[s],A[1]=t[s+1],A[2]=t[s+2],A[3]=t[s+3],i(A,A,a),t[s]=A[0],t[s+1]=A[1],t[s+2]=A[2],t[s+3]=A[3];return t}})();function VA(){var A=new GA(4);return GA!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0),A[3]=1,A}function bt(A,t,e){e=e*.5;var r=Math.sin(e);return A[0]=r*t[0],A[1]=r*t[1],A[2]=r*t[2],A[3]=Math.cos(e),A}function It(A,t,e){var r=t[0],n=t[1],i=t[2],a=t[3],s=e[0],o=e[1],l=e[2],u=e[3];return A[0]=r*u+a*s+n*l-i*o,A[1]=n*u+a*o+i*s-r*l,A[2]=i*u+a*l+r*o-n*s,A[3]=a*u-r*s-n*o-i*l,A}function As(A,t,e,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],l=e[1],u=e[2],c=e[3],f,d,h,g,v;return d=n*o+i*l+a*u+s*c,d<0&&(d=-d,o=-o,l=-l,u=-u,c=-c),1-d>FA?(f=Math.acos(d),h=Math.sin(f),g=Math.sin((1-r)*f)/h,v=Math.sin(r*f)/h):(g=1-r,v=r),A[0]=g*n+v*o,A[1]=g*i+v*l,A[2]=g*a+v*u,A[3]=g*s+v*c,A}function es(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=e*e+r*r+n*n+i*i,s=a?1/a:0;return A[0]=-e*s,A[1]=-r*s,A[2]=-n*s,A[3]=i*s,A}function kg(A,t){var e=t[0]+t[4]+t[8],r;if(e>0)r=Math.sqrt(e+1),A[3]=.5*r,r=.5/r,A[0]=(t[5]-t[7])*r,A[1]=(t[6]-t[2])*r,A[2]=(t[1]-t[3])*r;else{var n=0;t[4]>t[0]&&(n=1),t[8]>t[n*3+n]&&(n=2);var i=(n+1)%3,a=(n+2)%3;r=Math.sqrt(t[n*3+n]-t[i*3+i]-t[a*3+a]+1),A[n]=.5*r,r=.5/r,A[3]=(t[i*3+a]-t[a*3+i])*r,A[i]=(t[i*3+n]+t[n*3+i])*r,A[a]=(t[a*3+n]+t[n*3+a])*r}return A}function Yn(A,t,e,r){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:eg,i=Math.PI/360;t*=i,r*=i,e*=i;var a=Math.sin(t),s=Math.cos(t),o=Math.sin(e),l=Math.cos(e),u=Math.sin(r),c=Math.cos(r);switch(n){case"xyz":A[0]=a*l*c+s*o*u,A[1]=s*o*c-a*l*u,A[2]=s*l*u+a*o*c,A[3]=s*l*c-a*o*u;break;case"xzy":A[0]=a*l*c-s*o*u,A[1]=s*o*c-a*l*u,A[2]=s*l*u+a*o*c,A[3]=s*l*c+a*o*u;break;case"yxz":A[0]=a*l*c+s*o*u,A[1]=s*o*c-a*l*u,A[2]=s*l*u-a*o*c,A[3]=s*l*c+a*o*u;break;case"yzx":A[0]=a*l*c+s*o*u,A[1]=s*o*c+a*l*u,A[2]=s*l*u-a*o*c,A[3]=s*l*c-a*o*u;break;case"zxy":A[0]=a*l*c-s*o*u,A[1]=s*o*c+a*l*u,A[2]=s*l*u+a*o*c,A[3]=s*l*c-a*o*u;break;case"zyx":A[0]=a*l*c-s*o*u,A[1]=s*o*c+a*l*u,A[2]=s*l*u-a*o*c,A[3]=s*l*c+a*o*u;break;default:throw new Error("Unknown angle order "+n)}return A}var Lg=Jr,Jn=Tg,Gl=Mg,Vl=It,$n=Hg;(function(){var A=dA(),t=pA(1,0,0),e=pA(0,1,0);return function(r,n,i){var a=xt(n,i);return a<-.999999?(Xn(A,t,n),_l(A)<1e-6&&Xn(A,e,n),Wt(A,A),bt(r,A,Math.PI),r):a>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Xn(A,n,i),r[0]=A[0],r[1]=A[1],r[2]=A[2],r[3]=1+a,$n(r,r))}})(),(function(){var A=VA(),t=VA();return function(e,r,n,i,a,s){return As(A,r,a,s),As(t,n,i,s),As(e,A,t,2*s*(1-s)),e}})(),(function(){var A=Cl();return function(t,e,r,n){return A[0]=r[0],A[3]=r[1],A[6]=r[2],A[1]=n[0],A[4]=n[1],A[7]=n[2],A[2]=-e[0],A[5]=-e[1],A[8]=-e[2],$n(t,kg(t,A))}})();function ts(){var A=new GA(2);return GA!=Float32Array&&(A[0]=0,A[1]=0),A}function Ng(A,t){return A[0]=t[0],A[1]=t[1],A}function Dg(A,t,e){return A[0]=t,A[1]=e,A}(function(){var A=ts();return function(t,e,r,n,i,a){var s,o;for(e||(e=2),r||(r=0),n?o=Math.min(n*e+r,t.length):o=t.length,s=r;s<o;s+=e)A[0]=t[s],A[1]=t[s+1],i(A,A,a),t[s]=A[0],t[s+1]=A[1];return t}})();function Zn(A){return typeof A=="function"}function CA(A){return A==null}function zl(A){return Array.isArray(A)}const Pg=(function(A){var t=typeof A;return A!==null&&t==="object"||t==="function"});var Og={}.toString,Rg=function(A,t){return Og.call(A)==="[object "+t+"]"};function Wl(A){if(!Array.isArray(A))return-1/0;var t=A.length;if(!t)return-1/0;for(var e=A[0],r=1;r<t;r++)e=Math.max(e,A[r]);return e}const Xl=(function(A){if(zl(A))return A.reduce(function(t,e){return Math.min(t,e)},A[0])});function ee(A){return typeof A=="string"}var ke=function(A,t,e){return A<t?t:A>e?e:A};function $e(A){return typeof A=="number"}var Kg=1e-5;function yr(A,t,e){return e===void 0&&(e=Kg),A===t||Math.abs(A-t)<e}var Yl=function(A,t){return(A%t+t)%t},Jl=function(A){return Rg(A,"Boolean")},IA=function(A){return A===void 0},St=function(){return St=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++){e=arguments[r];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},St.apply(this,arguments)};function $l(A,t,e){if(e||arguments.length===2)for(var r=0,n=t.length,i;r<n;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return A.concat(i||Array.prototype.slice.call(t))}typeof SuppressedError=="function"&&SuppressedError;var Zl={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function _g(A,t,e){if(A[e].length>7){A[e].shift();for(var r=A[e],n=e;r.length;)t[e]="A",A.splice(n+=1,0,["C"].concat(r.splice(0,6)));A.splice(e,1)}}var $r={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function ql(A){return Array.isArray(A)&&A.every(function(t){var e=t[0].toLowerCase();return $r[e]===t.length-1&&"achlmqstvz".includes(e)})}function jl(A){return ql(A)&&A.every(function(t){var e=t[0];return e===e.toUpperCase()})}function Au(A){return jl(A)&&A.every(function(t){var e=t[0];return"ACLMQZ".includes(e)})}function eu(A){for(var t=A.pathValue[A.segmentStart],e=t.toLowerCase(),r=A.data;r.length>=$r[e]&&(e==="m"&&r.length>2?(A.segments.push([t].concat(r.splice(0,2))),e="l",t=t==="m"?"l":"L"):A.segments.push([t].concat(r.splice(0,$r[e]))),!!$r[e]););}function Gg(A){var t=A.index,e=A.pathValue,r=e.charCodeAt(t);if(r===48){A.param=0,A.index+=1;return}if(r===49){A.param=1,A.index+=1;return}A.err='[path-util]: invalid Arc flag "'.concat(e[t],'", expecting 0 or 1 at index ').concat(t)}function Vg(A){return A>=48&&A<=57||A===43||A===45||A===46}function wr(A){return A>=48&&A<=57}function zg(A){var t=A.max,e=A.pathValue,r=A.index,n=r,i=!1,a=!1,s=!1,o=!1,l;if(n>=t){A.err="[path-util]: Invalid path value at index ".concat(n,', "pathValue" is missing param');return}if(l=e.charCodeAt(n),(l===43||l===45)&&(n+=1,l=e.charCodeAt(n)),!wr(l)&&l!==46){A.err="[path-util]: Invalid path value at index ".concat(n,', "').concat(e[n],'" is not a number');return}if(l!==46){if(i=l===48,n+=1,l=e.charCodeAt(n),i&&n<t&&l&&wr(l)){A.err="[path-util]: Invalid path value at index ".concat(r,', "').concat(e[r],'" illegal number');return}for(;n<t&&wr(e.charCodeAt(n));)n+=1,a=!0;l=e.charCodeAt(n)}if(l===46){for(o=!0,n+=1;wr(e.charCodeAt(n));)n+=1,s=!0;l=e.charCodeAt(n)}if(l===101||l===69){if(o&&!a&&!s){A.err="[path-util]: Invalid path value at index ".concat(n,', "').concat(e[n],'" invalid float exponent');return}if(n+=1,l=e.charCodeAt(n),(l===43||l===45)&&(n+=1),n<t&&wr(e.charCodeAt(n)))for(;n<t&&wr(e.charCodeAt(n));)n+=1;else{A.err="[path-util]: Invalid path value at index ".concat(n,', "').concat(e[n],'" invalid integer exponent');return}}A.index=n,A.param=+A.pathValue.slice(r,n)}function Wg(A){var t=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];return A===10||A===13||A===8232||A===8233||A===32||A===9||A===11||A===12||A===160||A>=5760&&t.includes(A)}function qn(A){for(var t=A.pathValue,e=A.max;A.index<e&&Wg(t.charCodeAt(A.index));)A.index+=1}function Xg(A){switch(A|32){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}function Yg(A){return(A|32)===97}function Jg(A){var t=A.max,e=A.pathValue,r=A.index,n=e.charCodeAt(r),i=$r[e[r].toLowerCase()];if(A.segmentStart=r,!Xg(n)){A.err='[path-util]: Invalid path value "'.concat(e[r],'" is not a path command');return}if(A.index+=1,qn(A),A.data=[],!i){eu(A);return}for(;;){for(var a=i;a>0;a-=1){if(Yg(n)&&(a===3||a===4)?Gg(A):zg(A),A.err.length)return;A.data.push(A.param),qn(A),A.index<t&&e.charCodeAt(A.index)===44&&(A.index+=1,qn(A))}if(A.index>=A.max||!Vg(e.charCodeAt(A.index)))break}eu(A)}var $g=(function(){function A(t){this.pathValue=t,this.segments=[],this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}return A})();function Zg(A){if(ql(A))return[].concat(A);var t=new $g(A);for(qn(t);t.index<t.max&&!t.err.length;)Jg(t);return t.err?t.err:t.segments}function qg(A){if(jl(A))return[].concat(A);var t=Zg(A),e=0,r=0,n=0,i=0;return t.map(function(a){var s=a.slice(1).map(Number),o=a[0],l=o.toUpperCase();if(o==="M")return e=s[0],r=s[1],n=e,i=r,["M",e,r];var u;if(o!==l)switch(l){case"A":u=[l,s[0],s[1],s[2],s[3],s[4],s[5]+e,s[6]+r];break;case"V":u=[l,s[0]+r];break;case"H":u=[l,s[0]+e];break;default:{var c=s.map(function(d,h){return d+(h%2?r:e)});u=[l].concat(c)}}else u=[l].concat(s);var f=u.length;switch(l){case"Z":e=n,r=i;break;case"H":e=u[1];break;case"V":r=u[1];break;default:e=u[f-2],r=u[f-1],l==="M"&&(n=e,i=r)}return u})}function jg(A,t){var e=A[0],r=t.x1,n=t.y1,i=t.x2,a=t.y2,s=A.slice(1).map(Number),o=A;if("TQ".includes(e)||(t.qx=null,t.qy=null),e==="H")o=["L",A[1],n];else if(e==="V")o=["L",r,A[1]];else if(e==="S"){var l=r*2-i,u=n*2-a;t.x1=l,t.y1=u,o=["C",l,u].concat(s)}else if(e==="T"){var c=r*2-t.qx,f=n*2-t.qy;t.qx=c,t.qy=f,o=["Q",c,f].concat(s)}else if(e==="Q"){var d=s[0],h=s[1];t.qx=d,t.qy=h}return o}function jn(A){if(Au(A))return[].concat(A);for(var t=qg(A),e=St({},Zl),r=0;r<t.length;r+=1){t[r]=jg(t[r],e);var n=t[r],i=n.length;e.x1=+n[i-2],e.y1=+n[i-1],e.x2=+n[i-4]||e.x1,e.y2=+n[i-3]||e.y1}return t}function A0(A){return Au(A)&&A.every(function(t){var e=t[0];return"MC".includes(e)})}function Ai(A,t,e){var r=A*Math.cos(e)-t*Math.sin(e),n=A*Math.sin(e)+t*Math.cos(e);return{x:r,y:n}}function tu(A,t,e,r,n,i,a,s,o,l){var u=A,c=t,f=e,d=r,h=s,g=o,v=Math.PI*120/180,w=Math.PI/180*(+n||0),p=[],y,E,F,x,T;if(l)E=l[0],F=l[1],x=l[2],T=l[3];else{y=Ai(u,c,-w),u=y.x,c=y.y,y=Ai(h,g,-w),h=y.x,g=y.y;var B=(u-h)/2,m=(c-g)/2,C=B*B/(f*f)+m*m/(d*d);C>1&&(C=Math.sqrt(C),f*=C,d*=C);var S=f*f,U=d*d,I=(i===a?-1:1)*Math.sqrt(Math.abs((S*U-S*m*m-U*B*B)/(S*m*m+U*B*B)));x=I*f*m/d+(u+h)/2,T=I*-d*B/f+(c+g)/2,E=Math.asin(((c-T)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),F=Math.asin(((g-T)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),E=u<x?Math.PI-E:E,F=h<x?Math.PI-F:F,E<0&&(E=Math.PI*2+E),F<0&&(F=Math.PI*2+F),a&&E>F&&(E-=Math.PI*2),!a&&F>E&&(F-=Math.PI*2)}var H=F-E;if(Math.abs(H)>v){var b=F,k=h,M=g;F=E+v*(a&&F>E?1:-1),h=x+f*Math.cos(F),g=T+d*Math.sin(F),p=tu(h,g,f,d,n,0,a,k,M,[F,b,x,T])}H=F-E;var L=Math.cos(E),N=Math.sin(E),O=Math.cos(F),z=Math.sin(F),$=Math.tan(H/4),eA=4/3*f*$,tA=4/3*d*$,Z=[u,c],D=[u+eA*N,c-tA*L],j=[h+eA*z,g-tA*O],JA=[h,g];if(D[0]=2*Z[0]-D[0],D[1]=2*Z[1]-D[1],l)return D.concat(j,JA,p);p=D.concat(j,JA,p);for(var wA=[],_A=0,DA=p.length;_A<DA;_A+=1)wA[_A]=_A%2?Ai(p[_A-1],p[_A],w).y:Ai(p[_A],p[_A+1],w).x;return wA}function e0(A,t,e,r,n,i){var a=.3333333333333333,s=2/3;return[a*A+s*e,a*t+s*r,a*n+s*e,a*i+s*r,n,i]}function Tt(A,t,e){var r=A[0],n=A[1],i=t[0],a=t[1];return[r+(i-r)*e,n+(a-n)*e]}var ru=function(A,t,e,r){var n=.5,i=Tt([A,t],[e,r],n);return $l($l([],i,!0),[e,r,e,r],!1)};function t0(A,t){var e=A[0],r=A.slice(1).map(Number),n=r[0],i=r[1],a,s=t.x1,o=t.y1,l=t.x,u=t.y;switch("TQ".includes(e)||(t.qx=null,t.qy=null),e){case"M":return t.x=n,t.y=i,A;case"A":return a=[s,o].concat(r),["C"].concat(tu(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]));case"Q":return t.qx=n,t.qy=i,a=[s,o].concat(r),["C"].concat(e0(a[0],a[1],a[2],a[3],a[4],a[5]));case"L":return["C"].concat(ru(s,o,n,i));case"Z":return s===l&&o===u?["C",s,o,l,u,l,u]:["C"].concat(ru(s,o,l,u))}return A}function rs(A,t){if(t===void 0&&(t=!1),A0(A)){var e=[].concat(A);return t?[e,[]]:e}for(var r=jn(A),n=St({},Zl),i=[],a="",s=r.length,o,l,u=[],c=0;c<s;c+=1){r[c]&&(a=r[c][0]),i[c]=a;var f=t0(r[c],n);r[c]=f,_g(r,i,c),s=r.length,a==="Z"&&u.push(c),o=r[c],l=o.length,n.x1=+o[l-2],n.y1=+o[l-1],n.x2=+o[l-4]||n.x1,n.y2=+o[l-3]||n.y1}return t?[r,u]:r}function r0(A){return A.map(function(t){return Array.isArray(t)?[].concat(t):t})}function n0(A){var t=A.slice(1).map(function(e,r,n){return r?n[r-1].slice(-2).concat(e.slice(1)):A[0].slice(1).concat(e.slice(1))}).map(function(e){return e.map(function(r,n){return e[e.length-n-2*(1-n%2)]})}).reverse();return[["M"].concat(t[0].slice(0,2))].concat(t.map(function(e){return["C"].concat(e.slice(2))}))}function ce(A,t){return Math.sqrt((A[0]-t[0])*(A[0]-t[0])+(A[1]-t[1])*(A[1]-t[1]))}function ns(A,t,e,r,n){var i=ce([A,t],[e,r]),a={x:0,y:0};if(typeof n=="number")if(n<=0)a={x:A,y:t};else if(n>=i)a={x:e,y:r};else{var s=Tt([A,t],[e,r],n/i),o=s[0],l=s[1];a={x:o,y:l}}return{length:i,point:a,min:{x:Math.min(A,e),y:Math.min(t,r)},max:{x:Math.max(A,e),y:Math.max(t,r)}}}function nu(A,t){var e=A.x,r=A.y,n=t.x,i=t.y,a=e*n+r*i,s=Math.sqrt((Math.pow(e,2)+Math.pow(r,2))*(Math.pow(n,2)+Math.pow(i,2))),o=e*i-r*n<0?-1:1,l=o*Math.acos(a/s);return l}function i0(A,t,e,r,n,i,a,s,o,l){var u=Math.abs,c=Math.sin,f=Math.cos,d=Math.sqrt,h=Math.PI,g=u(e),v=u(r),w=(n%360+360)%360,p=w*(h/180);if(A===s&&t===o)return{x:A,y:t};if(g===0||v===0)return ns(A,t,s,o,l).point;var y=(A-s)/2,E=(t-o)/2,F={x:f(p)*y+c(p)*E,y:-c(p)*y+f(p)*E},x=Math.pow(F.x,2)/Math.pow(g,2)+Math.pow(F.y,2)/Math.pow(v,2);x>1&&(g*=d(x),v*=d(x));var T=Math.pow(g,2)*Math.pow(v,2)-Math.pow(g,2)*Math.pow(F.y,2)-Math.pow(v,2)*Math.pow(F.x,2),B=Math.pow(g,2)*Math.pow(F.y,2)+Math.pow(v,2)*Math.pow(F.x,2),m=T/B;m=m<0?0:m;var C=(i!==a?1:-1)*d(m),S={x:C*(g*F.y/v),y:C*(-(v*F.x)/g)},U={x:f(p)*S.x-c(p)*S.y+(A+s)/2,y:c(p)*S.x+f(p)*S.y+(t+o)/2},I={x:(F.x-S.x)/g,y:(F.y-S.y)/v},H=nu({x:1,y:0},I),b={x:(-F.x-S.x)/g,y:(-F.y-S.y)/v},k=nu(I,b);!a&&k>0?k-=2*h:a&&k<0&&(k+=2*h),k%=2*h;var M=H+k*l,L=g*f(M),N=v*c(M),O={x:f(p)*L-c(p)*N+U.x,y:c(p)*L+f(p)*N+U.y};return O}function a0(A,t,e,r,n,i,a,s,o,l,u){var c,f=u.bbox,d=f===void 0?!0:f,h=u.length,g=h===void 0?!0:h,v=u.sampleSize,w=v===void 0?30:v,p=typeof l=="number",y=A,E=t,F=0,x=[y,E,F],T=[y,E],B=0,m={x:0,y:0},C=[{x:y,y:E}];p&&l<=0&&(m={x:y,y:E});for(var S=0;S<=w;S+=1){if(B=S/w,c=i0(A,t,e,r,n,i,a,s,o,B),y=c.x,E=c.y,d&&C.push({x:y,y:E}),g&&(F+=ce(T,[y,E])),T=[y,E],p&&F>=l&&l>x[2]){var U=(F-l)/(F-x[2]);m={x:T[0]*(1-U)+x[0]*U,y:T[1]*(1-U)+x[1]*U}}x=[y,E,F]}return p&&l>=F&&(m={x:s,y:o}),{length:F,point:m,min:{x:Math.min.apply(null,C.map(function(I){return I.x})),y:Math.min.apply(null,C.map(function(I){return I.y}))},max:{x:Math.max.apply(null,C.map(function(I){return I.x})),y:Math.max.apply(null,C.map(function(I){return I.y}))}}}function s0(A,t,e,r,n,i,a,s,o){var l=1-o;return{x:Math.pow(l,3)*A+3*Math.pow(l,2)*o*e+3*l*Math.pow(o,2)*n+Math.pow(o,3)*a,y:Math.pow(l,3)*t+3*Math.pow(l,2)*o*r+3*l*Math.pow(o,2)*i+Math.pow(o,3)*s}}function iu(A,t,e,r,n,i,a,s,o,l){var u,c=l.bbox,f=c===void 0?!0:c,d=l.length,h=d===void 0?!0:d,g=l.sampleSize,v=g===void 0?10:g,w=typeof o=="number",p=A,y=t,E=0,F=[p,y,E],x=[p,y],T=0,B={x:0,y:0},m=[{x:p,y}];w&&o<=0&&(B={x:p,y});for(var C=0;C<=v;C+=1){if(T=C/v,u=s0(A,t,e,r,n,i,a,s,T),p=u.x,y=u.y,f&&m.push({x:p,y}),h&&(E+=ce(x,[p,y])),x=[p,y],w&&E>=o&&o>F[2]){var S=(E-o)/(E-F[2]);B={x:x[0]*(1-S)+F[0]*S,y:x[1]*(1-S)+F[1]*S}}F=[p,y,E]}return w&&o>=E&&(B={x:a,y:s}),{length:E,point:B,min:{x:Math.min.apply(null,m.map(function(U){return U.x})),y:Math.min.apply(null,m.map(function(U){return U.y}))},max:{x:Math.max.apply(null,m.map(function(U){return U.x})),y:Math.max.apply(null,m.map(function(U){return U.y}))}}}function o0(A,t,e,r,n,i,a){var s=1-a;return{x:Math.pow(s,2)*A+2*s*a*e+Math.pow(a,2)*n,y:Math.pow(s,2)*t+2*s*a*r+Math.pow(a,2)*i}}function l0(A,t,e,r,n,i,a,s){var o,l=s.bbox,u=l===void 0?!0:l,c=s.length,f=c===void 0?!0:c,d=s.sampleSize,h=d===void 0?10:d,g=typeof a=="number",v=A,w=t,p=0,y=[v,w,p],E=[v,w],F=0,x={x:0,y:0},T=[{x:v,y:w}];g&&a<=0&&(x={x:v,y:w});for(var B=0;B<=h;B+=1){if(F=B/h,o=o0(A,t,e,r,n,i,F),v=o.x,w=o.y,u&&T.push({x:v,y:w}),f&&(p+=ce(E,[v,w])),E=[v,w],g&&p>=a&&a>y[2]){var m=(p-a)/(p-y[2]);x={x:E[0]*(1-m)+y[0]*m,y:E[1]*(1-m)+y[1]*m}}y=[v,w,p]}return g&&a>=p&&(x={x:n,y:i}),{length:p,point:x,min:{x:Math.min.apply(null,T.map(function(C){return C.x})),y:Math.min.apply(null,T.map(function(C){return C.y}))},max:{x:Math.max.apply(null,T.map(function(C){return C.x})),y:Math.max.apply(null,T.map(function(C){return C.y}))}}}function au(A,t,e){for(var r,n,i,a,s,o,l=jn(A),u=typeof t=="number",c,f=[],d,h=0,g=0,v=0,w=0,p,y=[],E=[],F=0,x={x:0,y:0},T=x,B=x,m=x,C=0,S=0,U=l.length;S<U;S+=1)p=l[S],d=p[0],c=d==="M",f=c?f:[h,g].concat(p.slice(1)),c?(v=p[1],w=p[2],x={x:v,y:w},T=x,F=0,u&&t<.001&&(m=x)):d==="L"?(r=ns(f[0],f[1],f[2],f[3],(t||0)-C),F=r.length,x=r.min,T=r.max,B=r.point):d==="A"?(n=a0(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],(t||0)-C,e||{}),F=n.length,x=n.min,T=n.max,B=n.point):d==="C"?(i=iu(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],(t||0)-C,e||{}),F=i.length,x=i.min,T=i.max,B=i.point):d==="Q"?(a=l0(f[0],f[1],f[2],f[3],f[4],f[5],(t||0)-C,e||{}),F=a.length,x=a.min,T=a.max,B=a.point):d==="Z"&&(f=[h,g,v,w],s=ns(f[0],f[1],f[2],f[3],(t||0)-C),F=s.length,x=s.min,T=s.max,B=s.point),u&&C<t&&C+F>=t&&(m=B),E.push(T),y.push(x),C+=F,o=d!=="Z"?p.slice(-2):[v,w],h=o[0],g=o[1];return u&&t>=C&&(m={x:h,y:g}),{length:C,point:m,min:{x:Math.min.apply(null,y.map(function(I){return I.x})),y:Math.min.apply(null,y.map(function(I){return I.y}))},max:{x:Math.max.apply(null,E.map(function(I){return I.x})),y:Math.max.apply(null,E.map(function(I){return I.y}))}}}function u0(A,t){return au(A,void 0,St(St({},t),{bbox:!1,length:!0})).length}function c0(A){var t=A.length,e=t-1;return A.map(function(r,n){return A.map(function(i,a){var s=n+a,o;return a===0||A[s]&&A[s][0]==="M"?(o=A[s],["M"].concat(o.slice(-2))):(s>=t&&(s-=e),A[s])})})}function f0(A,t){var e=A.length-1,r=[],n=0,i=0,a=c0(A);return a.forEach(function(s,o){A.slice(1).forEach(function(l,u){i+=ce(A[(o+u)%e].slice(-2),t[u%e].slice(-2))}),r[o]=i,i=0}),n=r.indexOf(Math.min.apply(null,r)),a[n]}function h0(A,t,e,r,n,i,a,s){return 3*((s-t)*(e+n)-(a-A)*(r+i)+r*(A-n)-e*(t-i)+s*(n+A/3)-a*(i+t/3))/20}function d0(A){var t=0,e=0,r=0;return rs(A).map(function(n){var i;if(n[0]==="M")return t=n[1],e=n[2],0;var a=n.slice(1),s=a[0],o=a[1],l=a[2],u=a[3],c=a[4],f=a[5];return r=h0(t,e,s,o,l,u,c,f),i=n.slice(-2),t=i[0],e=i[1],r}).reduce(function(n,i){return n+i},0)}function su(A){return d0(A)>=0}function g0(A,t,e){return au(A,t,St(St({},e),{bbox:!1,length:!0})).point}var B0=50;function v0(A,t){t===void 0&&(t=.5);var e=A.slice(0,2),r=A.slice(2,4),n=A.slice(4,6),i=A.slice(6,8),a=Tt(e,r,t),s=Tt(r,n,t),o=Tt(n,i,t),l=Tt(a,s,t),u=Tt(s,o,t),c=Tt(l,u,t);return[["C"].concat(a,l,c),["C"].concat(u,o,i)]}function ou(A){return A.map(function(t,e,r){var n=e&&r[e-1].slice(-2).concat(t.slice(1)),i=e?iu(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],{bbox:!1}).length:0,a;return e?a=i?v0(n):[t,t]:a=[t],{s:t,ss:a,l:i}})}function lu(A,t,e,r){if(r===void 0&&(r=0),r>B0)return console.warn("Maximum recursion depth reached in equalizeSegments"),[A,t];var n=ou(A),i=ou(t),a=n.length,s=i.length,o=n.filter(function(w){return w.l}).length,l=i.filter(function(w){return w.l}).length,u=n.filter(function(w){return w.l}).reduce(function(w,p){var y=p.l;return w+y},0)/o||0,c=i.filter(function(w){return w.l}).reduce(function(w,p){var y=p.l;return w+y},0)/l||0,f=e||Math.max(a,s),d=[u,c],h=[f-a,f-s],g=0,v=[n,i].map(function(w,p){return w.l===f?w.map(function(y){return y.s}):w.map(function(y,E){return g=E&&h[p]&&y.l>=d[p],h[p]-=g?1:0,g?y.ss:[y.s]}).flat()});return v[0].length===v[1].length?v:lu(v[0],v[1],f,r+1)}function p0(A,t){for(;!{}.hasOwnProperty.call(A,t)&&(A=Br(A))!==null;);return A}function is(){return is=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(A,t,e){var r=p0(A,t);if(r){var n=Object.getOwnPropertyDescriptor(r,t);return n.get?n.get.call(arguments.length<3?A:e):n.value}},is.apply(null,arguments)}function ei(A,t,e,r){var n=is(Br(A.prototype),t,e);return typeof n=="function"?function(i){return n.apply(e,i)}:n}function uu(A,t,e,r){var n=A-e,i=t-r;return Math.sqrt(n*n+i*i)}function cu(A,t){var e=Math.min.apply(Math,oA(A)),r=Math.min.apply(Math,oA(t)),n=Math.max.apply(Math,oA(A)),i=Math.max.apply(Math,oA(t));return{x:e,y:r,width:n-e,height:i-r}}function m0(A,t,e){return Math.atan(-t/A*Math.tan(e))}function y0(A,t,e){return Math.atan(t/(A*Math.tan(e)))}function w0(A,t,e,r,n,i){return e*Math.cos(n)*Math.cos(i)-r*Math.sin(n)*Math.sin(i)+A}function C0(A,t,e,r,n,i){return e*Math.sin(n)*Math.cos(i)+r*Math.cos(n)*Math.sin(i)+t}function E0(A,t,e,r,n,i,a){for(var s=m0(e,r,n),o=1/0,l=-1/0,u=[i,a],c=-Math.PI*2;c<=Math.PI*2;c+=Math.PI){var f=s+c;i<a?i<f&&f<a&&u.push(f):a<f&&f<i&&u.push(f)}for(var d=0;d<u.length;d++){var h=w0(A,t,e,r,n,u[d]);h<o&&(o=h),h>l&&(l=h)}for(var g=y0(e,r,n),v=1/0,w=-1/0,p=[i,a],y=-Math.PI*2;y<=Math.PI*2;y+=Math.PI){var E=g+y;i<a?i<E&&E<a&&p.push(E):a<E&&E<i&&p.push(E)}for(var F=0;F<p.length;F++){var x=C0(A,t,e,r,n,p[F]);x<v&&(v=x),x>w&&(w=x)}return{x:o,y:v,width:l-o,height:w-v}}function fu(A,t,e,r){return uu(A,t,e,r)}function hu(A,t,e,r,n){return{x:(1-n)*A+n*e,y:(1-n)*t+n*r}}function du(A,t,e,r,n){var i=1-n;return i*i*i*A+3*t*n*i*i+3*e*n*n*i+r*n*n*n}function gu(A,t,e,r){var n=-3*A+9*t-9*e+3*r,i=6*A-12*t+6*e,a=3*t-3*A,s=[],o,l,u;if(yr(n,0))yr(i,0)||(o=-a/i,o>=0&&o<=1&&s.push(o));else{var c=i*i-4*n*a;yr(c,0)?s.push(-i/(2*n)):c>0&&(u=Math.sqrt(c),o=(-i+u)/(2*n),l=(-i-u)/(2*n),o>=0&&o<=1&&s.push(o),l>=0&&l<=1&&s.push(l))}return s}function Q0(A,t,e,r,n,i,a,s){for(var o=[A,a],l=[t,s],u=gu(A,e,n,a),c=gu(t,r,i,s),f=0;f<u.length;f++)o.push(du(A,e,n,a,u[f]));for(var d=0;d<c.length;d++)l.push(du(t,r,i,s,c[d]));return cu(o,l)}function F0(A){if(A.length<2)return 0;for(var t=0,e=0;e<A.length-1;e++){var r=A[e],n=A[e+1];t+=uu(r[0],r[1],n[0],n[1])}return t}function U0(A){return F0(A)}function Bu(A,t,e,r){var n=1-r;return n*n*A+2*r*n*t+r*r*e}function vu(A,t,e){var r=A+e-2*t;if(yr(r,0))return[.5];var n=(A-t)/r;return n<=1&&n>=0?[n]:[]}function x0(A,t,e,r,n,i){var a=vu(A,e,n)[0],s=vu(t,r,i)[0],o=[A,n],l=[t,i];return a!==void 0&&o.push(Bu(A,e,n,a)),s!==void 0&&l.push(Bu(t,r,i,s)),cu(o,l)}function pu(A,t){this.v=A,this.k=t}function te(A,t,e,r){var n=Object.defineProperty;try{n({},"",{})}catch{n=0}te=function(a,s,o,l){function u(c,f){te(a,c,function(d){return this._invoke(c,f,d)})}s?n?n(a,s,{value:o,enumerable:!l,configurable:!l,writable:!l}):a[s]=o:(u("next",0),u("throw",1),u("return",2))},te(A,t,e,r)}function as(){var A,t,e=typeof Symbol=="function"?Symbol:{},r=e.iterator||"@@iterator",n=e.toStringTag||"@@toStringTag";function i(d,h,g,v){var w=h&&h.prototype instanceof s?h:s,p=Object.create(w.prototype);return te(p,"_invoke",(function(y,E,F){var x,T,B,m=0,C=F||[],S=!1,U={p:0,n:0,v:A,a:I,f:I.bind(A,4),d:function(b,k){return x=b,T=0,B=A,U.n=k,a}};function I(H,b){for(T=H,B=b,t=0;!S&&m&&!k&&t<C.length;t++){var k,M=C[t],L=U.p,N=M[2];H>3?(k=N===b)&&(B=M[(T=M[4])?5:(T=3,3)],M[4]=M[5]=A):M[0]<=L&&((k=H<2&&L<M[1])?(T=0,U.v=b,U.n=M[1]):L<N&&(k=H<3||M[0]>b||b>N)&&(M[4]=H,M[5]=b,U.n=N,T=0))}if(k||H>1)return a;throw S=!0,b}return function(H,b,k){if(m>1)throw TypeError("Generator is already running");for(S&&b===1&&I(b,k),T=b,B=k;(t=T<2?A:B)||!S;){x||(T?T<3?(T>1&&(U.n=-1),I(T,B)):U.n=B:U.v=B);try{if(m=2,x){if(T||(H="next"),t=x[H]){if(!(t=t.call(x,B)))throw TypeError("iterator result is not an object");if(!t.done)return t;B=t.value,T<2&&(T=0)}else T===1&&(t=x.return)&&t.call(x),T<2&&(B=TypeError("The iterator does not provide a '"+H+"' method"),T=1);x=A}else if((t=(S=U.n<0)?B:y.call(E,U))!==a)break}catch(M){x=A,T=1,B=M}finally{m=1}}return{value:t,done:S}}})(d,g,v),!0),p}var a={};function s(){}function o(){}function l(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(te(t={},r,function(){return this}),t),c=l.prototype=s.prototype=Object.create(u);function f(d){return Object.setPrototypeOf?Object.setPrototypeOf(d,l):(d.__proto__=l,te(d,n,"GeneratorFunction")),d.prototype=Object.create(c),d}return o.prototype=l,te(c,"constructor",l),te(l,"constructor",o),o.displayName="GeneratorFunction",te(l,n,"GeneratorFunction"),te(c),te(c,n,"Generator"),te(c,r,function(){return this}),te(c,"toString",function(){return"[object Generator]"}),(as=function(){return{w:i,m:f}})()}function ti(A,t){function e(n,i,a,s){try{var o=A[n](i),l=o.value;return l instanceof pu?t.resolve(l.v).then(function(u){e("next",u,a,s)},function(u){e("throw",u,a,s)}):t.resolve(l).then(function(u){o.value=u,a(o)},function(u){return e("throw",u,a,s)})}catch(u){s(u)}}var r;this.next||(te(ti.prototype),te(ti.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),te(this,"_invoke",function(n,i,a){function s(){return new t(function(o,l){e(n,a,o,l)})}return r=r?r.then(s,s):s()},!0)}function mu(A,t,e,r,n){return new ti(as().w(A,t,e,r),n||Promise)}function b0(A,t,e,r,n){var i=mu(A,t,e,r,n);return i.next().then(function(a){return a.done?a.value:i.next()})}function I0(A){var t=Object(A),e=[];for(var r in t)e.unshift(r);return function n(){for(;e.length;)if((r=e.pop())in t)return n.value=r,n.done=!1,n;return n.done=!0,n}}function yu(A){if(A!=null){var t=A[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],e=0;if(t)return t.call(A);if(typeof A.next=="function")return A;if(!isNaN(A.length))return{next:function(){return A&&e>=A.length&&(A=void 0),{value:A&&A[e++],done:!A}}}}throw new TypeError(zt(A)+" is not iterable")}function Cr(){var A=as(),t=A.m(Cr),e=(Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__).constructor;function r(a){var s=typeof a=="function"&&a.constructor;return!!s&&(s===e||(s.displayName||s.name)==="GeneratorFunction")}var n={throw:1,return:2,break:3,continue:3};function i(a){var s,o;return function(l){s||(s={stop:function(){return o(l.a,2)},catch:function(){return l.v},abrupt:function(c,f){return o(l.a,n[c],f)},delegateYield:function(c,f,d){return s.resultName=f,o(l.d,yu(c),d)},finish:function(c){return o(l.f,c)}},o=function(c,f,d){l.p=s.prev,l.n=s.next;try{return c(f,d)}finally{s.next=l.n}}),s.resultName&&(s[s.resultName]=l.v,s.resultName=void 0),s.sent=l.v,s.next=l.n;try{return a.call(this,s)}finally{l.p=s.prev,l.n=s.next}}}return(Cr=function(){return{wrap:function(o,l,u,c){return A.w(i(o),l,u,c&&c.reverse())},isGeneratorFunction:r,mark:A.m,awrap:function(o,l){return new pu(o,l)},AsyncIterator:ti,async:function(o,l,u,c,f){return(r(l)?mu:b0)(i(o),l,u,c,f)},keys:I0,values:yu}})()}function wu(A,t,e,r,n,i,a){try{var s=A[i](a),o=s.value}catch(l){return void e(l)}s.done?t(o):Promise.resolve(o).then(r,n)}function Cu(A){return function(){var t=this,e=arguments;return new Promise(function(r,n){var i=A.apply(t,e);function a(o){wu(i,r,n,a,s,"next",o)}function s(o){wu(i,r,n,a,s,"throw",o)}a(void 0)})}}function Er(A,t){var e=typeof Symbol<"u"&&A[Symbol.iterator]||A["@@iterator"];if(!e){if(Array.isArray(A)||(e=Wa(A))||t){e&&(A=e);var r=0,n=function(){};return{s:n,n:function(){return r>=A.length?{done:!0}:{done:!1,value:A[r++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
4
4
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,a=!0,s=!1;return{s:function(){e=e.call(A)},n:function(){var l=e.next();return a=l.done,l},e:function(l){s=!0,i=l},f:function(){try{a||e.return==null||e.return()}finally{if(s)throw i}}}}function S0(A,t){if(A==null)return{};var e={};for(var r in A)if({}.hasOwnProperty.call(A,r)){if(t.indexOf(r)!==-1)continue;e[r]=A[r]}return e}function Ze(A,t){if(A==null)return{};var e,r,n=S0(A,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(A);for(r=0;r<i.length;r++)e=i[r],t.indexOf(e)===-1&&{}.propertyIsEnumerable.call(A,e)&&(n[e]=A[e])}return n}var Y=(function(A){return A.GROUP="g",A.FRAGMENT="fragment",A.CIRCLE="circle",A.ELLIPSE="ellipse",A.IMAGE="image",A.RECT="rect",A.LINE="line",A.POLYLINE="polyline",A.POLYGON="polygon",A.TEXT="text",A.PATH="path",A.HTML="html",A.MESH="mesh",A})({}),ss=(function(A){return A[A.ZERO=0]="ZERO",A[A.NEGATIVE_ONE=1]="NEGATIVE_ONE",A})({}),os=Ut,Qr=Ye,T0=xg,M0=Ug,Eu=Wn,ls=Rl,fe=(function(){function A(){K(this,A),this.center=[0,0,0],this.halfExtents=[0,0,0],this.min=[0,0,0],this.max=[0,0,0]}return _(A,[{key:"update",value:function(e,r){Qr(this.center,e),Qr(this.halfExtents,r),ls(this.min,this.center,this.halfExtents),os(this.max,this.center,this.halfExtents)}},{key:"setMinMax",value:function(e,r){os(this.center,r,e),Eu(this.center,this.center,.5),ls(this.halfExtents,r,e),Eu(this.halfExtents,this.halfExtents,.5),Qr(this.min,e),Qr(this.max,r)}},{key:"getMin",value:function(){return this.min}},{key:"getMax",value:function(){return this.max}},{key:"add",value:function(e){if(!A.isEmpty(e)){if(A.isEmpty(this)){this.setMinMax(e.getMin(),e.getMax());return}var r=this.center,n=r[0],i=r[1],a=r[2],s=this.halfExtents,o=s[0],l=s[1],u=s[2],c=n-o,f=n+o,d=i-l,h=i+l,g=a-u,v=a+u,w=e.center,p=w[0],y=w[1],E=w[2],F=e.halfExtents,x=F[0],T=F[1],B=F[2],m=p-x,C=p+x,S=y-T,U=y+T,I=E-B,H=E+B;m<c&&(c=m),C>f&&(f=C),S<d&&(d=S),U>h&&(h=U),I<g&&(g=I),H>v&&(v=H),r[0]=(c+f)*.5,r[1]=(d+h)*.5,r[2]=(g+v)*.5,s[0]=(f-c)*.5,s[1]=(h-d)*.5,s[2]=(v-g)*.5,this.min[0]=c,this.min[1]=d,this.min[2]=g,this.max[0]=f,this.max[1]=h,this.max[2]=v}}},{key:"setFromTransformedAABB",value:function(e,r){var n=this.center,i=this.halfExtents,a=e.center,s=e.halfExtents,o=r[0],l=r[4],u=r[8],c=r[1],f=r[5],d=r[9],h=r[2],g=r[6],v=r[10],w=Math.abs(o),p=Math.abs(l),y=Math.abs(u),E=Math.abs(c),F=Math.abs(f),x=Math.abs(d),T=Math.abs(h),B=Math.abs(g),m=Math.abs(v);n[0]=r[12]+o*a[0]+l*a[1]+u*a[2],n[1]=r[13]+c*a[0]+f*a[1]+d*a[2],n[2]=r[14]+h*a[0]+g*a[1]+v*a[2],i[0]=w*s[0]+p*s[1]+y*s[2],i[1]=E*s[0]+F*s[1]+x*s[2],i[2]=T*s[0]+B*s[1]+m*s[2],ls(this.min,n,i),os(this.max,n,i)}},{key:"intersects",value:function(e){var r=this.getMax(),n=this.getMin(),i=e.getMax(),a=e.getMin();return n[0]<=i[0]&&r[0]>=a[0]&&n[1]<=i[1]&&r[1]>=a[1]&&n[2]<=i[2]&&r[2]>=a[2]}},{key:"intersection",value:function(e){if(!this.intersects(e))return null;var r=new A,n=T0([0,0,0],this.getMin(),e.getMin()),i=M0([0,0,0],this.getMax(),e.getMax());return r.setMinMax(n,i),r}},{key:"getNegativeFarPoint",value:function(e){return e.pnVertexFlag===273?Qr([0,0,0],this.min):e.pnVertexFlag===272?[this.min[0],this.min[1],this.max[2]]:e.pnVertexFlag===257?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===256?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===17?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===16?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===1?[this.max[0],this.max[1],this.min[2]]:[this.max[0],this.max[1],this.max[2]]}},{key:"getPositiveFarPoint",value:function(e){return e.pnVertexFlag===273?Qr([0,0,0],this.max):e.pnVertexFlag===272?[this.max[0],this.max[1],this.min[2]]:e.pnVertexFlag===257?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===256?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===17?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===16?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===1?[this.min[0],this.min[1],this.max[2]]:[this.min[0],this.min[1],this.min[2]]}}],[{key:"isEmpty",value:function(e){return!e||e.halfExtents[0]===0&&e.halfExtents[1]===0&&e.halfExtents[2]===0}}])})(),H0=(function(){function A(t,e){K(this,A),this.distance=t||0,this.normal=e||pA(0,1,0),this.updatePNVertexFlag()}return _(A,[{key:"updatePNVertexFlag",value:function(){this.pnVertexFlag=(+(this.normal[0]>=0)<<8)+(+(this.normal[1]>=0)<<4)+ +(this.normal[2]>=0)}},{key:"distanceToPoint",value:function(e){return xt(e,this.normal)-this.distance}},{key:"normalize",value:function(){var e=1/_l(this.normal);Wn(this.normal,this.normal,e),this.distance*=e}},{key:"intersectsLine",value:function(e,r,n){var i=this.distanceToPoint(e),a=this.distanceToPoint(r),s=i/(i-a),o=s>=0&&s<=1;return o&&n&&ja(n,e,r,s),o}}])})(),k0=(function(){function A(t){if(K(this,A),this.planes=[],t)this.planes=t;else for(var e=0;e<6;e++)this.planes.push(new H0)}return _(A,[{key:"extractFromVPMatrix",value:function(e){var r=vA(e,16),n=r[0],i=r[1],a=r[2],s=r[3],o=r[4],l=r[5],u=r[6],c=r[7],f=r[8],d=r[9],h=r[10],g=r[11],v=r[12],w=r[13],p=r[14],y=r[15];me(this.planes[0].normal,s-n,c-o,g-f),this.planes[0].distance=y-v,me(this.planes[1].normal,s+n,c+o,g+f),this.planes[1].distance=y+v,me(this.planes[2].normal,s+i,c+l,g+d),this.planes[2].distance=y+w,me(this.planes[3].normal,s-i,c-l,g-d),this.planes[3].distance=y-w,me(this.planes[4].normal,s-a,c-u,g-h),this.planes[4].distance=y-p,me(this.planes[5].normal,s+a,c+u,g+h),this.planes[5].distance=y+p,this.planes.forEach(function(E){E.normalize(),E.updatePNVertexFlag()})}}])})(),ye=(function(){function A(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;K(this,A),this.x=0,this.y=0,this.x=t,this.y=e}return _(A,[{key:"clone",value:function(){return new A(this.x,this.y)}},{key:"copyFrom",value:function(e){this.x=e.x,this.y=e.y}}])})(),Fr=(function(){function A(t,e,r,n){K(this,A),this.x=t,this.y=e,this.width=r,this.height=n,this.left=t,this.right=t+r,this.top=e,this.bottom=e+n}return _(A,[{key:"toJSON",value:function(){}}],[{key:"fromRect",value:function(e){return new A(e.x,e.y,e.width,e.height)}},{key:"applyTransform",value:function(e,r){var n=Jr(e.x,e.y,0,1),i=Jr(e.x+e.width,e.y,0,1),a=Jr(e.x,e.y+e.height,0,1),s=Jr(e.x+e.width,e.y+e.height,0,1),o=Je(),l=Je(),u=Je(),c=Je();ct(o,n,r),ct(l,i,r),ct(u,a,r),ct(c,s,r);var f=Math.min(o[0],l[0],u[0],c[0]),d=Math.min(o[1],l[1],u[1],c[1]),h=Math.max(o[0],l[0],u[0],c[0]),g=Math.max(o[1],l[1],u[1],c[1]);return A.fromRect({x:f,y:d,width:h-f,height:g-d})}}])})(),mA="Method not implemented.",L0="Cannot append a destroyed element.";function Ur(A){return A===void 0?0:A>360||A<-360?A%360:A}var us=dA();function ie(A){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Array.isArray(A)&&A.length===3?r?lt(A):Ye(us,A):$e(A)?r?pA(A,t,e):me(us,A,t,e):r?pA(A[0],A[1]||t,A[2]||e):me(us,A[0],A[1]||t,A[2]||e)}var N0=Math.PI/180;function fA(A){return A*N0}var D0=180/Math.PI;function we(A){return A*D0}function P0(A){return 360*A}var ri=Math.PI/2;function O0(A,t){var e=t[0],r=t[1],n=t[2],i=t[3],a=e*e,s=r*r,o=n*n,l=i*i,u=a+s+o+l,c=e*i-r*n;return c>.499995*u?(A[0]=ri,A[1]=2*Math.atan2(r,e),A[2]=0):c<-.499995*u?(A[0]=-ri,A[1]=2*Math.atan2(r,e),A[2]=0):(A[0]=Math.asin(2*(e*n-i*r)),A[1]=Math.atan2(2*(e*i+r*n),1-2*(o+l)),A[2]=Math.atan2(2*(e*r+n*i),1-2*(s+o))),A}function R0(A,t){var e,r,n=mr(dA(),t),i=vA(n,3),a=i[0],s=i[1],o=i[2],l=Math.asin(-t[2]/a);return l<ri?l>-ri?(e=Math.atan2(t[6]/s,t[10]/o),r=Math.atan2(t[1]/a,t[0]/a)):(r=0,e=-Math.atan2(t[4]/s,t[5]/s)):(r=0,e=Math.atan2(t[4]/s,t[5]/s)),A[0]=e,A[1]=l,A[2]=r,A}function cs(A,t){return t.length===16?R0(A,t):O0(A,t)}function K0(A,t,e,r,n){var i=Math.cos(A),a=Math.sin(A);return rg(r*i,n*a,0,-r*a,n*i,0,t,e,1)}function _0(A,t,e,r,n,i,a){var s=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1,o=2*i,l=e-t,u=r-n,c=o/l,f=o/u,d=(e+t)/l,h=(r+n)/u,g,v,w=a-i,p=a*i;return s?(g=-a/w,v=-p/w):(g=-(a+i)/w,v=-2*p/w),A[0]=c,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=f,A[6]=0,A[7]=0,A[8]=d,A[9]=h,A[10]=g,A[11]=-1,A[12]=0,A[13]=0,A[14]=v,A[15]=0,A}function Qu(A){var t=A[0],e=A[1],r=A[3],n=A[4],i=Math.sqrt(t*t+e*e),a=Math.sqrt(r*r+n*n),s=t*n-e*r;if(s<0&&(t<n?i=-i:a=-a),i){var o=1/i;t*=o,e*=o}if(a){var l=1/a;r*=l,n*=l}var u=Math.atan2(e,t),c=we(u);return[A[6],A[7],i,a,c]}var qe=TA(),Le=TA(),Zr=Je(),q=[dA(),dA(),dA()],Fu=dA();function G0(A,t,e,r,n,i){if(!V0(qe,A)||(Gn(Le,qe),Le[3]=0,Le[7]=0,Le[11]=0,Le[15]=1,Math.abs(Fl(Le))<1e-8))return!1;var a=qe[3],s=qe[7],o=qe[11],l=qe[12],u=qe[13],c=qe[14],f=qe[15];if(a!==0||s!==0||o!==0){Zr[0]=a,Zr[1]=s,Zr[2]=o,Zr[3]=f;var d=ot(Le,Le);if(!d)return!1;Ql(Le,Le),ct(n,Zr,Le)}else n[0]=n[1]=n[2]=0,n[3]=1;if(t[0]=l,t[1]=u,t[2]=c,z0(q,qe),e[0]=ut(q[0]),Wt(q[0],q[0]),r[0]=xt(q[0],q[1]),fs(q[1],q[1],q[0],1,-r[0]),e[1]=ut(q[1]),Wt(q[1],q[1]),r[0]/=e[1],r[1]=xt(q[0],q[2]),fs(q[2],q[2],q[0],1,-r[1]),r[2]=xt(q[1],q[2]),fs(q[2],q[2],q[1],1,-r[2]),e[2]=ut(q[2]),Wt(q[2],q[2]),r[1]/=e[2],r[2]/=e[2],Xn(Fu,q[1],q[2]),xt(q[0],Fu)<0)for(var h=0;h<3;h++)e[h]*=-1,q[h][0]*=-1,q[h][1]*=-1,q[h][2]*=-1;return i[0]=.5*Math.sqrt(Math.max(1+q[0][0]-q[1][1]-q[2][2],0)),i[1]=.5*Math.sqrt(Math.max(1-q[0][0]+q[1][1]-q[2][2],0)),i[2]=.5*Math.sqrt(Math.max(1-q[0][0]-q[1][1]+q[2][2],0)),i[3]=.5*Math.sqrt(Math.max(1+q[0][0]+q[1][1]+q[2][2],0)),q[2][1]>q[1][2]&&(i[0]=-i[0]),q[0][2]>q[2][0]&&(i[1]=-i[1]),q[1][0]>q[0][1]&&(i[2]=-i[2]),!0}function V0(A,t){var e=t[15];if(e===0)return!1;for(var r=1/e,n=0;n<16;n++)A[n]=t[n]*r;return!0}function z0(A,t){A[0][0]=t[0],A[0][1]=t[1],A[0][2]=t[2],A[1][0]=t[4],A[1][1]=t[5],A[1][2]=t[6],A[2][0]=t[8],A[2][1]=t[9],A[2][2]=t[10]}function fs(A,t,e,r,n){A[0]=t[0]*r+e[0]*n,A[1]=t[1]*r+e[1]*n,A[2]=t[2]*r+e[2]*n}var yA=(function(A){return A[A.ORBITING=0]="ORBITING",A[A.EXPLORING=1]="EXPLORING",A[A.TRACKING=2]="TRACKING",A})({}),Uu=(function(A){return A[A.DEFAULT=0]="DEFAULT",A[A.ROTATIONAL=1]="ROTATIONAL",A[A.TRANSLATIONAL=2]="TRANSLATIONAL",A[A.CINEMATIC=3]="CINEMATIC",A})({}),Ne=(function(A){return A[A.ORTHOGRAPHIC=0]="ORTHOGRAPHIC",A[A.PERSPECTIVE=1]="PERSPECTIVE",A})({}),W0={UPDATED:"updated"},xu=2e-4,bu=(function(){function A(){K(this,A),this.clipSpaceNearZ=ss.NEGATIVE_ONE,this.eventEmitter=new wl,this.matrix=TA(),this.right=pA(1,0,0),this.up=pA(0,1,0),this.forward=pA(0,0,1),this.position=pA(0,0,1),this.focalPoint=pA(0,0,0),this.distanceVector=pA(0,0,-1),this.distance=1,this.azimuth=0,this.elevation=0,this.roll=0,this.relAzimuth=0,this.relElevation=0,this.relRoll=0,this.dollyingStep=0,this.maxDistance=1/0,this.minDistance=-1/0,this.zoom=1,this.rotateWorld=!1,this.fov=30,this.near=.1,this.far=1e3,this.aspect=1,this.projectionMatrix=TA(),this.projectionMatrixInverse=TA(),this.jitteredProjectionMatrix=void 0,this.enableUpdate=!0,this.type=yA.EXPLORING,this.trackingMode=Uu.DEFAULT,this.projectionMode=Ne.PERSPECTIVE,this.frustum=new k0,this.orthoMatrix=TA()}return _(A,[{key:"isOrtho",value:function(){return this.projectionMode===Ne.ORTHOGRAPHIC}},{key:"getProjectionMode",value:function(){return this.projectionMode}},{key:"getPerspective",value:function(){return this.jitteredProjectionMatrix||this.projectionMatrix}},{key:"getPerspectiveInverse",value:function(){return this.projectionMatrixInverse}},{key:"getFrustum",value:function(){return this.frustum}},{key:"getPosition",value:function(){return this.position}},{key:"getFocalPoint",value:function(){return this.focalPoint}},{key:"getDollyingStep",value:function(){return this.dollyingStep}},{key:"getNear",value:function(){return this.near}},{key:"getFar",value:function(){return this.far}},{key:"getZoom",value:function(){return this.zoom}},{key:"getOrthoMatrix",value:function(){return this.orthoMatrix}},{key:"getView",value:function(){return this.view}},{key:"setEnableUpdate",value:function(e){this.enableUpdate=e}},{key:"setType",value:function(e,r){return this.type=e,this.type===yA.EXPLORING?this.setWorldRotation(!0):this.setWorldRotation(!1),this._getAngles(),this.type===yA.TRACKING&&r!==void 0&&this.setTrackingMode(r),this}},{key:"setProjectionMode",value:function(e){return this.projectionMode=e,this}},{key:"setTrackingMode",value:function(e){if(this.type!==yA.TRACKING)throw new Error("Impossible to set a tracking mode if the camera is not of tracking type");return this.trackingMode=e,this}},{key:"setWorldRotation",value:function(e){return this.rotateWorld=e,this._getAngles(),this}},{key:"getViewTransform",value:function(){return ot(TA(),this.matrix)}},{key:"getWorldTransform",value:function(){return this.matrix}},{key:"jitterProjectionMatrix",value:function(e,r){var n=Ft(TA(),[e,r,0]);this.jitteredProjectionMatrix=Xe(TA(),n,this.projectionMatrix)}},{key:"clearJitterProjectionMatrix",value:function(){this.jitteredProjectionMatrix=void 0}},{key:"setMatrix",value:function(e){return this.matrix=e,this._update(),this}},{key:"setProjectionMatrix",value:function(e){this.projectionMatrix=e}},{key:"setFov",value:function(e){return this.setPerspective(this.near,this.far,e,this.aspect),this}},{key:"setAspect",value:function(e){return this.setPerspective(this.near,this.far,this.fov,e),this}},{key:"setNear",value:function(e){return this.projectionMode===Ne.PERSPECTIVE?this.setPerspective(e,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,e,this.far),this}},{key:"setFar",value:function(e){return this.projectionMode===Ne.PERSPECTIVE?this.setPerspective(this.near,e,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,e),this}},{key:"setViewOffset",value:function(e,r,n,i,a,s){return this.aspect=e/r,this.view===void 0&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=r,this.view.offsetX=n,this.view.offsetY=i,this.view.width=a,this.view.height=s,this.projectionMode===Ne.PERSPECTIVE?this.setPerspective(this.near,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far),this}},{key:"clearViewOffset",value:function(){return this.view!==void 0&&(this.view.enabled=!1),this.projectionMode===Ne.PERSPECTIVE?this.setPerspective(this.near,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far),this}},{key:"setZoom",value:function(e){return this.zoom=e,this.projectionMode===Ne.ORTHOGRAPHIC?this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far):this.projectionMode===Ne.PERSPECTIVE&&this.setPerspective(this.near,this.far,this.fov,this.aspect),this}},{key:"setZoomByViewportPoint",value:function(e,r){var n=this.canvas.viewport2Canvas({x:r[0],y:r[1]}),i=n.x,a=n.y,s=this.roll;this.rotate(0,0,-s),this.setPosition(i,a),this.setFocalPoint(i,a),this.setZoom(e),this.rotate(0,0,s);var o=this.canvas.viewport2Canvas({x:r[0],y:r[1]}),l=o.x,u=o.y,c=pA(l-i,u-a,0),f=xt(c,this.right)/ut(this.right),d=xt(c,this.up)/ut(this.up),h=this.getPosition(),g=vA(h,2),v=g[0],w=g[1],p=this.getFocalPoint(),y=vA(p,2),E=y[0],F=y[1];return this.setPosition(v-f,w-d),this.setFocalPoint(E-f,F-d),this}},{key:"setPerspective",value:function(e,r,n,i){var a;this.projectionMode=Ne.PERSPECTIVE,this.fov=n,this.near=e,this.far=r,this.aspect=i;var s=this.near*Math.tan(fA(.5*this.fov))/this.zoom,o=2*s,l=this.aspect*o,u=-.5*l;if((a=this.view)!==null&&a!==void 0&&a.enabled){var c=this.view.fullWidth,f=this.view.fullHeight;u+=this.view.offsetX*l/c,s-=this.view.offsetY*o/f,l*=this.view.width/c,o*=this.view.height/f}return _0(this.projectionMatrix,u,u+l,s-o,s,e,this.far,this.clipSpaceNearZ===ss.ZERO),ot(this.projectionMatrixInverse,this.projectionMatrix),this.triggerUpdate(),this}},{key:"setOrthographic",value:function(e,r,n,i,a,s){var o;this.projectionMode=Ne.ORTHOGRAPHIC,this.rright=r,this.left=e,this.top=n,this.bottom=i,this.near=a,this.far=s;var l=(this.rright-this.left)/(2*this.zoom),u=(this.top-this.bottom)/(2*this.zoom),c=(this.rright+this.left)/2,f=(this.top+this.bottom)/2,d=c-l,h=c+l,g=f+u,v=f-u;if((o=this.view)!==null&&o!==void 0&&o.enabled){var w=(this.rright-this.left)/this.view.fullWidth/this.zoom,p=(this.top-this.bottom)/this.view.fullHeight/this.zoom;d+=w*this.view.offsetX,h=d+w*this.view.width,g-=p*this.view.offsetY,v=g-p*this.view.height}return this.clipSpaceNearZ===ss.NEGATIVE_ONE?Ll(this.projectionMatrix,d,h,g,v,a,s):Nl(this.projectionMatrix,d,h,g,v,a,s),ot(this.projectionMatrixInverse,this.projectionMatrix),this._getOrthoMatrix(),this.triggerUpdate(),this}},{key:"setPosition",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.position[1],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.position[2],i=ie(e,r,n);return this._setPosition(i),this.setFocalPoint(this.focalPoint),this.triggerUpdate(),this}},{key:"setFocalPoint",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.focalPoint[1],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.focalPoint[2],i=pA(0,1,0);if(this.focalPoint=ie(e,r,n),this.trackingMode===Uu.CINEMATIC){var a=qa(dA(),this.focalPoint,this.position);e=a[0],r=a[1],n=a[2];var s=ut(a),o=we(Math.asin(r/s)),l=90+we(Math.atan2(n,e)),u=TA();bl(u,u,fA(l)),xl(u,u,fA(o)),i=Xr(dA(),[0,1,0],u)}return ot(this.matrix,Dl(TA(),this.position,this.focalPoint,i)),this._getAxes(),this._getDistance(),this._getAngles(),this.triggerUpdate(),this}},{key:"getDistance",value:function(){return this.distance}},{key:"getDistanceVector",value:function(){return this.distanceVector}},{key:"setDistance",value:function(e){if(this.distance===e||e<0)return this;this.distance=e,this.distance<xu&&(this.distance=xu),this.dollyingStep=this.distance/100;var r=dA();e=this.distance;var n=this.forward,i=this.focalPoint;return r[0]=e*n[0]+i[0],r[1]=e*n[1]+i[1],r[2]=e*n[2]+i[2],this._setPosition(r),this.triggerUpdate(),this}},{key:"setMaxDistance",value:function(e){return this.maxDistance=e,this}},{key:"setMinDistance",value:function(e){return this.minDistance=e,this}},{key:"setAzimuth",value:function(e){return this.azimuth=Ur(e),this.computeMatrix(),this._getAxes(),this.type===yA.ORBITING||this.type===yA.EXPLORING?this._getPosition():this.type===yA.TRACKING&&this._getFocalPoint(),this.triggerUpdate(),this}},{key:"getAzimuth",value:function(){return this.azimuth}},{key:"setElevation",value:function(e){return this.elevation=Ur(e),this.computeMatrix(),this._getAxes(),this.type===yA.ORBITING||this.type===yA.EXPLORING?this._getPosition():this.type===yA.TRACKING&&this._getFocalPoint(),this.triggerUpdate(),this}},{key:"getElevation",value:function(){return this.elevation}},{key:"setRoll",value:function(e){return this.roll=Ur(e),this.computeMatrix(),this._getAxes(),this.type===yA.ORBITING||this.type===yA.EXPLORING?this._getPosition():this.type===yA.TRACKING&&this._getFocalPoint(),this.triggerUpdate(),this}},{key:"getRoll",value:function(){return this.roll}},{key:"_update",value:function(){this._getAxes(),this._getPosition(),this._getDistance(),this._getAngles(),this._getOrthoMatrix(),this.triggerUpdate()}},{key:"computeMatrix",value:function(){var e=bt(VA(),[0,0,1],fA(this.roll));Qt(this.matrix);var r=bt(VA(),[1,0,0],fA((this.rotateWorld&&this.type!==yA.TRACKING||this.type===yA.TRACKING?1:-1)*this.elevation)),n=bt(VA(),[0,1,0],fA((this.rotateWorld&&this.type!==yA.TRACKING||this.type===yA.TRACKING?1:-1)*this.azimuth)),i=It(VA(),n,r);i=It(VA(),i,e);var a=Za(TA(),i);this.type===yA.ORBITING||this.type===yA.EXPLORING?(vr(this.matrix,this.matrix,this.focalPoint),Xe(this.matrix,this.matrix,a),vr(this.matrix,this.matrix,[0,0,this.distance])):this.type===yA.TRACKING&&(vr(this.matrix,this.matrix,this.position),Xe(this.matrix,this.matrix,a))}},{key:"_setPosition",value:function(e,r,n){this.position=ie(e,r,n);var i=this.matrix;i[12]=this.position[0],i[13]=this.position[1],i[14]=this.position[2],i[15]=1,this._getOrthoMatrix()}},{key:"_getAxes",value:function(){Ye(this.right,ie(ct(Je(),[1,0,0,0],this.matrix))),Ye(this.up,ie(ct(Je(),[0,1,0,0],this.matrix))),Ye(this.forward,ie(ct(Je(),[0,0,1,0],this.matrix))),Wt(this.right,this.right),Wt(this.up,this.up),Wt(this.forward,this.forward)}},{key:"_getAngles",value:function(){var e=this.distanceVector[0],r=this.distanceVector[1],n=this.distanceVector[2],i=ut(this.distanceVector);if(i===0){this.elevation=0,this.azimuth=0;return}this.type===yA.TRACKING?(this.elevation=we(Math.asin(r/i)),this.azimuth=we(Math.atan2(-e,-n))):this.rotateWorld?(this.elevation=we(Math.asin(r/i)),this.azimuth=we(Math.atan2(-e,-n))):(this.elevation=-we(Math.asin(r/i)),this.azimuth=-we(Math.atan2(-e,-n)))}},{key:"_getPosition",value:function(){Ye(this.position,ie(ct(Je(),[0,0,0,1],this.matrix))),this._getDistance()}},{key:"_getFocalPoint",value:function(){Ig(this.distanceVector,[0,0,-this.distance],tg(Cl(),this.matrix)),Ut(this.focalPoint,this.position,this.distanceVector),this._getDistance()}},{key:"_getDistance",value:function(){this.distanceVector=qa(dA(),this.focalPoint,this.position),this.distance=ut(this.distanceVector),this.dollyingStep=this.distance/100}},{key:"_getOrthoMatrix",value:function(){if(this.projectionMode===Ne.ORTHOGRAPHIC){var e=this.position,r=bt(VA(),[0,0,1],-this.roll*Math.PI/180);Wr(this.orthoMatrix,r,pA((this.rright-this.left)/2-e[0],(this.top-this.bottom)/2-e[1],0),pA(this.zoom,this.zoom,1),e)}}},{key:"triggerUpdate",value:function(){if(this.enableUpdate){var e=this.getViewTransform(),r=Xe(TA(),this.getPerspective(),e);this.getFrustum().extractFromVPMatrix(r),this.eventEmitter.emit(W0.UPDATED)}}},{key:"rotate",value:function(e,r,n){throw new Error(mA)}},{key:"pan",value:function(e,r){throw new Error(mA)}},{key:"dolly",value:function(e){throw new Error(mA)}},{key:"createLandmark",value:function(e,r){throw new Error(mA)}},{key:"gotoLandmark",value:function(e,r){throw new Error(mA)}},{key:"cancelLandmarkAnimation",value:function(){throw new Error(mA)}}])})(),X0=(function(A){return A[A.Standard=0]="Standard",A})({}),hs=(function(A){return A[A.ADDED=0]="ADDED",A[A.REMOVED=1]="REMOVED",A[A.Z_INDEX_CHANGED=2]="Z_INDEX_CHANGED",A})({}),Y0=dA(),qr=TA(),J0=VA();function Iu(A){if(A.localDirtyFlag){var t=A.localSkew[0]!==0||A.localSkew[1]!==0;if(t){Wr(A.localTransform,A.localRotation,A.localPosition,pA(1,1,1),A.origin),(A.localSkew[0]!==0||A.localSkew[1]!==0)&&(Qt(qr),qr[4]=Math.tan(A.localSkew[0]),qr[1]=Math.tan(A.localSkew[1]),Xe(A.localTransform,A.localTransform,qr));var e=Wr(qr,Gl(J0,0,0,0,1),me(Y0,1,1,1),A.localScale,A.origin);Xe(A.localTransform,A.localTransform,e)}else{var r=A.localTransform,n=A.localPosition,i=A.localRotation,a=A.localScale,s=A.origin,o=n[0]!==0||n[1]!==0||n[2]!==0,l=i[3]!==1||i[0]!==0||i[1]!==0||i[2]!==0,u=a[0]!==1||a[1]!==1||a[2]!==1,c=s[0]!==0||s[1]!==0||s[2]!==0;!l&&!u&&!c?o?Ft(r,n):Qt(r):Wr(r,i,n,a,s)}A.localDirtyFlag=!1}}function $0(A,t){A.dirtyFlag&&(t?Xe(A.worldTransform,t.worldTransform,A.localTransform):Gn(A.worldTransform,A.localTransform),A.dirtyFlag=!1)}var Su={absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new Fr(0,0,0,0)},P=(function(A){return A.COORDINATE="<coordinate>",A.COLOR="<color>",A.PAINT="<paint>",A.NUMBER="<number>",A.ANGLE="<angle>",A.OPACITY_VALUE="<opacity-value>",A.SHADOW_BLUR="<shadow-blur>",A.LENGTH="<length>",A.PERCENTAGE="<percentage>",A.LENGTH_PERCENTAGE="<length> | <percentage>",A.LENGTH_PERCENTAGE_12="[<length> | <percentage>]{1,2}",A.LENGTH_PERCENTAGE_14="[<length> | <percentage>]{1,4}",A.LIST_OF_POINTS="<list-of-points>",A.PATH="<path>",A.FILTER="<filter>",A.Z_INDEX="<z-index>",A.OFFSET_DISTANCE="<offset-distance>",A.DEFINED_PATH="<defined-path>",A.MARKER="<marker>",A.TRANSFORM="<transform>",A.TRANSFORM_ORIGIN="<transform-origin>",A.TEXT="<text>",A.TEXT_TRANSFORM="<text-transform>",A})({});function ds(A,t,e){A.prototype=t.prototype=e,e.constructor=A}function Tu(A,t){var e=Object.create(A.prototype);for(var r in t)e[r]=t[r];return e}function jr(){}var An=.7,ni=1/An,xr="\\s*([+-]?\\d+)\\s*",en="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",je="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Z0=/^#([0-9a-f]{3,8})$/,q0=new RegExp(`^rgb\\(${xr},${xr},${xr}\\)$`),j0=new RegExp(`^rgb\\(${je},${je},${je}\\)$`),AB=new RegExp(`^rgba\\(${xr},${xr},${xr},${en}\\)$`),eB=new RegExp(`^rgba\\(${je},${je},${je},${en}\\)$`),tB=new RegExp(`^hsl\\(${en},${je},${je}\\)$`),rB=new RegExp(`^hsla\\(${en},${je},${je},${en}\\)$`),Mu={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ds(jr,ii,{copy(A){return Object.assign(new this.constructor,this,A)},displayable(){return this.rgb().displayable()},hex:Hu,formatHex:Hu,formatHex8:nB,formatHsl:iB,formatRgb:ku,toString:ku});function Hu(){return this.rgb().formatHex()}function nB(){return this.rgb().formatHex8()}function iB(){return Ou(this).formatHsl()}function ku(){return this.rgb().formatRgb()}function ii(A){var t,e;return A=(A+"").trim().toLowerCase(),(t=Z0.exec(A))?(e=t[1].length,t=parseInt(t[1],16),e===6?Lu(t):e===3?new ae(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):e===8?ai(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):e===4?ai(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=q0.exec(A))?new ae(t[1],t[2],t[3],1):(t=j0.exec(A))?new ae(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=AB.exec(A))?ai(t[1],t[2],t[3],t[4]):(t=eB.exec(A))?ai(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tB.exec(A))?Pu(t[1],t[2]/100,t[3]/100,1):(t=rB.exec(A))?Pu(t[1],t[2]/100,t[3]/100,t[4]):Mu.hasOwnProperty(A)?Lu(Mu[A]):A==="transparent"?new ae(NaN,NaN,NaN,0):null}function Lu(A){return new ae(A>>16&255,A>>8&255,A&255,1)}function ai(A,t,e,r){return r<=0&&(A=t=e=NaN),new ae(A,t,e,r)}function aB(A){return A instanceof jr||(A=ii(A)),A?(A=A.rgb(),new ae(A.r,A.g,A.b,A.opacity)):new ae}function sB(A,t,e,r){return arguments.length===1?aB(A):new ae(A,t,e,r??1)}function ae(A,t,e,r){this.r=+A,this.g=+t,this.b=+e,this.opacity=+r}ds(ae,sB,Tu(jr,{brighter(A){return A=A==null?ni:Math.pow(ni,A),new ae(this.r*A,this.g*A,this.b*A,this.opacity)},darker(A){return A=A==null?An:Math.pow(An,A),new ae(this.r*A,this.g*A,this.b*A,this.opacity)},rgb(){return this},clamp(){return new ae(Xt(this.r),Xt(this.g),Xt(this.b),si(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Nu,formatHex:Nu,formatHex8:oB,formatRgb:Du,toString:Du}));function Nu(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}`}function oB(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}${Yt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Du(){const A=si(this.opacity);return`${A===1?"rgb(":"rgba("}${Xt(this.r)}, ${Xt(this.g)}, ${Xt(this.b)}${A===1?")":`, ${A})`}`}function si(A){return isNaN(A)?1:Math.max(0,Math.min(1,A))}function Xt(A){return Math.max(0,Math.min(255,Math.round(A)||0))}function Yt(A){return A=Xt(A),(A<16?"0":"")+A.toString(16)}function Pu(A,t,e,r){return r<=0?A=t=e=NaN:e<=0||e>=1?A=t=NaN:t<=0&&(A=NaN),new De(A,t,e,r)}function Ou(A){if(A instanceof De)return new De(A.h,A.s,A.l,A.opacity);if(A instanceof jr||(A=ii(A)),!A)return new De;if(A instanceof De)return A;A=A.rgb();var t=A.r/255,e=A.g/255,r=A.b/255,n=Math.min(t,e,r),i=Math.max(t,e,r),a=NaN,s=i-n,o=(i+n)/2;return s?(t===i?a=(e-r)/s+(e<r)*6:e===i?a=(r-t)/s+2:a=(t-e)/s+4,s/=o<.5?i+n:2-i-n,a*=60):s=o>0&&o<1?0:a,new De(a,s,o,A.opacity)}function lB(A,t,e,r){return arguments.length===1?Ou(A):new De(A,t,e,r??1)}function De(A,t,e,r){this.h=+A,this.s=+t,this.l=+e,this.opacity=+r}ds(De,lB,Tu(jr,{brighter(A){return A=A==null?ni:Math.pow(ni,A),new De(this.h,this.s,this.l*A,this.opacity)},darker(A){return A=A==null?An:Math.pow(An,A),new De(this.h,this.s,this.l*A,this.opacity)},rgb(){var A=this.h%360+(this.h<0)*360,t=isNaN(A)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*t,n=2*e-r;return new ae(gs(A>=240?A-240:A+120,n,r),gs(A,n,r),gs(A<120?A+240:A-120,n,r),this.opacity)},clamp(){return new De(Ru(this.h),oi(this.s),oi(this.l),si(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const A=si(this.opacity);return`${A===1?"hsl(":"hsla("}${Ru(this.h)}, ${oi(this.s)*100}%, ${oi(this.l)*100}%${A===1?")":`, ${A})`}`}}));function Ru(A){return A=(A||0)%360,A<0?A+360:A}function oi(A){return Math.max(0,Math.min(1,A||0))}function gs(A,t,e){return(A<60?t+(e-t)*A/60:A<180?e:A<240?t+(e-t)*(240-A)/60:t)*255}function zA(A,t){if(typeof A!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");var e=function(){for(var n=arguments.length,i=new Array(n),a=0;a<n;a++)i[a]=arguments[a];var s=t?t.apply(this,i):i[0],o=e.cache;if(o.has(s))return o.get(s);var l=A.apply(this,i);return e.cache=o.set(s,l)||o,l};return e.cache=new(zA.Cache||Map),zA.cacheList.push(e.cache),e}zA.Cache=Map,zA.cacheList=[],zA.clearCache=function(){zA.cacheList.forEach(function(A){return A.clear()})};var G=(function(A){return A[A.kUnknown=0]="kUnknown",A[A.kNumber=1]="kNumber",A[A.kPercentage=2]="kPercentage",A[A.kEms=3]="kEms",A[A.kPixels=4]="kPixels",A[A.kRems=5]="kRems",A[A.kDegrees=6]="kDegrees",A[A.kRadians=7]="kRadians",A[A.kGradians=8]="kGradians",A[A.kTurns=9]="kTurns",A[A.kMilliseconds=10]="kMilliseconds",A[A.kSeconds=11]="kSeconds",A[A.kInteger=12]="kInteger",A})({}),Pe=(function(A){return A[A.kUNumber=0]="kUNumber",A[A.kUPercent=1]="kUPercent",A[A.kULength=2]="kULength",A[A.kUAngle=3]="kUAngle",A[A.kUTime=4]="kUTime",A[A.kUOther=5]="kUOther",A})({}),uB=(function(A){return A[A.kYes=0]="kYes",A[A.kNo=1]="kNo",A})({}),cB=(function(A){return A[A.kYes=0]="kYes",A[A.kNo=1]="kNo",A})({}),fB=[{name:"em",unit_type:G.kEms},{name:"px",unit_type:G.kPixels},{name:"deg",unit_type:G.kDegrees},{name:"rad",unit_type:G.kRadians},{name:"grad",unit_type:G.kGradians},{name:"ms",unit_type:G.kMilliseconds},{name:"s",unit_type:G.kSeconds},{name:"rem",unit_type:G.kRems},{name:"turn",unit_type:G.kTurns}],br=(function(A){return A[A.kUnknownType=0]="kUnknownType",A[A.kUnparsedType=1]="kUnparsedType",A[A.kKeywordType=2]="kKeywordType",A[A.kUnitType=3]="kUnitType",A[A.kSumType=4]="kSumType",A[A.kProductType=5]="kProductType",A[A.kNegateType=6]="kNegateType",A[A.kInvertType=7]="kInvertType",A[A.kMinType=8]="kMinType",A[A.kMaxType=9]="kMaxType",A[A.kClampType=10]="kClampType",A[A.kTransformType=11]="kTransformType",A[A.kPositionType=12]="kPositionType",A[A.kURLImageType=13]="kURLImageType",A[A.kColorType=14]="kColorType",A[A.kUnsupportedColorType=15]="kUnsupportedColorType",A})({}),hB=function(t){return fB.find(function(e){return e.name===t}).unit_type},dB=function(t){return t?t==="number"?G.kNumber:t==="percent"||t==="%"?G.kPercentage:hB(t):G.kUnknown},gB=function(t){switch(t){case G.kNumber:case G.kInteger:return Pe.kUNumber;case G.kPercentage:return Pe.kUPercent;case G.kPixels:return Pe.kULength;case G.kMilliseconds:case G.kSeconds:return Pe.kUTime;case G.kDegrees:case G.kRadians:case G.kGradians:case G.kTurns:return Pe.kUAngle;default:return Pe.kUOther}},BB=function(t){switch(t){case Pe.kUNumber:return G.kNumber;case Pe.kULength:return G.kPixels;case Pe.kUPercent:return G.kPercentage;case Pe.kUTime:return G.kSeconds;case Pe.kUAngle:return G.kDegrees;default:return G.kUnknown}},Ku=function(t){var e=1;switch(t){case G.kPixels:case G.kDegrees:case G.kSeconds:break;case G.kMilliseconds:e=.001;break;case G.kRadians:e=180/Math.PI;break;case G.kGradians:e=.9;break;case G.kTurns:e=360;break}return e},Bs=function(t){switch(t){case G.kNumber:case G.kInteger:return"";case G.kPercentage:return"%";case G.kEms:return"em";case G.kRems:return"rem";case G.kPixels:return"px";case G.kDegrees:return"deg";case G.kRadians:return"rad";case G.kGradians:return"grad";case G.kMilliseconds:return"ms";case G.kSeconds:return"s";case G.kTurns:return"turn"}return""},li=(function(){function A(){K(this,A)}return _(A,[{key:"toString",value:function(){return this.buildCSSText(uB.kNo,cB.kNo,"")}},{key:"isNumericValue",value:function(){return this.getType()>=br.kUnitType&&this.getType()<=br.kClampType}}],[{key:"isAngle",value:function(e){return e===G.kDegrees||e===G.kRadians||e===G.kGradians||e===G.kTurns}},{key:"isLength",value:function(e){return e>=G.kEms&&e<G.kDegrees}},{key:"isRelativeUnit",value:function(e){return e===G.kPercentage||e===G.kEms||e===G.kRems}},{key:"isTime",value:function(e){return e===G.kSeconds||e===G.kMilliseconds}}])})(),vB=(function(A){function t(e){var r;return K(this,t),r=uA(this,t),r.colorSpace=e,r}return cA(t,A),_(t,[{key:"getType",value:function(){return br.kColorType}},{key:"to",value:function(r){return this}}])})(li),Ir=(function(A){return A[A.Constant=0]="Constant",A[A.LinearGradient=1]="LinearGradient",A[A.RadialGradient=2]="RadialGradient",A})({}),ui=(function(A){function t(e,r){var n;return K(this,t),n=uA(this,t),n.type=e,n.value=r,n}return cA(t,A),_(t,[{key:"clone",value:function(){return new t(this.type,this.value)}},{key:"buildCSSText",value:function(r,n,i){return i}},{key:"getType",value:function(){return br.kColorType}}])})(li),Ce=(function(A){function t(e){var r;return K(this,t),r=uA(this,t),r.value=e,r}return cA(t,A),_(t,[{key:"clone",value:function(){return new t(this.value)}},{key:"getType",value:function(){return br.kKeywordType}},{key:"buildCSSText",value:function(r,n,i){return i+this.value}}])})(li),pB=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r="";return Number.isFinite(t)?r="NaN":t>0?r="infinity":r="-infinity",r+=e},vs=function(t){return BB(gB(t))},BA=(function(A){function t(e){var r,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:G.kNumber;K(this,t),r=uA(this,t);var i;return typeof n=="string"?i=dB(n):i=n,r.unit=i,r.value=e,r}return cA(t,A),_(t,[{key:"clone",value:function(){return new t(this.value,this.unit)}},{key:"equals",value:function(r){var n=r;return this.value===n.value&&this.unit===n.unit}},{key:"getType",value:function(){return br.kUnitType}},{key:"convertTo",value:function(r){if(this.unit===r)return new t(this.value,this.unit);var n=vs(this.unit);if(n!==vs(r)||n===G.kUnknown)return null;var i=Ku(this.unit)/Ku(r);return new t(this.value*i,r)}},{key:"buildCSSText",value:function(r,n,i){var a;switch(this.unit){case G.kUnknown:break;case G.kInteger:a=Number(this.value).toFixed(0);break;case G.kNumber:case G.kPercentage:case G.kEms:case G.kRems:case G.kPixels:case G.kDegrees:case G.kRadians:case G.kGradians:case G.kMilliseconds:case G.kSeconds:case G.kTurns:{var s=-999999,o=999999,l=this.value,u=Bs(this.unit);if(l<s||l>o){var c=Bs(this.unit);!Number.isFinite(l)||Number.isNaN(l)?a=pB(l,c):a=l+(c||"")}else a="".concat(l).concat(u)}}return i+=a,i}}])})(li),Oe=new BA(0,"px");new BA(1,"px");var Jt=new BA(0,"deg"),ps=(function(A){function t(e,r,n){var i,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;return K(this,t),i=uA(this,t,["rgb"]),i.r=e,i.g=r,i.b=n,i.alpha=a,i.isNone=s,i}return cA(t,A),_(t,[{key:"clone",value:function(){return new t(this.r,this.g,this.b,this.alpha)}},{key:"buildCSSText",value:function(r,n,i){return"".concat(i,"rgba(").concat(this.r,",").concat(this.g,",").concat(this.b,",").concat(this.alpha,")")}}])})(vB),_u=new Ce("unset"),mB=new Ce("initial"),yB=new Ce("inherit"),ms={"":_u,unset:_u,initial:mB,inherit:yB},wB=function(t){return ms[t]||(ms[t]=new Ce(t)),ms[t]},Gu=new ps(0,0,0,0,!0),Vu=new ps(0,0,0,0),CB=zA(function(A,t,e,r){return new ps(A,t,e,r)},function(A,t,e,r){return"rgba(".concat(A,",").concat(t,",").concat(e,",").concat(r,")")}),UA=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:G.kNumber;return new BA(t,e)};new BA(50,"%");function EB(A){var t=A.type,e=A.value;return t==="hex"?"#".concat(e):t==="literal"?e:t==="rgb"?"rgb(".concat(e.join(","),")"):"rgba(".concat(e.join(","),")")}var QB=(function(){var A={linearGradient:/^(linear\-gradient)/i,repeatingLinearGradient:/^(repeating\-linear\-gradient)/i,radialGradient:/^(radial\-gradient)/i,repeatingRadialGradient:/^(repeating\-radial\-gradient)/i,conicGradient:/^(conic\-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,percentageValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,emValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,angleValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^\#([0-9a-fA-F]+)/,literalColor:/^([a-zA-Z]+)/,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,number:/^(([0-9]*\.[0-9]+)|([0-9]+\.?))/},t="";function e(M){throw new Error("".concat(t,": ").concat(M))}function r(){var M=n();return t.length>0&&e("Invalid input not EOF"),M}function n(){return y(i)}function i(){return a("linear-gradient",A.linearGradient,o)||a("repeating-linear-gradient",A.repeatingLinearGradient,o)||a("radial-gradient",A.radialGradient,c)||a("repeating-radial-gradient",A.repeatingRadialGradient,c)||a("conic-gradient",A.conicGradient,c)}function a(M,L,N){return s(L,function(O){var z=N();return z&&(b(A.comma)||e("Missing comma before color stops")),{type:M,orientation:z,colorStops:y(E)}})}function s(M,L){var N=b(M);if(N){b(A.startCall)||e("Missing (");var O=L(N);return b(A.endCall)||e("Missing )"),O}}function o(){return l()||u()}function l(){return H("directional",A.sideOrCorner,1)}function u(){return H("angular",A.angleValue,1)}function c(){var M,L=f(),N;return L&&(M=[],M.push(L),N=t,b(A.comma)&&(L=f(),L?M.push(L):t=N)),M}function f(){var M=d()||h();if(M)M.at=v();else{var L=g();if(L){M=L;var N=v();N&&(M.at=N)}else{var O=w();O&&(M={type:"default-radial",at:O})}}return M}function d(){var M=H("shape",/^(circle)/i,0);return M&&(M.style=I()||g()),M}function h(){var M=H("shape",/^(ellipse)/i,0);return M&&(M.style=S()||g()),M}function g(){return H("extent-keyword",A.extentKeywords,1)}function v(){if(H("position",/^at/,0)){var M=w();return M||e("Missing positioning value"),M}}function w(){var M=p();if(M.x||M.y)return{type:"position",value:M}}function p(){return{x:S(),y:S()}}function y(M){var L=M(),N=[];if(L)for(N.push(L);b(A.comma);)L=M(),L?N.push(L):e("One extra comma");return N}function E(){var M=F();return M||e("Expected color definition"),M.length=S(),M}function F(){return T()||m()||B()||x()}function x(){return H("literal",A.literalColor,0)}function T(){return H("hex",A.hexColor,1)}function B(){return s(A.rgbColor,function(){return{type:"rgb",value:y(C)}})}function m(){return s(A.rgbaColor,function(){return{type:"rgba",value:y(C)}})}function C(){return b(A.number)[1]}function S(){return H("%",A.percentageValue,1)||U()||I()}function U(){return H("position-keyword",A.positionKeywords,1)}function I(){return H("px",A.pixelValue,1)||H("em",A.emValue,1)}function H(M,L,N){var O=b(L);if(O)return{type:M,value:O[N]}}function b(M){var L=/^[\n\r\t\s]+/.exec(t);L&&k(L[0].length);var N=M.exec(t);return N&&k(N[0].length),N}function k(M){t=t.substring(M)}return function(M){return t=M,r()}})();function FB(A,t,e,r){var n=fA(r.value),i=0,a=0,s=i+t/2,o=a+e/2,l=Math.abs(t*Math.cos(n))+Math.abs(e*Math.sin(n)),u=A[0]+s-Math.cos(n)*l/2,c=A[1]+o-Math.sin(n)*l/2,f=A[0]+s+Math.cos(n)*l/2,d=A[1]+o+Math.sin(n)*l/2;return{x1:u,y1:c,x2:f,y2:d}}function UB(A,t,e,r,n,i){var a=r.value,s=n.value;r.unit===G.kPercentage&&(a=r.value/100*t),n.unit===G.kPercentage&&(s=n.value/100*e);var o=Math.max(ce([0,0],[a,s]),ce([0,e],[a,s]),ce([t,e],[a,s]),ce([t,0],[a,s]));return i&&(i instanceof BA?o=i.value:i instanceof Ce&&(i.value==="closest-side"?o=Math.min(a,t-a,s,e-s):i.value==="farthest-side"?o=Math.max(a,t-a,s,e-s):i.value==="closest-corner"&&(o=Math.min(ce([0,0],[a,s]),ce([0,e],[a,s]),ce([t,e],[a,s]),ce([t,0],[a,s]))))),{x:a+A[0],y:s+A[1],r:o}}var xB=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,bB=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,IB=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,zu=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function SB(A){var t,e=A.length;if(A[e-1].length=(t=A[e-1].length)!==null&&t!==void 0?t:{type:"%",value:"100"},e>1){var r;A[0].length=(r=A[0].length)!==null&&r!==void 0?r:{type:"%",value:"0"}}for(var n=0,i=Number(A[0].length.value),a=1;a<e;a++){var s,o=(s=A[a].length)===null||s===void 0?void 0:s.value;if(!CA(o)&&!CA(i)){for(var l=1;l<a-n;l++)A[n+l].length={type:"%",value:"".concat(i+(Number(o)-i)*l/(a-n))};n=a,i=Number(o)}}}var TB={left:180,top:-90,bottom:90,right:0,"left top":225,"top left":225,"left bottom":135,"bottom left":135,"right top":-45,"top right":-45,"right bottom":45,"bottom right":45},MB=zA(function(A){var t;return A.type==="angular"?t=Number(A.value):t=TB[A.value]||0,UA(t,"deg")}),HB=zA(function(A){var t=50,e=50,r="%",n="%";if(A?.type==="position"){var i=A.value,a=i.x,s=i.y;a?.type==="position-keyword"&&(a.value==="left"?t=0:a.value==="center"?t=50:a.value==="right"?t=100:a.value==="top"?e=0:a.value==="bottom"&&(e=100)),s?.type==="position-keyword"&&(s.value==="left"?t=0:s.value==="center"?e=50:s.value==="right"?t=100:s.value==="top"?e=0:s.value==="bottom"&&(e=100)),(a?.type==="px"||a?.type==="%"||a?.type==="em")&&(r=a?.type,t=Number(a.value)),(s?.type==="px"||s?.type==="%"||s?.type==="em")&&(n=s?.type,e=Number(s.value))}return{cx:UA(t,r),cy:UA(e,n)}}),kB=zA(function(A){if(A.indexOf("linear")>-1||A.indexOf("radial")>-1){var t=QB(A);return t.map(function(s){var o=s.type,l=s.orientation,u=s.colorStops;SB(u);var c=u.map(function(y){return{offset:UA(Number(y.length.value),"%"),color:EB(y)}});if(o==="linear-gradient")return new ui(Ir.LinearGradient,{angle:l?MB(l):Jt,steps:c});if(o==="radial-gradient"&&(l||(l=[{type:"shape",value:"circle"}]),l[0].type==="shape"&&l[0].value==="circle")){var f=HB(l[0].at),d=f.cx,h=f.cy,g;if(l[0].style){var v=l[0].style,w=v.type,p=v.value;w==="extent-keyword"?g=wB(p):g=UA(p,w)}return new ui(Ir.RadialGradient,{cx:d,cy:h,size:g,steps:c})}})}var e=A[0];if(A[1]==="("||A[2]==="("){if(e==="l"){var r=xB.exec(A);if(r){var n,i=((n=r[2].match(zu))===null||n===void 0?void 0:n.map(function(s){return s.split(":")}))||[];return[new ui(Ir.LinearGradient,{angle:UA(parseFloat(r[1]),"deg"),steps:i.map(function(s){var o=vA(s,2),l=o[0],u=o[1];return{offset:UA(Number(l)*100,"%"),color:u}})})]}}else if(e==="r"){var a=LB(A);if(a)if(ee(a))A=a;else return[new ui(Ir.RadialGradient,a)]}else if(e==="p")return NB(A)}});function LB(A){var t=bB.exec(A);if(t){var e,r=((e=t[4].match(zu))===null||e===void 0?void 0:e.map(function(n){return n.split(":")}))||[];return{cx:UA(50,"%"),cy:UA(50,"%"),steps:r.map(function(n){var i=vA(n,2),a=i[0],s=i[1];return{offset:UA(Number(a)*100,"%"),color:s}})}}return null}function NB(A){var t=IB.exec(A);if(t){var e=t[1],r=t[2];switch(e){case"a":e="repeat";break;case"x":e="repeat-x";break;case"y":e="repeat-y";break;case"n":e="no-repeat";break;default:e="no-repeat"}return{image:r,repetition:e}}return null}function ys(A){return A&&!!A.image}function ci(A){return A&&!CA(A.r)&&!CA(A.g)&&!CA(A.b)}var tn=zA(function(A){if(ys(A))return iA({repetition:"repeat"},A);if(CA(A)&&(A=""),A==="transparent")return Vu;if(A==="currentColor")A="black";else if(A==="none")return Gu;var t=kB(A);if(t)return t;var e=ii(A),r=[0,0,0,0];return e!==null&&(r[0]=e.r||0,r[1]=e.g||0,r[2]=e.b||0,r[3]=e.opacity),CB.apply(void 0,r)});function DB(A,t){if(!(!ci(A)||!ci(t)))return[[Number(A.r),Number(A.g),Number(A.b),Number(A.alpha)],[Number(t.r),Number(t.g),Number(t.b),Number(t.alpha)],function(e){var r=e.slice();if(r[3])for(var n=0;n<3;n++)r[n]=Math.round(ke(r[n],0,255));return r[3]=ke(r[3],0,1),"rgba(".concat(r.join(","),")")}]}function rn(A,t){if(CA(t))return UA(0,"px");if(t="".concat(t).trim().toLowerCase(),isFinite(Number(t))){if("px".search(A)>=0)return UA(Number(t),"px");if("deg".search(A)>=0)return UA(Number(t),"deg")}var e=[];t=t.replace(A,function(n){return e.push(n),"U".concat(n)});var r="U(".concat(A.source,")");return e.map(function(n){return UA(Number(t.replace(new RegExp("U".concat(n),"g"),"").replace(new RegExp(r,"g"),"*0")),n)})[0]}var Wu=function(t){return rn(new RegExp("px","g"),t)},PB=zA(Wu),OB=function(t){return rn(new RegExp("%","g"),t)};zA(OB);var Xu=function(t){return $e(t)||isFinite(Number(t))?UA(Number(t)||0,"px"):rn(new RegExp("px|%|em|rem","g"),t)},ws=zA(Xu),Yu=function(t){return rn(new RegExp("deg|rad|grad|turn","g"),t)},RB=zA(Yu);function KB(A,t,e,r){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,i="",a=A.value||0,s=t.value||0,o=vs(A.unit),l=A.convertTo(o),u=t.convertTo(o);return l&&u?(a=l.value,s=u.value,i=Bs(A.unit)):(BA.isLength(A.unit)||BA.isLength(t.unit))&&(a=he(A,n,e),s=he(t,n,e),i="px"),[a,s,function(c){return c+i}]}function se(A){var t=0;return A.unit===G.kDegrees?t=A.value:A.unit===G.kRadians?t=we(Number(A.value)):A.unit===G.kTurns?t=P0(Number(A.value)):A.value&&(t=A.value),t}function Ju(A,t){var e;return Array.isArray(A)?e=A.map(function(r){return Number(r)}):ee(A)?e=A.split(" ").map(function(r){return Number(r)}):$e(A)&&(e=[A]),t===2?e.length===1?[e[0],e[0]]:[e[0],e[1]]:t===4?e.length===1?[e[0],e[0],e[0],e[0]]:e.length===2?[e[0],e[1],e[0],e[1]]:e.length===3?[e[0],e[1],e[2],e[1]]:[e[0],e[1],e[2],e[3]]:t==="even"&&e.length%2===1?[].concat(oA(e),oA(e)):e}function he(A,t,e){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(A.unit===G.kPixels)return Number(A.value);if(A.unit===G.kPercentage&&e){var n=e.nodeName===Y.GROUP?e.getLocalBounds():e.getGeometryBounds();return(r?n.min[t]:0)+A.value/100*n.halfExtents[t]*2}return 0}var _B=function(t){return rn(/deg|rad|grad|turn|px|%/g,t)},GB=["blur","brightness","drop-shadow","contrast","grayscale","sepia","saturate","hue-rotate","invert"];function VB(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(A=A.toLowerCase().trim(),A==="none")return[];for(var t=/\s*([\w-]+)\(([^)]*)\)/g,e=[],r,n=0;r=t.exec(A);){if(r.index!==n)return[];if(n=r.index+r[0].length,GB.indexOf(r[1])>-1&&e.push({name:r[1],params:r[2].split(" ").map(function(i){return _B(i)||tn(i)})}),t.lastIndex===A.length)return e}return[]}function $u(A){return A.toString()}var Zu=function(t){return typeof t=="number"?UA(t):/^\s*[-+]?(\d*\.)?\d+\s*$/.test(t)?UA(Number(t)):UA(0)},Cs=zA(Zu);zA(function(A){return ee(A)?A.split(" ").map(Cs):A.map(Cs)});function Es(A,t){return[A,t,$u]}function Qs(A,t){return function(e,r){return[e,r,function(n){return $u(ke(n,A,t))}]}}function qu(A,t){if(A.length===t.length)return[A,t,function(e){return e}]}function ju(A){return A.parsedStyle.d.totalLength===0&&(A.parsedStyle.d.totalLength=u0(A.parsedStyle.d.absolutePath)),A.parsedStyle.d.totalLength}function zB(A){return A.parsedStyle.points.totalLength===0&&(A.parsedStyle.points.totalLength=U0(A.parsedStyle.points.points)),A.parsedStyle.points.totalLength}function WB(A){for(var t=0;t<A.length;t++){var e=A[t-1],r=A[t],n=r[0];if(n==="M"&&e){var i=e[0],a=[r[1],r[2]],s=void 0;i==="L"||i==="M"?s=[e[1],e[2]]:(i==="C"||i==="A"||i==="Q")&&(s=[e[e.length-2],e[e.length-1]]),s&&fi(a,s)&&(A.splice(t,1),t--)}}}function XB(A){for(var t=!1,e=A.length,r=0;r<e;r++){var n=A[r],i=n[0];if(i==="C"||i==="A"||i==="Q"){t=!0;break}}return t}function YB(A){for(var t=[],e=[],r=[],n=0;n<A.length;n++){var i=A[n],a=i[0];a==="M"?(r.length&&(e.push(r),r=[]),r.push([i[1],i[2]])):a==="Z"?r.length&&(t.push(r),r=[]):r.push([i[1],i[2]])}return r.length>0&&e.push(r),{polygons:t,polylines:e}}function fi(A,t){return A[0]===t[0]&&A[1]===t[1]}function JB(A,t){for(var e=[],r=[],n=[],i=0;i<A.length;i++){var a=A[i],s=a.currentPoint,o=a.params,l=a.prePoint,u=void 0;switch(a.command){case"Q":u=x0(l[0],l[1],o[1],o[2],o[3],o[4]);break;case"C":u=Q0(l[0],l[1],o[1],o[2],o[3],o[4],o[5],o[6]);break;case"A":var c=a.arcParams;u=E0(c.cx,c.cy,c.rx,c.ry,c.xRotation,c.startAngle,c.endAngle);break;default:e.push(s[0]),r.push(s[1]);break}u&&(a.box=u,e.push(u.x,u.x+u.width),r.push(u.y,u.y+u.height))}e=e.filter(function(E){return!Number.isNaN(E)&&E!==1/0&&E!==-1/0}),r=r.filter(function(E){return!Number.isNaN(E)&&E!==1/0&&E!==-1/0});var f=Xl(e),d=Xl(r),h=Wl(e),g=Wl(r);if(n.length===0)return{x:f,y:d,width:h-f,height:g-d};for(var v=0;v<n.length;v++){var w=n[v],p=w.currentPoint,y=void 0;p[0]===f?(y=hi(w,t),f-=y.xExtra):p[0]===h&&(y=hi(w,t),h+=y.xExtra),p[1]===d?(y=hi(w,t),d-=y.yExtra):p[1]===g&&(y=hi(w,t),g+=y.yExtra)}return{x:f,y:d,width:h-f,height:g-d}}function hi(A,t){var e=A.prePoint,r=A.currentPoint,n=A.nextPoint,i=Math.pow(r[0]-e[0],2)+Math.pow(r[1]-e[1],2),a=Math.pow(r[0]-n[0],2)+Math.pow(r[1]-n[1],2),s=Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2),o=Math.acos((i+a-s)/(2*Math.sqrt(i)*Math.sqrt(a)));if(!o||Math.sin(o)===0||yr(o,0))return{xExtra:0,yExtra:0};var l=Math.abs(Math.atan2(n[1]-r[1],n[0]-r[0])),u=Math.abs(Math.atan2(n[0]-r[0],n[1]-r[1]));l=l>Math.PI/2?Math.PI-l:l,u=u>Math.PI/2?Math.PI-u:u;var c={xExtra:Math.cos(o/2-l)*(t/2*(1/Math.sin(o/2)))-t/2||0,yExtra:Math.cos(u-o/2)*(t/2*(1/Math.sin(o/2)))-t/2||0};return c}function Ac(A,t){return[t[0]+(t[0]-A[0]),t[1]+(t[1]-A[1])]}var ec=function(t,e){var r=t.x*e.x+t.y*e.y,n=Math.sqrt((Math.pow(t.x,2)+Math.pow(t.y,2))*(Math.pow(e.x,2)+Math.pow(e.y,2))),i=t.x*e.y-t.y*e.x<0?-1:1,a=i*Math.acos(r/n);return a},tc=function(t,e,r,n,i,a,s,o){e=Math.abs(e),r=Math.abs(r),n=Yl(n,360);var l=fA(n);if(t.x===s.x&&t.y===s.y)return{x:t.x,y:t.y,ellipticalArcAngle:0};if(e===0||r===0)return{x:0,y:0,ellipticalArcAngle:0};var u=(t.x-s.x)/2,c=(t.y-s.y)/2,f={x:Math.cos(l)*u+Math.sin(l)*c,y:-Math.sin(l)*u+Math.cos(l)*c},d=Math.pow(f.x,2)/Math.pow(e,2)+Math.pow(f.y,2)/Math.pow(r,2);d>1&&(e*=Math.sqrt(d),r*=Math.sqrt(d));var h=Math.pow(e,2)*Math.pow(r,2)-Math.pow(e,2)*Math.pow(f.y,2)-Math.pow(r,2)*Math.pow(f.x,2),g=Math.pow(e,2)*Math.pow(f.y,2)+Math.pow(r,2)*Math.pow(f.x,2),v=h/g;v=v<0?0:v;var w=(i!==a?1:-1)*Math.sqrt(v),p={x:w*(e*f.y/r),y:w*(-(r*f.x)/e)},y={x:Math.cos(l)*p.x-Math.sin(l)*p.y+(t.x+s.x)/2,y:Math.sin(l)*p.x+Math.cos(l)*p.y+(t.y+s.y)/2},E={x:(f.x-p.x)/e,y:(f.y-p.y)/r},F=ec({x:1,y:0},E),x={x:(-f.x-p.x)/e,y:(-f.y-p.y)/r},T=ec(E,x);!a&&T>0?T-=2*Math.PI:a&&T<0&&(T+=2*Math.PI),T%=2*Math.PI;var B=F+T*o,m=e*Math.cos(B),C=r*Math.sin(B),S={x:Math.cos(l)*m-Math.sin(l)*C+y.x,y:Math.sin(l)*m+Math.cos(l)*C+y.y,ellipticalArcStartAngle:F,ellipticalArcEndAngle:F+T,ellipticalArcAngle:B,ellipticalArcCenter:y,resultantRx:e,resultantRy:r};return S};function $B(A){for(var t=[],e=null,r=null,n=null,i=0,a=A.length,s=0;s<a;s++){var o=A[s];r=A[s+1];var l=o[0],u={command:l,prePoint:e,params:o,startTangent:null,endTangent:null,currentPoint:null,nextPoint:null,arcParams:null,box:null,cubicParams:null};switch(l){case"M":n=[o[1],o[2]],i=s;break;case"A":var c=ZB(e,o);u.arcParams=c;break}if(l==="Z")e=n,r=A[i+1];else{var f=o.length;e=[o[f-2],o[f-1]]}r&&r[0]==="Z"&&(r=A[i],t[i]&&(t[i].prePoint=e)),u.currentPoint=e,t[i]&&fi(e,t[i].currentPoint)&&(t[i].prePoint=u.prePoint);var d=r?[r[r.length-2],r[r.length-1]]:null;u.nextPoint=d;var h=u.prePoint;if(["L","H","V"].includes(l))u.startTangent=[h[0]-e[0],h[1]-e[1]],u.endTangent=[e[0]-h[0],e[1]-h[1]];else if(l==="Q"){var g=[o[1],o[2]];u.startTangent=[h[0]-g[0],h[1]-g[1]],u.endTangent=[e[0]-g[0],e[1]-g[1]]}else if(l==="T"){var v=t[s-1],w=Ac(v.currentPoint,h);v.command==="Q"?(u.command="Q",u.startTangent=[h[0]-w[0],h[1]-w[1]],u.endTangent=[e[0]-w[0],e[1]-w[1]]):(u.command="TL",u.startTangent=[h[0]-e[0],h[1]-e[1]],u.endTangent=[e[0]-h[0],e[1]-h[1]])}else if(l==="C"){var p=[o[1],o[2]],y=[o[3],o[4]];u.startTangent=[h[0]-p[0],h[1]-p[1]],u.endTangent=[e[0]-y[0],e[1]-y[1]],u.startTangent[0]===0&&u.startTangent[1]===0&&(u.startTangent=[p[0]-y[0],p[1]-y[1]]),u.endTangent[0]===0&&u.endTangent[1]===0&&(u.endTangent=[y[0]-p[0],y[1]-p[1]])}else if(l==="S"){var E=t[s-1],F=Ac(E.currentPoint,h),x=[o[1],o[2]];E.command==="C"?(u.command="C",u.startTangent=[h[0]-F[0],h[1]-F[1]],u.endTangent=[e[0]-x[0],e[1]-x[1]]):(u.command="SQ",u.startTangent=[h[0]-x[0],h[1]-x[1]],u.endTangent=[e[0]-x[0],e[1]-x[1]])}else if(l==="A"){var T=rc(u,0),B=T.x,m=T.y,C=rc(u,1,!1),S=C.x,U=C.y;u.startTangent=[B,m],u.endTangent=[S,U]}t.push(u)}return t}function rc(A,t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=A.arcParams,n=r.rx,i=n===void 0?0:n,a=r.ry,s=a===void 0?0:a,o=r.xRotation,l=r.arcFlag,u=r.sweepFlag,c=tc({x:A.prePoint[0],y:A.prePoint[1]},i,s,o,!!l,!!u,{x:A.currentPoint[0],y:A.currentPoint[1]},t),f=tc({x:A.prePoint[0],y:A.prePoint[1]},i,s,o,!!l,!!u,{x:A.currentPoint[0],y:A.currentPoint[1]},e?t+.005:t-.005),d=f.x-c.x,h=f.y-c.y,g=Math.sqrt(d*d+h*h);return{x:-d/g,y:-h/g}}function di(A){return Math.sqrt(A[0]*A[0]+A[1]*A[1])}function Fs(A,t){return di(A)*di(t)?(A[0]*t[0]+A[1]*t[1])/(di(A)*di(t)):1}function nc(A,t){return(A[0]*t[1]<A[1]*t[0]?-1:1)*Math.acos(Fs(A,t))}function ZB(A,t){var e=t[1],r=t[2],n=Yl(fA(t[3]),Math.PI*2),i=t[4],a=t[5],s=A[0],o=A[1],l=t[6],u=t[7],c=Math.cos(n)*(s-l)/2+Math.sin(n)*(o-u)/2,f=-1*Math.sin(n)*(s-l)/2+Math.cos(n)*(o-u)/2,d=c*c/(e*e)+f*f/(r*r);d>1&&(e*=Math.sqrt(d),r*=Math.sqrt(d));var h=e*e*(f*f)+r*r*(c*c),g=h?Math.sqrt((e*e*(r*r)-h)/h):1;i===a&&(g*=-1),isNaN(g)&&(g=0);var v=r?g*e*f/r:0,w=e?g*-r*c/e:0,p=(s+l)/2+Math.cos(n)*v-Math.sin(n)*w,y=(o+u)/2+Math.sin(n)*v+Math.cos(n)*w,E=[(c-v)/e,(f-w)/r],F=[(-1*c-v)/e,(-1*f-w)/r],x=nc([1,0],E),T=nc(E,F);return Fs(E,F)<=-1&&(T=Math.PI),Fs(E,F)>=1&&(T=0),a===0&&T>0&&(T-=2*Math.PI),a===1&&T<0&&(T+=2*Math.PI),{cx:p,cy:y,rx:fi(A,[l,u])?0:e,ry:fi(A,[l,u])?0:r,startAngle:x,endAngle:x+T,xRotation:n,arcFlag:i,sweepFlag:a}}var ic=function(t){if(t===""||Array.isArray(t)&&t.length===0)return{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:{x:0,y:0,width:0,height:0}};var e;try{e=jn(t)}catch{e=jn(""),console.error("[g]: Invalid SVG Path definition: ".concat(t))}WB(e);var r=XB(e),n=YB(e),i=n.polygons,a=n.polylines,s=$B(e),o=JB(s,0),l=o.x,u=o.y,c=o.width,f=o.height;return{absolutePath:e,hasArc:r,segments:s,polygons:i,polylines:a,totalLength:0,rect:{x:Number.isFinite(l)?l:0,y:Number.isFinite(u)?u:0,width:Number.isFinite(c)?c:0,height:Number.isFinite(f)?f:0}}},qB=zA(ic);function ac(A){return ee(A)?qB(A):ic(A)}function jB(A,t,e){var r=A.curve,n=t.curve;(!r||r.length===0)&&(r=rs(A.absolutePath,!1),A.curve=r),(!n||n.length===0)&&(n=rs(t.absolutePath,!1),t.curve=n);var i=[r,n];r.length!==n.length&&(i=lu(r,n));var a=su(i[0])!==su(i[1])?n0(i[0]):r0(i[0]);return[a,f0(i[1],a),function(s){return s}]}function Av(A,t){var e;return ee(A)?e=A.split(" ").map(function(r){var n=r.split(","),i=vA(n,2),a=i[0],s=i[1];return[Number(a),Number(s)]}):e=A,{points:e,totalLength:0,segments:[]}}function ev(A,t){return[A.points,t.points,function(e){return e}]}var MA=null,Sr=/\s*(\w+)\(([^)]*)\)/g;function oe(A){return function(t){var e=0;return A.map(function(r){return r===MA?t[e++]:r})}}function $t(A){return A}var nn={matrix:["NNNNNN",[MA,MA,0,0,MA,MA,0,0,0,0,1,0,MA,MA,0,1],$t],matrix3d:["NNNNNNNNNNNNNNNN",$t],rotate:["A"],rotateX:["A"],rotateY:["A"],rotateZ:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",oe([MA,MA,new BA(1)]),$t],scaleX:["N",oe([MA,new BA(1),new BA(1)]),oe([MA,new BA(1)])],scaleY:["N",oe([new BA(1),MA,new BA(1)]),oe([new BA(1),MA])],scaleZ:["N",oe([new BA(1),new BA(1),MA])],scale3d:["NNN",$t],skew:["Aa",null,$t],skewX:["A",null,oe([MA,Jt])],skewY:["A",null,oe([Jt,MA])],translate:["Tt",oe([MA,MA,Oe]),$t],translateX:["T",oe([MA,Oe,Oe]),oe([MA,Oe])],translateY:["T",oe([Oe,MA,Oe]),oe([Oe,MA])],translateZ:["L",oe([Oe,Oe,MA])],translate3d:["TTL",$t]};function sc(A){for(var t=[],e=A.length,r=0;r<e;r++){var n=A[r],i=n[0],a=n.slice(1);i==="translate"||i==="skew"?a.length===1&&a.push(0):i==="scale"&&a.length===1&&a.push(a[0]);var s=nn[i];if(!s)return[];var o=a.map(function(l){return UA(l)});t.push({t:i,d:o})}return t}function oc(A){if(Array.isArray(A))return sc(A);if(A=(A||"none").trim(),A==="none")return[];var t=[],e,r=0;for(Sr.lastIndex=0;e=Sr.exec(A);){if(e.index!==r)return[];r=e.index+e[0].length;var n=e[1],i=nn[n];if(!i)return[];var a=e[2].split(","),s=i[0];if(s.length<a.length)return[];for(var o=[],l=0;l<s.length;l++){var u=a[l],c=s[l],f=void 0;if(u?f={A:function(h){return h.trim()==="0"?Jt:RB(h)},N:Cs,T:ws,L:PB}[c.toUpperCase()](u):f={a:Jt,n:o[0],t:Oe}[c],f===void 0)return[];o.push(f)}if(t.push({t:n,d:o}),Sr.lastIndex===A.length)return t}return[]}function tv(A){if(Array.isArray(A))return sc(A);if(A=(A||"none").trim(),A==="none")return[];var t=[],e,r=0;for(Sr.lastIndex=0;e=Sr.exec(A);){if(e.index!==r)return[];r=e.index+e[0].length;var n=e[1],i=nn[n];if(!i)return[];var a=e[2].split(","),s=i[0];if(s.length<a.length)return[];for(var o=[],l=0;l<s.length;l++){var u=a[l],c=s[l],f=void 0;if(u?f={A:function(h){return h.trim()==="0"?Jt:Yu(h)},N:Zu,T:Xu,L:Wu}[c.toUpperCase()](u):f={a:Jt,n:o[0],t:Oe}[c],f===void 0)return[];o.push(f)}if(t.push({t:n,d:o}),Sr.lastIndex===A.length)return t}return[]}function rv(A){var t,e,r,n;switch(A.t){case"rotateX":return n=fA(se(A.d[0])),[1,0,0,0,0,Math.cos(n),Math.sin(n),0,0,-Math.sin(n),Math.cos(n),0,0,0,0,1];case"rotateY":return n=fA(se(A.d[0])),[Math.cos(n),0,-Math.sin(n),0,0,1,0,0,Math.sin(n),0,Math.cos(n),0,0,0,0,1];case"rotate":case"rotateZ":return n=fA(se(A.d[0])),[Math.cos(n),Math.sin(n),0,0,-Math.sin(n),Math.cos(n),0,0,0,0,1,0,0,0,0,1];case"rotate3d":t=A.d[0].value,e=A.d[1].value,r=A.d[2].value,n=fA(se(A.d[3]));var i=t*t+e*e+r*r;if(i===0)t=1,e=0,r=0;else if(i!==1){var a=Math.sqrt(i);t/=a,e/=a,r/=a}var s=Math.sin(n/2),o=s*Math.cos(n/2),l=s*s;return[1-2*(e*e+r*r)*l,2*(t*e*l+r*o),2*(t*r*l-e*o),0,2*(t*e*l-r*o),1-2*(t*t+r*r)*l,2*(e*r*l+t*o),0,2*(t*r*l+e*o),2*(e*r*l-t*o),1-2*(t*t+e*e)*l,0,0,0,0,1];case"scale":return[A.d[0].value,0,0,0,0,A.d[1].value,0,0,0,0,1,0,0,0,0,1];case"scaleX":return[A.d[0].value,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];case"scaleY":return[1,0,0,0,0,A.d[0].value,0,0,0,0,1,0,0,0,0,1];case"scaleZ":return[1,0,0,0,0,1,0,0,0,0,A.d[0].value,0,0,0,0,1];case"scale3d":return[A.d[0].value,0,0,0,0,A.d[1].value,0,0,0,0,A.d[2].value,0,0,0,0,1];case"skew":var u=fA(se(A.d[0])),c=fA(se(A.d[1]));return[1,Math.tan(c),0,0,Math.tan(u),1,0,0,0,0,1,0,0,0,0,1];case"skewX":return n=fA(se(A.d[0])),[1,0,0,0,Math.tan(n),1,0,0,0,0,1,0,0,0,0,1];case"skewY":return n=fA(se(A.d[0])),[1,Math.tan(n),0,0,0,1,0,0,0,0,1,0,0,0,0,1];case"translate":return t=he(A.d[0],0,null)||0,e=he(A.d[1],0,null)||0,[1,0,0,0,0,1,0,0,0,0,1,0,t,e,0,1];case"translateX":return t=he(A.d[0],0,null)||0,[1,0,0,0,0,1,0,0,0,0,1,0,t,0,0,1];case"translateY":return e=he(A.d[0],0,null)||0,[1,0,0,0,0,1,0,0,0,0,1,0,0,e,0,1];case"translateZ":return r=he(A.d[0],0,null)||0,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,r,1];case"translate3d":return t=he(A.d[0],0,null)||0,e=he(A.d[1],0,null)||0,r=he(A.d[2],0,null)||0,[1,0,0,0,0,1,0,0,0,0,1,0,t,e,r,1];case"perspective":var f=he(A.d[0],0,null)||0,d=f?-1/f:0;return[1,0,0,0,0,1,0,0,0,0,1,d,0,0,0,1];case"matrix":return[A.d[0].value,A.d[1].value,0,0,A.d[2].value,A.d[3].value,0,0,0,0,1,0,A.d[4].value,A.d[5].value,0,1];case"matrix3d":return A.d.map(function(h){return h.value})}}function nv(A,t){return[A[0]*t[0]+A[4]*t[1]+A[8]*t[2]+A[12]*t[3],A[1]*t[0]+A[5]*t[1]+A[9]*t[2]+A[13]*t[3],A[2]*t[0]+A[6]*t[1]+A[10]*t[2]+A[14]*t[3],A[3]*t[0]+A[7]*t[1]+A[11]*t[2]+A[15]*t[3],A[0]*t[4]+A[4]*t[5]+A[8]*t[6]+A[12]*t[7],A[1]*t[4]+A[5]*t[5]+A[9]*t[6]+A[13]*t[7],A[2]*t[4]+A[6]*t[5]+A[10]*t[6]+A[14]*t[7],A[3]*t[4]+A[7]*t[5]+A[11]*t[6]+A[15]*t[7],A[0]*t[8]+A[4]*t[9]+A[8]*t[10]+A[12]*t[11],A[1]*t[8]+A[5]*t[9]+A[9]*t[10]+A[13]*t[11],A[2]*t[8]+A[6]*t[9]+A[10]*t[10]+A[14]*t[11],A[3]*t[8]+A[7]*t[9]+A[11]*t[10]+A[15]*t[11],A[0]*t[12]+A[4]*t[13]+A[8]*t[14]+A[12]*t[15],A[1]*t[12]+A[5]*t[13]+A[9]*t[14]+A[13]*t[15],A[2]*t[12]+A[6]*t[13]+A[10]*t[14]+A[14]*t[15],A[3]*t[12]+A[7]*t[13]+A[11]*t[14]+A[15]*t[15]]}function iv(A){return A.length===0?[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]:A.map(rv).reduce(nv)}function lc(A){var t=[0,0,0],e=[1,1,1],r=[0,0,0],n=[0,0,0,1],i=[0,0,0,1];return G0(iv(A),t,e,r,n,i),[[t,e,r,i,n]]}var av=(function(){function A(r,n){for(var i=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],a=0;a<4;a++)for(var s=0;s<4;s++)for(var o=0;o<4;o++)i[a][s]+=n[a][o]*r[o][s];return i}function t(r){return r[0][2]===0&&r[0][3]===0&&r[1][2]===0&&r[1][3]===0&&r[2][0]===0&&r[2][1]===0&&r[2][2]===1&&r[2][3]===0&&r[3][2]===0&&r[3][3]===1}function e(r,n,i,a,s){for(var o=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],l=0;l<4;l++)o[l][3]=s[l];for(var u=0;u<3;u++)for(var c=0;c<3;c++)o[3][u]+=r[c]*o[c][u];var f=a[0],d=a[1],h=a[2],g=a[3],v=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];v[0][0]=1-2*(d*d+h*h),v[0][1]=2*(f*d-h*g),v[0][2]=2*(f*h+d*g),v[1][0]=2*(f*d+h*g),v[1][1]=1-2*(f*f+h*h),v[1][2]=2*(d*h-f*g),v[2][0]=2*(f*h-d*g),v[2][1]=2*(d*h+f*g),v[2][2]=1-2*(f*f+d*d),o=A(o,v);var w=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];i[2]&&(w[2][1]=i[2],o=A(o,w)),i[1]&&(w[2][1]=0,w[2][0]=i[0],o=A(o,w)),i[0]&&(w[2][0]=0,w[1][0]=i[0],o=A(o,w));for(var p=0;p<3;p++)for(var y=0;y<3;y++)o[p][y]*=n[p];return t(o)?[o[0][0],o[0][1],o[1][0],o[1][1],o[3][0],o[3][1]]:o[0].concat(o[1],o[2],o[3])}return e})();function sv(A){return A.toFixed(6).replace(".000000","")}function Us(A,t){var e,r;return A.decompositionPair!==t&&(A.decompositionPair=t,e=lc(A)),t.decompositionPair!==A&&(t.decompositionPair=A,r=lc(t)),e[0]===null||r[0]===null?[[!1],[!0],function(n){return n?t[0].d:A[0].d}]:(e[0].push(0),r[0].push(1),[e,r,function(n){var i=lv(e[0][3],r[0][3],n[5]),a=av(n[0],n[1],n[2],i,n[4]),s=a.map(sv).join(",");return s}])}function ov(A,t){for(var e=0,r=0;r<A.length;r++)e+=A[r]*t[r];return e}function lv(A,t,e){var r=ov(A,t);r=ke(r,-1,1);var n=[];if(r===1)n=A;else for(var i=Math.acos(r),a=Math.sin(e*i)*1/Math.sqrt(1-r*r),s=0;s<4;s++)n.push(A[s]*(Math.cos(e*i)-r*a)+t[s]*a);return n}function xs(A){return A.replace(/[XY]/,"")}function bs(A){return A.replace(/(X|Y|Z|3d)?$/,"3d")}var uv=function(t,e){return t==="perspective"&&e==="perspective"||(t==="matrix"||t==="matrix3d")&&(e==="matrix"||e==="matrix3d")};function cv(A,t,e){var r=!1;if(!A.length||!t.length){A.length||(r=!0,A=t,t=[]);for(var n=function(){var S=A[i],U=S.t,I=S.d,H=U.substring(0,5)==="scale"?1:0;t.push({t:U,d:I.map(function(b){return typeof b=="number"?UA(H):UA(H,b.unit)})})},i=0;i<A.length;i++)n()}var a=[],s=[],o=[];if(A.length!==t.length){var l=Us(A,t);a=[l[0]],s=[l[1]],o=[["matrix",[l[2]]]]}else for(var u=0;u<A.length;u++){var c=A[u].t,f=t[u].t,d=A[u].d,h=t[u].d,g=nn[c],v=nn[f],w=void 0;if(uv(c,f)){var p=Us([A[u]],[t[u]]);a.push(p[0]),s.push(p[1]),o.push(["matrix",[p[2]]]);continue}else if(c===f)w=c;else if(g[2]&&v[2]&&xs(c)===xs(f))w=xs(c),d=g[2](d),h=v[2](h);else if(g[1]&&v[1]&&bs(c)===bs(f))w=bs(c),d=g[1](d),h=v[1](h);else{var y=Us(A,t);a=[y[0]],s=[y[1]],o=[["matrix",[y[2]]]];break}for(var E=[],F=[],x=[],T=0;T<d.length;T++){var B=KB(d[T],h[T],e,!1,T);E[T]=B[0],F[T]=B[1],x.push(B[2])}a.push(E),s.push(F),o.push([w,x])}if(r){var m=a;a=s,s=m}return[a,s,function(C){return C.map(function(S,U){var I=S.map(function(H,b){return o[U][1][b](H)}).join(",");return o[U][0]==="matrix"&&I.split(",").length===16&&(o[U][0]="matrix3d"),o[U][0]==="matrix3d"&&I.split(",").length===6&&(o[U][0]="matrix"),"".concat(o[U][0],"(").concat(I,")")}).join(" ")}]}var fv=zA(function(A){if(ee(A)){if(A==="text-anchor")return[UA(0,"px"),UA(0,"px")];var t=A.split(" ");return t.length===1&&(t[0]==="top"||t[0]==="bottom"?(t[1]=t[0],t[0]="center"):t[1]="center"),t.length!==2?null:[ws(uc(t[0])),ws(uc(t[1]))]}return[UA(A[0]||0,"px"),UA(A[1]||0,"px")]});function uc(A){return A==="center"?"50%":A==="left"||A==="top"?"0%":A==="right"||A==="bottom"?"100%":A}var cc=[{n:"display",k:["none"]},{n:"opacity",int:!0,inh:!0,d:"1",syntax:P.OPACITY_VALUE},{n:"fillOpacity",int:!0,inh:!0,d:"1",syntax:P.OPACITY_VALUE},{n:"strokeOpacity",int:!0,inh:!0,d:"1",syntax:P.OPACITY_VALUE},{n:"fill",int:!0,k:["none"],d:"none",syntax:P.PAINT},{n:"fillRule",k:["nonzero","evenodd"],d:"nonzero"},{n:"stroke",int:!0,k:["none"],d:"none",syntax:P.PAINT,l:!0},{n:"shadowType",k:["inner","outer","both"],d:"outer",l:!0},{n:"shadowColor",int:!0,syntax:P.COLOR},{n:"shadowOffsetX",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"shadowOffsetY",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"shadowBlur",int:!0,l:!0,d:"0",syntax:P.SHADOW_BLUR},{n:"lineWidth",int:!0,inh:!0,d:"1",l:!0,a:["strokeWidth"],syntax:P.LENGTH_PERCENTAGE},{n:"increasedLineWidthForHitTesting",inh:!0,d:"0",l:!0,syntax:P.LENGTH_PERCENTAGE},{n:"lineJoin",inh:!0,l:!0,a:["strokeLinejoin"],k:["miter","bevel","round"],d:"miter"},{n:"lineCap",inh:!0,l:!0,a:["strokeLinecap"],k:["butt","round","square"],d:"butt"},{n:"lineDash",int:!0,inh:!0,k:["none"],a:["strokeDasharray"],syntax:P.LENGTH_PERCENTAGE_12},{n:"lineDashOffset",int:!0,inh:!0,d:"0",a:["strokeDashoffset"],syntax:P.LENGTH_PERCENTAGE},{n:"offsetPath",syntax:P.DEFINED_PATH},{n:"offsetDistance",int:!0,syntax:P.OFFSET_DISTANCE},{n:"dx",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"dy",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"zIndex",ind:!0,int:!0,d:"0",k:["auto"],syntax:P.Z_INDEX},{n:"visibility",k:["visible","hidden"],ind:!0,inh:!0,int:!0,d:"visible"},{n:"pointerEvents",inh:!0,k:["none","auto","stroke","fill","painted","visible","visiblestroke","visiblefill","visiblepainted","all"],d:"auto"},{n:"filter",ind:!0,l:!0,k:["none"],d:"none",syntax:P.FILTER},{n:"clipPath",syntax:P.DEFINED_PATH},{n:"textPath",syntax:P.DEFINED_PATH},{n:"textPathSide",k:["left","right"],d:"left"},{n:"textPathStartOffset",l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"transform",p:100,int:!0,k:["none"],d:"none",syntax:P.TRANSFORM},{n:"transformOrigin",p:100,d:"0 0",l:!0,syntax:P.TRANSFORM_ORIGIN},{n:"cx",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"cy",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"cz",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"r",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"rx",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"ry",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"x",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"y",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"z",int:!0,l:!0,d:"0",syntax:P.COORDINATE},{n:"width",int:!0,l:!0,k:["auto","fit-content","min-content","max-content"],d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"height",int:!0,l:!0,k:["auto","fit-content","min-content","max-content"],d:"0",syntax:P.LENGTH_PERCENTAGE},{n:"radius",int:!0,l:!0,d:"0",syntax:P.LENGTH_PERCENTAGE_14},{n:"x1",int:!0,l:!0,syntax:P.COORDINATE},{n:"y1",int:!0,l:!0,syntax:P.COORDINATE},{n:"z1",int:!0,l:!0,syntax:P.COORDINATE},{n:"x2",int:!0,l:!0,syntax:P.COORDINATE},{n:"y2",int:!0,l:!0,syntax:P.COORDINATE},{n:"z2",int:!0,l:!0,syntax:P.COORDINATE},{n:"d",int:!0,l:!0,d:"",syntax:P.PATH,p:50},{n:"points",int:!0,l:!0,syntax:P.LIST_OF_POINTS,p:50},{n:"text",l:!0,d:"",syntax:P.TEXT,p:50},{n:"textTransform",l:!0,inh:!0,k:["capitalize","uppercase","lowercase","none"],d:"none",syntax:P.TEXT_TRANSFORM,p:51},{n:"font",l:!0},{n:"fontSize",int:!0,inh:!0,d:"16px",l:!0,syntax:P.LENGTH_PERCENTAGE},{n:"fontFamily",l:!0,inh:!0,d:"sans-serif"},{n:"fontStyle",l:!0,inh:!0,k:["normal","italic","oblique"],d:"normal"},{n:"fontWeight",l:!0,inh:!0,k:["normal","bold","bolder","lighter"],d:"normal"},{n:"fontVariant",l:!0,inh:!0,k:["normal","small-caps"],d:"normal"},{n:"lineHeight",l:!0,syntax:P.LENGTH,int:!0,d:"0"},{n:"letterSpacing",l:!0,syntax:P.LENGTH,int:!0,d:"0"},{n:"miterLimit",l:!0,syntax:P.NUMBER,d:function(t){return t===Y.PATH||t===Y.POLYGON||t===Y.POLYLINE?"4":"10"}},{n:"wordWrap",l:!0},{n:"wordWrapWidth",l:!0},{n:"maxLines",l:!0},{n:"textOverflow",l:!0,d:"clip"},{n:"leading",l:!0},{n:"textBaseline",l:!0,inh:!0,k:["top","hanging","middle","alphabetic","ideographic","bottom"],d:"alphabetic"},{n:"textAlign",l:!0,inh:!0,k:["start","center","middle","end","left","right"],d:"start"},{n:"markerStart",syntax:P.MARKER},{n:"markerEnd",syntax:P.MARKER},{n:"markerMid",syntax:P.MARKER},{n:"markerStartOffset",syntax:P.LENGTH,l:!0,int:!0,d:"0"},{n:"markerEndOffset",syntax:P.LENGTH,l:!0,int:!0,d:"0"}],hv=new Set(cc.filter(function(A){return!!A.l}).map(function(A){return A.n})),fc={},dv=(function(){function A(t){var e=this;K(this,A),this.runtime=t,cc.forEach(function(r){e.registerMetadata(r)})}return _(A,[{key:"registerMetadata",value:function(e){[e.n].concat(oA(e.a||[])).forEach(function(r){fc[r]=e})}},{key:"getPropertySyntax",value:function(e){return this.runtime.CSSPropertySyntaxFactory[e]}},{key:"processProperties",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{forceUpdateGeometry:!1};Object.assign(e.attributes,r);var i=e.parsedStyle.clipPath,a=e.parsedStyle.offsetPath;gv(e,r);var s=!!n.forceUpdateGeometry;if(!s){for(var o in r)if(hv.has(o)){s=!0;break}}var l=hc(e);l.has("fill")&&r.fill&&(e.parsedStyle.fill=tn(r.fill)),l.has("stroke")&&r.stroke&&(e.parsedStyle.stroke=tn(r.stroke)),l.has("shadowColor")&&r.shadowColor&&(e.parsedStyle.shadowColor=tn(r.shadowColor)),l.has("filter")&&r.filter&&(e.parsedStyle.filter=VB(r.filter)),l.has("radius")&&!CA(r.radius)&&(e.parsedStyle.radius=Ju(r.radius,4)),l.has("lineDash")&&!CA(r.lineDash)&&(e.parsedStyle.lineDash=Ju(r.lineDash,"even")),l.has("points")&&r.points&&(e.parsedStyle.points=Av(r.points)),l.has("d")&&r.d===""&&(e.parsedStyle.d=iA({},Su)),l.has("d")&&r.d&&(e.parsedStyle.d=ac(r.d)),l.has("textTransform")&&r.textTransform&&this.runtime.CSSPropertySyntaxFactory[P.TEXT_TRANSFORM].calculator(null,null,{value:r.textTransform},e,null),l.has("clipPath")&&!IA(r.clipPath)&&this.runtime.CSSPropertySyntaxFactory[P.DEFINED_PATH].calculator("clipPath",i,r.clipPath,e,this.runtime),l.has("offsetPath")&&r.offsetPath&&this.runtime.CSSPropertySyntaxFactory[P.DEFINED_PATH].calculator("offsetPath",a,r.offsetPath,e,this.runtime),l.has("transform")&&r.transform&&(e.parsedStyle.transform=oc(r.transform)),l.has("transformOrigin")&&r.transformOrigin&&(e.parsedStyle.transformOrigin=fv(r.transformOrigin)),l.has("markerStart")&&r.markerStart&&(e.parsedStyle.markerStart=this.runtime.CSSPropertySyntaxFactory[P.MARKER].calculator(null,r.markerStart,r.markerStart,null,null)),l.has("markerEnd")&&r.markerEnd&&(e.parsedStyle.markerEnd=this.runtime.CSSPropertySyntaxFactory[P.MARKER].calculator(null,r.markerEnd,r.markerEnd,null,null)),l.has("markerMid")&&r.markerMid&&(e.parsedStyle.markerMid=this.runtime.CSSPropertySyntaxFactory[P.MARKER].calculator("",r.markerMid,r.markerMid,null,null)),l.has("zIndex")&&!CA(r.zIndex)&&this.runtime.CSSPropertySyntaxFactory[P.Z_INDEX].postProcessor(e),l.has("offsetDistance")&&!CA(r.offsetDistance)&&this.runtime.CSSPropertySyntaxFactory[P.OFFSET_DISTANCE].postProcessor(e),l.has("transform")&&r.transform&&this.runtime.CSSPropertySyntaxFactory[P.TRANSFORM].postProcessor(e),l.has("transformOrigin")&&r.transformOrigin&&this.runtime.CSSPropertySyntaxFactory[P.TRANSFORM_ORIGIN].postProcessor(e),s&&(e.dirty(!0,!0),n.forceUpdateGeometry||this.runtime.sceneGraphService.dirtyToRoot(e))}},{key:"updateGeometry",value:function(e){var r=e.nodeName,n=this.runtime.geometryUpdaterFactory[r];if(n){var i=e.geometry;i.contentBounds||(i.contentBounds=new fe),i.renderBounds||(i.renderBounds=new fe);var a=e.parsedStyle,s=n.update(a,e),o=s.cx,l=o===void 0?0:o,u=s.cy,c=u===void 0?0:u,f=s.cz,d=f===void 0?0:f,h=s.hwidth,g=h===void 0?0:h,v=s.hheight,w=v===void 0?0:v,p=s.hdepth,y=p===void 0?0:p,E=[Math.abs(g),Math.abs(w),y],F=a.stroke,x=a.lineWidth,T=x===void 0?1:x,B=a.increasedLineWidthForHitTesting,m=B===void 0?0:B,C=a.shadowType,S=C===void 0?"outer":C,U=a.shadowColor,I=a.filter,H=I===void 0?[]:I,b=a.transformOrigin,k=[l,c,d];i.contentBounds.update(k,E);var M=r===Y.POLYLINE||r===Y.POLYGON||r===Y.PATH?Math.SQRT2:.5,L=F&&!F.isNone;if(L){var N=((T||0)+(m||0))*M;E[0]+=N,E[1]+=N}if(i.renderBounds.update(k,E),U&&S&&S!=="inner"){var O=i.renderBounds,z=O.min,$=O.max,eA=a.shadowBlur,tA=a.shadowOffsetX,Z=a.shadowOffsetY,D=eA||0,j=tA||0,JA=Z||0,wA=z[0]-D+j,_A=$[0]+D+j,DA=z[1]-D+JA,hA=$[1]+D+JA;z[0]=Math.min(z[0],wA),$[0]=Math.max($[0],_A),z[1]=Math.min(z[1],DA),$[1]=Math.max($[1],hA),i.renderBounds.setMinMax(z,$)}H.forEach(function(Gr){var Vr=Gr.name,Gt=Gr.params;if(Vr==="blur"){var cr=Gt[0].value;i.renderBounds.update(i.renderBounds.center,Ut(i.renderBounds.halfExtents,i.renderBounds.halfExtents,[cr,cr,0]))}else if(Vr==="drop-shadow"){var fr=Gt[0].value,zr=Gt[1].value,mt=Gt[2].value,hr=i.renderBounds,Ve=hr.min,ze=hr.max,yt=Ve[0]-mt+fr,wt=ze[0]+mt+fr,qA=Ve[1]-mt+zr,XA=ze[1]+mt+zr;Ve[0]=Math.min(Ve[0],yt),ze[0]=Math.max(ze[0],wt),Ve[1]=Math.min(Ve[1],qA),ze[1]=Math.max(ze[1],XA),i.renderBounds.setMinMax(Ve,ze)}}),e.geometry.dirty=!1;var PA=g<0,xA=w<0,rA=(PA?-1:1)*(b?he(b[0],0,e,!0):0),LA=(xA?-1:1)*(b?he(b[1],1,e,!0):0);(rA||LA)&&e.setOrigin(rA,LA)}}},{key:"updateSizeAttenuation",value:function(e,r){e.style.isSizeAttenuation?(e.style.rawLineWidth||(e.style.rawLineWidth=e.style.lineWidth),e.style.lineWidth=(e.style.rawLineWidth||1)/r,e.nodeName===Y.CIRCLE&&(e.style.rawR||(e.style.rawR=e.style.r),e.style.r=(e.style.rawR||1)/r)):(e.style.rawLineWidth&&(e.style.lineWidth=e.style.rawLineWidth,delete e.style.rawLineWidth),e.nodeName===Y.CIRCLE&&e.style.rawR&&(e.style.r=e.style.rawR,delete e.style.rawR))}}])})();function gv(A,t){var e=hc(A);for(var r in t)e.has(r)&&(A.parsedStyle[r]=t[r])}function hc(A){return A.constructor.PARSED_STYLE_LIST}var Bv=(function(){function A(){K(this,A),this.mixer=Es}return _(A,[{key:"calculator",value:function(e,r,n,i){return se(n)}}])})(),vv=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n,i,a){return n instanceof Ce&&(n=null),a.sceneGraphService.updateDisplayObjectDependency(e,r,n,i),e==="clipPath"&&i.forEach(function(s){s.childNodes.length===0&&a.sceneGraphService.dirtyToRoot(s)}),n}}])})(),pv=(function(){function A(){K(this,A),this.parser=tn,this.mixer=DB}return _(A,[{key:"calculator",value:function(e,r,n,i){return n instanceof Ce?n.value==="none"?Gu:Vu:n}}])})(),mv=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n){return n instanceof Ce?[]:n}}])})();function dc(A){var t=A.parsedStyle,e=t.fontSize;return CA(e)?null:e}var Is=(function(){function A(){K(this,A),this.mixer=Es}return _(A,[{key:"calculator",value:function(e,r,n,i,a){if($e(n))return n;if(BA.isRelativeUnit(n.unit)){if(n.unit===G.kPercentage)return 0;if(n.unit===G.kEms){if(i.parentNode){var s=dc(i.parentNode);if(s)return s*=n.value,s}return 0}if(n.unit===G.kRems){var o;if(i!=null&&(o=i.ownerDocument)!==null&&o!==void 0&&o.documentElement){var l=dc(i.ownerDocument.documentElement);if(l)return l*=n.value,l}return 0}}else return n.value}}])})(),yv=(function(){function A(){K(this,A),this.mixer=qu}return _(A,[{key:"calculator",value:function(e,r,n){return n.map(function(i){return i.value})}}])})(),wv=(function(){function A(){K(this,A),this.mixer=qu}return _(A,[{key:"calculator",value:function(e,r,n){return n.map(function(i){return i.value})}}])})(),Cv=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n,i){var a;n instanceof Ce&&(n=null);var s=(a=n)===null||a===void 0?void 0:a.cloneNode(!0);return s&&(s.style.isMarker=!0),s}}])})(),Ev=(function(){function A(){K(this,A),this.mixer=Es}return _(A,[{key:"calculator",value:function(e,r,n){return n.value}}])})(),Qv=(function(){function A(){K(this,A),this.mixer=Qs(0,1)}return _(A,[{key:"calculator",value:function(e,r,n){return n.value}},{key:"postProcessor",value:function(e){var r=e.parsedStyle,n=r.offsetPath,i=r.offsetDistance;if(n){var a=n.nodeName;if(a===Y.LINE||a===Y.PATH||a===Y.POLYLINE){var s=n.getPoint(i);s&&e.setLocalPosition(s.x,s.y)}}}}])})(),Fv=(function(){function A(){K(this,A),this.mixer=Qs(0,1)}return _(A,[{key:"calculator",value:function(e,r,n){return n.value}}])})(),Uv=(function(){function A(){K(this,A),this.parser=ac,this.mixer=jB}return _(A,[{key:"calculator",value:function(e,r,n){return n instanceof Ce&&n.value==="unset"?{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new Fr(0,0,0,0)}:n}}])})(),xv=_(function A(){K(this,A),this.mixer=ev}),bv=(function(A){function t(){var e;K(this,t);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return e=uA(this,t,[].concat(n)),e.mixer=Qs(0,1/0),e}return cA(t,A),_(t)})(Is),Iv=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n,i){return n instanceof Ce?n.value==="unset"?"":n.value:"".concat(n)}},{key:"postProcessor",value:function(e){e.nodeValue="".concat(e.parsedStyle.text)||""}}])})(),Sv=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n,i){var a=i.getAttribute("text");if(a){var s=a;n.value==="capitalize"?s=a.charAt(0).toUpperCase()+a.slice(1):n.value==="lowercase"?s=a.toLowerCase():n.value==="uppercase"&&(s=a.toUpperCase()),i.parsedStyle.text=s}return n.value}}])})();function Tv(A){var t=A;do{var e,r=(e=t.parsedStyle)===null||e===void 0?void 0:e.clipPath;if(r)return t;t=t.parentElement}while(t!==null);return null}var Mv=1,Hv={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},kv=typeof performance=="object"&&performance.now?performance:Date;function Ss(A){return A.nodeName===Y.FRAGMENT?!0:A.getRootNode().nodeName===Y.FRAGMENT}var Lv=1,Nv=function(){return Lv++},At=typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:{},Dv=Date.now(),Pv=function(){return At.performance&&typeof At.performance.now=="function"?At.performance.now():Date.now()-Dv},an={},gc=Date.now(),Ov=function(t){if(typeof t!="function")throw new TypeError("".concat(t," is not a function"));var e=Date.now(),r=e-gc,n=r>16?0:16-r,i=Nv();return an[i]=t,Object.keys(an).length>1||setTimeout(function(){gc=e;var a=an;an={},Object.keys(a).forEach(function(s){return a[s](Pv())})},n),i},Rv=function(t){delete an[t]},Kv=["","webkit","moz","ms","o"],Bc=function(t){return typeof t!="string"?Ov:t===""?At.requestAnimationFrame:At["".concat(t,"RequestAnimationFrame")]},_v=function(t){return typeof t!="string"?Rv:t===""?At.cancelAnimationFrame:At["".concat(t,"CancelAnimationFrame")]||At["".concat(t,"CancelRequestAnimationFrame")]},Gv=function(t,e){for(var r=0;t[r]!==void 0;){if(e(t[r]))return t[r];r+=1}},vc=Gv(Kv,function(A){return!!Bc(A)}),pc=Bc(vc),Vv=_v(vc);At.requestAnimationFrame=pc,At.cancelAnimationFrame=Vv;var zv=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],Wv=/([\"\'])[^\'\"]+\1/;function mc(A){var t=A.fontSize,e=t===void 0?16:t,r=A.fontFamily,n=r===void 0?"sans-serif":r,i=A.fontStyle,a=i===void 0?"normal":i,s=A.fontVariant,o=s===void 0?"normal":s,l=A.fontWeight,u=l===void 0?"normal":l;return{fontSize:e,fontFamily:n,fontStyle:a,fontVariant:o,fontWeight:u}}var yc=zA(function(t){for(var e=mc(t),r=e.fontSize,n=e.fontFamily,i=e.fontStyle,a=e.fontVariant,s=e.fontWeight,o=$e(r)&&"".concat(r,"px")||"16px",l=n.split(","),u=l.length-1;u>=0;u--){var c=l[u].trim();!Wv.test(c)&&zv.indexOf(c)<0&&(c='"'.concat(c,'"')),l[u]=c}return"".concat(i," ").concat(a," ").concat(s," ").concat(o," ").concat(l.join(","))},function(A){var t=mc(A),e=t.fontSize,r=t.fontFamily,n=t.fontStyle,i=t.fontVariant,a=t.fontWeight;return"".concat(n,"_").concat(i,"_").concat(a,"_").concat(e,"_").concat(r)}),Xv=1e-6,sn=function(t){return Math.max(t,Xv)};function Ts(A,t,e){return Qt(A),A[4]=Math.tan(t),A[1]=Math.tan(e),A}var OA=TA(),Yv=TA(),Jv={scale:function(t){pr(OA,[t[0].value,t[1].value,1].map(function(e){return sn(e)}))},scaleX:function(t){pr(OA,[t[0].value,1,1].map(function(e){return sn(e)}))},scaleY:function(t){pr(OA,[1,t[0].value,1].map(function(e){return sn(e)}))},scaleZ:function(t){pr(OA,[1,1,t[0].value].map(function(e){return sn(e)}))},scale3d:function(t){pr(OA,[t[0].value,t[1].value,t[2].value].map(function(e){return sn(e)}))},translate:function(t){Ft(OA,[t[0].value,t[1].value,0])},translateX:function(t){Ft(OA,[t[0].value,0,0])},translateY:function(t){Ft(OA,[0,t[0].value,0])},translateZ:function(t){Ft(OA,[0,0,t[0].value])},translate3d:function(t){Ft(OA,[t[0].value,t[1].value,t[2].value])},rotate:function(t){$a(OA,fA(se(t[0])))},rotateX:function(t){Sl(OA,fA(se(t[0])))},rotateY:function(t){Tl(OA,fA(se(t[0])))},rotateZ:function(t){$a(OA,fA(se(t[0])))},rotate3d:function(t){Il(OA,fA(se(t[3])),[t[0].value,t[1].value,t[2].value])},skew:function(t){Ts(OA,fA(t[0].value),fA(t[1].value))},skewX:function(t){Ts(OA,fA(t[0].value),0)},skewY:function(t){Ts(OA,0,fA(t[0].value))},matrix:function(t){Ja(OA,t[0].value,t[1].value,0,0,t[2].value,t[3].value,0,0,0,0,1,0,t[4].value,t[5].value,0,1)},matrix3d:function(t){Ja.apply(Qg,[OA].concat(oA(t.map(function(e){return e.value}))))}},$v=pA(1,1,1),Zv=dA(),wc={translate:function(t,e){R.sceneGraphService.setLocalScale(t,$v,!1),R.sceneGraphService.setLocalEulerAngles(t,Zv,void 0,void 0,!1),R.sceneGraphService.setLocalPosition(t,[e[0].value,e[1].value,0],!1),R.sceneGraphService.dirtyLocalTransform(t,t.transformable)}};function Cc(A,t){if(A.length){if(A.length===1&&wc[A[0].t]){wc[A[0].t](t,A[0].d);return}for(var e=Qt(Yv),r=0;r<A.length;r++){var n=A[r],i=n.t,a=n.d,s=Jv[i];s&&(s(a),Ol(e,e,OA))}t.setLocalTransform(e)}else t.resetLocalTransform();return t.getLocalTransform()}var qv=(function(){function A(){K(this,A),this.parser=tv,this.mixer=cv}return _(A,[{key:"calculator",value:function(e,r,n,i){return n instanceof Ce?[]:n}},{key:"postProcessor",value:function(e){Cc(e.parsedStyle.transform,e)}}])})(),jv=(function(){function A(){K(this,A)}return _(A,[{key:"postProcessor",value:function(e){var r=e.parsedStyle.transformOrigin;r[0].unit===G.kPixels&&r[1].unit===G.kPixels?e.setOrigin(r[0].value,r[1].value):e.getGeometryBounds()}}])})(),Ap=(function(){function A(){K(this,A)}return _(A,[{key:"calculator",value:function(e,r,n,i){return n.value}},{key:"postProcessor",value:function(e){if(e.parentNode){var r=e.parentNode,n=r.renderable,i=r.sortable;n&&r.dirty(),i&&(i.dirty=!0,i.dirtyReason=hs.Z_INDEX_CHANGED)}}}])})(),ep=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e,r){var n=e.cx,i=n===void 0?0:n,a=e.cy,s=a===void 0?0:a,o=e.r,l=o===void 0?0:o;return{cx:i,cy:s,hwidth:l,hheight:l}}}])})(),tp=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e,r){var n=e.cx,i=n===void 0?0:n,a=e.cy,s=a===void 0?0:a,o=e.rx,l=o===void 0?0:o,u=e.ry,c=u===void 0?0:u;return{cx:i,cy:s,hwidth:l,hheight:c}}}])})(),rp=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e){var r=e.x1,n=e.y1,i=e.x2,a=e.y2,s=Math.min(r,i),o=Math.max(r,i),l=Math.min(n,a),u=Math.max(n,a),c=o-s,f=u-l,d=c/2,h=f/2;return{cx:s+d,cy:l+h,hwidth:d,hheight:h}}}])})(),np=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e){var r=e.d,n=r.rect,i=n.x,a=n.y,s=n.width,o=n.height,l=s/2,u=o/2;return{cx:i+l,cy:a+u,hwidth:l,hheight:u}}}])})(),ip=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e){if(e.points&&zl(e.points.points)){var r=e.points.points,n=Math.min.apply(Math,oA(r.map(function(f){return f[0]}))),i=Math.max.apply(Math,oA(r.map(function(f){return f[0]}))),a=Math.min.apply(Math,oA(r.map(function(f){return f[1]}))),s=Math.max.apply(Math,oA(r.map(function(f){return f[1]}))),o=i-n,l=s-a,u=o/2,c=l/2;return{cx:n+u,cy:a+c,hwidth:u,hheight:c}}return{cx:0,cy:0,hwidth:0,hheight:0}}}])})(),ap=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e,r){var n=e.x,i=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.src,l=e.width,u=l===void 0?0:l,c=e.height,f=c===void 0?0:c,d=u,h=f;return o&&!ee(o)&&(d||(d=o.width,e.width=d),h||(h=o.height,e.height=h)),{cx:i+d/2,cy:s+h/2,hwidth:d/2,hheight:h/2}}}])})(),sp=(function(){function A(t){K(this,A),this.globalRuntime=t}return _(A,[{key:"isReadyToMeasure",value:function(e,r){var n=e.text;return n}},{key:"update",value:function(e,r){var n,i=e.text,a=e.textAlign,s=a===void 0?"start":a,o=e.lineWidth,l=o===void 0?1:o,u=e.textBaseline,c=u===void 0?"alphabetic":u,f=e.dx,d=f===void 0?0:f,h=e.dy,g=h===void 0?0:h,v=e.x,w=v===void 0?0:v,p=e.y,y=p===void 0?0:p;if(!this.isReadyToMeasure(e,r))return e.metrics={font:"",width:0,height:0,lines:[],lineWidths:[],lineHeight:0,maxLineWidth:0,fontProperties:{ascent:0,descent:0,fontSize:0},lineMetrics:[]},{hwidth:0,hheight:0,cx:0,cy:0};var E=(r==null||(n=r.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0?void 0:n.getConfig())||{},F=E.offscreenCanvas,x=this.globalRuntime.textService.measureText(i,e,F);e.metrics=x;var T=x.width,B=x.height,m=T/2,C=B/2,S=w+m;s==="center"||s==="middle"?S+=l/2-m:(s==="right"||s==="end")&&(S+=l-m*2);var U=y-C;return c==="middle"?U+=C:c==="top"||c==="hanging"?U+=C*2:c==="alphabetic"||(c==="bottom"||c==="ideographic")&&(U+=0),d&&(S+=d),g&&(U+=g),{cx:S,cy:U,hwidth:m,hheight:C}}}])})(),op=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e,r){return{cx:0,cy:0,hwidth:0,hheight:0}}}])})(),lp=(function(){function A(){K(this,A)}return _(A,[{key:"update",value:function(e,r){var n=e.x,i=n===void 0?0:n,a=e.y,s=a===void 0?0:a,o=e.width,l=o===void 0?0:o,u=e.height,c=u===void 0?0:u;return{cx:i+l/2,cy:s+c/2,hwidth:l/2,hheight:c/2}}}])})(),gi=(function(){function A(t){K(this,A),this.eventPhase=A.prototype.NONE,this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.defaultPrevented=!1,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new ye,this.page=new ye,this.canvas=new ye,this.viewport=new ye,this.composed=!1,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}return _(A,[{key:"name",get:function(){return this.type}},{key:"layerX",get:function(){return this.layer.x}},{key:"layerY",get:function(){return this.layer.y}},{key:"pageX",get:function(){return this.page.x}},{key:"pageY",get:function(){return this.page.y}},{key:"x",get:function(){return this.canvas.x}},{key:"y",get:function(){return this.canvas.y}},{key:"canvasX",get:function(){return this.canvas.x}},{key:"canvasY",get:function(){return this.canvas.y}},{key:"viewportX",get:function(){return this.viewport.x}},{key:"viewportY",get:function(){return this.viewport.y}},{key:"composedPath",value:function(){return this.manager&&(!this.path||this.path[0]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}},{key:"propagationPath",get:function(){return this.composedPath()}},{key:"preventDefault",value:function(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}},{key:"stopImmediatePropagation",value:function(){this.propagationImmediatelyStopped=!0}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}},{key:"initEvent",value:function(){}},{key:"initUIEvent",value:function(){}},{key:"clone",value:function(){throw new Error(mA)}}])})(),Ec=(function(A){function t(){var e;K(this,t);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return e=uA(this,t,[].concat(n)),e.client=new ye,e.movement=new ye,e.offset=new ye,e.global=new ye,e.screen=new ye,e}return cA(t,A),_(t,[{key:"clientX",get:function(){return this.client.x}},{key:"clientY",get:function(){return this.client.y}},{key:"movementX",get:function(){return this.movement.x}},{key:"movementY",get:function(){return this.movement.y}},{key:"offsetX",get:function(){return this.offset.x}},{key:"offsetY",get:function(){return this.offset.y}},{key:"globalX",get:function(){return this.global.x}},{key:"globalY",get:function(){return this.global.y}},{key:"screenX",get:function(){return this.screen.x}},{key:"screenY",get:function(){return this.screen.y}},{key:"getModifierState",value:function(r){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(r)}},{key:"initMouseEvent",value:function(){throw new Error(mA)}}])})(gi),up=(function(A){function t(){var e;K(this,t);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return e=uA(this,t,[].concat(n)),e.width=0,e.height=0,e.isPrimary=!1,e}return cA(t,A),_(t,[{key:"getCoalescedEvents",value:function(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}},{key:"getPredictedEvents",value:function(){throw new Error("getPredictedEvents is not supported!")}},{key:"clone",value:function(){return this.manager.clonePointerEvent(this)}}])})(Ec),cp=(function(A){function t(){return K(this,t),uA(this,t,arguments)}return cA(t,A),_(t,[{key:"clone",value:function(){return this.manager.cloneWheelEvent(this)}}])})(Ec),ft=(function(A){function t(e,r){var n;return K(this,t),n=uA(this,t,[null]),n.type=e,n.detail=r?.detail,r&&!("detail"in r)&&(n.detail=r),Object.assign(n,r),n}return cA(t,A),_(t)})(gi),fp=(function(){function A(){K(this,A),this.emitter=new wl}return _(A,[{key:"on",value:function(e,r,n){return this.addEventListener(e,r,n),this}},{key:"addEventListener",value:function(e,r,n){var i=!1,a=!1;if(Jl(n))i=n;else if(n){var s=n.capture;i=s===void 0?!1:s;var o=n.once;a=o===void 0?!1:o}i&&(e+="capture"),r=Zn(r)?r:r.handleEvent;var l=Zn(r)?void 0:r;return a?this.emitter.once(e,r,l):this.emitter.on(e,r,l),this}},{key:"off",value:function(e,r,n){return e?this.removeEventListener(e,r,n):this.removeAllEventListeners(),this}},{key:"removeAllEventListeners",value:function(){var e;(e=this.emitter)===null||e===void 0||e.removeAllListeners()}},{key:"removeEventListener",value:function(e,r,n){var i;if(!this.emitter)return this;var a=Jl(n)?n:n?.capture;a&&(e+="capture"),r=Zn(r)?r:(i=r)===null||i===void 0?void 0:i.handleEvent;var s=Zn(r)?void 0:r;return this.emitter.off(e,r,s),this}},{key:"emit",value:function(e,r){this.dispatchEvent(new ft(e,r))}},{key:"dispatchEventToSelf",value:function(e){e.target||(e.target=this),e.currentTarget=this,this.emitter.emit(e.type,e)}},{key:"dispatchEvent",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2?arguments[2]:void 0;if(n)return this.dispatchEventToSelf(e),!0;var i;if(this.document)i=this;else if(this.defaultView)i=this.defaultView;else{var a;i=(a=this.ownerDocument)===null||a===void 0?void 0:a.defaultView}if(i){if(e.manager=i.getEventService(),!e.manager)return!1;e.defaultPrevented=!1,e.path?e.path.length=0:e.page=[],r||(e.target=this),e.manager.dispatchEvent(e,e.type,r)}else this.dispatchEventToSelf(e);return!e.defaultPrevented}}])})(),Zt=(function(A){function t(){var e;K(this,t);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return e=uA(this,t,[].concat(n)),e.shadow=!1,e.ownerDocument=null,e.isConnected=!1,e.baseURI="",e.childNodes=[],e.nodeType=0,e.nodeName="",e.nodeValue=null,e.mutations=void 0,e.parentNode=null,e.destroyed=!1,e}return cA(t,A),_(t,[{key:"textContent",get:function(){var r="";this.nodeName===Y.TEXT&&(r+=this.style.text);var n=Er(this.childNodes),i;try{for(n.s();!(i=n.n()).done;){var a=i.value;a.nodeName===Y.TEXT?r+=a.nodeValue:r+=a.textContent}}catch(s){n.e(s)}finally{n.f()}return r},set:function(r){var n=this;this.childNodes.slice().forEach(function(i){n.removeChild(i)}),this.nodeName===Y.TEXT&&(this.style.text="".concat(r))}},{key:"getRootNode",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.parentNode?this.parentNode.getRootNode(r):r.composed&&this.host?this.host.getRootNode(r):this}},{key:"hasChildNodes",value:function(){return this.childNodes.length>0}},{key:"isDefaultNamespace",value:function(r){throw new Error(mA)}},{key:"lookupNamespaceURI",value:function(r){throw new Error(mA)}},{key:"lookupPrefix",value:function(r){throw new Error(mA)}},{key:"normalize",value:function(){throw new Error(mA)}},{key:"isEqualNode",value:function(r){return this===r}},{key:"isSameNode",value:function(r){return this.isEqualNode(r)}},{key:"parent",get:function(){return this.parentNode}},{key:"parentElement",get:function(){return null}},{key:"nextSibling",get:function(){return null}},{key:"previousSibling",get:function(){return null}},{key:"firstChild",get:function(){return this.childNodes.length>0?this.childNodes[0]:null}},{key:"lastChild",get:function(){return this.childNodes.length>0?this.childNodes[this.childNodes.length-1]:null}},{key:"compareDocumentPosition",value:function(r){if(r===this)return 0;for(var n=r,i=this,a=[n],s=[i];(o=n.parentNode)!==null&&o!==void 0?o:i.parentNode;){var o;n=n.parentNode?(a.push(n.parentNode),n.parentNode):n,i=i.parentNode?(s.push(i.parentNode),i.parentNode):i}if(n!==i)return t.DOCUMENT_POSITION_DISCONNECTED|t.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|t.DOCUMENT_POSITION_PRECEDING;var l=a.length>s.length?a:s,u=l===a?s:a;if(l[l.length-u.length]===u[0])return l===a?t.DOCUMENT_POSITION_CONTAINED_BY|t.DOCUMENT_POSITION_FOLLOWING:t.DOCUMENT_POSITION_CONTAINS|t.DOCUMENT_POSITION_PRECEDING;for(var c=l.length-u.length,f=u.length-1;f>=0;f--){var d=u[f],h=l[c+f];if(h!==d){var g=d.parentNode.childNodes;return g.indexOf(d)<g.indexOf(h)?u===a?t.DOCUMENT_POSITION_PRECEDING:t.DOCUMENT_POSITION_FOLLOWING:l===a?t.DOCUMENT_POSITION_PRECEDING:t.DOCUMENT_POSITION_FOLLOWING}}return t.DOCUMENT_POSITION_FOLLOWING}},{key:"contain",value:function(r){return this.contains(r)}},{key:"contains",value:function(r){for(var n=r;n&&this!==n;)n=n.parentNode;return!!n}},{key:"getAncestor",value:function(r){for(var n=this;r>0&&n;)n=n.parentNode,r--;return n}},{key:"forEach",value:function(r){for(var n=[this];n.length>0;){var i=n.pop(),a=r(i);if(a===!1)break;for(var s=i.childNodes.length-1;s>=0;s--)n.push(i.childNodes[s])}}}],[{key:"isNode",value:function(r){return!!r.childNodes}}])})(fp);Zt.DOCUMENT_POSITION_DISCONNECTED=1,Zt.DOCUMENT_POSITION_PRECEDING=2,Zt.DOCUMENT_POSITION_FOLLOWING=4,Zt.DOCUMENT_POSITION_CONTAINS=8,Zt.DOCUMENT_POSITION_CONTAINED_BY=16,Zt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32;var Ms=(function(){function A(){K(this,A)}return _(A,[{key:"getOrCreateCanvas",value:function(e,r){if(this.canvas)return this.canvas;if(e||R.offscreenCanvas)this.canvas=e||R.offscreenCanvas,this.context=this.canvas.getContext("2d",iA({willReadFrequently:!0},r));else try{this.canvas=new window.OffscreenCanvas(0,0),this.context=this.canvas.getContext("2d",iA({willReadFrequently:!0},r)),(!this.context||!this.context.measureText)&&(this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"))}catch{this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d",iA({willReadFrequently:!0},r))}return this.canvas.width=10,this.canvas.height=10,this.canvas}},{key:"getOrCreateContext",value:function(e,r){return this.context?this.context:(this.getOrCreateCanvas(e,r),this.context)}}],[{key:"createCanvas",value:function(){try{return new window.OffscreenCanvas(0,0)}catch{}try{return document.createElement("canvas")}catch{}return null}}])})(),hp=(function(A){return A[A.CAMERA_CHANGED=0]="CAMERA_CHANGED",A[A.DISPLAY_OBJECT_CHANGED=1]="DISPLAY_OBJECT_CHANGED",A[A.NONE=2]="NONE",A})({}),dp=/\[\s*(.*)=(.*)\s*\]/,gp=(function(){function A(){K(this,A)}return _(A,[{key:"selectOne",value:function(e,r){var n=this;if(e.startsWith("."))return r.find(function(o){return(o?.classList||[]).indexOf(n.getIdOrClassname(e))>-1});if(e.startsWith("#"))return r.find(function(o){return o.id===n.getIdOrClassname(e)});if(e.startsWith("[")){var i=this.getAttribute(e),a=i.name,s=i.value;return a?r.find(function(o){return r!==o&&(a==="name"?o.name===s:n.attributeToString(o,a)===s)}):null}return r.find(function(o){return r!==o&&o.nodeName===e})}},{key:"selectAll",value:function(e,r){var n=this;if(e.startsWith("."))return r.findAll(function(o){return r!==o&&(o?.classList||[]).indexOf(n.getIdOrClassname(e))>-1});if(e.startsWith("#"))return r.findAll(function(o){return r!==o&&o.id===n.getIdOrClassname(e)});if(e.startsWith("[")){var i=this.getAttribute(e),a=i.name,s=i.value;return a?r.findAll(function(o){return r!==o&&(a==="name"?o.name===s:n.attributeToString(o,a)===s)}):[]}return r.findAll(function(o){return r!==o&&o.nodeName===e})}},{key:"is",value:function(e,r){if(e.startsWith("."))return r.className===this.getIdOrClassname(e);if(e.startsWith("#"))return r.id===this.getIdOrClassname(e);if(e.startsWith("[")){var n=this.getAttribute(e),i=n.name,a=n.value;return i==="name"?r.name===a:this.attributeToString(r,i)===a}return r.nodeName===e}},{key:"getIdOrClassname",value:function(e){return e.substring(1)}},{key:"getAttribute",value:function(e){var r=e.match(dp),n="",i="";return r&&r.length>2&&(n=r[1].replace(/"/g,""),i=r[2].replace(/"/g,"")),{name:n,value:i}}},{key:"attributeToString",value:function(e,r){if(!e.getAttribute)return"";var n=e.getAttribute(r);return CA(n)?"":n.toString?n.toString():""}}])})(),lA=(function(A){return A.ATTR_MODIFIED="DOMAttrModified",A.INSERTED="DOMNodeInserted",A.MOUNTED="DOMNodeInsertedIntoDocument",A.REMOVED="removed",A.UNMOUNTED="DOMNodeRemovedFromDocument",A.REPARENT="reparent",A.DESTROY="destroy",A.BOUNDS_CHANGED="bounds-changed",A.CULLED="culled",A})({}),et=(function(A){function t(e,r,n,i,a,s,o,l){var u;return K(this,t),u=uA(this,t,[null]),u.relatedNode=r,u.prevValue=n,u.newValue=i,u.attrName=a,u.attrChange=s,u.prevParsedValue=o,u.newParsedValue=l,u.type=e,u}return cA(t,A),_(t)})(gi);et.ADDITION=2,et.MODIFICATION=1,et.REMOVAL=3;var Bp=new et(lA.REPARENT,null,"","","",0,"",""),vp=ts(),Bi=dA(),pp=pA(1,1,1),mp=TA(),yp=ts(),qt=dA(),wp=TA(),jt=VA(),Cp=dA(),Ep=VA(),Qp=dA(),on=dA(),Ar=dA(),vi=TA(),Qc=VA(),Fc=VA(),pi=VA(),Fp=(function(){function A(t){K(this,A),this.displayObjectDependencyMap=new WeakMap,this.runtime=t}return _(A,[{key:"matches",value:function(e,r){return this.runtime.sceneGraphSelector.is(e,r)}},{key:"querySelector",value:function(e,r){return this.runtime.sceneGraphSelector.selectOne(e,r)}},{key:"querySelectorAll",value:function(e,r){return this.runtime.sceneGraphSelector.selectAll(e,r)}},{key:"attach",value:function(e,r,n){var i,a=!1;e.parentNode&&(a=e.parentNode!==r,this.detach(e));var s=e.nodeName===Y.FRAGMENT,o=Ss(r);e.parentNode=r;var l=s?e.childNodes:[e];$e(n)?l.forEach(function(g){r.childNodes.splice(n,0,g),g.parentNode=r}):l.forEach(function(g){r.childNodes.push(g),g.parentNode=r});var u=r,c=u.sortable;if((c!=null&&(i=c.sorted)!==null&&i!==void 0&&i.length||c.dirty||e.parsedStyle.zIndex)&&(c.dirtyChildren.indexOf(e)===-1&&c.dirtyChildren.push(e),c.dirty=!0,c.dirtyReason=hs.ADDED),!o){if(s)this.dirtyFragment(e);else{var f=e.transformable;f&&this.dirtyWorldTransform(e,f)}if(a){var d,h=((d=r.ownerDocument)===null||d===void 0||(d=d.defaultView)===null||d===void 0||(d=d.getConfig())===null||d===void 0||(d=d.future)===null||d===void 0?void 0:d.experimentalCancelEventPropagation)===!0;e.dispatchEvent(Bp,h,h)}}}},{key:"detach",value:function(e){var r,n;if(e.parentNode){var i=e.transformable,a=e.parentNode,s=a.sortable;(s!=null&&(r=s.sorted)!==null&&r!==void 0&&r.length||(n=e.style)!==null&&n!==void 0&&n.zIndex)&&(s.dirtyChildren.indexOf(e)===-1&&s.dirtyChildren.push(e),s.dirty=!0,s.dirtyReason=hs.REMOVED);var o=e.parentNode.childNodes.indexOf(e);o>-1&&e.parentNode.childNodes.splice(o,1),i&&this.dirtyWorldTransform(e,i),e.parentNode=null}}},{key:"getLocalPosition",value:function(e){return e.transformable.localPosition}},{key:"getLocalRotation",value:function(e){return e.transformable.localRotation}},{key:"getLocalScale",value:function(e){return e.transformable.localScale}},{key:"getLocalSkew",value:function(e){return e.transformable.localSkew}},{key:"getLocalTransform",value:function(e){var r=e.transformable;return Iu(r),r.localTransform}},{key:"setLocalPosition",value:function(e,r){var n,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=e.transformable;on[0]=r[0],on[1]=r[1],on[2]=(n=r[2])!==null&&n!==void 0?n:0,!Yr(a.localPosition,on)&&(Ye(a.localPosition,on),i&&this.dirtyLocalTransform(e,a))}},{key:"translateLocal",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=pA(r,n,i));var a=e.transformable;Yr(r,Bi)||(Sg(r,r,a.localRotation),Ut(a.localPosition,a.localPosition,r),this.dirtyLocalTransform(e,a))}},{key:"setLocalRotation",value:function(e,r,n,i,a){var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;typeof r=="number"&&(r=Gl(jt,r,n,i,a));var o=e.transformable;Jn(o.localRotation,r),s&&this.dirtyLocalTransform(e,o)}},{key:"rotateLocal",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=pA(r,n,i));var a=e.transformable;Yn(Fc,r[0],r[1],r[2]),Vl(a.localRotation,a.localRotation,Fc),this.dirtyLocalTransform(e,a)}},{key:"setLocalScale",value:function(e,r){var n,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=e.transformable;me(qt,r[0],r[1],(n=r[2])!==null&&n!==void 0?n:a.localScale[2]),!Yr(qt,a.localScale)&&(Ye(a.localScale,qt),i&&this.dirtyLocalTransform(e,a))}},{key:"scaleLocal",value:function(e,r){var n,i=e.transformable;Fg(i.localScale,i.localScale,me(qt,r[0],r[1],(n=r[2])!==null&&n!==void 0?n:1)),this.dirtyLocalTransform(e,i)}},{key:"setLocalSkew",value:function(e,r,n){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;typeof r=="number"&&(r=Dg(yp,r,n));var a=e.transformable;Ng(a.localSkew,r),i&&this.dirtyLocalTransform(e,a)}},{key:"setLocalEulerAngles",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;typeof r=="number"&&(r=pA(r,n,i));var s=e.transformable;Yn(s.localRotation,r[0],r[1],r[2]),a&&this.dirtyLocalTransform(e,s)}},{key:"setLocalTransform",value:function(e,r){var n=Vn(Cp,r),i=zn(Ep,r),a=mr(Qp,r);this.setLocalScale(e,a,!1),this.setLocalPosition(e,n,!1),this.setLocalRotation(e,i,void 0,void 0,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"resetLocalTransform",value:function(e){this.setLocalScale(e,pp,!1),this.setLocalPosition(e,Bi,!1),this.setLocalEulerAngles(e,Bi,void 0,void 0,!1),this.setLocalSkew(e,vp,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"getPosition",value:function(e){var r=e.transformable;return Vn(r.position,this.getWorldTransform(e,r))}},{key:"getRotation",value:function(e){var r=e.transformable;return zn(r.rotation,this.getWorldTransform(e,r))}},{key:"getScale",value:function(e){var r=e.transformable;return mr(r.scaling,this.getWorldTransform(e,r))}},{key:"getOrigin",value:function(e){return e.getGeometryBounds(),e.transformable.origin}},{key:"getWorldTransform",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.transformable;return!r.localDirtyFlag&&!r.dirtyFlag||(e.parentNode&&e.parentNode.transformable&&this.getWorldTransform(e.parentNode),this.internalUpdateTransform(e)),r.worldTransform}},{key:"setPosition",value:function(e,r){var n,i=e.transformable;if(Ar[0]=r[0],Ar[1]=r[1],Ar[2]=(n=r[2])!==null&&n!==void 0?n:0,!Yr(this.getPosition(e),Ar)){if(Ye(i.position,Ar),e.parentNode===null||!e.parentNode.transformable)Ye(i.localPosition,Ar);else{var a=e.parentNode.transformable;Gn(vi,a.worldTransform),ot(vi,vi),Xr(i.localPosition,Ar,vi)}this.dirtyLocalTransform(e,i)}}},{key:"translate",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=me(qt,r,n,i)),!Yr(r,Bi)&&(Ut(qt,this.getPosition(e),r),this.setPosition(e,qt))}},{key:"setRotation",value:function(e,r,n,i,a){var s=e.transformable;if(typeof r=="number"&&(r=Lg(r,n,i,a)),e.parentNode===null||!e.parentNode.transformable)this.setLocalRotation(e,r);else{var o=this.getRotation(e.parentNode);Jn(jt,o),es(jt,jt),It(s.localRotation,jt,r),$n(s.localRotation,s.localRotation),this.dirtyLocalTransform(e,s)}}},{key:"rotate",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=pA(r,n,i));var a=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.rotateLocal(e,r);else{var s=jt;Yn(s,r[0],r[1],r[2]);var o=this.getRotation(e),l=this.getRotation(e.parentNode);Jn(pi,l),es(pi,pi),It(s,pi,s),It(a.localRotation,s,o),$n(a.localRotation,a.localRotation),this.dirtyLocalTransform(e,a)}}},{key:"setOrigin",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=[r,n,i]);var a=e.transformable;if(!(r[0]===a.origin[0]&&r[1]===a.origin[1]&&r[2]===a.origin[2])){var s=a.origin;s[0]=r[0],s[1]=r[1],s[2]=r[2]||0,this.dirtyLocalTransform(e,a)}}},{key:"setEulerAngles",value:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=pA(r,n,i));var a=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.setLocalEulerAngles(e,r);else{Yn(a.localRotation,r[0],r[1],r[2]);var s=this.getRotation(e.parentNode);Jn(Qc,es(jt,s)),Vl(a.localRotation,a.localRotation,Qc),this.dirtyLocalTransform(e,a)}}},{key:"getGeometryBounds",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=e,i=n.geometry;i.dirty&&R.styleValueRegistry.updateGeometry(e);var a=r?i.renderBounds:i.contentBounds||null;return a||new fe}},{key:"getTransformedGeometryBounds",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2?arguments[2]:void 0,i=this.getGeometryBounds(e,r);if(!fe.isEmpty(i)){var a=n||new fe;return a.setFromTransformedAABB(i,this.getWorldTransform(e)),a}return null}},{key:"getBounds",value:function(e){var r=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=e,a=i.renderable;if(!a.boundsDirty&&!n&&a.bounds)return a.bounds;if(!a.renderBoundsDirty&&n&&a.renderBounds)return a.renderBounds;var s=n?a.renderBounds:a.bounds,o=this.getTransformedGeometryBounds(e,n,s),l=e.childNodes;if(l.forEach(function(f){var d=r.getBounds(f,n);d&&(o?o.add(d):(o=s||new fe,o.update(d.center,d.halfExtents)))}),o||(o=new fe),n){var u=Tv(e);if(u){var c=u.parsedStyle.clipPath.getBounds(n);o?c&&(o=c.intersection(o)):o.update(c.center,c.halfExtents)}}return n?(a.renderBounds=o,a.renderBoundsDirty=!1):(a.bounds=o,a.boundsDirty=!1),o}},{key:"getLocalBounds",value:function(e){if(e.parentNode){var r=mp;e.parentNode.transformable&&(r=ot(wp,this.getWorldTransform(e.parentNode)));var n=this.getBounds(e);if(!fe.isEmpty(n)){var i=new fe;return i.setFromTransformedAABB(n,r),i}}return this.getBounds(e)}},{key:"getBoundingClientRect",value:function(e){var r,n,i=this.getGeometryBounds(e);fe.isEmpty(i)||(n=new fe,n.setFromTransformedAABB(i,this.getWorldTransform(e)));var a=(r=e.ownerDocument)===null||r===void 0||(r=r.defaultView)===null||r===void 0?void 0:r.getContextService().getBoundingClientRect();if(n){var s=n.getMin(),o=vA(s,2),l=o[0],u=o[1],c=n.getMax(),f=vA(c,2),d=f[0],h=f[1];return new Fr(l+(a?.left||0),u+(a?.top||0),d-l,h-u)}return new Fr(a?.left||0,a?.top||0,0,0)}},{key:"internalUpdateTransform",value:function(e){var r,n=(r=e.parentNode)===null||r===void 0?void 0:r.transformable;Iu(e.transformable),$0(e.transformable,n)}},{key:"internalUpdateElement",value:function(e,r){var n,i,a,s,o=((n=e.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0||(n=n.getConfig())===null||n===void 0||(n=n.future)===null||n===void 0?void 0:n.experimentalAttributeUpdateOptimization)===!0,l=r[r.length-1],u=l?.transformDirty||((i=e.transformable)===null||i===void 0?void 0:i.localDirtyFlag);if(e.transformable){var c;(c=e.transformable).dirtyFlag||(c.dirtyFlag=u)}if(this.internalUpdateTransform(e),u){var f;(f=e.dirty)===null||f===void 0||f.call(e,!0,!0)}var d=((a=e.renderable)===null||a===void 0?void 0:a.boundsDirty)||((s=e.renderable)===null||s===void 0?void 0:s.renderBoundsDirty);if((u||d)&&l?.shapeUpdated===!1&&o)for(var h=r.length-1;h>=0;){var g,v,w=r[h];if(w.shapeUpdated)break;(g=(v=w.node).dirty)===null||g===void 0||g.call(v,!0,!0),w.shapeUpdated=!0,h-=1}return u}},{key:"syncHierarchy",value:function(e){for(var r,n,i=[e],a=e.parentNode?[{node:e.parentNode,transformDirty:((r=e.parentNode.transformable)===null||r===void 0?void 0:r.localDirtyFlag)||((n=e.parentNode.transformable)===null||n===void 0?void 0:n.dirtyFlag),shapeUpdated:!1}]:[];i.length>0;){for(var s=i.pop(),o=a[a.length-1];a.length>0&&s.parentNode!==o.node;)o=a.pop();var l=this.internalUpdateElement(s,a);if(s.childNodes.length>0){for(var u=s.childNodes.length-1;u>=0;u--)i.push(s.childNodes[u]);a.push({node:s,transformDirty:l,shapeUpdated:!1})}}}},{key:"dirtyLocalTransform",value:function(e,r){Ss(e)||r.localDirtyFlag||(r.localDirtyFlag=!0,r.dirtyFlag||this.dirtyWorldTransform(e,r))}},{key:"dirtyWorldTransform",value:function(e,r){this.dirtyWorldInternal(e,r),this.dirtyToRoot(e,!0)}},{key:"dirtyWorldInternal",value:function(e,r){var n,i=this,a=((n=e.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0||(n=n.getConfig())===null||n===void 0||(n=n.future)===null||n===void 0?void 0:n.experimentalAttributeUpdateOptimization)===!0;r.dirtyFlag||(r.dirtyFlag=!0,e.dirty(!0,!0),a||e.childNodes.forEach(function(s){var o=s.transformable;i.dirtyWorldInternal(s,o)}))}},{key:"dirtyToRoot",value:function(e){for(var r,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=e,a=((r=e.ownerDocument)===null||r===void 0||(r=r.defaultView)===null||r===void 0||(r=r.getConfig())===null||r===void 0||(r=r.future)===null||r===void 0?void 0:r.experimentalAttributeUpdateOptimization)===!0;i;){var s,o;if((s=(o=i).dirty)===null||s===void 0||s.call(o,!0,!0),a)break;i=i.parentNode}n&&e.forEach(function(c){var f;(f=c.dirty)===null||f===void 0||f.call(c,!0,!0)}),this.informDependentDisplayObjects(e);var l=e.mutations||[],u=l.find(function(c){return c.type==="attributes"&&c._boundsChangeData});u?u._boundsChangeData={affectChildren:u._boundsChangeData.affectChildren||n}:(u={type:"attributes",target:e,_boundsChangeData:{affectChildren:n}},l.push(u)),e.mutations=l}},{key:"dirtyFragment",value:function(e){var r,n,i=e.transformable;i&&(i.dirtyFlag=!0,i.localDirtyFlag=!0),(r=(n=e).dirty)===null||r===void 0||r.call(n,!0,!0);for(var a=e.childNodes.length,s=0;s<a;s++)this.dirtyFragment(e.childNodes[s])}},{key:"notifyMutationObservers",value:function(e){var r=new Set;if(e.getRoot().forEach(function(i){(i.mutations||[]).forEach(function(a){a.type==="attributes"&&a._boundsChangeData&&(a._boundsChangeData.affectChildren?i.forEach(function(s){var o=iA({},a);o.target=s,r.add(o)}):r.add(a))}),i.mutations=void 0}),r.size>0){var n=new ft(lA.BOUNDS_CHANGED,{detail:Array.from(r)});e.dispatchEvent(n,!0,!0)}}},{key:"updateDisplayObjectDependency",value:function(e,r,n,i){if(r&&r!==n){var a=this.displayObjectDependencyMap.get(r);if(a&&a[e]){var s=a[e].indexOf(i);a[e].splice(s,1)}}if(n){var o=this.displayObjectDependencyMap.get(n);o||(this.displayObjectDependencyMap.set(n,{}),o=this.displayObjectDependencyMap.get(n)),o[e]||(o[e]=[]),o[e].push(i)}}},{key:"informDependentDisplayObjects",value:function(e){var r,n=this,i=this.displayObjectDependencyMap.get(e);if(i){var a=(r=e.ownerDocument)===null||r===void 0||(r=r.defaultView)===null||r===void 0||(r=r.getConfig())===null||r===void 0||(r=r.future)===null||r===void 0?void 0:r.experimentalCancelEventPropagation;Object.keys(i).forEach(function(s){i[s].forEach(function(o){n.dirtyToRoot(o,!0),o.dispatchEvent(new et(lA.ATTR_MODIFIED,o,n,n,s,et.MODIFICATION,n,n),a,a),o.isCustomElement&&o.isConnected&&o.attributeChangedCallback&&o.attributeChangedCallback(s,n,n)})})}}}])})(),Uc=(function(){function A(t){if(K(this,A),t<=0)throw new Error("LRU capacity must be a positive number.");this.capacity=t,this.cache=new Map}return _(A,[{key:"get",value:function(e){if(this.cache.has(e)){var r=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,r),r}}},{key:"put",value:function(e,r){if(this.cache.has(e)&&this.cache.delete(e),this.cache.set(e,r),this.cache.size>this.capacity){var n=this.cache.keys().next().value;this.cache.delete(n)}}},{key:"len",value:function(){return this.cache.size}},{key:"clear",value:function(){this.cache.clear()}}])})(),er={MetricsString:"|ÉqÅ",BaselineSymbol:"M",BaselineMultiplier:1.4,HeightMultiplier:2,Newlines:[10,13],BreakingSpaces:[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288]},xc=/[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff!"#$%&'()*+,-./:;]/,Up=/[!%),.:;?\]}¢°·'""†‡›℃∶、。〃〆〕〗〞﹚﹜!"%'),.:;?!]}~]/,xp=/[$(£¥·'"〈《「『【〔〖〝﹙﹛$(.[{£¥]/,bp=/[!),.:;?\]}¢·–—'"•"、。〆〞〕〉》」︰︱︲︳﹐﹑﹒﹔﹕﹖﹘﹚﹜!),.:;?︶︸︺︼︾﹀﹂﹗]|}、]/,Ip=/[([{£¥'"‵〈《「『〔〝︴﹙﹛({︵︷︹︻︽︿﹁﹃﹏]/,Sp=/[)\]}〕〉》」』】〙〗〟'"⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、:;,。.]/,Tp=/[([{〔〈《「『【〘〖〝'"⦅«—...‥〳〴〵]/,Mp=/[!%),.:;?\]}¢°'"†‡℃〆〈《「『〕!%),.:;?]}]/,Hp=/[$([{£¥'"々〇〉》」〔$([{⦆¥₩#]/,kp=new RegExp("".concat(Up.source,"|").concat(bp.source,"|").concat(Sp.source,"|").concat(Mp.source)),Lp=new RegExp("".concat(xp.source,"|").concat(Ip.source,"|").concat(Tp.source,"|").concat(Hp.source)),Np=(function(){function A(t){var e=this;K(this,A),this.fontMetricsCache={},this.shouldBreakByKinsokuShorui=function(r,n){return e.isBreakingSpace(n)?!1:!!(r&&(Lp.exec(n)||kp.exec(r)))},this.trimByKinsokuShorui=function(r){var n=oA(r),i=n[n.length-2];if(!i)return r;var a=i[i.length-1];return n[n.length-2]=i.slice(0,-1),n[n.length-1]=a+n[n.length-1],n},this.runtime=t,this.charWidthCache=new Uc(100)}return _(A,[{key:"measureFont",value:function(e,r){if(this.fontMetricsCache[e])return this.fontMetricsCache[e];var n={ascent:0,descent:0,fontSize:0},i=this.runtime.offscreenCanvasCreator.getOrCreateCanvas(r),a=this.runtime.offscreenCanvasCreator.getOrCreateContext(r,{willReadFrequently:!0});a.font=e;var s=er.MetricsString+er.BaselineSymbol,o=Math.ceil(a.measureText(s).width),l=Math.ceil(a.measureText(er.BaselineSymbol).width),u=er.HeightMultiplier*l;l=l*er.BaselineMultiplier|0,i.width=o,i.height=u,a.fillStyle="#f00",a.fillRect(0,0,o,u),a.font=e,a.textBaseline="alphabetic",a.fillStyle="#000",a.fillText(s,0,l);var c=a.getImageData(0,0,o||1,u||1).data,f=c.length,d=o*4,h=0,g=0,v=!1;for(h=0;h<l;++h){for(var w=0;w<d;w+=4)if(c[g+w]!==255){v=!0;break}if(!v)g+=d;else break}for(n.ascent=l-h,g=f-d,v=!1,h=u;h>l;--h){for(var p=0;p<d;p+=4)if(c[g+p]!==255){v=!0;break}if(!v)g-=d;else break}return n.descent=h-l,n.fontSize=n.ascent+n.descent,this.fontMetricsCache[e]=n,n}},{key:"measureText",value:function(e,r,n){var i=r.fontSize,a=i===void 0?16:i,s=r.wordWrap,o=s===void 0?!1:s,l=r.lineHeight,u=r.lineWidth,c=u===void 0?1:u,f=r.textBaseline,d=f===void 0?"alphabetic":f,h=r.textAlign,g=h===void 0?"start":h,v=r.letterSpacing,w=v===void 0?0:v,p=r.textPath;r.textPathSide,r.textPathStartOffset;var y=r.leading,E=y===void 0?0:y,F=yc(r),x=this.measureFont(F,n);x.fontSize===0&&(x.fontSize=a,x.ascent=a);var T=this.runtime.offscreenCanvasCreator.getOrCreateContext(n);T.font=F,r.isOverflowing=!1;var B=o?this.wordWrap(e,r,n):e,m=B.split(/(?:\r\n|\r|\n)/),C=new Array(m.length),S=0;if(p){p.getTotalLength();for(var U=0;U<m.length;U++)T.measureText(m[U]).width+(m[U].length-1)*w}else{for(var I=0;I<m.length;I++){var H=T.measureText(m[I]).width+(m[I].length-1)*w;C[I]=H,S=Math.max(S,H)}var b=S+c,k=l||x.fontSize+c,M=Math.max(k,x.fontSize+c)+(m.length-1)*(k+E);k+=E;var L=0;return d==="middle"?L=-M/2:d==="bottom"||d==="alphabetic"||d==="ideographic"?L=-M:(d==="top"||d==="hanging")&&(L=0),{font:F,width:b,height:M,lines:m,lineWidths:C,lineHeight:k,maxLineWidth:S,fontProperties:x,lineMetrics:C.map(function(N,O){var z=0;return g==="center"||g==="middle"?z-=N/2:(g==="right"||g==="end")&&(z-=N),new Fr(z-c/2,L+O*k,N+c,k)})}}}},{key:"wordWrap",value:function(e,r,n){var i=this,a=Array.from(e);if(a.length===0)return"";var s=this,o=r.wordWrapWidth,l=o===void 0?0:o,u=r.letterSpacing,c=u===void 0?0:u,f=r.maxLines,d=f===void 0?1/0:f,h=r.textOverflow,g=this.runtime.offscreenCanvasCreator.getOrCreateContext(n),v=l+c,w="";h==="ellipsis"?w="...":h&&h!=="clip"&&(w=h);var p=[""],y=0,E=0,F=-1,x=yc(r),T=this.charWidthCache.get(x);T||(T=new Uc(500),this.charWidthCache.put(x,T));var B=function(N){return i.getFromCache(N,c,T,g)},m=B(w);function C(L,N,O,z){for(;B(L)<z&&N<a.length-1&&!s.isNewline(a[N+1]);)N+=1,L+=a[N];for(;B(L)>z&&N>=O;)N-=1,L=L.slice(0,-1);return{lineTxt:L,txtLastCharIndex:N}}function S(L,N){if(!(m<=0||m>v)){if(!p[L]){p[L]=w;return}var O=C(p[L],N,F+1,v-m);p[L]=O.lineTxt+w}}for(var U=0;U<a.length;U++){var I=a[U],H=a[U-1],b=a[U+1],k=B(I);if(this.isNewline(I)){if(y+1>=d){U<a.length-1&&S(y,U-1),r.isOverflowing=!0;break}F=U-1,y+=1,E=0,p[y]="";continue}if(k>v){S(y,U-1),r.isOverflowing=!0;break}if(E>0&&E+k>v){var M=C(p[y],U-1,F+1,v);if(M.txtLastCharIndex!==U-1){if(p[y]=M.lineTxt,M.txtLastCharIndex===a.length-1)break;U=M.txtLastCharIndex+1,I=a[U],H=a[U-1],b=a[U+1],k=B(I)}if(y+1>=d){S(y,U-1),r.isOverflowing=!0;break}if(F=U-1,y+=1,E=0,p[y]="",this.isBreakingSpace(I))continue;this.canBreakInLastChar(I)||(p=this.trimToBreakable(p),E=this.sumTextWidthByCache(p[y]||"",B)),this.shouldBreakByKinsokuShorui(I,b)&&(p=this.trimByKinsokuShorui(p),E+=B(H||""))}E+=k,p[y]+=I}return p.join(`
|
|
@@ -56,4 +56,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
56
56
|
<head><title>灌溉概化图</title></head>
|
|
57
57
|
<body>${A.innerHTML}</body>
|
|
58
58
|
</html>
|
|
59
|
-
`),t.document.close(),t.print())}class Zo{graph=null;container=null;options;state={loading:!1,rendered:!1,zoom:1,selectedNodes:[],selectedEdges:[]};eventHandlers=new Map;dataPanelManager=null;evolutionManager=null;bufferLayerRenderer=null;contextMenuManager=null;bufferNodeSync=null;currentData=null;behaviorsCleanup=null;constructor(t){this.options=t,Zh(),zh(),Gh()}async init(){const t=typeof this.options.container=="string"?document.getElementById(this.options.container):this.options.container;if(!t)throw new Error("Container not found");this.container=t;const{behaviors:e,cleanup:r}=gl(this.options);return this.behaviorsCleanup=r,this.graph=new We.Graph({container:t,width:this.options.width||t.clientWidth,height:this.options.height||t.clientHeight,autoFit:this.options.fitView?"view":void 0,padding:this.options.fitViewPadding,background:"transparent",layout:vd(this.options.layout),behaviors:e,plugins:oF(this.options,this.currentData),node:{type:n=>n.nodeShape||"circle",style:n=>{const i=n,a=i.style||{},s=i.nodeShape==="image";if(i.nodeShape==="buffer-polygon")return{...a,zIndex:a.zIndex??-999,labelText:"",label:!1,icon:!1,badge:!1,port:!1,halo:!1};if(s&&a.img){const u=a.width||48,c=a.height||48,f={src:a.img,width:u,height:c,size:[u,c],labelText:i.data?.label||""};return a.fill&&(f.fill=a.fill),a.stroke&&(f.stroke=a.stroke),a.labelFill&&(f.labelFill=a.labelFill),a.labelFontSize&&(f.labelFontSize=a.labelFontSize||16),a.labelPlacement&&(f.labelPlacement=a.labelPlacement),f.zIndex=10,f}const l={fill:a.fill||"#fff",stroke:a.stroke||"#1890ff",lineWidth:a.lineWidth??2,radius:a.radius??4,size:a.width?[a.width,a.height||a.width]:void 0,labelText:i.data?.label||"",...a};return!a.labelPlacement&&i.data?.labelPlacement&&(l.labelPlacement=i.data.labelPlacement),l}},edge:{type:n=>{const i=n;return i.style?.router?"polyline":i.edgeShape||"band-edge"},style:n=>{const i=n,a=i.style||{},s={stroke:"#1890ff",lineWidth:2,endArrow:!0};!s.labelText&&i.data?.label&&(s.labelText=i.data.label),s.labelText&&(Object.assign(s,{labelFontSize:16,labelFill:"#666",labelBackgroundFill:"rgba(255, 255, 255, 0.9)",labelBackgroundRadius:4,labelPadding:[2,6]}),a.labelFontSize!==void 0&&(s.labelFontSize=a.labelFontSize),a.labelFill!==void 0&&(s.labelFill=a.labelFill),a.labelBackgroundFill!==void 0&&(s.labelBackgroundFill=a.labelBackgroundFill),a.labelBackgroundRadius!==void 0&&(s.labelBackgroundRadius=a.labelBackgroundRadius),a.labelPadding!==void 0&&(s.labelPadding=a.labelPadding)),Object.assign(s,a),a.router&&(s.router={type:"orth",offset:20,...typeof a.router=="object"?a.router:{}});const o=i.style;return o&&typeof o=="object"&&Object.assign(s,o),s}},combo:{type:"irrigation-combo",style:n=>{const i=n.style||{};return{padding:i.padding||[20,20,20,20],labelText:i.labelText||n.data?.label||"",labelPlacement:i.labelPlacement||"top",labelFontSize:i.labelFontSize||12,fill:i.fill||"#f3f9ff",stroke:i.stroke||"#1890ff",lineWidth:i.lineWidth||2,radius:i.radius||8,labelFill:"#333",labelBackground:!0,labelBackgroundFill:"#fff",labelBackgroundOpacity:.8,labelBackgroundRadius:4,labelBackgroundPadding:[2,4]}}}}),uF(this.graph,this.eventHandlers),this.dataPanelManager=new hd(this.options.dataPanel||{enabled:!1}),this.dataPanelManager.mount(this.graph,t),this.options.evolution?.enabled&&(this.evolutionManager=new La(this.options.evolution),this.evolutionManager.mount(this.graph,this.dataPanelManager)),this.options.contextMenu?.enabled!==!1&&(this.contextMenuManager=new $o(this.options.contextMenu),this.contextMenuManager.mount(this.graph,t)),this.options.enableMinimap&&this.listenCanvasResize(),this.state.rendered=!0,this.graph}async render(t){this.graph||await this.init(),this.currentData=t,this.state.loading=!0;try{await this.graph.setData(t),await this.graph.render(),t.groups&&t.groups.length>0&&(this.bufferNodeSync||(this.bufferNodeSync=new fd),this.bufferNodeSync.init(this.graph,t.groups,t.edges||[])),this.dataPanelManager&&setTimeout(()=>{this.dataPanelManager?.updateConfig({})},100)}finally{this.state.loading=!1}}async updateData(t){if(!this.graph)return;const e=this.graph.getData(),r={nodes:t.nodes??e.nodes,edges:t.edges??e.edges,combos:t.combos??e.combos};await this.graph.setData(r),await this.graph.render()}async addNode(t){this.graph&&(await this.graph.addNodeData([t]),await this.graph.draw())}async addEdge(t){this.graph&&(await this.graph.addEdgeData([t]),await this.graph.draw())}async removeNode(t){this.graph&&(await this.graph.removeNodeData([t]),await this.graph.draw())}async removeEdge(t){this.graph&&(await this.graph.removeEdgeData([t]),await this.graph.draw())}async updateNode(t,e){this.graph&&(await this.graph.updateNodeData([{id:t,...e}]),await this.graph.draw())}async updateEdge(t,e){this.graph&&(await this.graph.updateEdgeData([{id:t,...e}]),await this.graph.draw())}zoomTo(t){this.graph&&(this.graph.zoomTo(t),this.state.zoom=t)}zoomIn(){const t=Math.min(this.state.zoom*1.2,5);this.zoomTo(t)}zoomOut(){const t=Math.max(this.state.zoom/1.2,.1);this.zoomTo(t)}fitView(){this.graph&&this.graph.fitView()}focusNode(t){this.graph&&this.graph.focusElement(t)}getData(){return pd(this.graph,this.currentData?.groups)}save(){return dF(this.graph)}async load(t){await gF(this.graph,t)}async toImage(t){return md(this.graph,t)}async downloadImage(t){await BF(this.graph,t)}print(){vF(this.container)}getState(){return{...this.state}}getSelectedNodes(){return[...this.state.selectedNodes]}getSelectedEdges(){return[...this.state.selectedEdges]}async setLayout(t){if(!this.graph)return;const e=vd(t);this.graph.setLayout(e),await this.graph.layout()}getGraph(){return this.graph}getDataPanelManager(){return this.dataPanelManager}getEvolutionManager(){return this.evolutionManager}setEvolutionData(t){this.evolutionManager||(this.evolutionManager=new La(this.options.evolution||{enabled:!0}),this.graph&&this.container&&this.evolutionManager.mount(this.graph,this.dataPanelManager||void 0)),this.evolutionManager.setData(t)}enableDataPanel(t){if(this.dataPanelManager&&(t&&this.dataPanelManager.updateConfig(t),this.dataPanelManager.enable(),this.graph)){const e=this.graph.getPlugins(),r=e.filter(n=>n.type!=="tooltip");r.length!==e.length&&this.graph.setPlugins(r)}}disableDataPanel(){if(this.dataPanelManager&&(this.dataPanelManager.disable(),this.graph&&this.options.tooltip?.enabled!==!1)){const t=this.graph.getPlugins();t.some(r=>r.type==="tooltip")||this.graph.setPlugins([...t,lF(this.options)])}}resize(t,e){if(!this.graph||!this.container)return;const r=t||this.container.clientWidth,n=e||this.container.clientHeight;this.graph.setSize(r,n)}resizeTimer=null;resizeObserver=null;listenCanvasResize(){!this.graph||!this.container||(this.resizeObserver=new ResizeObserver(()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout(()=>{this.updateMinimapPosition(),this.resizeTimer=null},150)}),this.resizeObserver.observe(this.container))}updateMinimapPosition(){if(!this.container)return;const t=document.querySelector(".g6-minimap"),e=t?.offsetWidth||0,r=t?.offsetHeight||0;t&&(t.style.top=`calc(100% - ${r}px)`,t.style.left=`calc(100% - ${e}px)`)}destroy(){this.evolutionManager&&(this.evolutionManager.unmount(),this.evolutionManager=null),this.dataPanelManager&&(this.dataPanelManager.unmount(),this.dataPanelManager=null),this.contextMenuManager&&(this.contextMenuManager.unmount(),this.contextMenuManager=null),this.bufferLayerRenderer&&(this.bufferLayerRenderer.destroy(),this.bufferLayerRenderer=null),this.bufferNodeSync&&(this.bufferNodeSync.destroy(),this.bufferNodeSync=null),this.resizeTimer&&(clearTimeout(this.resizeTimer),this.resizeTimer=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.behaviorsCleanup&&(this.behaviorsCleanup(),this.behaviorsCleanup=null),this.graph&&(this.graph.destroy(),this.graph=null),this.eventHandlers.clear(),this.state.rendered=!1}on(t,e){fF(this.eventHandlers,t,e)}off(t,e){hF(this.eventHandlers,t,e)}getContextMenuManager(){return this.contextMenuManager}enableContextMenu(){this.contextMenuManager&&this.contextMenuManager.enable()}disableContextMenu(){this.contextMenuManager&&this.contextMenuManager.disable()}onContextMenu(t){this.contextMenuManager&&this.contextMenuManager.on(t)}offContextMenu(t){this.contextMenuManager&&this.contextMenuManager.off(t)}}function pF(A){return new Zo(A)}const mF={generateAuxNodes:!0,defaultNodeSpacing:1e3,auxNodePrefix:"aux"};class yF{canalMap=new Map;canalChildren=new Map;existingPointsByCanalId=new Map;canalNodeMap=new Map;buildIndices(t){return this.clear(),this.buildCanalIndices(t.canals),this.buildPointIndices(t.points),this.buildCanalNodeMap(t),{canalMap:this.canalMap,canalChildren:this.canalChildren,existingPointsByCanalId:this.existingPointsByCanalId,canalNodeMap:this.canalNodeMap}}clear(){this.canalMap.clear(),this.canalChildren.clear(),this.existingPointsByCanalId.clear(),this.canalNodeMap.clear()}buildCanalIndices(t){for(const e of t)if(this.canalMap.set(e.id,e),e.parentId){const r=this.canalChildren.get(e.parentId)||[];r.push(e),r.sort((n,i)=>(n.forkChainage||0)-(i.forkChainage||0)),this.canalChildren.set(e.parentId,r)}}buildPointIndices(t){for(const e of t){e.ctrlTargetId&&(e.canalId=e.ctrlTargetId,e.chainage=-1);const r=this.existingPointsByCanalId.get(e.canalId)||[];r.push(e),this.existingPointsByCanalId.set(e.canalId,r)}for(const[e,r]of this.existingPointsByCanalId)r.sort((n,i)=>n.chainage-i.chainage),this.existingPointsByCanalId.set(e,r)}getCanalMap(){return this.canalMap}buildCanalNodeMap(t){const e=new Map;for(const r of t.canals)if(r.targetId){const n=e.get(r.targetId)||[];n.push({sourceCanalId:r.id,targetChainage:r.targetChainage||0}),e.set(r.targetId,n)}for(const r of t.canals){const n=[],i=this.existingPointsByCanalId.get(r.id)||[];for(const o of i)n.push({chainage:o.chainage,existingNode:o});const a=this.canalChildren.get(r.id)||[];for(const o of a)if(o.bankSide==="center"){const l=o.forkChainage||r.endChainage||1e4;n.push({chainage:l,auxType:"stream",linkTarget:{targetCanalId:o.id,targetChainage:o.startChainage||0}})}else{const l=o.forkChainage||0;n.push({chainage:l,auxType:"fork",branchId:o.id})}if(r.targetId&&this.canalMap.get(r.targetId)){const l=r.endChainage||1e4;n.push({chainage:l,auxType:"afflux",linkTarget:{targetCanalId:r.targetId,targetChainage:r.targetChainage||0}})}if(n.sort((o,l)=>o.chainage-l.chainage),(!r.parentId||r.parentId==="0")&&((e.get(r.id)||[]).some(u=>u.targetChainage===(r.startChainage||0))||n.unshift({chainage:r.startChainage||0,auxType:"start"})),n.length>0){const o=["end","stream","afflux"];n.every(u=>!o.includes(u.auxType))&&n.push({chainage:r.endChainage||0,auxType:"end"})}else!a.some(l=>l.bankSide==="center")&&!r.targetId&&n.push({chainage:r.endChainage||1e4,auxType:"end"});this.canalNodeMap.set(r.id,n)}this.formatCanalNodeMap()}detectJunctionNodes(){const t=new Map;for(const[e,r]of this.canalNodeMap)for(const n of r)if(n.auxType==="stream"&&n.linkTarget){const i=`${n.linkTarget.targetCanalId}:${n.linkTarget.targetChainage}`,a=t.get(i);a?(a.count++,a.sourceCanals.push(e)):t.set(i,{count:1,sourceCanals:[e],targetCanalId:n.linkTarget.targetCanalId,targetChainage:n.linkTarget.targetChainage})}for(const[e,r]of t){const n=this.canalNodeMap.get(r.targetCanalId);if(!n)continue;const i=r.targetChainage,a=n.find(l=>l.chainage===i),s=this.canalMap.get(r.targetCanalId),o=r.sourceCanals.length===1&&s?.parentId===r.sourceCanals[0];r.count>1?a&&!a.existingNode?a.auxType="afflux":a||(n.push({chainage:i,auxType:"afflux"}),n.sort((l,u)=>l.chainage-u.chainage)):o||a||(n.push({chainage:i,auxType:"stream",linkTarget:{targetCanalId:r.sourceCanals[0],targetChainage:0}}),n.sort((l,u)=>l.chainage-u.chainage))}}formatCanalNodeMap(){for(const[t,e]of this.canalNodeMap)for(const r of e)if((r.auxType==="stream"||r.auxType==="afflux")&&r.linkTarget){const n=t,i=r.chainage,a=r.linkTarget.targetCanalId,s=r.linkTarget.targetChainage,[o,l,u,c]=n<a?[n,i,a,s]:[a,s,n,i],f=`aux-${r.auxType}-${o}-${l}-${u}-${c}`;r.sharedNodeId=f;const d=this.canalNodeMap.get(a);d&&(d.push({chainage:s,auxType:r.auxType,sharedNodeId:f,linkTarget:{targetCanalId:t,targetChainage:i}}),d.sort((h,g)=>h.chainage-g.chainage))}}}var _r=(A=>(A.Entity="entity",A.Aux="aux",A))(_r||{});let wF=class{config;canalMap;constructor(t,e){this.config=t,this.canalMap=e}createAuxNode(t,e){const r=e.auxType,i={id:e.sharedNodeId||this.generateAuxNodeId(t,e),name:this.generateAuxNodeName(t,e),type:_r.Aux,auxType:r,canalId:t.id,chainage:e.chainage,autoGenerated:!0};switch(r){case"fork":e.branchId&&(i.branchId=e.branchId);break;case"stream":case"afflux":e.linkTarget&&(i.properties={isCrossCanalConnection:!0,targetCanalId:e.linkTarget.targetCanalId,targetChainage:e.linkTarget.targetChainage});break}return i}generateAuxNodeId(t,e){const r=this.config.auxNodePrefix;switch(e.auxType){case"start":return`${r}-start-${t.id}`;case"end":return`${r}-end-${t.id}`;case"fork":return`${r}-fork-${e.branchId||t.id}`;case"afflux":return`${r}-afflux-${t.id}-${e.chainage}`;case"stream":return`${r}-link-${t.id}-${e.chainage}`;default:return`${r}-${t.id}-${e.chainage}`}}generateAuxNodeName(t,e){const r=e.auxType;switch(r){case"start":return`${t.name}起点`;case"end":return`${t.name}终点`;case"fork":return`${(e.branchId?this.canalMap.get(e.branchId):null)?.name||"支渠"}分叉`;case"afflux":case"stream":{const i=(e.linkTarget?.targetCanalId?this.canalMap.get(e.linkTarget.targetCanalId):null)?.name||"目标渠";return`${t.name}-${i} ${r=="afflux"?"汇合点":"连接点"}`}default:return`辅助节点-${e.chainage}`}}};class CF{config;nodeFactory;canalNodeMap;canalMap;constructor(t,e,r,n){this.config=t,this.nodeFactory=e,this.canalNodeMap=r,this.canalMap=n}generateAllPoints(){const t=[],e=new Set;for(const[r,n]of this.canalNodeMap){const i=this.canalMap.get(r);if(i){for(const a of n)if(a.existingNode)e.has(a.existingNode.id)||(t.push(a.existingNode),e.add(a.existingNode.id));else if(a.auxType&&this.config.generateAuxNodes){const s=this.nodeFactory.createAuxNode(i,a);e.has(s.id)||(t.push(s),e.add(s.id))}}}return t}getPointsForCanal(t){const e=[],r=this.canalNodeMap.get(t),n=this.canalMap.get(t);if(!r||!n)return e;for(const i of r)if(i.existingNode)e.push(i.existingNode);else if(i.auxType&&this.config.generateAuxNodes){const a=this.nodeFactory.createAuxNode(n,i);e.push(a)}return e}}class qo{config;indexBuilder;constructor(t){this.config={...mF,...t},this.indexBuilder=new yF}preprocess(t){const e=this.indexBuilder.buildIndices(t),r=new wF(this.config,e.canalMap),i=new CF(this.config,r,e.canalNodeMap,e.canalMap).generateAllPoints();return{canals:t.canals,points:i,combos:t.combos||[],groups:t.groups||[]}}}function EF(A){return new qo(A)}function yd(A,t){return new qo(t).preprocess(A)}function wd(A){return A.points.length<A.canals.length*2||!A.points.some(e=>e.type==="aux")&&A.canals.length>0}const lr={fill:"#655a45",fillOpacity:.3,stroke:"#FFAA00",strokeOpacity:1,lineWidth:2,lineDash:[6,4],bufferWidth:30};class QF{constructor(t,e,r){this.groupEntities=t,this.existingEdges=e,this.existingNodes=r}transform(){const t=[];for(const e of this.groupEntities){const r=this.createBufferNode(e);r&&t.push(r)}return t}createBufferNode(t){const e=t.memberIds||[];if(e.length===0)return null;const r=this.buildNodePositions(),n=t.style?.bandWidth||lr.bufferWidth,i=Xo({memberIds:e,edges:this.existingEdges.map(s=>({source:String(s.source),target:String(s.target)})),nodePositions:r,bufferWidth:n});if(!i)return null;const a=t.style||{};return{id:`buffer-polygon-${t.id}`,nodeShape:"buffer-polygon",data:{label:"",groupId:t.id,groupName:t.name,memberIds:e,isBufferPolygon:!0},style:{x:i.centerX,y:i.centerY,pathData:i.pathData,fill:a.fill||lr.fill,fillOpacity:a.fillOpacity??lr.fillOpacity,stroke:a.stroke||lr.stroke,strokeOpacity:a.strokeOpacity??lr.strokeOpacity,lineWidth:a.lineWidth??lr.lineWidth,lineDash:a.lineDash||lr.lineDash,zIndex:a.zIndex??-999}}}buildNodePositions(){const t=new Map;for(const e of this.existingNodes){const r=String(e.id),n=e.style,i=n?.x??0,a=n?.y??0;t.set(r,[i,a])}return t}}class FF{constructor(t){this.indexBuilder=t}transform(){const t=[];for(const[e,r]of this.indexBuilder.comboEntities){const n={id:e,type:"rect",comboType:r.name.includes("调度节点")?"area-group":"custom",data:{label:r.name},draggable:!0,style:{padding:[20,20,20,20],labelText:r.name,labelPlacement:"top",labelFontSize:14,fill:"#f0f5ff",fillOpacity:1,stroke:"#adc6ff",lineWidth:2,radius:10}},i=this.indexBuilder.comboToComboMap.get(e);i&&(n.combo=i);const a=r.style;if(a){const s=["fill","fillOpacity","stroke","strokeOpacity","lineWidth","lineDash","opacity","radius","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","width","height","labelPlacement","labelFill","labelFontSize","labelOpacity"],o={};for(const l of s)l in a&&a[l]!==void 0&&(o[l]=a[l]);n.style={...n.style||{},...o},"draggable"in a&&typeof a.draggable=="boolean"&&(n.draggable=a.draggable)}t.push(n)}return t}}class UF{constructor(t,e=!0){this.indexBuilder=t,this.autoGenerateEdges=e}transform(t,e=[]){const r=new Set;if(e.forEach(s=>{s.id&&r.add(s.id)}),!this.autoGenerateEdges)return[];const n=this.generateChannelEdges(r),i=this.generateForkEdges(t.points,r),a=this.generateStreamEdges(t.points,r);return[...n,...i,...a]}generateChannelEdges(t){const e=[];for(const[r,n]of this.indexBuilder.pointsByCanalId){const i=this.indexBuilder.canalMap.get(r),a=i?.name||"";for(let s=0;s<n.length-1;s++){const o=n[s],l=n[s+1];if(!this.isValidEdge(o.id,l.id,t))continue;const u=this.shouldShowArrow(o,l),c=this.shouldShowLabel(l);e.push(this.createEdge(`edge-${o.id}-${l.id}`,o.id,l.id,"flow",!1,void 0,c?a:"",i?.style,u))}}return e}generateForkEdges(t,e){const r=[];for(const n of t){if(n.type!=="aux"||n.auxType!=="fork")continue;const i=n;if(!i.branchId)continue;const a=this.indexBuilder.canalMap.get(i.branchId),s=this.indexBuilder.pointsByCanalId.get(i.branchId);if(!s||s.length===0||!a)continue;const o=s[0].id;if(!this.isValidEdge(i.id,o,e))continue;const l=a.bankSide!=="center",u=a.bankSide==="left"?"up":"down",c=this.shouldShowArrow(i,s[0]),f=this.shouldShowLabel(s[0]);r.push(this.createEdge(`edge-${i.id}-${o}`,i.id,o,"flow",l,u,f?a.name:"",a.style,c))}return r}generateStreamEdges(t,e){const r=[];for(const n of t){if(n.type!=="aux"||n.auxType!=="stream")continue;const i=n,a=i.properties;if(!a?.targetCanalId||typeof a.targetCanalId!="string")continue;const s=a.targetCanalId,o=a.targetChainage||0,l=this.indexBuilder.pointsByCanalId.get(s);if(!l||l.length===0)continue;let u=l.find(h=>h.chainage===o);const c=this.indexBuilder.canalMap.get(s),f=c?.parentId===i.canalId;if(!u&&f&&(u=l[0]),!u||!this.isValidEdge(i.id,u.id,e))continue;const d=this.shouldShowLabel(u);r.push(this.createEdge(`edge-${i.id}-${u.id}`,i.id,u.id,"flow",!1,void 0,d&&c?.name||"",c?.style,!1))}return r}isValidEdge(t,e,r){return r.has(t)&&r.has(e)&&t!==e}shouldShowArrow(t,e){if(e.type!=="aux")return!1;const r=e;if((r.auxType||r.auxiliaryType)==="end"){const i=e.canalId;return!(this.indexBuilder.canalChildren.get(i)||[]).some(o=>o.bankSide==="center"&&o.forkChainage===e.chainage)}else if(r.auxType==="afflux")return r.canalId!==t?.canalId;return!1}shouldShowLabel(t){if(t.type!=="aux")return!1;const e=t,r=e.auxType||e.auxiliaryType;return r==="end"||r==="stream"||r==="afflux"}createEdge(t,e,r,n,i=!1,a,s,o,l=!1){const c={...$h(n),endArrow:l,label:!!s,labelText:s||"",labelFontSize:o?.labelFontSize??16,labelFill:"#666",labelBackgroundFill:"rgba(255, 255, 255, 0.8)",labelBackgroundRadius:4,labelPadding:[2,6],...o};return c.flyMarker?.enabled&&(c.animate={type:"fly-marker",repeat:c.flyMarker.iterations??1/0,duration:c.flyMarker.duration??3e3,delay:c.flyMarker.delay??0,marker:{size:c.flyMarker.markerSize??5,fill:c.flyMarker.markerColor??"red"}}),{id:t,source:e,target:r,data:{label:s||""},edgeShape:c.shape||"line",connectionType:n||"flow",style:c}}}class jo{constructor(t=[],e=[],r=[]){this.groupEntities=t,this.existingEdges=e;for(const n of r)this.nodeMap.set(n.id,n)}static DEFAULT_STYLE={fill:"#FFAA00",fillOpacity:1,stroke:"#FFAA00",strokeOpacity:1,bandWidth:20,lineWidth:2,lineDash:[5,5],zIndex:-999};nodeMap=new Map;transform(){return[]}getGroupAuxNodeIds(){const t=new Set;for(const e of this.groupEntities){const r=new Set(e.memberIds||[]);if(r.size===0)continue;const n=this.buildExpandedNodeSet(r);for(const i of n)r.has(i)||t.add(i)}return t}createGroupEdges(t){const e=new Set(t.memberIds||[]);if(e.size===0)return[];const r=this.buildExpandedNodeSet(e);return this.findInternalEdges(r).map((i,a)=>this.cloneEdgeWithGroupStyle(i,t,a))}buildAdjacencyList(){const t=new Map;for(const e of this.existingEdges){const r=e.source,n=e.target;t.has(r)||t.set(r,new Set),t.has(n)||t.set(n,new Set),t.get(r).add(n),t.get(n).add(r)}return t}findPathBFS(t,e,r){if(e===r)return[e];if(!t.has(e)||!t.has(r))return[];const n=new Set,i=[{node:e,path:[e]}];for(n.add(e);i.length>0;){const{node:a,path:s}=i.shift(),o=t.get(a)||new Set;for(const l of o){if(l===r)return[...s,l];n.has(l)||(n.add(l),i.push({node:l,path:[...s,l]}))}}return[]}buildExpandedNodeSet(t){const e=new Set(t),r=[...t];if(r.length<2)return e;const n=this.buildAdjacencyList();for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){const s=r[i],o=r[a],l=this.findPathBFS(n,s,o);if(l.length>0)for(const u of l)t.has(u)||e.add(u)}return e}findInternalEdges(t){return this.existingEdges.filter(e=>{const r=e.source,n=e.target;return t.has(r)&&t.has(n)})}cloneEdgeWithGroupStyle(t,e,r){const n=e.style||{},i={...jo.DEFAULT_STYLE,...n};return{id:`group-${e.id}-edge-${r}`,source:t.source,target:t.target,edgeShape:"band-edge",style:{fill:i.fill,fillOpacity:i.fillOpacity,bandWidth:i.bandWidth,lineWidth:i.lineWidth,stroke:i.stroke,strokeOpacity:i.strokeOpacity,lineDash:i.lineDash,endArrow:!1,startArrow:!1,...t.style?.router?{router:t.style.router}:{},zIndex:i.zIndex},data:{...t.data,groupId:e.id,isGroupEdge:!0,label:void 0}}}}class xF{canalMap=new Map;canalChildren=new Map;pointsByCanalId=new Map;nodeToComboMap=new Map;comboToComboMap=new Map;comboEntities=new Map;clear(){this.canalMap.clear(),this.canalChildren.clear(),this.pointsByCanalId.clear(),this.nodeToComboMap.clear(),this.comboToComboMap.clear(),this.comboEntities.clear()}build(t){this.clear();for(const e of t.canals)if(this.canalMap.set(e.id,e),e.parentId){const r=this.canalChildren.get(e.parentId)||[];r.push(e),this.canalChildren.set(e.parentId,r)}for(const e of t.points){const r=e.canalId;if(r){const i=this.pointsByCanalId.get(r)||[];i.push(e),this.pointsByCanalId.set(r,i)}const n=e.props||e.properties;if(n?.isCrossCanalConnection&&n.targetCanalId){const i=n.targetCanalId,a=this.pointsByCanalId.get(i)||[];a.find(s=>s.id===e.id)||(a.push(e),this.pointsByCanalId.set(i,a))}}if(t.combos){for(const e of t.combos)if(this.comboEntities.set(e.id,e),e.memberIds)for(const r of e.memberIds)this.nodeToComboMap.set(r,e.id)}for(const[e,r]of this.pointsByCanalId)r.sort((n,i)=>{const a=s=>{if(s.canalId===e)return s.chainage;const o=s.props||s.properties;return o?.isCrossCanalConnection&&o.targetCanalId===e?o.targetChainage:s.chainage};return a(n)-a(i)}),this.pointsByCanalId.set(e,r)}}class bF{constructor(t){this.nodeToComboMap=t}createNode(t,e){const r=this.getNodeShape(t),n=t.type===_r.Aux?"auxiliary":t.subtype||"dispatchNode",i=Jh(n);if(t.type===_r.Aux){const l=t,c=(l.auxType||l.auxiliaryType)==="end",f=e?.stroke||Kt,d=e?.lineWidth!==void 0?e.lineWidth:Rt,h={id:t.id,data:{label:""},businessData:t,nodeShape:"rect",style:{...i,fill:c?"transparent":f,stroke:c?"transparent":f,lineWidth:0,radius:0,width:d,height:d}},g=this.nodeToComboMap.get(t.id);return g&&(h.combo=g),h}const a=t.style;if(a){const l=a.shape||r,u=t.props||{},c={id:t.id,data:{label:u.labelText||t.name,labelPlacement:u.labelPlacement,labelMaxWidth:u.labelMaxWidth,labelBackground:u.labelBackground,labelBackgroundFill:u.labelBackgroundFill,labelBackgroundFillOpacity:u.labelBackgroundFillOpacity,labelBackgroundRadius:u.labelBackgroundRadius,labelWordWrap:u.labelWordWrap,labelMaxLines:u.labelMaxLines},businessData:t,nodeShape:l,style:{...i,fill:a.fill||i.fill,stroke:a.stroke||i.stroke,lineWidth:a.lineWidth??i.lineWidth,radius:a.radius??i.radius,width:a.width||i.width,height:a.height||i.height,img:a.img||i.img,...a}},f=this.nodeToComboMap.get(t.id);return f&&(c.combo=f),c}const s={id:t.id,data:{label:t.name},businessData:t,nodeShape:r,style:{...i}},o=this.nodeToComboMap.get(t.id);return o&&(s.combo=o),s}getNodeShape(t){return t.type===_r.Aux?"rect":{pumpStation:"rect",reservoir:"circle",sluice:"rect",dispatchUnit:"diamond",dispatchNode:"circle"}[t.subtype||""]||"circle"}}class ur{constructor(t,e,r,n,i){this.indexBuilder=t,this.nodeFactory=e,this.spacing=r,this.layoutDirection=n,this.centerPosition=i}canalNodeInfos=new Map;processedCanals=new Set;static MAX_RECURSION_DEPTH=100;static MAX_LOOP_ITERATIONS=100;getCanalNodeInfos(){return this.canalNodeInfos}transformAndPosition(t){this.canalNodeInfos.clear(),this.processedCanals.clear();const e=[];t.points.forEach(v=>{v.style||(v.style={shape:"circle",width:24,height:24})});const r=t.canals.filter(v=>!v.parentId||v.parentId==="0"),n=r.find(v=>v.base)||r[0];if(!n)return e;const a=(this.indexBuilder.pointsByCanalId.get(n.id)||[]).length,s=this.centerPosition.x,o=this.centerPosition.y;let l,u,c=this.layoutDirection==="horizontal"?"horizontal":"down";n.direction==="reverse"&&(c=this.layoutDirection==="horizontal"?"horizontal-left":"up");const f=n.config?.space??this.spacing.main;if(this.layoutDirection==="horizontal"){const v=(a-1)*f;l=s-v/2,u=o}else{const v=(a-1)*f;l=s,u=o-v/2}this.processCanal(n,l,u,c,e,1);const d=r.filter(v=>v.id!==n.id);let h=!0,g=0;for(;d.length>0&&h&&g<ur.MAX_LOOP_ITERATIONS;){h=!1,g++;for(let v=0;v<d.length;v++){const w=d[v];if(!w)continue;let p,y;for(const C of this.indexBuilder.canalMap.values())if(C.targetId===w.id){p=C,y=this.canalNodeInfos.get(C.id);break}if(p&&!y)continue;let E=l,F=u,x=!1;if(y&&y.nodes.length>0){const C=y.nodes[y.nodes.length-1];if(C){const S=C.style;E=S.x,F=S.y,p.targetChainage,x=!0}}let T="down",B=E,m=F;if(x&&p&&y){const C=y.direction,S=p.targetBankSide;C==="up"?T=S==="right"?"horizontal":"horizontal-left":C==="down"?T=S==="right"?"horizontal-left":"horizontal":C==="horizontal"?T=S==="right"?"down":"up":C==="horizontal-left"&&(T=S==="right"?"up":"down"),w.direction==="reverse"&&(T==="horizontal"?T="horizontal-left":T==="horizontal-left"?T="horizontal":T==="up"?T="down":T==="down"&&(T="up"));const I=(this.indexBuilder.pointsByCanalId.get(w.id)||[]).findIndex(k=>(k.props||k.properties)?.isCrossCanalConnection),H=I>=0?I:0,b=w.config?.space??this.spacing.branch;T==="horizontal"||T==="horizontal-left"?(m=F,T==="horizontal"?B=E-H*b:B=E+H*b):(B=E,T==="down"?m=F-H*b:m=F+H*b)}else{const C=w.config?.space??this.spacing.branch;this.layoutDirection==="horizontal"?(T="down",w.direction==="reverse"&&(T="up"),B=E+C*3,m=u):(T="horizontal",w.direction==="reverse"&&(T="horizontal-left"),B=l,m=F+C*3)}this.processCanal(w,B,m,T,e,2),d.splice(v,1),v--,h=!0}}g>=ur.MAX_LOOP_ITERATIONS&&console.warn(`[Positioner] while loop reached max iterations (${ur.MAX_LOOP_ITERATIONS}), ${d.length} root canals unprocessed`);for(const v of d)this.processCanal(v,l+300,u+300,this.layoutDirection==="horizontal"?"down":"horizontal",e,2);return e}processCanal(t,e,r,n,i,a=1){if(this.processedCanals.has(t.id)){console.warn(`[Positioner] cycle detected: canal "${t.id}" already processed, skipping`);return}if(a>ur.MAX_RECURSION_DEPTH){console.warn(`[Positioner] max recursion depth (${ur.MAX_RECURSION_DEPTH}) exceeded at canal "${t.id}", skipping`);return}this.processedCanals.add(t.id);const s=this.indexBuilder.pointsByCanalId.get(t.id)||[],o=[];let l=e,u=r;const f=this.isMainDirection(n)?this.spacing.main:this.spacing.branch,d=t.config?.space??f;for(let v=0;v<s.length;v++){const w=s[v],p=t.style,y=this.nodeFactory.createNode(w,p);if(y.style={...y.style||{},x:l,y:u},n==="horizontal"?l+=d:n==="horizontal-left"?l-=d:n==="up"?u-=d:u+=d,o.push(y),i.push(y),w.type==="aux"&&w.auxType==="fork"){const E=w;if(E.branchId){const F=this.indexBuilder.canalMap.get(E.branchId);if(F){const x=F.bankSide==="center",T=this.calculateBranchDirection(n,F),B=y.style.x,m=y.style.y,C=F.config?.space,{branchStartX:S,branchStartY:U}=this.calculateBranchStartPosition(B,m,T,x,C);this.processCanal(F,S,U,T,i,a+1)}}}}this.canalNodeInfos.set(t.id,{canalId:t.id,nodes:o,startX:e,startY:r,direction:n,level:a});const g=(this.indexBuilder.canalChildren.get(t.id)||[]).filter(v=>v.bankSide==="center");for(const v of g){const w=o[o.length-1];if(w){const p=w.style.x,y=w.style.y,E=this.calculateBranchDirection(n,v),F=v.config?.space,{branchStartX:x,branchStartY:T}=this.calculateBranchStartPosition(p,y,E,!0,F);this.processCanal(v,x,T,E,i,a)}}}isMainDirection(t){return this.layoutDirection==="horizontal"?t==="horizontal"||t==="horizontal-left":t==="up"||t==="down"}calculateBranchDirection(t,e){const r=e.bankSide,n=e.direction==="reverse";if(r==="center"){if(n)switch(t){case"horizontal":return"horizontal-left";case"horizontal-left":return"horizontal";case"up":return"down";case"down":return"up"}return t}let i;return t==="horizontal"||t==="horizontal-left"?(t==="horizontal"?i=r==="left"?"up":"down":i=r==="left"?"down":"up",n&&(i=i==="up"?"down":"up"),i):(t==="down"?i=r==="left"?"horizontal":"horizontal-left":i=r==="left"?"horizontal-left":"horizontal",n&&(i=i==="horizontal-left"?"horizontal":"horizontal-left"),i)}calculateBranchStartPosition(t,e,r,n=!1,i){let a=t,s=e;const o=n?this.spacing.main:this.spacing.branch,l=i??o;switch(r){case"up":s-=l;break;case"down":s+=l;break;case"horizontal":a+=l;break;case"horizontal-left":a-=l;break}return{branchStartX:a,branchStartY:s}}}const Cd={main:150,branch:120,branchOffset:80},Al={spacing:Cd,autoGenerateAuxiliary:!0,autoGenerateEdges:!0,centerPosition:{x:600,y:400},layoutDirection:"horizontal"};class Na{config;spacing;layoutDirection;indexBuilder;nodeFactory;edgeFactory;comboFactory;constructor(t){this.config={...Al,...t,spacing:{...Cd,...t?.spacing},centerPosition:t?.centerPosition||Al.centerPosition,layoutDirection:t?.layoutDirection||Al.layoutDirection},this.spacing=this.config.spacing,this.layoutDirection=this.config.layoutDirection,this.indexBuilder=new xF,this.nodeFactory=new bF(this.indexBuilder.nodeToComboMap),this.edgeFactory=new UF(this.indexBuilder,this.config.autoGenerateEdges),this.comboFactory=new FF(this.indexBuilder)}transform(t){let e=t;this.config.autoGenerateAuxiliary&&wd(t)&&(e=yd(t,this.config.preprocessConfig)),this.indexBuilder.build(e);const r=new ur(this.indexBuilder,this.nodeFactory,this.spacing,this.layoutDirection,this.config.centerPosition),n=r.transformAndPosition(e),i=this.edgeFactory.transform(e,n);this.adjustEndNodeTransparency(n,i),this.adjustEntityLabelPlacement(n,r.getCanalNodeInfos());const a=this.comboFactory.transform(),o=new jo(e.groups||[],i,n).transform(),l=[...i,...o],c=new QF(e.groups||[],l,n).transform();return{nodes:[...n,...c],edges:l,combos:a,groups:e.groups}}adjustEntityLabelPlacement(t,e){const r=new Map;for(const[,n]of e)for(const i of n.nodes)i.id&&r.set(i.id,n);for(const n of t){if(n.businessData?.type==="aux"||n.data?.labelPlacement)continue;const s=r.get(n.id||"");if(!s)continue;const o=s.direction==="up"||s.direction==="down";n.style||(n.style={}),n.style.labelPlacement=o?"right":"bottom"}}adjustEndNodeTransparency(t,e){const r=new Map;for(const n of e){if(!n.source)continue;const i=r.get(n.source);i?i.push(n):r.set(n.source,[n])}for(const n of t){const i=n.businessData;if(!i||(i.auxType||i.auxiliaryType)!=="end"||!n.id)continue;const s=r.get(n.id);if(!s||s.length===0)continue;const o=s[0]?.style;if(o&&n.style){const l=o.stroke||Kt,u=o.lineWidth||Rt;n.style.fill=l,n.style.stroke=l,n.style.width=u,n.style.height=u}}}setSpacing(t){this.spacing={...this.spacing,...t},this.config.spacing=this.spacing}setLayoutDirection(t){this.layoutDirection=t,this.config.layoutDirection=t}setCenterPosition(t,e){this.config.centerPosition={x:t,y:e}}getConfig(){return{...this.config}}getLayoutDirection(){return this.layoutDirection}}function IF(A){return new Na(A)}function SF(A,t){return new Na(t).transform(A)}function Ed(A,t,e){return new Na({layoutDirection:t,centerPosition:e}).transform(A)}function Qd(A){const{container:t,width:e,height:r,data:n,graphData:i,options:a={},autoInit:s=!0,layoutDirection:o="horizontal"}=A,l=Q.shallowRef(null),u=Q.shallowRef(null),c=Q.ref(!1),f=Q.ref(!1),d=Q.ref(o),h=Q.ref({loading:!1,rendered:!1,zoom:1,selectedNodes:[],selectedEdges:[]});async function g(){if(!(!t.value||c.value)){f.value=!0;try{l.value=new Zo({container:t.value,width:e,height:r,...a}),u.value=await l.value.init(),c.value=!0,i?await v(i):n&&await w(n,d.value)}catch(D){throw console.error("Failed to initialize graph:",D),D}finally{f.value=!1}}}async function v(D){if(l.value){f.value=!0;try{await l.value.render(D),h.value=l.value.getState()}finally{f.value=!1}}}async function w(D,j){const JA=j??d.value;d.value=JA;const wA=t.value,_A=wA?wA.clientWidth/2:600,DA=wA?wA.clientHeight/2:400,hA=Ed(D,JA,{x:_A,y:DA});await v(hA)}async function p(D,j){await w(D,j)}async function y(D){l.value&&await l.value.updateData(D)}async function E(D){l.value&&await l.value.addNode(D)}async function F(D){l.value&&await l.value.addEdge(D)}async function x(D){l.value&&await l.value.removeNode(D)}async function T(D){l.value&&await l.value.removeEdge(D)}async function B(D,j){l.value&&await l.value.updateNode(D,j)}async function m(D,j){l.value&&await l.value.updateEdge(D,j)}function C(){l.value?.zoomIn(),l.value&&(h.value=l.value.getState())}function S(){l.value?.zoomOut(),l.value&&(h.value=l.value.getState())}function U(D){l.value?.zoomTo(D),l.value&&(h.value=l.value.getState())}function I(){l.value?.fitView()}function H(D){l.value?.focusNode(D)}function b(){return l.value?.getData()||{nodes:[],edges:[],combos:[]}}function k(){return l.value?.save()||"{}"}async function M(D){l.value&&await l.value.load(D)}async function L(D){return l.value?.toImage(D)||""}async function N(D){await l.value?.downloadImage(D)}function O(){l.value?.print()}async function z(D){l.value&&await l.value.setLayout(D)}function $(D,j){l.value?.resize(D,j)}function eA(D,j){l.value?.on(D,j)}function tA(D,j){l.value?.off(D,j)}function Z(){l.value?.destroy(),l.value=null,u.value=null,c.value=!1}return Q.onMounted(()=>{s&&t.value&&g()}),Q.onUnmounted(()=>{Z()}),Q.watch(t,D=>{D&&s&&!c.value&&g()}),{manager:l,graph:u,state:h,initialized:c,loading:f,init:g,render:v,renderFromData:w,changeLayoutDirection:p,updateData:y,addNode:E,addEdge:F,removeNode:x,removeEdge:T,updateNode:B,updateEdge:m,zoomIn:C,zoomOut:S,zoomTo:U,fitView:I,focusNode:H,getData:b,save:k,load:M,toImage:L,downloadImage:N,print:O,setLayout:z,resize:$,on:eA,off:tA,destroy:Z}}const TF={key:0,class:"irrigation-config-panel"},MF={class:"irrigation-config-panel__tabs"},HF={class:"irrigation-config-panel__content"},kF={key:0,class:"irrigation-config-panel__section"},LF={class:"irrigation-config-panel__item"},NF={class:"irrigation-config-panel__control"},DF=["value"],PF=["value"],OF={class:"irrigation-config-panel__item"},RF={class:"irrigation-config-panel__control"},KF=["value"],_F={class:"irrigation-config-panel__value"},GF={key:1,class:"irrigation-config-panel__section"},VF={class:"irrigation-config-panel__item"},zF={class:"irrigation-config-panel__control"},WF=["value"],XF=["value"],YF={class:"irrigation-config-panel__item"},JF={class:"irrigation-config-panel__control"},$F=["value"],ZF={class:"irrigation-config-panel__value"},qF=Q.defineComponent({__name:"index",props:{visible:{type:Boolean,default:!1},activeTab:{default:"node"},config:{default:()=>({node:{...Ct},edge:{...Et}})}},emits:["close","tabChange","change","reset"],setup(A,{emit:t}){const e=A,r=t,n=Q.computed(()=>e.config?.node||{...Ct}),i=Q.computed(()=>e.config?.edge||{...Et});function a(){r("close")}function s(l){r("tabChange",l)}function o(l,u,c){r("change",{type:l,path:u,value:c})}return(l,u)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",TF,[Q.createElementVNode("div",{class:"irrigation-config-panel__header"},[u[9]||(u[9]=Q.createElementVNode("span",{class:"irrigation-config-panel__title"},"样式配置",-1)),Q.createElementVNode("button",{class:"irrigation-config-panel__close",onClick:a},[...u[8]||(u[8]=[Q.createElementVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[Q.createElementVNode("line",{x1:"4",y1:"4",x2:"20",y2:"20",stroke:"currentColor","stroke-width":"2"}),Q.createElementVNode("line",{x1:"20",y1:"4",x2:"4",y2:"20",stroke:"currentColor","stroke-width":"2"})],-1)])])]),Q.createElementVNode("div",MF,[Q.createElementVNode("button",{class:Q.normalizeClass(["irrigation-config-panel__tab",{active:A.activeTab==="node"}]),onClick:u[0]||(u[0]=c=>s("node"))}," 节点 ",2),Q.createElementVNode("button",{class:Q.normalizeClass(["irrigation-config-panel__tab",{active:A.activeTab==="edge"}]),onClick:u[1]||(u[1]=c=>s("edge"))}," 边 ",2)]),Q.createElementVNode("div",HF,[A.activeTab==="node"?(Q.openBlock(),Q.createElementBlock("div",kF,[u[12]||(u[12]=Q.createElementVNode("h4",{class:"irrigation-config-panel__section-title"}," 标签样式 ",-1)),Q.createElementVNode("div",LF,[u[10]||(u[10]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"文字颜色",-1)),Q.createElementVNode("div",NF,[Q.createElementVNode("input",{type:"color",value:n.value.label?.fill,onInput:u[2]||(u[2]=c=>o("node","label.fill",c.target.value))},null,40,DF),Q.createElementVNode("input",{type:"text",class:"irrigation-config-panel__text-input",value:n.value.label?.fill,onChange:u[3]||(u[3]=c=>o("node","label.fill",c.target.value))},null,40,PF)])]),Q.createElementVNode("div",OF,[u[11]||(u[11]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"字体大小",-1)),Q.createElementVNode("div",RF,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:n.value.label?.fontSize,onInput:u[4]||(u[4]=c=>o("node","label.fontSize",Number(c.target.value)))},null,40,KF),Q.createElementVNode("span",_F,Q.toDisplayString(n.value.label?.fontSize)+"px",1)])])])):Q.createCommentVNode("",!0),A.activeTab==="edge"?(Q.openBlock(),Q.createElementBlock("div",GF,[u[15]||(u[15]=Q.createElementVNode("h4",{class:"irrigation-config-panel__section-title"}," 标签样式 ",-1)),Q.createElementVNode("div",VF,[u[13]||(u[13]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"文字颜色",-1)),Q.createElementVNode("div",zF,[Q.createElementVNode("input",{type:"color",value:i.value.label?.fill,onInput:u[5]||(u[5]=c=>o("edge","label.fill",c.target.value))},null,40,WF),Q.createElementVNode("input",{type:"text",class:"irrigation-config-panel__text-input",value:i.value.label?.fill,onChange:u[6]||(u[6]=c=>o("edge","label.fill",c.target.value))},null,40,XF)])]),Q.createElementVNode("div",YF,[u[14]||(u[14]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"字体大小",-1)),Q.createElementVNode("div",JF,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:i.value.label?.fontSize,onInput:u[7]||(u[7]=c=>o("edge","label.fontSize",Number(c.target.value)))},null,40,$F),Q.createElementVNode("span",ZF,Q.toDisplayString(i.value.label?.fontSize)+"px",1)])])])):Q.createCommentVNode("",!0)])])):Q.createCommentVNode("",!0)}}),Pn=(A,t)=>{const e=A.__vccOpts||A;for(const[r,n]of t)e[r]=n;return e},jF=Pn(qF,[["__scopeId","data-v-9a48687c"]]),AU={class:"element-editor__header"},eU={class:"element-editor__title"},tU={class:"element-editor__content"},rU={key:0,class:"element-editor__section"},nU={class:"element-editor__item"},iU={class:"element-editor__control"},aU=["checked"],sU={class:"element-editor__item"},oU={class:"element-editor__control"},lU=["value"],uU=["value"],cU={class:"element-editor__item"},fU={class:"element-editor__control"},hU=["value"],dU={class:"element-editor__item"},gU={class:"element-editor__control"},BU=["value"],vU={class:"element-editor__value"},pU={class:"element-editor__item"},mU={class:"element-editor__control"},yU=["value"],wU={class:"element-editor__value"},CU={class:"element-editor__item"},EU={class:"element-editor__control"},QU=["value"],FU={class:"element-editor__value"},UU={class:"element-editor__section"},xU={class:"element-editor__item"},bU={class:"element-editor__control"},IU=["value"],SU=["value"],TU={class:"element-editor__item"},MU={class:"element-editor__control"},HU=["value"],kU={class:"element-editor__value"},LU={class:"element-editor__section"},NU={class:"element-editor__item"},DU={class:"element-editor__control"},PU=["checked"],OU={class:"element-editor__item"},RU={class:"element-editor__control"},KU=["value"],_U={class:"element-editor__item"},GU={class:"element-editor__control"},VU=["value"],zU=["value"],WU={class:"element-editor__item"},XU={class:"element-editor__control"},YU=["value"],JU={class:"element-editor__value"},$U={class:"element-editor__item"},ZU={class:"element-editor__control"},qU=["value"],jU={class:"element-editor__value"},Ax=Pn(Q.defineComponent({__name:"ElementEditor",props:{visible:{type:Boolean,default:!1},elementType:{default:"node"},elementId:{default:""},nodeConfig:{default:()=>({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]})},edgeConfig:{default:()=>({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0})}},emits:["close","confirm","change"],setup(A,{emit:t}){const e=A,r=t,n=Q.reactive({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]}),i=Q.reactive({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0}),a=Q.computed(()=>e.elementType==="node"?"编辑节点":"编辑边线");Q.watch(()=>e.visible,d=>{d&&(e.elementType==="node"?(Object.assign(n,e.nodeConfig),n.labelOffset||(n.labelOffset=[0,0])):Object.assign(i,e.edgeConfig))},{immediate:!0});function s(){r("close")}function o(){r("close")}function l(){const d=e.elementType==="node"?{...n}:{...i};r("confirm",{type:e.elementType,id:e.elementId,config:d})}function u(d,h){n[d]=h,r("change",{type:"node",id:e.elementId,config:{...n}})}function c(d,h){i[d]=h,r("change",{type:"edge",id:e.elementId,config:{...i}})}function f(d,h){n.labelOffset||(n.labelOffset=[0,0]),n.labelOffset[d]=h,r("change",{type:"node",id:e.elementId,config:{...n}})}return(d,h)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",{key:0,class:"element-editor-overlay",onClick:o},[Q.createElementVNode("div",{class:"element-editor",onClick:h[16]||(h[16]=Q.withModifiers(()=>{},["stop"]))},[Q.createElementVNode("div",AU,[Q.createElementVNode("span",eU,Q.toDisplayString(a.value),1),Q.createElementVNode("button",{class:"element-editor__close",onClick:s},[...h[17]||(h[17]=[Q.createElementVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[Q.createElementVNode("line",{x1:"4",y1:"4",x2:"20",y2:"20",stroke:"currentColor","stroke-width":"2"}),Q.createElementVNode("line",{x1:"20",y1:"4",x2:"4",y2:"20",stroke:"currentColor","stroke-width":"2"})],-1)])])]),Q.createElementVNode("div",tU,[A.elementType==="node"?(Q.openBlock(),Q.createElementBlock("div",rU,[h[25]||(h[25]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"标签设置",-1)),Q.createElementVNode("div",nU,[h[18]||(h[18]=Q.createElementVNode("label",{class:"element-editor__label"},"显示标签",-1)),Q.createElementVNode("div",iU,[Q.createElementVNode("input",{type:"checkbox",checked:n.labelVisible,onChange:h[0]||(h[0]=g=>u("labelVisible",g.target.checked))},null,40,aU)])]),Q.createElementVNode("div",sU,[h[19]||(h[19]=Q.createElementVNode("label",{class:"element-editor__label"},"文字颜色",-1)),Q.createElementVNode("div",oU,[Q.createElementVNode("input",{type:"color",value:n.labelFill,onInput:h[1]||(h[1]=g=>u("labelFill",g.target.value))},null,40,lU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:n.labelFill,onChange:h[2]||(h[2]=g=>u("labelFill",g.target.value))},null,40,uU)])]),Q.createElementVNode("div",cU,[h[21]||(h[21]=Q.createElementVNode("label",{class:"element-editor__label"},"标签位置",-1)),Q.createElementVNode("div",fU,[Q.createElementVNode("select",{value:n.labelPlacement,onChange:h[3]||(h[3]=g=>u("labelPlacement",g.target.value))},[...h[20]||(h[20]=[Q.createStaticVNode('<option value="top" data-v-db54e541>顶部</option><option value="bottom" data-v-db54e541>底部</option><option value="left" data-v-db54e541>左侧</option><option value="right" data-v-db54e541>右侧</option><option value="center" data-v-db54e541>中心</option>',5)])],40,hU)])]),Q.createElementVNode("div",dU,[h[22]||(h[22]=Q.createElementVNode("label",{class:"element-editor__label"},"字体大小",-1)),Q.createElementVNode("div",gU,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:n.labelFontSize,onInput:h[4]||(h[4]=g=>u("labelFontSize",Number(g.target.value)))},null,40,BU),Q.createElementVNode("span",vU,Q.toDisplayString(n.labelFontSize)+"px",1)])]),Q.createElementVNode("div",pU,[h[23]||(h[23]=Q.createElementVNode("label",{class:"element-editor__label"},"标签间距 X",-1)),Q.createElementVNode("div",mU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:n.labelOffset?.[0]??0,onInput:h[5]||(h[5]=g=>f(0,Number(g.target.value)))},null,40,yU),Q.createElementVNode("span",wU,Q.toDisplayString(n.labelOffset?.[0]??0)+"px",1)])]),Q.createElementVNode("div",CU,[h[24]||(h[24]=Q.createElementVNode("label",{class:"element-editor__label"},"标签间距 Y",-1)),Q.createElementVNode("div",EU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:n.labelOffset?.[1]??0,onInput:h[6]||(h[6]=g=>f(1,Number(g.target.value)))},null,40,QU),Q.createElementVNode("span",FU,Q.toDisplayString(n.labelOffset?.[1]??0)+"px",1)])])])):Q.createCommentVNode("",!0),A.elementType==="edge"?(Q.openBlock(),Q.createElementBlock(Q.Fragment,{key:1},[Q.createElementVNode("div",UU,[h[28]||(h[28]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"边线样式",-1)),Q.createElementVNode("div",xU,[h[26]||(h[26]=Q.createElementVNode("label",{class:"element-editor__label"},"边线颜色",-1)),Q.createElementVNode("div",bU,[Q.createElementVNode("input",{type:"color",value:i.stroke,onInput:h[7]||(h[7]=g=>c("stroke",g.target.value))},null,40,IU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:i.stroke,onChange:h[8]||(h[8]=g=>c("stroke",g.target.value))},null,40,SU)])]),Q.createElementVNode("div",TU,[h[27]||(h[27]=Q.createElementVNode("label",{class:"element-editor__label"},"边线宽度",-1)),Q.createElementVNode("div",MU,[Q.createElementVNode("input",{type:"range",min:"1",max:"10",value:i.lineWidth,onInput:h[9]||(h[9]=g=>c("lineWidth",Number(g.target.value)))},null,40,HU),Q.createElementVNode("span",kU,Q.toDisplayString(i.lineWidth)+"px",1)])])]),Q.createElementVNode("div",LU,[h[35]||(h[35]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"标签设置",-1)),Q.createElementVNode("div",NU,[h[29]||(h[29]=Q.createElementVNode("label",{class:"element-editor__label"},"显示标签",-1)),Q.createElementVNode("div",DU,[Q.createElementVNode("input",{type:"checkbox",checked:i.labelVisible,onChange:h[10]||(h[10]=g=>c("labelVisible",g.target.checked))},null,40,PU)])]),Q.createElementVNode("div",OU,[h[31]||(h[31]=Q.createElementVNode("label",{class:"element-editor__label"},"标签位置",-1)),Q.createElementVNode("div",RU,[Q.createElementVNode("select",{value:i.labelPlacement,onChange:h[11]||(h[11]=g=>c("labelPlacement",g.target.value))},[...h[30]||(h[30]=[Q.createElementVNode("option",{value:"start"},"起点",-1),Q.createElementVNode("option",{value:"center"},"中心",-1),Q.createElementVNode("option",{value:"end"},"终点",-1)])],40,KU)])]),Q.createElementVNode("div",_U,[h[32]||(h[32]=Q.createElementVNode("label",{class:"element-editor__label"},"文字颜色",-1)),Q.createElementVNode("div",GU,[Q.createElementVNode("input",{type:"color",value:i.labelFill,onInput:h[12]||(h[12]=g=>c("labelFill",g.target.value))},null,40,VU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:i.labelFill,onChange:h[13]||(h[13]=g=>c("labelFill",g.target.value))},null,40,zU)])]),Q.createElementVNode("div",WU,[h[33]||(h[33]=Q.createElementVNode("label",{class:"element-editor__label"},"字体大小",-1)),Q.createElementVNode("div",XU,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:i.labelFontSize,onInput:h[14]||(h[14]=g=>c("labelFontSize",Number(g.target.value)))},null,40,YU),Q.createElementVNode("span",JU,Q.toDisplayString(i.labelFontSize)+"px",1)])]),Q.createElementVNode("div",$U,[h[34]||(h[34]=Q.createElementVNode("label",{class:"element-editor__label"},"标签偏移",-1)),Q.createElementVNode("div",ZU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:i.labelOffset,onInput:h[15]||(h[15]=g=>c("labelOffset",Number(g.target.value)))},null,40,qU),Q.createElementVNode("span",jU,Q.toDisplayString(i.labelOffset)+"px",1)])])])],64)):Q.createCommentVNode("",!0)]),Q.createElementVNode("div",{class:"element-editor__footer"},[Q.createElementVNode("button",{class:"element-editor__confirm-btn",onClick:l}," 确定 ")])])])):Q.createCommentVNode("",!0)}}),[["__scopeId","data-v-db54e541"]]),ex={key:0,class:"evolution-timeline"},tx={class:"timeline-controls"},rx=["title"],nx={key:0,class:"icon-pause"},ix={key:1,class:"icon-play"},ax=["disabled"],sx={class:"track-points"},ox=["onClick","title"],lx={key:0,class:"point-label"},ux=["disabled"],cx={class:"speed-control"},fx={key:0,class:"timeline-info"},hx={class:"current-label"},dx={class:"progress-text"},el=Pn(Q.defineComponent({__name:"EvolutionTimeline",props:{manager:{},visible:{type:Boolean,default:!0},showLabels:{type:Boolean,default:!0},showInfo:{type:Boolean,default:!0}},emits:["change","play","pause","stop"],setup(A,{emit:t}){const e=A,r=t,n=Q.ref(0),i=Q.ref(!1),a=Q.ref(!1),s=Q.ref(0),o=Q.ref([]),l=Q.ref("1"),u=Q.ref(2e3),c=Q.ref(null),f=Q.computed(()=>s.value<=1?0:n.value/(s.value-1)*100),d=Q.computed(()=>n.value>0||a.value),h=Q.computed(()=>n.value<s.value-1||a.value),g=Q.computed(()=>o.value[n.value]||null);function v(b){return s.value<=1?50:b/(s.value-1)*100}function w(b){if(!b)return"";try{return new Date(b).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}catch{return String(b)}}function p(){e.manager&&(i.value?e.manager.pause():e.manager.play())}function y(){e.manager&&(a.value=!a.value,e.manager.setLoop(a.value))}function E(){e.manager?.prev()}function F(){e.manager?.next()}function x(){e.manager?.stop()}function T(){if(!e.manager)return;const b=parseFloat(l.value),k=u.value/b;e.manager.setSpeed(k)}function B(b){if(!e.manager||!c.value||s.value<=1)return;const k=c.value.getBoundingClientRect(),M=(b.clientX-k.left)/k.width,L=Math.round(M*(s.value-1));e.manager.jumpTo(L)}function m(b){e.manager?.jumpTo(b)}function C(){if(!e.manager)return;const b=e.manager.getState();n.value=b.currentIndex,i.value=b.isPlaying,a.value=b.loop,s.value=b.totalPoints,u.value=b.interval,o.value=e.manager.getTimePoints();const k=u.value/b.interval;l.value=String(k)}function S(b){n.value=b.currentIndex,i.value=b.isPlaying,s.value=b.totalPoints,r("change",b)}function U(){i.value=!0,r("play")}function I(){i.value=!1,r("pause")}function H(){i.value=!1,n.value=0,r("stop")}return Q.watch(()=>e.manager,(b,k)=>{k&&(k.off("change",S),k.off("play",U),k.off("pause",I),k.off("stop",H)),b&&(b.on("change",S),b.on("play",U),b.on("pause",I),b.on("stop",H),C())},{immediate:!0}),Q.onMounted(()=>{C()}),Q.onUnmounted(()=>{e.manager&&(e.manager.off("change",S),e.manager.off("play",U),e.manager.off("pause",I),e.manager.off("stop",H))}),(b,k)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",ex,[Q.createElementVNode("div",tx,[Q.createElementVNode("button",{class:"control-btn play-btn",onClick:p,title:i.value?"暂停":"播放"},[i.value?(Q.openBlock(),Q.createElementBlock("span",nx,"❚❚")):(Q.openBlock(),Q.createElementBlock("span",ix,"▶"))],8,rx),Q.createElementVNode("button",{class:"control-btn",onClick:E,title:"上一帧",disabled:!d.value}," ◀◀ ",8,ax),Q.createElementVNode("div",{class:"timeline-track",ref_key:"trackRef",ref:c,onClick:B},[k[2]||(k[2]=Q.createElementVNode("div",{class:"track-bg"},null,-1)),Q.createElementVNode("div",{class:"track-progress",style:Q.normalizeStyle({width:f.value+"%"})},null,4),Q.createElementVNode("div",sx,[(Q.openBlock(!0),Q.createElementBlock(Q.Fragment,null,Q.renderList(o.value,(M,L)=>(Q.openBlock(),Q.createElementBlock("div",{key:L,class:Q.normalizeClass(["track-point",{active:L===n.value,passed:L<n.value}]),style:Q.normalizeStyle({left:v(L)+"%"}),onClick:Q.withModifiers(N=>m(L),["stop"]),title:M.label||w(M.timestamp)},[k[1]||(k[1]=Q.createElementVNode("div",{class:"point-dot"},null,-1)),A.showLabels?(Q.openBlock(),Q.createElementBlock("div",lx,Q.toDisplayString(M.label||w(M.timestamp)),1)):Q.createCommentVNode("",!0)],14,ox))),128))])],512),Q.createElementVNode("button",{class:"control-btn",onClick:F,title:"下一帧",disabled:!h.value}," ▶▶ ",8,ux),Q.createElementVNode("button",{class:"control-btn",onClick:x,title:"停止"}," ■ "),Q.createElementVNode("div",cx,[Q.withDirectives(Q.createElementVNode("select",{"onUpdate:modelValue":k[0]||(k[0]=M=>l.value=M),onChange:T,title:"播放速度"},[...k[3]||(k[3]=[Q.createElementVNode("option",{value:"0.5"},"0.5x",-1),Q.createElementVNode("option",{value:"1"},"1x",-1),Q.createElementVNode("option",{value:"2"},"2x",-1),Q.createElementVNode("option",{value:"4"},"4x",-1)])],544),[[Q.vModelSelect,l.value]])]),Q.createElementVNode("button",{class:Q.normalizeClass(["control-btn loop-btn",{active:a.value}]),onClick:y,title:"循环播放"}," 🔁 ",2)]),A.showInfo?(Q.openBlock(),Q.createElementBlock("div",fx,[Q.createElementVNode("span",hx,Q.toDisplayString(g.value?.label||w(g.value?.timestamp)||"--"),1),Q.createElementVNode("span",dx,Q.toDisplayString(n.value+1)+" / "+Q.toDisplayString(s.value),1)])):Q.createCommentVNode("",!0)])):Q.createCommentVNode("",!0)}}),[["__scopeId","data-v-a2514df2"]]),gx={class:"irrigation-toolbar"},Bx={key:0,class:"irrigation-toolbar__section"},vx=["disabled"],px={class:"irrigation-toolbar__btn-text"},mx={class:"irrigation-toolbar__section"},yx=["disabled"],wx={class:"irrigation-toolbar__section"},Cx=["disabled"],Ex={class:"irrigation-toolbar__section"},Qx=["disabled"],Fx=["disabled"],Ux=Pn(Q.defineComponent({__name:"Toolbar",props:{enabledActions:{default:()=>({zoomIn:!0,zoomOut:!0,fitView:!0,export:!0,print:!0,layout:!0,config:!1})},configActive:{type:Boolean,default:!1}},emits:["action"],setup(A,{emit:t}){const e=t,r=(n,i)=>{e("action",n,i)};return(n,i)=>(Q.openBlock(),Q.createElementBlock("div",gx,[A.enabledActions.config?(Q.openBlock(),Q.createElementBlock("div",Bx,[i[7]||(i[7]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"配置:",-1)),Q.createElementVNode("button",{onClick:i[0]||(i[0]=()=>r("toggleConfig")),disabled:!A.enabledActions.config,class:Q.normalizeClass({"is-active":A.configActive})},[i[6]||(i[6]=Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M12 1v6m0 6v6m4.22-10.22l4.24-4.24M6.34 17.66l-4.24 4.24M23 12h-6m-6 0H1m20.24 4.24l-4.24-4.24M6.34 6.34L2.1 2.1",stroke:"currentColor",fill:"none","stroke-width":"2"})],-1)),Q.createElementVNode("span",px,Q.toDisplayString(A.configActive?"关闭配置":"配置"),1)],10,vx)])):Q.createCommentVNode("",!0),Q.createElementVNode("div",mx,[i[9]||(i[9]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"视图:",-1)),Q.createElementVNode("button",{onClick:i[1]||(i[1]=()=>r("fitView")),disabled:!A.enabledActions.fitView},[...i[8]||(i[8]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"2",y:"2",width:"20",height:"20",rx:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M8 12h8M12 8v8",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"适应",-1)])],8,yx)]),Q.createElementVNode("div",wx,[i[12]||(i[12]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"操作:",-1)),A.enabledActions.getData?(Q.openBlock(),Q.createElementBlock("button",{key:0,onClick:i[2]||(i[2]=()=>r("getData"))},[...i[10]||(i[10]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("path",{d:"M4 4h16v16H4z",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M8 12h8M8 16h8M8 8h8",stroke:"currentColor",fill:"none","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"获取数据",-1)])])):Q.createCommentVNode("",!0),Q.createElementVNode("button",{onClick:i[3]||(i[3]=()=>r("export")),disabled:!A.enabledActions.export},[...i[11]||(i[11]=[Q.createStaticVNode('<svg class="irrigation-toolbar__icon" viewBox="0 0 24 24" width="16" height="16" data-v-d97c0ccd><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" stroke="currentColor" fill="none" stroke-width="2" data-v-d97c0ccd></path><polyline points="7 10 12 15 17 10" stroke="currentColor" fill="none" stroke-width="2" data-v-d97c0ccd></polyline><line x1="12" y1="15" x2="12" y2="3" stroke="currentColor" stroke-width="2" data-v-d97c0ccd></line></svg><span class="irrigation-toolbar__btn-text" data-v-d97c0ccd>导出</span>',2)])],8,Cx)]),Q.createElementVNode("div",Ex,[i[15]||(i[15]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"布局:",-1)),Q.createElementVNode("button",{onClick:i[4]||(i[4]=()=>r("layoutHorizontal")),disabled:!A.enabledActions.layout},[...i[13]||(i[13]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("line",{x1:"12",y1:"3",x2:"12",y2:"21",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"横向",-1)])],8,Qx),Q.createElementVNode("button",{onClick:i[5]||(i[5]=()=>r("layoutVertical")),disabled:!A.enabledActions.layout},[...i[14]||(i[14]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("line",{x1:"3",y1:"12",x2:"21",y2:"12",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"纵向",-1)])],8,Fx)])]))}}),[["__scopeId","data-v-d97c0ccd"]]),xx={key:1,class:"irrigation-graph__loading"},Fd=Pn(Q.defineComponent({__name:"IrrigationGraph",props:{width:{default:void 0},height:{default:void 0},data:{},graphData:{},layout:{},theme:{},tooltip:{},dataPanel:{},enableDrag:{type:Boolean,default:!0},enableZoom:{type:Boolean,default:!0},enableBrush:{type:Boolean,default:!1},enableMinimap:{type:Boolean,default:!1},fixElementSize:{type:Boolean,default:!1},fitView:{type:Boolean,default:!0},autoResize:{type:Boolean,default:!0},fitViewPadding:{},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!1},enabledToolbarActions:{default:()=>({zoomIn:!0,zoomOut:!0,fitView:!0,save:!0,export:!0,print:!0,layout:!0,getData:void 0})},evolution:{},evolutionData:{}},emits:["ready","itemClick","itemDblClick","itemContextMenu","selectionChange","canvasClick","dataChange","evolutionChange"],setup(A,{expose:t,emit:e}){const r=A,n=e,i=Q.ref(null),a=Q.ref(r.data),s=Q.ref("horizontal"),o=Q.shallowRef(null);let l=null;const u=Q.computed(()=>r.evolution?.enabled&&o.value!==null),c=Q.ref(!1),f=Q.ref("node"),d=Q.ref(""),h=Q.reactive({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]}),g=Q.reactive({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0}),{manager:v,graph:w,state:p,initialized:y,loading:E,init:F,render:x,renderFromData:T,changeLayoutDirection:B,updateData:m,addNode:C,addEdge:S,removeNode:U,removeEdge:I,updateNode:H,updateEdge:b,zoomIn:k,zoomOut:M,zoomTo:L,fitView:N,resize:O,focusNode:z,getData:$,save:eA,load:tA,toImage:Z,downloadImage:D,print:j,setLayout:JA,on:wA,off:_A,destroy:DA}=Qd({container:i,width:r.width,height:r.height,data:r.data,graphData:r.graphData,options:{layout:r.layout,theme:r.theme,tooltip:r.tooltip,dataPanel:r.dataPanel,enableDrag:r.enableDrag,enableZoom:r.enableZoom,enableBrush:r.enableBrush,enableMinimap:r.enableMinimap,fixElementSize:r.fixElementSize,fitView:r.fitView,fitViewPadding:r.fitViewPadding,evolution:r.evolution},autoInit:!1}),{configPanelVisible:hA,configActiveTab:PA,globalConfig:xA,toggleConfigPanel:rA,closeConfigPanel:LA,handleConfigTabChange:Gr,handleConfigChange:Vr,handleConfigReset:Gt,updateNodeStyle:cr,updateEdgeStyle:fr}=_d({manager:v,currentData:a,emit:(X,jA)=>n("dataChange",jA)}),zr=Q.computed(()=>({width:r.width?`${r.width}px`:"100%",height:r.height?`${r.height}px`:"100%"}));function mt(){v.value&&(wA("node:click",X=>{n("itemClick",{type:"node",item:X.itemData})}),wA("node:dblclick",X=>{n("itemDblClick",{type:"node",item:X.itemData})}),wA("node:contextmenu",X=>{n("itemContextMenu",{type:"node",item:X.itemData,event:X.originalEvent})}),wA("edge:click",X=>{n("itemClick",{type:"edge",item:X.itemData})}),wA("edge:dblclick",X=>{n("itemDblClick",{type:"edge",item:X.itemData})}),wA("edge:contextmenu",X=>{n("itemContextMenu",{type:"edge",item:X.itemData,event:X.originalEvent})}),wA("combo:click",X=>{n("itemClick",{type:"combo",item:X.itemData})}),wA("combo:dblclick",X=>{n("itemDblClick",{type:"combo",item:X.itemData})}),wA("canvas:click",X=>{n("canvasClick",X.originalEvent)}),v.value.onContextMenu(hr))}function hr(X){X.menuValue==="edit"&&Ve(X.targetType,X.targetId,X.targetData)}function Ve(X,jA,dr){if(f.value=X,d.value=jA,X==="node"){const sA=dr.style||{};h.labelVisible=sA.label!==!1&&sA.label!=="",h.labelFill=sA.labelFill||"#000000",h.labelPlacement=sA.labelPlacement||"bottom",h.labelFontSize=sA.labelFontSize||12,h.labelOffset=sA.labelOffset||[0,0]}else{const sA=dr.style||{};g.labelVisible=sA.label!==!1&&sA.label!=="",g.stroke=sA.stroke||"#1890ff",g.lineWidth=sA.lineWidth||2,g.labelPlacement=sA.labelPlacement||"center",g.labelFill=sA.labelFill||"#666666",g.labelFontSize=sA.labelFontSize||12,g.labelOffset=sA.labelOffset||0}c.value=!0}function ze(){c.value=!1}async function yt(X){const{type:jA,id:dr,config:gr}=X;if(jA==="node"){const sA=gr,On={label:sA.labelVisible,labelFill:sA.labelFill,labelPlacement:sA.labelPlacement,labelFontSize:sA.labelFontSize,labelOffset:sA.labelOffset};await cr(dr,On)}else{const sA=gr,On={stroke:sA.stroke,lineWidth:sA.lineWidth,label:sA.labelVisible,labelPlacement:sA.labelPlacement,labelFill:sA.labelFill,labelFontSize:sA.labelFontSize,labelOffset:sA.labelOffset};await fr(dr,On)}c.value=!1}const wt={zoomIn:()=>k(),zoomOut:()=>M(),fitView:()=>N(),export:()=>D({fileName:"irrigation-graph"}),print:()=>j(),layoutHorizontal:()=>XA("horizontal"),layoutVertical:()=>XA("vertical"),toggleConfig:()=>rA(),getData:()=>{const X=$();r.enabledToolbarActions.getData?.(X)}};function qA(X){const jA=wt[X];jA?jA():console.warn(`[Toolbar] Unknown action: ${X}`)}async function XA(X){const jA=r.data??a.value;if(!jA){console.warn("No data available for layout change");return}s.value=X,a.value=jA,await B(jA,X),n("dataChange",$()),setTimeout(()=>{N()},100)}function Da(X){X.preventDefault()}Q.onMounted(async()=>{if(i.value&&(await F(),mt(),v.value&&(o.value=v.value.getEvolutionManager()),i.value.addEventListener("contextmenu",Da),n("ready",w.value),r.autoResize&&i.value)){const X=Ga(()=>{O()},100);l=new ResizeObserver(()=>{X()}),l.observe(i.value)}}),Q.onUnmounted(()=>{l&&(l.disconnect(),l=null),i.value&&i.value.removeEventListener("contextmenu",Da),DA()}),Q.watch(()=>r.data,async X=>{X&&y.value&&(a.value=X,await T(X,s.value),n("dataChange",$()))},{deep:!0}),Q.watch(()=>r.dataPanel,X=>{v.value&&(X?.enabled?v.value.enableDataPanel(X):v.value.disableDataPanel())},{deep:!0}),Q.watch(()=>r.graphData,async X=>{X&&y.value&&(await x(X),n("dataChange",$()))},{deep:!0}),Q.watch(()=>r.evolutionData,X=>{X&&v.value&&(v.value.setEvolutionData(X),o.value=v.value.getEvolutionManager())},{deep:!0});function Pa(X){n("evolutionChange",X)}function Oa(X){v.value&&(v.value.setEvolutionData(X),o.value=v.value.getEvolutionManager())}function tl(){return o.value}return t({graph:w,manager:v,state:p,initialized:y,loading:E,currentLayoutDirection:s,render:x,renderFromData:T,changeLayout:XA,changeLayoutDirection:B,updateData:m,addNode:C,addEdge:S,removeNode:U,removeEdge:I,updateNode:H,updateEdge:b,getData:$,zoomIn:k,zoomOut:M,zoomTo:L,fitView:N,focusNode:z,resize:O,setLayout:JA,save:eA,load:tA,toImage:Z,downloadImage:D,print:j,on:wA,off:_A,layoutUtils:Md,evolutionManager:o,setEvolutionData:Oa,getEvolutionManager:tl,destroy:DA}),(X,jA)=>(Q.openBlock(),Q.createElementBlock("div",{class:"irrigation-graph",style:Q.normalizeStyle(zr.value)},[Q.renderSlot(X.$slots,"toolbar",{zoomIn:Q.unref(k),zoomOut:Q.unref(M),fitView:Q.unref(N)},void 0,!0),r.showToolbar?(Q.openBlock(),Q.createBlock(Ux,{key:0,"enabled-actions":r.enabledToolbarActions,"config-active":Q.unref(hA),onAction:qA},null,8,["enabled-actions","config-active"])):Q.createCommentVNode("",!0),Q.createElementVNode("div",{ref_key:"containerRef",ref:i,class:"irrigation-graph__canvas"},null,512),Q.unref(E)?(Q.openBlock(),Q.createElementBlock("div",xx,[Q.renderSlot(X.$slots,"loading",{},()=>[jA[0]||(jA[0]=Q.createElementVNode("span",null,"加载中...",-1))],!0)])):Q.createCommentVNode("",!0),u.value?(Q.openBlock(),Q.createBlock(el,{key:2,manager:o.value,visible:!0,onChange:Pa},null,8,["manager"])):Q.createCommentVNode("",!0),Q.createVNode(jF,{visible:Q.unref(hA),"active-tab":Q.unref(PA),config:Q.unref(xA),onClose:Q.unref(LA),onTabChange:Q.unref(Gr),onChange:Q.unref(Vr),onReset:Q.unref(Gt)},null,8,["visible","active-tab","config","onClose","onTabChange","onChange","onReset"]),Q.createVNode(Ax,{visible:c.value,"element-type":f.value,"element-id":d.value,"node-config":h,"edge-config":g,onClose:ze,onConfirm:yt},null,8,["visible","element-type","element-id","node-config","edge-config"]),Q.renderSlot(X.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-730f4c35"]]),bx={install(A){A.component("IrrigationGraph",Fd),A.component("EvolutionTimeline",el)}};V.BufferNodeSyncController=fd,V.ContextMenuManager=$o,V.DEFAULT_ALARM_STYLES=Bd,V.DEFAULT_EDGE_CONFIG=Et,V.DEFAULT_GLOBAL_CONFIG=Kd,V.DEFAULT_LABEL_CONFIG=za,V.DEFAULT_NODE_CONFIG=Ct,V.DataPanelManager=hd,V.DataPreprocessor=qo,V.DataTransformer=Na,V.EvolutionManager=La,V.EvolutionTimeline=el,V.IrrigationCombo=Kh,V.IrrigationGraph=Fd,V.IrrigationGraphManager=Zo,V.PRESET_GRADIENTS=nF,V.PRESET_THEMES=No,V.PointNodeType=_r,V.StyleUpdater=Yo,V.alignNodesHorizontally=nl,V.alignNodesVertically=il,V.autoAdjustSpacing=ll,V.buildExpandedNodeSet=zo,V.calculateEdgeGradient=dd,V.centerNodesToPosition=Ka,V.computeBufferPolygon=Wo,V.computeBufferPolygonResult=Xo,V.copyToClipboard=Ld,V.createBehaviors=gl,V.createContextMenuManager=sF,V.createDataPanelPlugin=eF,V.createEdgeConfig=pQ,V.createEdgeGradientStroke=gd,V.createEvolutionManager=aF,V.createGraphManager=pF,V.createNodeConfig=FQ,V.createPreprocessor=EF,V.createStyleUpdater=iF,V.createTheme=yQ,V.createTransformer=IF,V.debounce=Ga,V.deepClone=Dd,V.default=bx,V.deserializeGraphData=dl,V.distance=Va,V.distributeNodesHorizontally=al,V.distributeNodesVertically=sl,V.downloadJSON=Hd,V.flipNodes=ul,V.generateId=Nd,V.getConnectedNodes=ol,V.getDefaultEdgeStyle=$h,V.getDefaultNodeStyle=Jh,V.getEdgeDefaultStyle=vQ,V.getEdgeTypeName=BQ,V.getNodeDefaultStyle=QQ,V.getNodePosition=bA,V.getNodeTypeName=EQ,V.getNodesBoundingBox=Vt,V.getNodesByCanalId=_a,V.mergeEdgeStyle=CQ,V.mergeNodeStyle=wQ,V.moveNodes=Kn,V.needsPreprocessing=wd,V.pointToSegmentDistance=Od,V.preprocessData=yd,V.readJSONFile=kd,V.registerBufferPolygonNode=Xh,V.registerCustomCombos=Gh,V.registerCustomEdges=zh,V.registerCustomNodes=Zh,V.rotateNodes90=cl,V.serializeGraphData=hl,V.setNodePosition=pe,V.throttle=Pd,V.transformData=SF,V.transformDataWithLayout=Ed,V.useIrrigationGraph=Qd,V.validateGraphData=Rd,Object.defineProperties(V,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
59
|
+
`),t.document.close(),t.print())}class Zo{graph=null;container=null;options;state={loading:!1,rendered:!1,zoom:1,selectedNodes:[],selectedEdges:[]};eventHandlers=new Map;dataPanelManager=null;evolutionManager=null;bufferLayerRenderer=null;contextMenuManager=null;bufferNodeSync=null;currentData=null;behaviorsCleanup=null;constructor(t){this.options=t,Zh(),zh(),Gh()}async init(){const t=typeof this.options.container=="string"?document.getElementById(this.options.container):this.options.container;if(!t)throw new Error("Container not found");this.container=t;const{behaviors:e,cleanup:r}=gl(this.options);return this.behaviorsCleanup=r,this.graph=new We.Graph({container:t,width:this.options.width||t.clientWidth,height:this.options.height||t.clientHeight,autoFit:this.options.fitView?"view":void 0,padding:this.options.fitViewPadding,background:"transparent",layout:vd(this.options.layout),behaviors:e,plugins:oF(this.options,this.currentData),node:{type:n=>n.nodeShape||"circle",style:n=>{const i=n,a=i.style||{},s=i.nodeShape==="image";if(i.nodeShape==="buffer-polygon")return{...a,zIndex:a.zIndex??-999,labelText:"",label:!1,icon:!1,badge:!1,port:!1,halo:!1};if(s&&a.img){const u=a.width||48,c=a.height||48,f={src:a.img,width:u,height:c,size:[u,c],labelText:i.data?.label||""};return a.fill&&(f.fill=a.fill),a.stroke&&(f.stroke=a.stroke),a.labelFill&&(f.labelFill=a.labelFill),a.labelFontSize&&(f.labelFontSize=a.labelFontSize||16),a.labelPlacement&&(f.labelPlacement=a.labelPlacement),a.labelWordWrap!=null&&(f.labelWordWrap=a.labelWordWrap),a.labelMaxWidth!=null&&(f.labelMaxWidth=a.labelMaxWidth),a.labelMaxLines!=null&&(f.labelMaxLines=a.labelMaxLines),a.labelLineHeight!=null&&(f.labelLineHeight=a.labelLineHeight),f.zIndex=10,f}const l={fill:a.fill||"#fff",stroke:a.stroke||"#1890ff",lineWidth:a.lineWidth??2,radius:a.radius??4,size:a.width?[a.width,a.height||a.width]:void 0,labelText:i.data?.label||"",...a};return!a.labelPlacement&&i.data?.labelPlacement&&(l.labelPlacement=i.data.labelPlacement),l}},edge:{type:n=>{const i=n;return i.style?.router?"polyline":i.edgeShape||"band-edge"},style:n=>{const i=n,a=i.style||{},s={stroke:"#1890ff",lineWidth:2,endArrow:!0};!s.labelText&&i.data?.label&&(s.labelText=i.data.label),s.labelText&&(Object.assign(s,{labelFontSize:16,labelFill:"#666",labelBackgroundFill:"rgba(255, 255, 255, 0.9)",labelBackgroundRadius:4,labelPadding:[2,6]}),a.labelFontSize!==void 0&&(s.labelFontSize=a.labelFontSize),a.labelFill!==void 0&&(s.labelFill=a.labelFill),a.labelBackgroundFill!==void 0&&(s.labelBackgroundFill=a.labelBackgroundFill),a.labelBackgroundRadius!==void 0&&(s.labelBackgroundRadius=a.labelBackgroundRadius),a.labelPadding!==void 0&&(s.labelPadding=a.labelPadding)),Object.assign(s,a),a.router&&(s.router={type:"orth",offset:20,...typeof a.router=="object"?a.router:{}});const o=i.style;return o&&typeof o=="object"&&Object.assign(s,o),s}},combo:{type:"irrigation-combo",style:n=>{const i=n.style||{};return{padding:i.padding||[20,20,20,20],labelText:i.labelText||n.data?.label||"",labelPlacement:i.labelPlacement||"top",labelFontSize:i.labelFontSize||12,fill:i.fill||"#f3f9ff",stroke:i.stroke||"#1890ff",lineWidth:i.lineWidth||2,radius:i.radius||8,labelFill:"#333",labelBackground:!0,labelBackgroundFill:"#fff",labelBackgroundOpacity:.8,labelBackgroundRadius:4,labelBackgroundPadding:[2,4]}}}}),uF(this.graph,this.eventHandlers),this.dataPanelManager=new hd(this.options.dataPanel||{enabled:!1}),this.dataPanelManager.mount(this.graph,t),this.options.evolution?.enabled&&(this.evolutionManager=new La(this.options.evolution),this.evolutionManager.mount(this.graph,this.dataPanelManager)),this.options.contextMenu?.enabled!==!1&&(this.contextMenuManager=new $o(this.options.contextMenu),this.contextMenuManager.mount(this.graph,t)),this.options.enableMinimap&&this.listenCanvasResize(),this.state.rendered=!0,this.graph}async render(t){this.graph||await this.init(),this.currentData=t,this.state.loading=!0;try{await this.graph.setData(t),await this.graph.render(),t.groups&&t.groups.length>0&&(this.bufferNodeSync||(this.bufferNodeSync=new fd),this.bufferNodeSync.init(this.graph,t.groups,t.edges||[])),this.dataPanelManager&&setTimeout(()=>{this.dataPanelManager?.updateConfig({})},100)}finally{this.state.loading=!1}}async updateData(t){if(!this.graph)return;const e=this.graph.getData(),r={nodes:t.nodes??e.nodes,edges:t.edges??e.edges,combos:t.combos??e.combos};await this.graph.setData(r),await this.graph.render()}async addNode(t){this.graph&&(await this.graph.addNodeData([t]),await this.graph.draw())}async addEdge(t){this.graph&&(await this.graph.addEdgeData([t]),await this.graph.draw())}async removeNode(t){this.graph&&(await this.graph.removeNodeData([t]),await this.graph.draw())}async removeEdge(t){this.graph&&(await this.graph.removeEdgeData([t]),await this.graph.draw())}async updateNode(t,e){this.graph&&(await this.graph.updateNodeData([{id:t,...e}]),await this.graph.draw())}async updateEdge(t,e){this.graph&&(await this.graph.updateEdgeData([{id:t,...e}]),await this.graph.draw())}zoomTo(t){this.graph&&(this.graph.zoomTo(t),this.state.zoom=t)}zoomIn(){const t=Math.min(this.state.zoom*1.2,5);this.zoomTo(t)}zoomOut(){const t=Math.max(this.state.zoom/1.2,.1);this.zoomTo(t)}async fitView(){if(!this.graph)return;this.options.fixElementSize!==!1?(this.graph.updateBehavior({key:"fix-element-size",reset:!0,enable:!1}),await this.graph.draw(),this.graph.updateBehavior({key:"fix-element-size",reset:!1}),await this.graph.zoomTo(1,!1),this.graph.updateBehavior({key:"fix-element-size",enable:!0}),await this.graph.fitView(),this.state.zoom=this.graph.getZoom()):(await this.graph.fitView(),this.state.zoom=this.graph.getZoom())}focusNode(t){this.graph&&this.graph.focusElement(t)}getData(){return pd(this.graph,this.currentData?.groups)}save(){return dF(this.graph)}async load(t){await gF(this.graph,t)}async toImage(t){return md(this.graph,t)}async downloadImage(t){await BF(this.graph,t)}print(){vF(this.container)}getState(){return{...this.state}}getSelectedNodes(){return[...this.state.selectedNodes]}getSelectedEdges(){return[...this.state.selectedEdges]}async setLayout(t){if(!this.graph)return;const e=vd(t);this.graph.setLayout(e),await this.graph.layout()}getGraph(){return this.graph}getDataPanelManager(){return this.dataPanelManager}getEvolutionManager(){return this.evolutionManager}setEvolutionData(t){this.evolutionManager||(this.evolutionManager=new La(this.options.evolution||{enabled:!0}),this.graph&&this.container&&this.evolutionManager.mount(this.graph,this.dataPanelManager||void 0)),this.evolutionManager.setData(t)}enableDataPanel(t){if(this.dataPanelManager&&(t&&this.dataPanelManager.updateConfig(t),this.dataPanelManager.enable(),this.graph)){const e=this.graph.getPlugins(),r=e.filter(n=>n.type!=="tooltip");r.length!==e.length&&this.graph.setPlugins(r)}}disableDataPanel(){if(this.dataPanelManager&&(this.dataPanelManager.disable(),this.graph&&this.options.tooltip?.enabled!==!1)){const t=this.graph.getPlugins();t.some(r=>r.type==="tooltip")||this.graph.setPlugins([...t,lF(this.options)])}}resize(t,e){if(!this.graph||!this.container)return;const r=t||this.container.clientWidth,n=e||this.container.clientHeight;this.graph.setSize(r,n)}resizeTimer=null;resizeObserver=null;listenCanvasResize(){!this.graph||!this.container||(this.resizeObserver=new ResizeObserver(()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout(()=>{this.updateMinimapPosition(),this.resizeTimer=null},150)}),this.resizeObserver.observe(this.container))}updateMinimapPosition(){if(!this.container)return;const t=document.querySelector(".g6-minimap"),e=t?.offsetWidth||0,r=t?.offsetHeight||0;t&&(t.style.top=`calc(100% - ${r}px)`,t.style.left=`calc(100% - ${e}px)`)}destroy(){this.evolutionManager&&(this.evolutionManager.unmount(),this.evolutionManager=null),this.dataPanelManager&&(this.dataPanelManager.unmount(),this.dataPanelManager=null),this.contextMenuManager&&(this.contextMenuManager.unmount(),this.contextMenuManager=null),this.bufferLayerRenderer&&(this.bufferLayerRenderer.destroy(),this.bufferLayerRenderer=null),this.bufferNodeSync&&(this.bufferNodeSync.destroy(),this.bufferNodeSync=null),this.resizeTimer&&(clearTimeout(this.resizeTimer),this.resizeTimer=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.behaviorsCleanup&&(this.behaviorsCleanup(),this.behaviorsCleanup=null),this.graph&&(this.graph.destroy(),this.graph=null),this.eventHandlers.clear(),this.state.rendered=!1}on(t,e){fF(this.eventHandlers,t,e)}off(t,e){hF(this.eventHandlers,t,e)}getContextMenuManager(){return this.contextMenuManager}enableContextMenu(){this.contextMenuManager&&this.contextMenuManager.enable()}disableContextMenu(){this.contextMenuManager&&this.contextMenuManager.disable()}onContextMenu(t){this.contextMenuManager&&this.contextMenuManager.on(t)}offContextMenu(t){this.contextMenuManager&&this.contextMenuManager.off(t)}}function pF(A){return new Zo(A)}const mF={generateAuxNodes:!0,defaultNodeSpacing:1e3,auxNodePrefix:"aux"};class yF{canalMap=new Map;canalChildren=new Map;existingPointsByCanalId=new Map;canalNodeMap=new Map;buildIndices(t){return this.clear(),this.buildCanalIndices(t.canals),this.buildPointIndices(t.points),this.buildCanalNodeMap(t),{canalMap:this.canalMap,canalChildren:this.canalChildren,existingPointsByCanalId:this.existingPointsByCanalId,canalNodeMap:this.canalNodeMap}}clear(){this.canalMap.clear(),this.canalChildren.clear(),this.existingPointsByCanalId.clear(),this.canalNodeMap.clear()}buildCanalIndices(t){for(const e of t)if(this.canalMap.set(e.id,e),e.parentId){const r=this.canalChildren.get(e.parentId)||[];r.push(e),r.sort((n,i)=>(n.forkChainage||0)-(i.forkChainage||0)),this.canalChildren.set(e.parentId,r)}}buildPointIndices(t){for(const e of t){e.ctrlTargetId&&(e.canalId=e.ctrlTargetId,e.chainage=-1);const r=this.existingPointsByCanalId.get(e.canalId)||[];r.push(e),this.existingPointsByCanalId.set(e.canalId,r)}for(const[e,r]of this.existingPointsByCanalId)r.sort((n,i)=>n.chainage-i.chainage),this.existingPointsByCanalId.set(e,r)}getCanalMap(){return this.canalMap}buildCanalNodeMap(t){const e=new Map;for(const r of t.canals)if(r.targetId){const n=e.get(r.targetId)||[];n.push({sourceCanalId:r.id,targetChainage:r.targetChainage||0}),e.set(r.targetId,n)}for(const r of t.canals){const n=[],i=this.existingPointsByCanalId.get(r.id)||[];for(const o of i)n.push({chainage:o.chainage,existingNode:o});const a=this.canalChildren.get(r.id)||[];for(const o of a)if(o.bankSide==="center"){const l=o.forkChainage||r.endChainage||1e4;n.push({chainage:l,auxType:"stream",linkTarget:{targetCanalId:o.id,targetChainage:o.startChainage||0}})}else{const l=o.forkChainage||0;n.push({chainage:l,auxType:"fork",branchId:o.id})}if(r.targetId&&this.canalMap.get(r.targetId)){const l=r.endChainage||1e4;n.push({chainage:l,auxType:"afflux",linkTarget:{targetCanalId:r.targetId,targetChainage:r.targetChainage||0}})}if(n.sort((o,l)=>o.chainage-l.chainage),(!r.parentId||r.parentId==="0")&&((e.get(r.id)||[]).some(u=>u.targetChainage===(r.startChainage||0))||n.unshift({chainage:r.startChainage||0,auxType:"start"})),n.length>0){const o=["end","stream","afflux"];n.every(u=>!o.includes(u.auxType))&&n.push({chainage:r.endChainage||0,auxType:"end"})}else!a.some(l=>l.bankSide==="center")&&!r.targetId&&n.push({chainage:r.endChainage||1e4,auxType:"end"});this.canalNodeMap.set(r.id,n)}this.formatCanalNodeMap()}detectJunctionNodes(){const t=new Map;for(const[e,r]of this.canalNodeMap)for(const n of r)if(n.auxType==="stream"&&n.linkTarget){const i=`${n.linkTarget.targetCanalId}:${n.linkTarget.targetChainage}`,a=t.get(i);a?(a.count++,a.sourceCanals.push(e)):t.set(i,{count:1,sourceCanals:[e],targetCanalId:n.linkTarget.targetCanalId,targetChainage:n.linkTarget.targetChainage})}for(const[e,r]of t){const n=this.canalNodeMap.get(r.targetCanalId);if(!n)continue;const i=r.targetChainage,a=n.find(l=>l.chainage===i),s=this.canalMap.get(r.targetCanalId),o=r.sourceCanals.length===1&&s?.parentId===r.sourceCanals[0];r.count>1?a&&!a.existingNode?a.auxType="afflux":a||(n.push({chainage:i,auxType:"afflux"}),n.sort((l,u)=>l.chainage-u.chainage)):o||a||(n.push({chainage:i,auxType:"stream",linkTarget:{targetCanalId:r.sourceCanals[0],targetChainage:0}}),n.sort((l,u)=>l.chainage-u.chainage))}}formatCanalNodeMap(){for(const[t,e]of this.canalNodeMap)for(const r of e)if((r.auxType==="stream"||r.auxType==="afflux")&&r.linkTarget){const n=t,i=r.chainage,a=r.linkTarget.targetCanalId,s=r.linkTarget.targetChainage,[o,l,u,c]=n<a?[n,i,a,s]:[a,s,n,i],f=`aux-${r.auxType}-${o}-${l}-${u}-${c}`;r.sharedNodeId=f;const d=this.canalNodeMap.get(a);d&&(d.push({chainage:s,auxType:r.auxType,sharedNodeId:f,linkTarget:{targetCanalId:t,targetChainage:i}}),d.sort((h,g)=>h.chainage-g.chainage))}}}var _r=(A=>(A.Entity="entity",A.Aux="aux",A))(_r||{});let wF=class{config;canalMap;constructor(t,e){this.config=t,this.canalMap=e}createAuxNode(t,e){const r=e.auxType,i={id:e.sharedNodeId||this.generateAuxNodeId(t,e),name:this.generateAuxNodeName(t,e),type:_r.Aux,auxType:r,canalId:t.id,chainage:e.chainage,autoGenerated:!0};switch(r){case"fork":e.branchId&&(i.branchId=e.branchId);break;case"stream":case"afflux":e.linkTarget&&(i.properties={isCrossCanalConnection:!0,targetCanalId:e.linkTarget.targetCanalId,targetChainage:e.linkTarget.targetChainage});break}return i}generateAuxNodeId(t,e){const r=this.config.auxNodePrefix;switch(e.auxType){case"start":return`${r}-start-${t.id}`;case"end":return`${r}-end-${t.id}`;case"fork":return`${r}-fork-${e.branchId||t.id}`;case"afflux":return`${r}-afflux-${t.id}-${e.chainage}`;case"stream":return`${r}-link-${t.id}-${e.chainage}`;default:return`${r}-${t.id}-${e.chainage}`}}generateAuxNodeName(t,e){const r=e.auxType;switch(r){case"start":return`${t.name}起点`;case"end":return`${t.name}终点`;case"fork":return`${(e.branchId?this.canalMap.get(e.branchId):null)?.name||"支渠"}分叉`;case"afflux":case"stream":{const i=(e.linkTarget?.targetCanalId?this.canalMap.get(e.linkTarget.targetCanalId):null)?.name||"目标渠";return`${t.name}-${i} ${r=="afflux"?"汇合点":"连接点"}`}default:return`辅助节点-${e.chainage}`}}};class CF{config;nodeFactory;canalNodeMap;canalMap;constructor(t,e,r,n){this.config=t,this.nodeFactory=e,this.canalNodeMap=r,this.canalMap=n}generateAllPoints(){const t=[],e=new Set;for(const[r,n]of this.canalNodeMap){const i=this.canalMap.get(r);if(i){for(const a of n)if(a.existingNode)e.has(a.existingNode.id)||(t.push(a.existingNode),e.add(a.existingNode.id));else if(a.auxType&&this.config.generateAuxNodes){const s=this.nodeFactory.createAuxNode(i,a);e.has(s.id)||(t.push(s),e.add(s.id))}}}return t}getPointsForCanal(t){const e=[],r=this.canalNodeMap.get(t),n=this.canalMap.get(t);if(!r||!n)return e;for(const i of r)if(i.existingNode)e.push(i.existingNode);else if(i.auxType&&this.config.generateAuxNodes){const a=this.nodeFactory.createAuxNode(n,i);e.push(a)}return e}}class qo{config;indexBuilder;constructor(t){this.config={...mF,...t},this.indexBuilder=new yF}preprocess(t){const e=this.indexBuilder.buildIndices(t),r=new wF(this.config,e.canalMap),i=new CF(this.config,r,e.canalNodeMap,e.canalMap).generateAllPoints();return{canals:t.canals,points:i,combos:t.combos||[],groups:t.groups||[]}}}function EF(A){return new qo(A)}function yd(A,t){return new qo(t).preprocess(A)}function wd(A){return A.points.length<A.canals.length*2||!A.points.some(e=>e.type==="aux")&&A.canals.length>0}const lr={fill:"#655a45",fillOpacity:.3,stroke:"#FFAA00",strokeOpacity:1,lineWidth:2,lineDash:[6,4],bufferWidth:30};class QF{constructor(t,e,r){this.groupEntities=t,this.existingEdges=e,this.existingNodes=r}transform(){const t=[];for(const e of this.groupEntities){const r=this.createBufferNode(e);r&&t.push(r)}return t}createBufferNode(t){const e=t.memberIds||[];if(e.length===0)return null;const r=this.buildNodePositions(),n=t.style?.bandWidth||lr.bufferWidth,i=Xo({memberIds:e,edges:this.existingEdges.map(s=>({source:String(s.source),target:String(s.target)})),nodePositions:r,bufferWidth:n});if(!i)return null;const a=t.style||{};return{id:`buffer-polygon-${t.id}`,nodeShape:"buffer-polygon",data:{label:"",groupId:t.id,groupName:t.name,memberIds:e,isBufferPolygon:!0},style:{x:i.centerX,y:i.centerY,pathData:i.pathData,fill:a.fill||lr.fill,fillOpacity:a.fillOpacity??lr.fillOpacity,stroke:a.stroke||lr.stroke,strokeOpacity:a.strokeOpacity??lr.strokeOpacity,lineWidth:a.lineWidth??lr.lineWidth,lineDash:a.lineDash||lr.lineDash,zIndex:a.zIndex??-999}}}buildNodePositions(){const t=new Map;for(const e of this.existingNodes){const r=String(e.id),n=e.style,i=n?.x??0,a=n?.y??0;t.set(r,[i,a])}return t}}class FF{constructor(t){this.indexBuilder=t}transform(){const t=[];for(const[e,r]of this.indexBuilder.comboEntities){const n={id:e,type:"rect",comboType:r.name.includes("调度节点")?"area-group":"custom",data:{label:r.name},draggable:!0,style:{padding:[20,20,20,20],labelText:r.name,labelPlacement:"top",labelFontSize:14,fill:"#f0f5ff",fillOpacity:1,stroke:"#adc6ff",lineWidth:2,radius:10}},i=this.indexBuilder.comboToComboMap.get(e);i&&(n.combo=i);const a=r.style;if(a){const s=["fill","fillOpacity","stroke","strokeOpacity","lineWidth","lineDash","opacity","radius","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","width","height","labelPlacement","labelFill","labelFontSize","labelOpacity"],o={};for(const l of s)l in a&&a[l]!==void 0&&(o[l]=a[l]);n.style={...n.style||{},...o},"draggable"in a&&typeof a.draggable=="boolean"&&(n.draggable=a.draggable)}t.push(n)}return t}}class UF{constructor(t,e=!0){this.indexBuilder=t,this.autoGenerateEdges=e}transform(t,e=[]){const r=new Set;if(e.forEach(s=>{s.id&&r.add(s.id)}),!this.autoGenerateEdges)return[];const n=this.generateChannelEdges(r),i=this.generateForkEdges(t.points,r),a=this.generateStreamEdges(t.points,r);return[...n,...i,...a]}generateChannelEdges(t){const e=[];for(const[r,n]of this.indexBuilder.pointsByCanalId){const i=this.indexBuilder.canalMap.get(r),a=i?.name||"";for(let s=0;s<n.length-1;s++){const o=n[s],l=n[s+1];if(!this.isValidEdge(o.id,l.id,t))continue;const u=this.shouldShowArrow(o,l),c=this.shouldShowLabel(l);e.push(this.createEdge(`edge-${o.id}-${l.id}`,o.id,l.id,"flow",!1,void 0,c?a:"",i?.style,u))}}return e}generateForkEdges(t,e){const r=[];for(const n of t){if(n.type!=="aux"||n.auxType!=="fork")continue;const i=n;if(!i.branchId)continue;const a=this.indexBuilder.canalMap.get(i.branchId),s=this.indexBuilder.pointsByCanalId.get(i.branchId);if(!s||s.length===0||!a)continue;const o=s[0].id;if(!this.isValidEdge(i.id,o,e))continue;const l=a.bankSide!=="center",u=a.bankSide==="left"?"up":"down",c=this.shouldShowArrow(i,s[0]),f=this.shouldShowLabel(s[0]);r.push(this.createEdge(`edge-${i.id}-${o}`,i.id,o,"flow",l,u,f?a.name:"",a.style,c))}return r}generateStreamEdges(t,e){const r=[];for(const n of t){if(n.type!=="aux"||n.auxType!=="stream")continue;const i=n,a=i.properties;if(!a?.targetCanalId||typeof a.targetCanalId!="string")continue;const s=a.targetCanalId,o=a.targetChainage||0,l=this.indexBuilder.pointsByCanalId.get(s);if(!l||l.length===0)continue;let u=l.find(h=>h.chainage===o);const c=this.indexBuilder.canalMap.get(s),f=c?.parentId===i.canalId;if(!u&&f&&(u=l[0]),!u||!this.isValidEdge(i.id,u.id,e))continue;const d=this.shouldShowLabel(u);r.push(this.createEdge(`edge-${i.id}-${u.id}`,i.id,u.id,"flow",!1,void 0,d&&c?.name||"",c?.style,!1))}return r}isValidEdge(t,e,r){return r.has(t)&&r.has(e)&&t!==e}shouldShowArrow(t,e){if(e.type!=="aux")return!1;const r=e;if((r.auxType||r.auxiliaryType)==="end"){const i=e.canalId;return!(this.indexBuilder.canalChildren.get(i)||[]).some(o=>o.bankSide==="center"&&o.forkChainage===e.chainage)}else if(r.auxType==="afflux")return r.canalId!==t?.canalId;return!1}shouldShowLabel(t){if(t.type!=="aux")return!1;const e=t,r=e.auxType||e.auxiliaryType;return r==="end"||r==="stream"||r==="afflux"}createEdge(t,e,r,n,i=!1,a,s,o,l=!1){const c={...$h(n),endArrow:l,label:!!s,labelText:s||"",labelFontSize:o?.labelFontSize??16,labelFill:"#666",labelBackgroundFill:"rgba(255, 255, 255, 0.8)",labelBackgroundRadius:4,labelPadding:[2,6],...o};return c.flyMarker?.enabled&&(c.animate={type:"fly-marker",repeat:c.flyMarker.iterations??1/0,duration:c.flyMarker.duration??3e3,delay:c.flyMarker.delay??0,marker:{size:c.flyMarker.markerSize??5,fill:c.flyMarker.markerColor??"red"}}),{id:t,source:e,target:r,data:{label:s||""},edgeShape:c.shape||"line",connectionType:n||"flow",style:c}}}class jo{constructor(t=[],e=[],r=[]){this.groupEntities=t,this.existingEdges=e;for(const n of r)this.nodeMap.set(n.id,n)}static DEFAULT_STYLE={fill:"#FFAA00",fillOpacity:1,stroke:"#FFAA00",strokeOpacity:1,bandWidth:20,lineWidth:2,lineDash:[5,5],zIndex:-999};nodeMap=new Map;transform(){return[]}getGroupAuxNodeIds(){const t=new Set;for(const e of this.groupEntities){const r=new Set(e.memberIds||[]);if(r.size===0)continue;const n=this.buildExpandedNodeSet(r);for(const i of n)r.has(i)||t.add(i)}return t}createGroupEdges(t){const e=new Set(t.memberIds||[]);if(e.size===0)return[];const r=this.buildExpandedNodeSet(e);return this.findInternalEdges(r).map((i,a)=>this.cloneEdgeWithGroupStyle(i,t,a))}buildAdjacencyList(){const t=new Map;for(const e of this.existingEdges){const r=e.source,n=e.target;t.has(r)||t.set(r,new Set),t.has(n)||t.set(n,new Set),t.get(r).add(n),t.get(n).add(r)}return t}findPathBFS(t,e,r){if(e===r)return[e];if(!t.has(e)||!t.has(r))return[];const n=new Set,i=[{node:e,path:[e]}];for(n.add(e);i.length>0;){const{node:a,path:s}=i.shift(),o=t.get(a)||new Set;for(const l of o){if(l===r)return[...s,l];n.has(l)||(n.add(l),i.push({node:l,path:[...s,l]}))}}return[]}buildExpandedNodeSet(t){const e=new Set(t),r=[...t];if(r.length<2)return e;const n=this.buildAdjacencyList();for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){const s=r[i],o=r[a],l=this.findPathBFS(n,s,o);if(l.length>0)for(const u of l)t.has(u)||e.add(u)}return e}findInternalEdges(t){return this.existingEdges.filter(e=>{const r=e.source,n=e.target;return t.has(r)&&t.has(n)})}cloneEdgeWithGroupStyle(t,e,r){const n=e.style||{},i={...jo.DEFAULT_STYLE,...n};return{id:`group-${e.id}-edge-${r}`,source:t.source,target:t.target,edgeShape:"band-edge",style:{fill:i.fill,fillOpacity:i.fillOpacity,bandWidth:i.bandWidth,lineWidth:i.lineWidth,stroke:i.stroke,strokeOpacity:i.strokeOpacity,lineDash:i.lineDash,endArrow:!1,startArrow:!1,...t.style?.router?{router:t.style.router}:{},zIndex:i.zIndex},data:{...t.data,groupId:e.id,isGroupEdge:!0,label:void 0}}}}class xF{canalMap=new Map;canalChildren=new Map;pointsByCanalId=new Map;nodeToComboMap=new Map;comboToComboMap=new Map;comboEntities=new Map;clear(){this.canalMap.clear(),this.canalChildren.clear(),this.pointsByCanalId.clear(),this.nodeToComboMap.clear(),this.comboToComboMap.clear(),this.comboEntities.clear()}build(t){this.clear();for(const e of t.canals)if(this.canalMap.set(e.id,e),e.parentId){const r=this.canalChildren.get(e.parentId)||[];r.push(e),this.canalChildren.set(e.parentId,r)}for(const e of t.points){const r=e.canalId;if(r){const i=this.pointsByCanalId.get(r)||[];i.push(e),this.pointsByCanalId.set(r,i)}const n=e.props||e.properties;if(n?.isCrossCanalConnection&&n.targetCanalId){const i=n.targetCanalId,a=this.pointsByCanalId.get(i)||[];a.find(s=>s.id===e.id)||(a.push(e),this.pointsByCanalId.set(i,a))}}if(t.combos){for(const e of t.combos)if(this.comboEntities.set(e.id,e),e.memberIds)for(const r of e.memberIds)this.nodeToComboMap.set(r,e.id)}for(const[e,r]of this.pointsByCanalId)r.sort((n,i)=>{const a=s=>{if(s.canalId===e)return s.chainage;const o=s.props||s.properties;return o?.isCrossCanalConnection&&o.targetCanalId===e?o.targetChainage:s.chainage};return a(n)-a(i)}),this.pointsByCanalId.set(e,r)}}class bF{constructor(t){this.nodeToComboMap=t}createNode(t,e){const r=this.getNodeShape(t),n=t.type===_r.Aux?"auxiliary":t.subtype||"dispatchNode",i=Jh(n);if(t.type===_r.Aux){const l=t,c=(l.auxType||l.auxiliaryType)==="end",f=e?.stroke||Kt,d=e?.lineWidth!==void 0?e.lineWidth:Rt,h={id:t.id,data:{label:""},businessData:t,nodeShape:"rect",style:{...i,fill:c?"transparent":f,stroke:c?"transparent":f,lineWidth:0,radius:0,width:d,height:d}},g=this.nodeToComboMap.get(t.id);return g&&(h.combo=g),h}const a=t.style;if(a){const l=a.shape||r,u=t.props||{},c={id:t.id,data:{label:u.labelText||t.name,labelPlacement:u.labelPlacement,labelMaxWidth:u.labelMaxWidth,labelBackground:u.labelBackground,labelBackgroundFill:u.labelBackgroundFill,labelBackgroundFillOpacity:u.labelBackgroundFillOpacity,labelBackgroundRadius:u.labelBackgroundRadius,labelWordWrap:u.labelWordWrap,labelMaxLines:u.labelMaxLines},businessData:t,nodeShape:l,style:{...i,fill:a.fill||i.fill,stroke:a.stroke||i.stroke,lineWidth:a.lineWidth??i.lineWidth,radius:a.radius??i.radius,width:a.width||i.width,height:a.height||i.height,img:a.img||i.img,...a}},f=this.nodeToComboMap.get(t.id);return f&&(c.combo=f),c}const s={id:t.id,data:{label:t.name},businessData:t,nodeShape:r,style:{...i}},o=this.nodeToComboMap.get(t.id);return o&&(s.combo=o),s}getNodeShape(t){return t.type===_r.Aux?"rect":{pumpStation:"rect",reservoir:"circle",sluice:"rect",dispatchUnit:"diamond",dispatchNode:"circle"}[t.subtype||""]||"circle"}}class ur{constructor(t,e,r,n,i){this.indexBuilder=t,this.nodeFactory=e,this.spacing=r,this.layoutDirection=n,this.centerPosition=i}canalNodeInfos=new Map;processedCanals=new Set;static MAX_RECURSION_DEPTH=100;static MAX_LOOP_ITERATIONS=100;getCanalNodeInfos(){return this.canalNodeInfos}transformAndPosition(t){this.canalNodeInfos.clear(),this.processedCanals.clear();const e=[];t.points.forEach(v=>{v.style||(v.style={shape:"circle",width:24,height:24})});const r=t.canals.filter(v=>!v.parentId||v.parentId==="0"),n=r.find(v=>v.base)||r[0];if(!n)return e;const a=(this.indexBuilder.pointsByCanalId.get(n.id)||[]).length,s=this.centerPosition.x,o=this.centerPosition.y;let l,u,c=this.layoutDirection==="horizontal"?"horizontal":"down";n.direction==="reverse"&&(c=this.layoutDirection==="horizontal"?"horizontal-left":"up");const f=n.config?.space??this.spacing.main;if(this.layoutDirection==="horizontal"){const v=(a-1)*f;l=s-v/2,u=o}else{const v=(a-1)*f;l=s,u=o-v/2}this.processCanal(n,l,u,c,e,1);const d=r.filter(v=>v.id!==n.id);let h=!0,g=0;for(;d.length>0&&h&&g<ur.MAX_LOOP_ITERATIONS;){h=!1,g++;for(let v=0;v<d.length;v++){const w=d[v];if(!w)continue;let p,y;for(const C of this.indexBuilder.canalMap.values())if(C.targetId===w.id){p=C,y=this.canalNodeInfos.get(C.id);break}if(p&&!y)continue;let E=l,F=u,x=!1;if(y&&y.nodes.length>0){const C=y.nodes[y.nodes.length-1];if(C){const S=C.style;E=S.x,F=S.y,p.targetChainage,x=!0}}let T="down",B=E,m=F;if(x&&p&&y){const C=y.direction,S=p.targetBankSide;C==="up"?T=S==="right"?"horizontal":"horizontal-left":C==="down"?T=S==="right"?"horizontal-left":"horizontal":C==="horizontal"?T=S==="right"?"down":"up":C==="horizontal-left"&&(T=S==="right"?"up":"down"),w.direction==="reverse"&&(T==="horizontal"?T="horizontal-left":T==="horizontal-left"?T="horizontal":T==="up"?T="down":T==="down"&&(T="up"));const I=(this.indexBuilder.pointsByCanalId.get(w.id)||[]).findIndex(k=>(k.props||k.properties)?.isCrossCanalConnection),H=I>=0?I:0,b=w.config?.space??this.spacing.branch;T==="horizontal"||T==="horizontal-left"?(m=F,T==="horizontal"?B=E-H*b:B=E+H*b):(B=E,T==="down"?m=F-H*b:m=F+H*b)}else{const C=w.config?.space??this.spacing.branch;this.layoutDirection==="horizontal"?(T="down",w.direction==="reverse"&&(T="up"),B=E+C*3,m=u):(T="horizontal",w.direction==="reverse"&&(T="horizontal-left"),B=l,m=F+C*3)}this.processCanal(w,B,m,T,e,2),d.splice(v,1),v--,h=!0}}g>=ur.MAX_LOOP_ITERATIONS&&console.warn(`[Positioner] while loop reached max iterations (${ur.MAX_LOOP_ITERATIONS}), ${d.length} root canals unprocessed`);for(const v of d)this.processCanal(v,l+300,u+300,this.layoutDirection==="horizontal"?"down":"horizontal",e,2);return e}processCanal(t,e,r,n,i,a=1){if(this.processedCanals.has(t.id)){console.warn(`[Positioner] cycle detected: canal "${t.id}" already processed, skipping`);return}if(a>ur.MAX_RECURSION_DEPTH){console.warn(`[Positioner] max recursion depth (${ur.MAX_RECURSION_DEPTH}) exceeded at canal "${t.id}", skipping`);return}this.processedCanals.add(t.id);const s=this.indexBuilder.pointsByCanalId.get(t.id)||[],o=[];let l=e,u=r;const f=this.isMainDirection(n)?this.spacing.main:this.spacing.branch,d=t.config?.space??f;for(let v=0;v<s.length;v++){const w=s[v],p=t.style,y=this.nodeFactory.createNode(w,p);if(y.style={...y.style||{},x:l,y:u},n==="horizontal"?l+=d:n==="horizontal-left"?l-=d:n==="up"?u-=d:u+=d,o.push(y),i.push(y),w.type==="aux"&&w.auxType==="fork"){const E=w;if(E.branchId){const F=this.indexBuilder.canalMap.get(E.branchId);if(F){const x=F.bankSide==="center",T=this.calculateBranchDirection(n,F),B=y.style.x,m=y.style.y,C=F.config?.space,{branchStartX:S,branchStartY:U}=this.calculateBranchStartPosition(B,m,T,x,C);this.processCanal(F,S,U,T,i,a+1)}}}}this.canalNodeInfos.set(t.id,{canalId:t.id,nodes:o,startX:e,startY:r,direction:n,level:a});const g=(this.indexBuilder.canalChildren.get(t.id)||[]).filter(v=>v.bankSide==="center");for(const v of g){const w=o[o.length-1];if(w){const p=w.style.x,y=w.style.y,E=this.calculateBranchDirection(n,v),F=v.config?.space,{branchStartX:x,branchStartY:T}=this.calculateBranchStartPosition(p,y,E,!0,F);this.processCanal(v,x,T,E,i,a)}}}isMainDirection(t){return this.layoutDirection==="horizontal"?t==="horizontal"||t==="horizontal-left":t==="up"||t==="down"}calculateBranchDirection(t,e){const r=e.bankSide,n=e.direction==="reverse";if(r==="center"){if(n)switch(t){case"horizontal":return"horizontal-left";case"horizontal-left":return"horizontal";case"up":return"down";case"down":return"up"}return t}let i;return t==="horizontal"||t==="horizontal-left"?(t==="horizontal"?i=r==="left"?"up":"down":i=r==="left"?"down":"up",n&&(i=i==="up"?"down":"up"),i):(t==="down"?i=r==="left"?"horizontal":"horizontal-left":i=r==="left"?"horizontal-left":"horizontal",n&&(i=i==="horizontal-left"?"horizontal":"horizontal-left"),i)}calculateBranchStartPosition(t,e,r,n=!1,i){let a=t,s=e;const o=n?this.spacing.main:this.spacing.branch,l=i??o;switch(r){case"up":s-=l;break;case"down":s+=l;break;case"horizontal":a+=l;break;case"horizontal-left":a-=l;break}return{branchStartX:a,branchStartY:s}}}const Cd={main:150,branch:120,branchOffset:80},Al={spacing:Cd,autoGenerateAuxiliary:!0,autoGenerateEdges:!0,centerPosition:{x:600,y:400},layoutDirection:"horizontal"};class Na{config;spacing;layoutDirection;indexBuilder;nodeFactory;edgeFactory;comboFactory;constructor(t){this.config={...Al,...t,spacing:{...Cd,...t?.spacing},centerPosition:t?.centerPosition||Al.centerPosition,layoutDirection:t?.layoutDirection||Al.layoutDirection},this.spacing=this.config.spacing,this.layoutDirection=this.config.layoutDirection,this.indexBuilder=new xF,this.nodeFactory=new bF(this.indexBuilder.nodeToComboMap),this.edgeFactory=new UF(this.indexBuilder,this.config.autoGenerateEdges),this.comboFactory=new FF(this.indexBuilder)}transform(t){let e=t;this.config.autoGenerateAuxiliary&&wd(t)&&(e=yd(t,this.config.preprocessConfig)),this.indexBuilder.build(e);const r=new ur(this.indexBuilder,this.nodeFactory,this.spacing,this.layoutDirection,this.config.centerPosition),n=r.transformAndPosition(e),i=this.edgeFactory.transform(e,n);this.adjustEndNodeTransparency(n,i),this.adjustEntityLabelPlacement(n,r.getCanalNodeInfos());const a=this.comboFactory.transform(),o=new jo(e.groups||[],i,n).transform(),l=[...i,...o],c=new QF(e.groups||[],l,n).transform();return{nodes:[...n,...c],edges:l,combos:a,groups:e.groups}}adjustEntityLabelPlacement(t,e){const r=new Map;for(const[,n]of e)for(const i of n.nodes)i.id&&r.set(i.id,n);for(const n of t){if(n.businessData?.type==="aux"||n.data?.labelPlacement)continue;const s=r.get(n.id||"");if(!s)continue;const o=s.direction==="up"||s.direction==="down";n.style||(n.style={}),o?n.style.labelPlacement="right":(n.style.labelPlacement="bottom",n.style.labelWordWrap=!0,n.style.labelMaxWidth=30,n.style.labelMaxLines=20,n.style.labelLineHeight=20)}}adjustEndNodeTransparency(t,e){const r=new Map;for(const n of e){if(!n.source)continue;const i=r.get(n.source);i?i.push(n):r.set(n.source,[n])}for(const n of t){const i=n.businessData;if(!i||(i.auxType||i.auxiliaryType)!=="end"||!n.id)continue;const s=r.get(n.id);if(!s||s.length===0)continue;const o=s[0]?.style;if(o&&n.style){const l=o.stroke||Kt,u=o.lineWidth||Rt;n.style.fill=l,n.style.stroke=l,n.style.width=u,n.style.height=u}}}setSpacing(t){this.spacing={...this.spacing,...t},this.config.spacing=this.spacing}setLayoutDirection(t){this.layoutDirection=t,this.config.layoutDirection=t}setCenterPosition(t,e){this.config.centerPosition={x:t,y:e}}getConfig(){return{...this.config}}getLayoutDirection(){return this.layoutDirection}}function IF(A){return new Na(A)}function SF(A,t){return new Na(t).transform(A)}function Ed(A,t,e){return new Na({layoutDirection:t,centerPosition:e}).transform(A)}function Qd(A){const{container:t,width:e,height:r,data:n,graphData:i,options:a={},autoInit:s=!0,layoutDirection:o="horizontal"}=A,l=Q.shallowRef(null),u=Q.shallowRef(null),c=Q.ref(!1),f=Q.ref(!1),d=Q.ref(o),h=Q.ref({loading:!1,rendered:!1,zoom:1,selectedNodes:[],selectedEdges:[]});async function g(){if(!(!t.value||c.value)){f.value=!0;try{l.value=new Zo({container:t.value,width:e,height:r,...a}),u.value=await l.value.init(),c.value=!0,i?await v(i):n&&await w(n,d.value)}catch(D){throw console.error("Failed to initialize graph:",D),D}finally{f.value=!1}}}async function v(D){if(l.value){f.value=!0;try{await l.value.render(D),h.value=l.value.getState()}finally{f.value=!1}}}async function w(D,j){const JA=j??d.value;d.value=JA;const wA=t.value,_A=wA?wA.clientWidth/2:600,DA=wA?wA.clientHeight/2:400,hA=Ed(D,JA,{x:_A,y:DA});await v(hA)}async function p(D,j){await w(D,j)}async function y(D){l.value&&await l.value.updateData(D)}async function E(D){l.value&&await l.value.addNode(D)}async function F(D){l.value&&await l.value.addEdge(D)}async function x(D){l.value&&await l.value.removeNode(D)}async function T(D){l.value&&await l.value.removeEdge(D)}async function B(D,j){l.value&&await l.value.updateNode(D,j)}async function m(D,j){l.value&&await l.value.updateEdge(D,j)}function C(){l.value?.zoomIn(),l.value&&(h.value=l.value.getState())}function S(){l.value?.zoomOut(),l.value&&(h.value=l.value.getState())}function U(D){l.value?.zoomTo(D),l.value&&(h.value=l.value.getState())}function I(){l.value?.fitView()}function H(D){l.value?.focusNode(D)}function b(){return l.value?.getData()||{nodes:[],edges:[],combos:[]}}function k(){return l.value?.save()||"{}"}async function M(D){l.value&&await l.value.load(D)}async function L(D){return l.value?.toImage(D)||""}async function N(D){await l.value?.downloadImage(D)}function O(){l.value?.print()}async function z(D){l.value&&await l.value.setLayout(D)}function $(D,j){l.value?.resize(D,j)}function eA(D,j){l.value?.on(D,j)}function tA(D,j){l.value?.off(D,j)}function Z(){l.value?.destroy(),l.value=null,u.value=null,c.value=!1}return Q.onMounted(()=>{s&&t.value&&g()}),Q.onUnmounted(()=>{Z()}),Q.watch(t,D=>{D&&s&&!c.value&&g()}),{manager:l,graph:u,state:h,initialized:c,loading:f,init:g,render:v,renderFromData:w,changeLayoutDirection:p,updateData:y,addNode:E,addEdge:F,removeNode:x,removeEdge:T,updateNode:B,updateEdge:m,zoomIn:C,zoomOut:S,zoomTo:U,fitView:I,focusNode:H,getData:b,save:k,load:M,toImage:L,downloadImage:N,print:O,setLayout:z,resize:$,on:eA,off:tA,destroy:Z}}const TF={key:0,class:"irrigation-config-panel"},MF={class:"irrigation-config-panel__tabs"},HF={class:"irrigation-config-panel__content"},kF={key:0,class:"irrigation-config-panel__section"},LF={class:"irrigation-config-panel__item"},NF={class:"irrigation-config-panel__control"},DF=["value"],PF=["value"],OF={class:"irrigation-config-panel__item"},RF={class:"irrigation-config-panel__control"},KF=["value"],_F={class:"irrigation-config-panel__value"},GF={key:1,class:"irrigation-config-panel__section"},VF={class:"irrigation-config-panel__item"},zF={class:"irrigation-config-panel__control"},WF=["value"],XF=["value"],YF={class:"irrigation-config-panel__item"},JF={class:"irrigation-config-panel__control"},$F=["value"],ZF={class:"irrigation-config-panel__value"},qF=Q.defineComponent({__name:"index",props:{visible:{type:Boolean,default:!1},activeTab:{default:"node"},config:{default:()=>({node:{...Ct},edge:{...Et}})}},emits:["close","tabChange","change","reset"],setup(A,{emit:t}){const e=A,r=t,n=Q.computed(()=>e.config?.node||{...Ct}),i=Q.computed(()=>e.config?.edge||{...Et});function a(){r("close")}function s(l){r("tabChange",l)}function o(l,u,c){r("change",{type:l,path:u,value:c})}return(l,u)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",TF,[Q.createElementVNode("div",{class:"irrigation-config-panel__header"},[u[9]||(u[9]=Q.createElementVNode("span",{class:"irrigation-config-panel__title"},"样式配置",-1)),Q.createElementVNode("button",{class:"irrigation-config-panel__close",onClick:a},[...u[8]||(u[8]=[Q.createElementVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[Q.createElementVNode("line",{x1:"4",y1:"4",x2:"20",y2:"20",stroke:"currentColor","stroke-width":"2"}),Q.createElementVNode("line",{x1:"20",y1:"4",x2:"4",y2:"20",stroke:"currentColor","stroke-width":"2"})],-1)])])]),Q.createElementVNode("div",MF,[Q.createElementVNode("button",{class:Q.normalizeClass(["irrigation-config-panel__tab",{active:A.activeTab==="node"}]),onClick:u[0]||(u[0]=c=>s("node"))}," 节点 ",2),Q.createElementVNode("button",{class:Q.normalizeClass(["irrigation-config-panel__tab",{active:A.activeTab==="edge"}]),onClick:u[1]||(u[1]=c=>s("edge"))}," 边 ",2)]),Q.createElementVNode("div",HF,[A.activeTab==="node"?(Q.openBlock(),Q.createElementBlock("div",kF,[u[12]||(u[12]=Q.createElementVNode("h4",{class:"irrigation-config-panel__section-title"}," 标签样式 ",-1)),Q.createElementVNode("div",LF,[u[10]||(u[10]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"文字颜色",-1)),Q.createElementVNode("div",NF,[Q.createElementVNode("input",{type:"color",value:n.value.label?.fill,onInput:u[2]||(u[2]=c=>o("node","label.fill",c.target.value))},null,40,DF),Q.createElementVNode("input",{type:"text",class:"irrigation-config-panel__text-input",value:n.value.label?.fill,onChange:u[3]||(u[3]=c=>o("node","label.fill",c.target.value))},null,40,PF)])]),Q.createElementVNode("div",OF,[u[11]||(u[11]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"字体大小",-1)),Q.createElementVNode("div",RF,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:n.value.label?.fontSize,onInput:u[4]||(u[4]=c=>o("node","label.fontSize",Number(c.target.value)))},null,40,KF),Q.createElementVNode("span",_F,Q.toDisplayString(n.value.label?.fontSize)+"px",1)])])])):Q.createCommentVNode("",!0),A.activeTab==="edge"?(Q.openBlock(),Q.createElementBlock("div",GF,[u[15]||(u[15]=Q.createElementVNode("h4",{class:"irrigation-config-panel__section-title"}," 标签样式 ",-1)),Q.createElementVNode("div",VF,[u[13]||(u[13]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"文字颜色",-1)),Q.createElementVNode("div",zF,[Q.createElementVNode("input",{type:"color",value:i.value.label?.fill,onInput:u[5]||(u[5]=c=>o("edge","label.fill",c.target.value))},null,40,WF),Q.createElementVNode("input",{type:"text",class:"irrigation-config-panel__text-input",value:i.value.label?.fill,onChange:u[6]||(u[6]=c=>o("edge","label.fill",c.target.value))},null,40,XF)])]),Q.createElementVNode("div",YF,[u[14]||(u[14]=Q.createElementVNode("label",{class:"irrigation-config-panel__label"},"字体大小",-1)),Q.createElementVNode("div",JF,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:i.value.label?.fontSize,onInput:u[7]||(u[7]=c=>o("edge","label.fontSize",Number(c.target.value)))},null,40,$F),Q.createElementVNode("span",ZF,Q.toDisplayString(i.value.label?.fontSize)+"px",1)])])])):Q.createCommentVNode("",!0)])])):Q.createCommentVNode("",!0)}}),Pn=(A,t)=>{const e=A.__vccOpts||A;for(const[r,n]of t)e[r]=n;return e},jF=Pn(qF,[["__scopeId","data-v-9a48687c"]]),AU={class:"element-editor__header"},eU={class:"element-editor__title"},tU={class:"element-editor__content"},rU={key:0,class:"element-editor__section"},nU={class:"element-editor__item"},iU={class:"element-editor__control"},aU=["checked"],sU={class:"element-editor__item"},oU={class:"element-editor__control"},lU=["value"],uU=["value"],cU={class:"element-editor__item"},fU={class:"element-editor__control"},hU=["value"],dU={class:"element-editor__item"},gU={class:"element-editor__control"},BU=["value"],vU={class:"element-editor__value"},pU={class:"element-editor__item"},mU={class:"element-editor__control"},yU=["value"],wU={class:"element-editor__value"},CU={class:"element-editor__item"},EU={class:"element-editor__control"},QU=["value"],FU={class:"element-editor__value"},UU={class:"element-editor__section"},xU={class:"element-editor__item"},bU={class:"element-editor__control"},IU=["value"],SU=["value"],TU={class:"element-editor__item"},MU={class:"element-editor__control"},HU=["value"],kU={class:"element-editor__value"},LU={class:"element-editor__section"},NU={class:"element-editor__item"},DU={class:"element-editor__control"},PU=["checked"],OU={class:"element-editor__item"},RU={class:"element-editor__control"},KU=["value"],_U={class:"element-editor__item"},GU={class:"element-editor__control"},VU=["value"],zU=["value"],WU={class:"element-editor__item"},XU={class:"element-editor__control"},YU=["value"],JU={class:"element-editor__value"},$U={class:"element-editor__item"},ZU={class:"element-editor__control"},qU=["value"],jU={class:"element-editor__value"},Ax=Pn(Q.defineComponent({__name:"ElementEditor",props:{visible:{type:Boolean,default:!1},elementType:{default:"node"},elementId:{default:""},nodeConfig:{default:()=>({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]})},edgeConfig:{default:()=>({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0})}},emits:["close","confirm","change"],setup(A,{emit:t}){const e=A,r=t,n=Q.reactive({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]}),i=Q.reactive({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0}),a=Q.computed(()=>e.elementType==="node"?"编辑节点":"编辑边线");Q.watch(()=>e.visible,d=>{d&&(e.elementType==="node"?(Object.assign(n,e.nodeConfig),n.labelOffset||(n.labelOffset=[0,0])):Object.assign(i,e.edgeConfig))},{immediate:!0});function s(){r("close")}function o(){r("close")}function l(){const d=e.elementType==="node"?{...n}:{...i};r("confirm",{type:e.elementType,id:e.elementId,config:d})}function u(d,h){n[d]=h,r("change",{type:"node",id:e.elementId,config:{...n}})}function c(d,h){i[d]=h,r("change",{type:"edge",id:e.elementId,config:{...i}})}function f(d,h){n.labelOffset||(n.labelOffset=[0,0]),n.labelOffset[d]=h,r("change",{type:"node",id:e.elementId,config:{...n}})}return(d,h)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",{key:0,class:"element-editor-overlay",onClick:o},[Q.createElementVNode("div",{class:"element-editor",onClick:h[16]||(h[16]=Q.withModifiers(()=>{},["stop"]))},[Q.createElementVNode("div",AU,[Q.createElementVNode("span",eU,Q.toDisplayString(a.value),1),Q.createElementVNode("button",{class:"element-editor__close",onClick:s},[...h[17]||(h[17]=[Q.createElementVNode("svg",{viewBox:"0 0 24 24",width:"14",height:"14"},[Q.createElementVNode("line",{x1:"4",y1:"4",x2:"20",y2:"20",stroke:"currentColor","stroke-width":"2"}),Q.createElementVNode("line",{x1:"20",y1:"4",x2:"4",y2:"20",stroke:"currentColor","stroke-width":"2"})],-1)])])]),Q.createElementVNode("div",tU,[A.elementType==="node"?(Q.openBlock(),Q.createElementBlock("div",rU,[h[25]||(h[25]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"标签设置",-1)),Q.createElementVNode("div",nU,[h[18]||(h[18]=Q.createElementVNode("label",{class:"element-editor__label"},"显示标签",-1)),Q.createElementVNode("div",iU,[Q.createElementVNode("input",{type:"checkbox",checked:n.labelVisible,onChange:h[0]||(h[0]=g=>u("labelVisible",g.target.checked))},null,40,aU)])]),Q.createElementVNode("div",sU,[h[19]||(h[19]=Q.createElementVNode("label",{class:"element-editor__label"},"文字颜色",-1)),Q.createElementVNode("div",oU,[Q.createElementVNode("input",{type:"color",value:n.labelFill,onInput:h[1]||(h[1]=g=>u("labelFill",g.target.value))},null,40,lU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:n.labelFill,onChange:h[2]||(h[2]=g=>u("labelFill",g.target.value))},null,40,uU)])]),Q.createElementVNode("div",cU,[h[21]||(h[21]=Q.createElementVNode("label",{class:"element-editor__label"},"标签位置",-1)),Q.createElementVNode("div",fU,[Q.createElementVNode("select",{value:n.labelPlacement,onChange:h[3]||(h[3]=g=>u("labelPlacement",g.target.value))},[...h[20]||(h[20]=[Q.createStaticVNode('<option value="top" data-v-db54e541>顶部</option><option value="bottom" data-v-db54e541>底部</option><option value="left" data-v-db54e541>左侧</option><option value="right" data-v-db54e541>右侧</option><option value="center" data-v-db54e541>中心</option>',5)])],40,hU)])]),Q.createElementVNode("div",dU,[h[22]||(h[22]=Q.createElementVNode("label",{class:"element-editor__label"},"字体大小",-1)),Q.createElementVNode("div",gU,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:n.labelFontSize,onInput:h[4]||(h[4]=g=>u("labelFontSize",Number(g.target.value)))},null,40,BU),Q.createElementVNode("span",vU,Q.toDisplayString(n.labelFontSize)+"px",1)])]),Q.createElementVNode("div",pU,[h[23]||(h[23]=Q.createElementVNode("label",{class:"element-editor__label"},"标签间距 X",-1)),Q.createElementVNode("div",mU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:n.labelOffset?.[0]??0,onInput:h[5]||(h[5]=g=>f(0,Number(g.target.value)))},null,40,yU),Q.createElementVNode("span",wU,Q.toDisplayString(n.labelOffset?.[0]??0)+"px",1)])]),Q.createElementVNode("div",CU,[h[24]||(h[24]=Q.createElementVNode("label",{class:"element-editor__label"},"标签间距 Y",-1)),Q.createElementVNode("div",EU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:n.labelOffset?.[1]??0,onInput:h[6]||(h[6]=g=>f(1,Number(g.target.value)))},null,40,QU),Q.createElementVNode("span",FU,Q.toDisplayString(n.labelOffset?.[1]??0)+"px",1)])])])):Q.createCommentVNode("",!0),A.elementType==="edge"?(Q.openBlock(),Q.createElementBlock(Q.Fragment,{key:1},[Q.createElementVNode("div",UU,[h[28]||(h[28]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"边线样式",-1)),Q.createElementVNode("div",xU,[h[26]||(h[26]=Q.createElementVNode("label",{class:"element-editor__label"},"边线颜色",-1)),Q.createElementVNode("div",bU,[Q.createElementVNode("input",{type:"color",value:i.stroke,onInput:h[7]||(h[7]=g=>c("stroke",g.target.value))},null,40,IU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:i.stroke,onChange:h[8]||(h[8]=g=>c("stroke",g.target.value))},null,40,SU)])]),Q.createElementVNode("div",TU,[h[27]||(h[27]=Q.createElementVNode("label",{class:"element-editor__label"},"边线宽度",-1)),Q.createElementVNode("div",MU,[Q.createElementVNode("input",{type:"range",min:"1",max:"10",value:i.lineWidth,onInput:h[9]||(h[9]=g=>c("lineWidth",Number(g.target.value)))},null,40,HU),Q.createElementVNode("span",kU,Q.toDisplayString(i.lineWidth)+"px",1)])])]),Q.createElementVNode("div",LU,[h[35]||(h[35]=Q.createElementVNode("h4",{class:"element-editor__section-title"},"标签设置",-1)),Q.createElementVNode("div",NU,[h[29]||(h[29]=Q.createElementVNode("label",{class:"element-editor__label"},"显示标签",-1)),Q.createElementVNode("div",DU,[Q.createElementVNode("input",{type:"checkbox",checked:i.labelVisible,onChange:h[10]||(h[10]=g=>c("labelVisible",g.target.checked))},null,40,PU)])]),Q.createElementVNode("div",OU,[h[31]||(h[31]=Q.createElementVNode("label",{class:"element-editor__label"},"标签位置",-1)),Q.createElementVNode("div",RU,[Q.createElementVNode("select",{value:i.labelPlacement,onChange:h[11]||(h[11]=g=>c("labelPlacement",g.target.value))},[...h[30]||(h[30]=[Q.createElementVNode("option",{value:"start"},"起点",-1),Q.createElementVNode("option",{value:"center"},"中心",-1),Q.createElementVNode("option",{value:"end"},"终点",-1)])],40,KU)])]),Q.createElementVNode("div",_U,[h[32]||(h[32]=Q.createElementVNode("label",{class:"element-editor__label"},"文字颜色",-1)),Q.createElementVNode("div",GU,[Q.createElementVNode("input",{type:"color",value:i.labelFill,onInput:h[12]||(h[12]=g=>c("labelFill",g.target.value))},null,40,VU),Q.createElementVNode("input",{type:"text",class:"element-editor__text-input",value:i.labelFill,onChange:h[13]||(h[13]=g=>c("labelFill",g.target.value))},null,40,zU)])]),Q.createElementVNode("div",WU,[h[33]||(h[33]=Q.createElementVNode("label",{class:"element-editor__label"},"字体大小",-1)),Q.createElementVNode("div",XU,[Q.createElementVNode("input",{type:"range",min:"10",max:"32",value:i.labelFontSize,onInput:h[14]||(h[14]=g=>c("labelFontSize",Number(g.target.value)))},null,40,YU),Q.createElementVNode("span",JU,Q.toDisplayString(i.labelFontSize)+"px",1)])]),Q.createElementVNode("div",$U,[h[34]||(h[34]=Q.createElementVNode("label",{class:"element-editor__label"},"标签偏移",-1)),Q.createElementVNode("div",ZU,[Q.createElementVNode("input",{type:"range",min:"-50",max:"50",value:i.labelOffset,onInput:h[15]||(h[15]=g=>c("labelOffset",Number(g.target.value)))},null,40,qU),Q.createElementVNode("span",jU,Q.toDisplayString(i.labelOffset)+"px",1)])])])],64)):Q.createCommentVNode("",!0)]),Q.createElementVNode("div",{class:"element-editor__footer"},[Q.createElementVNode("button",{class:"element-editor__confirm-btn",onClick:l}," 确定 ")])])])):Q.createCommentVNode("",!0)}}),[["__scopeId","data-v-db54e541"]]),ex={key:0,class:"evolution-timeline"},tx={class:"timeline-controls"},rx=["title"],nx={key:0,class:"icon-pause"},ix={key:1,class:"icon-play"},ax=["disabled"],sx={class:"track-points"},ox=["onClick","title"],lx={key:0,class:"point-label"},ux=["disabled"],cx={class:"speed-control"},fx={key:0,class:"timeline-info"},hx={class:"current-label"},dx={class:"progress-text"},el=Pn(Q.defineComponent({__name:"EvolutionTimeline",props:{manager:{},visible:{type:Boolean,default:!0},showLabels:{type:Boolean,default:!0},showInfo:{type:Boolean,default:!0}},emits:["change","play","pause","stop"],setup(A,{emit:t}){const e=A,r=t,n=Q.ref(0),i=Q.ref(!1),a=Q.ref(!1),s=Q.ref(0),o=Q.ref([]),l=Q.ref("1"),u=Q.ref(2e3),c=Q.ref(null),f=Q.computed(()=>s.value<=1?0:n.value/(s.value-1)*100),d=Q.computed(()=>n.value>0||a.value),h=Q.computed(()=>n.value<s.value-1||a.value),g=Q.computed(()=>o.value[n.value]||null);function v(b){return s.value<=1?50:b/(s.value-1)*100}function w(b){if(!b)return"";try{return new Date(b).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}catch{return String(b)}}function p(){e.manager&&(i.value?e.manager.pause():e.manager.play())}function y(){e.manager&&(a.value=!a.value,e.manager.setLoop(a.value))}function E(){e.manager?.prev()}function F(){e.manager?.next()}function x(){e.manager?.stop()}function T(){if(!e.manager)return;const b=parseFloat(l.value),k=u.value/b;e.manager.setSpeed(k)}function B(b){if(!e.manager||!c.value||s.value<=1)return;const k=c.value.getBoundingClientRect(),M=(b.clientX-k.left)/k.width,L=Math.round(M*(s.value-1));e.manager.jumpTo(L)}function m(b){e.manager?.jumpTo(b)}function C(){if(!e.manager)return;const b=e.manager.getState();n.value=b.currentIndex,i.value=b.isPlaying,a.value=b.loop,s.value=b.totalPoints,u.value=b.interval,o.value=e.manager.getTimePoints();const k=u.value/b.interval;l.value=String(k)}function S(b){n.value=b.currentIndex,i.value=b.isPlaying,s.value=b.totalPoints,r("change",b)}function U(){i.value=!0,r("play")}function I(){i.value=!1,r("pause")}function H(){i.value=!1,n.value=0,r("stop")}return Q.watch(()=>e.manager,(b,k)=>{k&&(k.off("change",S),k.off("play",U),k.off("pause",I),k.off("stop",H)),b&&(b.on("change",S),b.on("play",U),b.on("pause",I),b.on("stop",H),C())},{immediate:!0}),Q.onMounted(()=>{C()}),Q.onUnmounted(()=>{e.manager&&(e.manager.off("change",S),e.manager.off("play",U),e.manager.off("pause",I),e.manager.off("stop",H))}),(b,k)=>A.visible?(Q.openBlock(),Q.createElementBlock("div",ex,[Q.createElementVNode("div",tx,[Q.createElementVNode("button",{class:"control-btn play-btn",onClick:p,title:i.value?"暂停":"播放"},[i.value?(Q.openBlock(),Q.createElementBlock("span",nx,"❚❚")):(Q.openBlock(),Q.createElementBlock("span",ix,"▶"))],8,rx),Q.createElementVNode("button",{class:"control-btn",onClick:E,title:"上一帧",disabled:!d.value}," ◀◀ ",8,ax),Q.createElementVNode("div",{class:"timeline-track",ref_key:"trackRef",ref:c,onClick:B},[k[2]||(k[2]=Q.createElementVNode("div",{class:"track-bg"},null,-1)),Q.createElementVNode("div",{class:"track-progress",style:Q.normalizeStyle({width:f.value+"%"})},null,4),Q.createElementVNode("div",sx,[(Q.openBlock(!0),Q.createElementBlock(Q.Fragment,null,Q.renderList(o.value,(M,L)=>(Q.openBlock(),Q.createElementBlock("div",{key:L,class:Q.normalizeClass(["track-point",{active:L===n.value,passed:L<n.value}]),style:Q.normalizeStyle({left:v(L)+"%"}),onClick:Q.withModifiers(N=>m(L),["stop"]),title:M.label||w(M.timestamp)},[k[1]||(k[1]=Q.createElementVNode("div",{class:"point-dot"},null,-1)),A.showLabels?(Q.openBlock(),Q.createElementBlock("div",lx,Q.toDisplayString(M.label||w(M.timestamp)),1)):Q.createCommentVNode("",!0)],14,ox))),128))])],512),Q.createElementVNode("button",{class:"control-btn",onClick:F,title:"下一帧",disabled:!h.value}," ▶▶ ",8,ux),Q.createElementVNode("button",{class:"control-btn",onClick:x,title:"停止"}," ■ "),Q.createElementVNode("div",cx,[Q.withDirectives(Q.createElementVNode("select",{"onUpdate:modelValue":k[0]||(k[0]=M=>l.value=M),onChange:T,title:"播放速度"},[...k[3]||(k[3]=[Q.createElementVNode("option",{value:"0.5"},"0.5x",-1),Q.createElementVNode("option",{value:"1"},"1x",-1),Q.createElementVNode("option",{value:"2"},"2x",-1),Q.createElementVNode("option",{value:"4"},"4x",-1)])],544),[[Q.vModelSelect,l.value]])]),Q.createElementVNode("button",{class:Q.normalizeClass(["control-btn loop-btn",{active:a.value}]),onClick:y,title:"循环播放"}," 🔁 ",2)]),A.showInfo?(Q.openBlock(),Q.createElementBlock("div",fx,[Q.createElementVNode("span",hx,Q.toDisplayString(g.value?.label||w(g.value?.timestamp)||"--"),1),Q.createElementVNode("span",dx,Q.toDisplayString(n.value+1)+" / "+Q.toDisplayString(s.value),1)])):Q.createCommentVNode("",!0)])):Q.createCommentVNode("",!0)}}),[["__scopeId","data-v-a2514df2"]]),gx={class:"irrigation-toolbar"},Bx={key:0,class:"irrigation-toolbar__section"},vx=["disabled"],px={class:"irrigation-toolbar__btn-text"},mx={class:"irrigation-toolbar__section"},yx=["disabled"],wx={class:"irrigation-toolbar__section"},Cx=["disabled"],Ex={class:"irrigation-toolbar__section"},Qx=["disabled"],Fx=["disabled"],Ux=Pn(Q.defineComponent({__name:"Toolbar",props:{enabledActions:{default:()=>({zoomIn:!0,zoomOut:!0,fitView:!0,export:!0,print:!0,layout:!0,config:!1})},configActive:{type:Boolean,default:!1}},emits:["action"],setup(A,{emit:t}){const e=t,r=(n,i)=>{e("action",n,i)};return(n,i)=>(Q.openBlock(),Q.createElementBlock("div",gx,[A.enabledActions.config?(Q.openBlock(),Q.createElementBlock("div",Bx,[i[7]||(i[7]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"配置:",-1)),Q.createElementVNode("button",{onClick:i[0]||(i[0]=()=>r("toggleConfig")),disabled:!A.enabledActions.config,class:Q.normalizeClass({"is-active":A.configActive})},[i[6]||(i[6]=Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M12 1v6m0 6v6m4.22-10.22l4.24-4.24M6.34 17.66l-4.24 4.24M23 12h-6m-6 0H1m20.24 4.24l-4.24-4.24M6.34 6.34L2.1 2.1",stroke:"currentColor",fill:"none","stroke-width":"2"})],-1)),Q.createElementVNode("span",px,Q.toDisplayString(A.configActive?"关闭配置":"配置"),1)],10,vx)])):Q.createCommentVNode("",!0),Q.createElementVNode("div",mx,[i[9]||(i[9]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"视图:",-1)),Q.createElementVNode("button",{onClick:i[1]||(i[1]=()=>r("fitView")),disabled:!A.enabledActions.fitView},[...i[8]||(i[8]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"2",y:"2",width:"20",height:"20",rx:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M8 12h8M12 8v8",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"适应",-1)])],8,yx)]),Q.createElementVNode("div",wx,[i[12]||(i[12]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"操作:",-1)),A.enabledActions.getData?(Q.openBlock(),Q.createElementBlock("button",{key:0,onClick:i[2]||(i[2]=()=>r("getData"))},[...i[10]||(i[10]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("path",{d:"M4 4h16v16H4z",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("path",{d:"M8 12h8M8 16h8M8 8h8",stroke:"currentColor",fill:"none","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"获取数据",-1)])])):Q.createCommentVNode("",!0),Q.createElementVNode("button",{onClick:i[3]||(i[3]=()=>r("export")),disabled:!A.enabledActions.export},[...i[11]||(i[11]=[Q.createStaticVNode('<svg class="irrigation-toolbar__icon" viewBox="0 0 24 24" width="16" height="16" data-v-d97c0ccd><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" stroke="currentColor" fill="none" stroke-width="2" data-v-d97c0ccd></path><polyline points="7 10 12 15 17 10" stroke="currentColor" fill="none" stroke-width="2" data-v-d97c0ccd></polyline><line x1="12" y1="15" x2="12" y2="3" stroke="currentColor" stroke-width="2" data-v-d97c0ccd></line></svg><span class="irrigation-toolbar__btn-text" data-v-d97c0ccd>导出</span>',2)])],8,Cx)]),Q.createElementVNode("div",Ex,[i[15]||(i[15]=Q.createElementVNode("span",{class:"irrigation-toolbar__label"},"布局:",-1)),Q.createElementVNode("button",{onClick:i[4]||(i[4]=()=>r("layoutHorizontal")),disabled:!A.enabledActions.layout},[...i[13]||(i[13]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("line",{x1:"12",y1:"3",x2:"12",y2:"21",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"横向",-1)])],8,Qx),Q.createElementVNode("button",{onClick:i[5]||(i[5]=()=>r("layoutVertical")),disabled:!A.enabledActions.layout},[...i[14]||(i[14]=[Q.createElementVNode("svg",{class:"irrigation-toolbar__icon",viewBox:"0 0 24 24",width:"16",height:"16"},[Q.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2",stroke:"currentColor",fill:"none","stroke-width":"2"}),Q.createElementVNode("line",{x1:"3",y1:"12",x2:"21",y2:"12",stroke:"currentColor","stroke-width":"2"})],-1),Q.createElementVNode("span",{class:"irrigation-toolbar__btn-text"},"纵向",-1)])],8,Fx)])]))}}),[["__scopeId","data-v-d97c0ccd"]]),xx={key:1,class:"irrigation-graph__loading"},Fd=Pn(Q.defineComponent({__name:"IrrigationGraph",props:{width:{default:void 0},height:{default:void 0},data:{},graphData:{},layout:{},theme:{},tooltip:{},dataPanel:{},enableDrag:{type:Boolean,default:!0},enableZoom:{type:Boolean,default:!0},enableBrush:{type:Boolean,default:!1},enableMinimap:{type:Boolean,default:!1},fixElementSize:{type:Boolean,default:!0},fitView:{type:Boolean,default:!0},autoResize:{type:Boolean,default:!0},fitViewPadding:{},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!1},enabledToolbarActions:{default:()=>({zoomIn:!0,zoomOut:!0,fitView:!0,save:!0,export:!0,print:!0,layout:!0,getData:void 0})},evolution:{},evolutionData:{}},emits:["ready","itemClick","itemDblClick","itemContextMenu","selectionChange","canvasClick","dataChange","evolutionChange"],setup(A,{expose:t,emit:e}){const r=A,n=e,i=Q.ref(null),a=Q.ref(r.data),s=Q.ref("horizontal"),o=Q.shallowRef(null);let l=null;const u=Q.computed(()=>r.evolution?.enabled&&o.value!==null),c=Q.ref(!1),f=Q.ref("node"),d=Q.ref(""),h=Q.reactive({labelVisible:!0,labelFill:"#000000",labelPlacement:"bottom",labelFontSize:12,labelOffset:[0,0]}),g=Q.reactive({labelVisible:!0,stroke:"#1890ff",lineWidth:2,labelPlacement:"center",labelFill:"#666666",labelFontSize:12,labelOffset:0}),{manager:v,graph:w,state:p,initialized:y,loading:E,init:F,render:x,renderFromData:T,changeLayoutDirection:B,updateData:m,addNode:C,addEdge:S,removeNode:U,removeEdge:I,updateNode:H,updateEdge:b,zoomIn:k,zoomOut:M,zoomTo:L,fitView:N,resize:O,focusNode:z,getData:$,save:eA,load:tA,toImage:Z,downloadImage:D,print:j,setLayout:JA,on:wA,off:_A,destroy:DA}=Qd({container:i,width:r.width,height:r.height,data:r.data,graphData:r.graphData,options:{layout:r.layout,theme:r.theme,tooltip:r.tooltip,dataPanel:r.dataPanel,enableDrag:r.enableDrag,enableZoom:r.enableZoom,enableBrush:r.enableBrush,enableMinimap:r.enableMinimap,fixElementSize:r.fixElementSize,fitView:r.fitView,fitViewPadding:r.fitViewPadding,evolution:r.evolution},autoInit:!1}),{configPanelVisible:hA,configActiveTab:PA,globalConfig:xA,toggleConfigPanel:rA,closeConfigPanel:LA,handleConfigTabChange:Gr,handleConfigChange:Vr,handleConfigReset:Gt,updateNodeStyle:cr,updateEdgeStyle:fr}=_d({manager:v,currentData:a,emit:(X,jA)=>n("dataChange",jA)}),zr=Q.computed(()=>({width:r.width?`${r.width}px`:"100%",height:r.height?`${r.height}px`:"100%"}));function mt(){v.value&&(wA("node:click",X=>{n("itemClick",{type:"node",item:X.itemData})}),wA("node:dblclick",X=>{n("itemDblClick",{type:"node",item:X.itemData})}),wA("node:contextmenu",X=>{n("itemContextMenu",{type:"node",item:X.itemData,event:X.originalEvent})}),wA("edge:click",X=>{n("itemClick",{type:"edge",item:X.itemData})}),wA("edge:dblclick",X=>{n("itemDblClick",{type:"edge",item:X.itemData})}),wA("edge:contextmenu",X=>{n("itemContextMenu",{type:"edge",item:X.itemData,event:X.originalEvent})}),wA("combo:click",X=>{n("itemClick",{type:"combo",item:X.itemData})}),wA("combo:dblclick",X=>{n("itemDblClick",{type:"combo",item:X.itemData})}),wA("canvas:click",X=>{n("canvasClick",X.originalEvent)}),v.value.onContextMenu(hr))}function hr(X){X.menuValue==="edit"&&Ve(X.targetType,X.targetId,X.targetData)}function Ve(X,jA,dr){if(f.value=X,d.value=jA,X==="node"){const sA=dr.style||{};h.labelVisible=sA.label!==!1&&sA.label!=="",h.labelFill=sA.labelFill||"#000000",h.labelPlacement=sA.labelPlacement||"bottom",h.labelFontSize=sA.labelFontSize||12,h.labelOffset=sA.labelOffset||[0,0]}else{const sA=dr.style||{};g.labelVisible=sA.label!==!1&&sA.label!=="",g.stroke=sA.stroke||"#1890ff",g.lineWidth=sA.lineWidth||2,g.labelPlacement=sA.labelPlacement||"center",g.labelFill=sA.labelFill||"#666666",g.labelFontSize=sA.labelFontSize||12,g.labelOffset=sA.labelOffset||0}c.value=!0}function ze(){c.value=!1}async function yt(X){const{type:jA,id:dr,config:gr}=X;if(jA==="node"){const sA=gr,On={label:sA.labelVisible,labelFill:sA.labelFill,labelPlacement:sA.labelPlacement,labelFontSize:sA.labelFontSize,labelOffset:sA.labelOffset};await cr(dr,On)}else{const sA=gr,On={stroke:sA.stroke,lineWidth:sA.lineWidth,label:sA.labelVisible,labelPlacement:sA.labelPlacement,labelFill:sA.labelFill,labelFontSize:sA.labelFontSize,labelOffset:sA.labelOffset};await fr(dr,On)}c.value=!1}const wt={zoomIn:()=>k(),zoomOut:()=>M(),fitView:()=>N(),export:()=>D({fileName:"irrigation-graph"}),print:()=>j(),layoutHorizontal:()=>XA("horizontal"),layoutVertical:()=>XA("vertical"),toggleConfig:()=>rA(),getData:()=>{const X=$();r.enabledToolbarActions.getData?.(X)}};function qA(X){const jA=wt[X];jA?jA():console.warn(`[Toolbar] Unknown action: ${X}`)}async function XA(X){const jA=r.data??a.value;if(!jA){console.warn("No data available for layout change");return}s.value=X,a.value=jA,await B(jA,X),n("dataChange",$()),setTimeout(()=>{N()},100)}function Da(X){X.preventDefault()}Q.onMounted(async()=>{if(i.value&&(await F(),mt(),v.value&&(o.value=v.value.getEvolutionManager()),i.value.addEventListener("contextmenu",Da),n("ready",w.value),r.autoResize&&i.value)){const X=Ga(()=>{O()},100);l=new ResizeObserver(()=>{X()}),l.observe(i.value)}}),Q.onUnmounted(()=>{l&&(l.disconnect(),l=null),i.value&&i.value.removeEventListener("contextmenu",Da),DA()}),Q.watch(()=>r.data,async X=>{X&&y.value&&(a.value=X,await T(X,s.value),n("dataChange",$()))},{deep:!0}),Q.watch(()=>r.dataPanel,X=>{v.value&&(X?.enabled?v.value.enableDataPanel(X):v.value.disableDataPanel())},{deep:!0}),Q.watch(()=>r.graphData,async X=>{X&&y.value&&(await x(X),n("dataChange",$()))},{deep:!0}),Q.watch(()=>r.evolutionData,X=>{X&&v.value&&(v.value.setEvolutionData(X),o.value=v.value.getEvolutionManager())},{deep:!0});function Pa(X){n("evolutionChange",X)}function Oa(X){v.value&&(v.value.setEvolutionData(X),o.value=v.value.getEvolutionManager())}function tl(){return o.value}return t({graph:w,manager:v,state:p,initialized:y,loading:E,currentLayoutDirection:s,render:x,renderFromData:T,changeLayout:XA,changeLayoutDirection:B,updateData:m,addNode:C,addEdge:S,removeNode:U,removeEdge:I,updateNode:H,updateEdge:b,getData:$,zoomIn:k,zoomOut:M,zoomTo:L,fitView:N,focusNode:z,resize:O,setLayout:JA,save:eA,load:tA,toImage:Z,downloadImage:D,print:j,on:wA,off:_A,layoutUtils:Md,evolutionManager:o,setEvolutionData:Oa,getEvolutionManager:tl,destroy:DA}),(X,jA)=>(Q.openBlock(),Q.createElementBlock("div",{class:"irrigation-graph",style:Q.normalizeStyle(zr.value)},[Q.renderSlot(X.$slots,"toolbar",{zoomIn:Q.unref(k),zoomOut:Q.unref(M),fitView:Q.unref(N)},void 0,!0),r.showToolbar?(Q.openBlock(),Q.createBlock(Ux,{key:0,"enabled-actions":r.enabledToolbarActions,"config-active":Q.unref(hA),onAction:qA},null,8,["enabled-actions","config-active"])):Q.createCommentVNode("",!0),Q.createElementVNode("div",{ref_key:"containerRef",ref:i,class:"irrigation-graph__canvas"},null,512),Q.unref(E)?(Q.openBlock(),Q.createElementBlock("div",xx,[Q.renderSlot(X.$slots,"loading",{},()=>[jA[0]||(jA[0]=Q.createElementVNode("span",null,"加载中...",-1))],!0)])):Q.createCommentVNode("",!0),u.value?(Q.openBlock(),Q.createBlock(el,{key:2,manager:o.value,visible:!0,onChange:Pa},null,8,["manager"])):Q.createCommentVNode("",!0),Q.createVNode(jF,{visible:Q.unref(hA),"active-tab":Q.unref(PA),config:Q.unref(xA),onClose:Q.unref(LA),onTabChange:Q.unref(Gr),onChange:Q.unref(Vr),onReset:Q.unref(Gt)},null,8,["visible","active-tab","config","onClose","onTabChange","onChange","onReset"]),Q.createVNode(Ax,{visible:c.value,"element-type":f.value,"element-id":d.value,"node-config":h,"edge-config":g,onClose:ze,onConfirm:yt},null,8,["visible","element-type","element-id","node-config","edge-config"]),Q.renderSlot(X.$slots,"default",{},void 0,!0)],4))}}),[["__scopeId","data-v-82817f02"]]),bx={install(A){A.component("IrrigationGraph",Fd),A.component("EvolutionTimeline",el)}};V.BufferNodeSyncController=fd,V.ContextMenuManager=$o,V.DEFAULT_ALARM_STYLES=Bd,V.DEFAULT_EDGE_CONFIG=Et,V.DEFAULT_GLOBAL_CONFIG=Kd,V.DEFAULT_LABEL_CONFIG=za,V.DEFAULT_NODE_CONFIG=Ct,V.DataPanelManager=hd,V.DataPreprocessor=qo,V.DataTransformer=Na,V.EvolutionManager=La,V.EvolutionTimeline=el,V.IrrigationCombo=Kh,V.IrrigationGraph=Fd,V.IrrigationGraphManager=Zo,V.PRESET_GRADIENTS=nF,V.PRESET_THEMES=No,V.PointNodeType=_r,V.StyleUpdater=Yo,V.alignNodesHorizontally=nl,V.alignNodesVertically=il,V.autoAdjustSpacing=ll,V.buildExpandedNodeSet=zo,V.calculateEdgeGradient=dd,V.centerNodesToPosition=Ka,V.computeBufferPolygon=Wo,V.computeBufferPolygonResult=Xo,V.copyToClipboard=Ld,V.createBehaviors=gl,V.createContextMenuManager=sF,V.createDataPanelPlugin=eF,V.createEdgeConfig=pQ,V.createEdgeGradientStroke=gd,V.createEvolutionManager=aF,V.createGraphManager=pF,V.createNodeConfig=FQ,V.createPreprocessor=EF,V.createStyleUpdater=iF,V.createTheme=yQ,V.createTransformer=IF,V.debounce=Ga,V.deepClone=Dd,V.default=bx,V.deserializeGraphData=dl,V.distance=Va,V.distributeNodesHorizontally=al,V.distributeNodesVertically=sl,V.downloadJSON=Hd,V.flipNodes=ul,V.generateId=Nd,V.getConnectedNodes=ol,V.getDefaultEdgeStyle=$h,V.getDefaultNodeStyle=Jh,V.getEdgeDefaultStyle=vQ,V.getEdgeTypeName=BQ,V.getNodeDefaultStyle=QQ,V.getNodePosition=bA,V.getNodeTypeName=EQ,V.getNodesBoundingBox=Vt,V.getNodesByCanalId=_a,V.mergeEdgeStyle=CQ,V.mergeNodeStyle=wQ,V.moveNodes=Kn,V.needsPreprocessing=wd,V.pointToSegmentDistance=Od,V.preprocessData=yd,V.readJSONFile=kd,V.registerBufferPolygonNode=Xh,V.registerCustomCombos=Gh,V.registerCustomEdges=zh,V.registerCustomNodes=Zh,V.rotateNodes90=cl,V.serializeGraphData=hl,V.setNodePosition=pe,V.throttle=Pd,V.transformData=SF,V.transformDataWithLayout=Ed,V.useIrrigationGraph=Qd,V.validateGraphData=Rd,Object.defineProperties(V,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|