mobx-view-model-devtools 0.0.42 → 0.0.43
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/auto.global.js +2 -2
- package/index.cjs +2 -2
- package/index.d.ts +28 -2
- package/index.js +287 -75
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var t=document.createElement("style");t.appendChild(document.createTextNode('.vmPopup_0hkGL{position:fixed!important;z-index:999999;width:520px;border-radius:8px;height:calc(100vh - 24px);width:calc(100vw - 34px);max-width:520px;box-shadow:0 5px 20px #0006}.vmPopup_0hkGL.dragging_bOvPC{transition:none;cursor:grabbing;opacity:.8;z-index:1000}.vmPopup_0hkGL[data-position=top-right]{top:12px;right:12px}.vmPopup_0hkGL[data-position=top-left]{top:12px;left:12px}.vmPopup_0hkGL[data-position=bottom-left]{bottom:12px;left:12px}.vmPopup_0hkGL[data-position=bottom-right]{bottom:12px;right:12px}.closePopupButton_igv9j{width:28px;height:28px;padding:6px;border:0;background:transparent;color:var(--vmd-base-color);display:flex;align-items:center;justify-content:center}html:has(.dragging_bOvPC) *{-webkit-user-select:none!important;user-select:none!important}.vmButton_esipO{position:fixed;z-index:999999;width:36px;height:36px;border-radius:8px;transition:all .15s ease-in-out;cursor:pointer;-webkit-user-select:none;user-select:none}.vmButton_esipO.dragging_kUMCE{transition:none;cursor:grabbing;opacity:.8;z-index:1000}.vmButton_esipO.opened_NYAFW{opacity:0!important;pointer-events:none}.vmButton_esipO[data-position=top-right]{top:12px;right:12px}.vmButton_esipO[data-position=top-left]{top:12px;left:12px}.vmButton_esipO[data-position=bottom-left]{bottom:12px;left:12px}.vmButton_esipO[data-position=bottom-right]{bottom:12px;right:12px}.vmButton_esipO>img{pointer-events:none;position:absolute;inset:0;border-radius:8px}.vmButton_esipO>div{transition:all .15s ease-in-out;position:absolute;inset:0;border-radius:8px;border:2px solid #00000057}.vmButton_esipO:not(.isConnected_eObxX){filter:grayscale(1)}.vmButton_esipO>.vmsCount_HhX1W{left:-4px;top:-4px;pointer-events:none;position:absolute;display:flex;border-radius:8px;background:#005c26cf;padding:2px;font-weight:600;font-size:12px;line-height:12px;color:#2aff0a}.vmButton_esipO>.keyboardHint_v8eo0{position:absolute;bottom:-3px;left:-2px;z-index:99999;font-family:monospace;font-weight:700!important;font-size:10px;line-height:10px;background:#1b3b00bf;color:#73ff00d4;letter-spacing:-1px;border-radius:2px}html:has(.dragging_kUMCE) *{-webkit-user-select:none!important;user-select:none!important}.iconToggleButton_R48wm{display:flex;align-items:center;gap:2px;position:relative;height:20px;outline:none;border-radius:4px;-webkit-backdrop-filter:blur(var(--vmd-control-blur));backdrop-filter:blur(var(--vmd-control-blur))}.activePosition_IXsRn{position:absolute;height:16px;width:16px;padding:1px;box-sizing:content-box!important;background:var(--vmd-control-active-bg);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));border-radius:4px;transition:all 149ms ease;transform:translate(calc(20px * var(--index)))}.option_a5IcR{padding:1px;z-index:1;width:18px;height:18px;display:flex;align-items:center;justify-content:center;transition:all 149ms ease;color:var(--vmd-control-inactive-color)}.option_a5IcR.active_6QS-2{color:var(--vmd-control-active-color)}.option_a5IcR>svg{width:14px;height:14px}:root{--vmd-base-blur: 4px;--vmd-bg: #0c0a19e6;--vmd-overlay-bg: #0e1227bd;--vmd-base-color: #ccc;--vmd-control-active-bg: #e6e6e682;--vmd-control-active-color: #181818;--vmd-control-active-text-input-color: var(--vmd-base-color);--vmd-control-active-text-input-placeholder-color: #a3a3a3;--vmd-control-inactive-color: #8b8b8b;--vmd-control-border: #5b5468a6;--vmd-control-bg: transparent;--vmd-control-blur: 2px;--vmd-bg-transparent: #1f1c2600;--vmd-content-bg: transparent;--vmd-content-highlight-bg: #ffffff0a;--vmd-scrollbar-track-size: 8px;--vmd-scrollbar-bg-base: #81818170;--vmd-scrollbar-bg-active: #818181;--vmd-property-meta-color: #616161;--vmd-primary-bg: #0f6013;--vmd-primary-color: #5ab65e;--vmd-secondary-bg: #6b6902;--vmd-edit-content-color: #97503c;--vmd-header-height: 60px}.root_Xsw1F{display:contents;box-sizing:border-box}.root_Xsw1F *{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;box-sizing:border-box}.root_Xsw1F button{outline:none;background:transparent;border:0;cursor:pointer;margin:0;padding-block:0;padding-inline:0;color:var(--vmd-base-color)}.hierarchyButton_h3FD7{width:18px;height:18px;padding:2px;border-radius:6px}.hierarchyButton_h3FD7.active_4JTx5{background:#f0f0f01f}.treeItemHeader_9gR6Q{display:flex;align-items:center;gap:4px;margin:auto 0;cursor:pointer;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeItemLabel_eiMgP{padding:0 4px;border-radius:4px}.treeItemMetaText_cmfX0{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeItem_sRXPA{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:pre;height:22px;display:flex;flex-direction:row;align-items:center;padding-left:calc(8px + (var(--level) * 20px));position:sticky;top:calc(var(--vmd-header-height) + var(--vmd-control-panel-height));z-index:1}.treeItem_sRXPA:hover{background:var(--vmd-content-highlight-bg)}.treeItem_sRXPA:not([data-fitted=true])>header{opacity:.6}.vmTreeItem_t-7jc .treeItemLabel_eiMgP{background:var(--vmd-primary-bg)}.vmTreeItem_t-7jc .treeItemMetaText_cmfX0{color:var(--vmd-primary-color)}.extraTreeItem_z3KA1 .treeItemLabel_eiMgP{background:var(--vmd-secondary-bg)}.expandButton_B24E3{color:#a0a0a0;opacity:1!important;width:16px;height:16px;font-weight:700;cursor:pointer}.expandButton_B24E3.expanded_8-pD6{color:#b8b8b8;transform:rotate(90deg)}.expandButton_B24E3.disabled_MBq1Q{opacity:.35!important}.vmContentVirtualizedContent_LtS91{overflow:hidden}.vmContent_TIK57[data-simplebar]{position:relative;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;color:var(--vmd-base-color);background:var(--vmd-bg);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));display:flex;flex-direction:column;overflow:auto;overflow-y:auto;scrollbar-width:thin;overflow-anchor:none}.vmContent_TIK57[data-simplebar] .simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.vmContent_TIK57[data-simplebar] .simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;inset:0;width:auto!important;height:auto!important;z-index:0}.vmContent_TIK57[data-simplebar] .simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;inset:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.vmContent_TIK57[data-simplebar] .simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.vmContent_TIK57[data-simplebar] .simplebar-content-wrapper::-webkit-scrollbar,.vmContent_TIK57[data-simplebar] .simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.vmContent_TIK57[data-simplebar] .simplebar-content:after,.vmContent_TIK57[data-simplebar] .simplebar-content:before{content:" ";display:table}.vmContent_TIK57[data-simplebar] .simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.vmContent_TIK57[data-simplebar] .simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.vmContent_TIK57[data-simplebar] .simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.vmContent_TIK57[data-simplebar] .simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}.vmContent_TIK57[data-simplebar].simplebar-dragging,.vmContent_TIK57[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vmContent_TIK57[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.vmContent_TIK57[data-simplebar] .simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.vmContent_TIK57[data-simplebar] .simplebar-scrollbar:before{position:absolute;content:"";background:var(--vmd-scrollbar-bg-base);border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.vmContent_TIK57[data-simplebar] .simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-vertical{top:0;width:var(--vmd-scrollbar-track-size)}.vmContent_TIK57[data-simplebar] .simplebar-scrollbar:before{inset:2px}.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-horizontal{left:0;height:var(--vmd-scrollbar-track-size)}.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-horizontal .simplebar-scrollbar{inset:0 auto 0 0;min-height:0;min-width:10px;width:auto}.vmContent_TIK57[data-simplebar] .simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.vmContent_TIK57[data-simplebar] .simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.vmContent_TIK57[data-simplebar] .simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}.vmContentHeader_M1JNM{display:flex;flex-direction:column;height:var(--vmd-header-height);flex:none;padding:0 8px;position:sticky;top:0;z-index:2}.vmContentHeaderLogo_FRJDO{width:16px;margin-right:6px}.vmContentHeaderTitle_lYmde{display:flex;justify-content:space-between;align-items:center;flex:none;font-weight:600;z-index:1}.vmContentHeaderTitleText_RlIFH{font-size:16px;margin-right:auto}.vmContentControlPanel_CgUN9{width:100%;height:var(--vmd-control-panel-height);padding-bottom:4px;flex:none;display:flex;flex-direction:row;z-index:1;gap:4px;overflow:hidden;padding-right:6px}.vmContentControlPanel_CgUN9.searchIsActive_cJutI>.vmContentControlPanelActions_lONbA{margin-left:-106px}.vmContentControlPanelActions_lONbA{display:flex;flex-direction:row;align-items:center;gap:6px;transition:all .15s ease}.hiearchyToggleButton_0FTG-{display:flex}.vmContentInput_29GM1{display:flex;position:relative;flex:1;-webkit-backdrop-filter:blur(var(--vmd-control-blur));backdrop-filter:blur(var(--vmd-control-blur))}.vmContentInput_29GM1>svg{position:absolute;width:16px;inset:50% 0;transform:translate(6px,-50%);pointer-events:none;opacity:.7}.vmContentInput_29GM1>input{background:var(--vmd-control-bg);border:1px solid var(--vmd-control-border);color:var(--vmd-control-active-text-input-color);border-radius:4px;outline:0;width:100%;padding:3px 26px;font-size:14px;text-overflow:ellipsis}.vmContentInput_29GM1>input::placeholder{color:var(--vmd-control-active-text-input-placeholder-color)}.inputGhost_J-ksi{position:absolute;inset:0;display:flex;align-items:center;padding:3px 26px;font-size:14px;pointer-events:none;white-space:pre;overflow:hidden;z-index:0}.inputGhostTyped_UxVAJ{color:transparent;white-space:pre}.inputGhostSuggestion_Ys7F3{color:var(--vmd-control-active-text-input-placeholder-color);white-space:pre;opacity:.7}.vmContentInput_29GM1>input.inputWithSuggestion_C9PIe{background:transparent}.vmContentInput_29GM1>button{position:absolute;right:6px;width:16px;transform:translate(4px,-50%);top:50%;opacity:.6;display:none}.vmContentInput_29GM1.filled_6JZa0>svg{opacity:.9}.vmContentInput_29GM1.filled_6JZa0>button{display:block}.gradientBlur_-y-re{position:absolute;top:0;left:0;width:100%;height:calc(100% + 6px);pointer-events:none;background:linear-gradient(to bottom,var(--vmd-overlay-bg) 0%,rgba(0,0,0,0) 100%)}.gradientBlur_-y-re:before{content:"";position:absolute;inset:0;background:transparent;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);-webkit-mask:linear-gradient(to bottom,var(--vmd-overlay-bg) 50%,rgba(0,0,0,0) 100%);mask:linear-gradient(to bottom,var(--vmd-overlay-bg) 50%,rgba(0,0,0,0) 100%)}[data-list-item-operations]{position:relative;right:12px;display:flex;align-items:center;margin-left:auto;gap:4px;width:0;transition:all .15s ease;overflow:hidden}*:has(>[data-list-item-operations]):hover>[data-list-item-operations]{width:auto}[data-list-item-operation]:active{transform:scale(.9)}.property_sD8FG{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:pre;background:var(--vmd-content-bg);height:22px;display:flex;flex-direction:row;align-items:center;position:relative;color:var(--vmd-property-meta-color);padding-left:calc(0px + 28px + (var(--level) * 15px))}.property_sD8FG:hover,.property_sD8FG.isEditMode_S3NAq{background:var(--vmd-content-highlight-bg)}.property_sD8FG.expandable_np03F{cursor:pointer}.property_sD8FG>span{flex:1;overflow:hidden;text-overflow:ellipsis;padding-right:12px;display:flex;flex-direction:row}.property_sD8FG[data-fitted=false]{opacity:.5}.property_sD8FG.instance_jv3IW{--value-color: rgb(190 113 195)}.property_sD8FG.primitive_v6LAV.boolean_Z6znK,.property_sD8FG.primitive_v6LAV.number_U9H45,.property_sD8FG.primitive_v6LAV.object_bHf4I,.property_sD8FG.primitive_v6LAV.bigint_HkgX8,.property_sD8FG.primitive_v6LAV.symbol_oKSwT{--value-color: rgb(89, 153, 205)}.property_sD8FG.primitive_v6LAV.undefined_6CapW,.property_sD8FG.primitive_v6LAV.null_lugoL{--value-color: #499098}.primitive_v6LAV.string_87vm1{--value-color: #af7249}.propertyName_KicXG{color:#ccc}.propertyMeta_Ia9ce{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propertyValue_fYO2g{color:var(--value-color, var(--vmd-property-meta-color));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propertyValue_fYO2g:has(+.propertyName_KicXG){margin-right:4px}.property_sD8FG.isEditMode_S3NAq>[data-list-item-operations]{width:auto}.editContent_WSktI{min-width:180px;flex:none;text-overflow:ellipsis;background:transparent;color:var(--vmd-edit-content-color);outline:0;border:1px solid var(--vmd-control-active-text-input-color);border-radius:4px;padding:0 4px}.notifications_50ZEK{position:absolute;z-index:1000;padding:4px;border-radius:4px;background:var(--vmd-control-border);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));right:8px;left:4px;top:4px;display:flex;flex-direction:column;gap:4px}@keyframes notification-fade-out_1FHX2{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.notification_Yxzo-{animation:notification-fade-out_1FHX2 .25s ease forwards}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var t=document.createElement("style");t.appendChild(document.createTextNode('.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL{position:fixed!important;z-index:999999;width:520px;border-radius:8px;height:calc(100vh - 24px);width:calc(100vw - 34px);max-width:520px;box-shadow:0 5px 20px #0006}.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC{transition:none;cursor:grabbing;opacity:.8;z-index:1000}.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL[data-position=top-right]{top:12px;right:12px}.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL[data-position=top-left]{top:12px;left:12px}.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL[data-position=bottom-left]{bottom:12px;left:12px}.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL.vmPopup_0hkGL[data-position=bottom-right]{bottom:12px;right:12px}.closePopupButton_igv9j.closePopupButton_igv9j.closePopupButton_igv9j.closePopupButton_igv9j.closePopupButton_igv9j{width:28px;height:28px;padding:6px;border:0;background:transparent;color:var(--vmd-base-color);display:flex;align-items:center;justify-content:center}html:has(.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC.dragging_bOvPC) *{-webkit-user-select:none!important;user-select:none!important}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO{position:fixed;z-index:999999;width:36px;height:36px;border-radius:8px;transition:all .15s ease-in-out;cursor:pointer;-webkit-user-select:none;user-select:none}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE{transition:none;cursor:grabbing;opacity:.8;z-index:1000}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.opened_NYAFW.opened_NYAFW.opened_NYAFW.opened_NYAFW.opened_NYAFW{opacity:0!important;pointer-events:none}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO[data-position=top-right]{top:12px;right:12px}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO[data-position=top-left]{top:12px;left:12px}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO[data-position=bottom-left]{bottom:12px;left:12px}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO[data-position=bottom-right]{bottom:12px;right:12px}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO>img{pointer-events:none;position:absolute;inset:0;border-radius:8px}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO>div{transition:all .15s ease-in-out;position:absolute;inset:0;border-radius:8px;border:2px solid #00000057}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO:not(.isConnected_eObxX.isConnected_eObxX.isConnected_eObxX.isConnected_eObxX.isConnected_eObxX){filter:grayscale(1)}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO>.vmsCount_HhX1W.vmsCount_HhX1W.vmsCount_HhX1W.vmsCount_HhX1W.vmsCount_HhX1W{left:-4px;top:-4px;pointer-events:none;position:absolute;display:flex;border-radius:8px;background:#005c26cf;padding:2px;font-weight:600;font-size:12px;line-height:12px;color:#2aff0a}.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO.vmButton_esipO>.keyboardHint_v8eo0.keyboardHint_v8eo0.keyboardHint_v8eo0.keyboardHint_v8eo0.keyboardHint_v8eo0{position:absolute;bottom:-3px;left:-2px;z-index:99999;font-family:monospace;font-weight:700!important;font-size:10px;line-height:10px;background:#1b3b00bf;color:#73ff00d4;letter-spacing:-1px;border-radius:2px}html:has(.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE.dragging_kUMCE) *{-webkit-user-select:none!important;user-select:none!important}.iconToggleButton_R48wm.iconToggleButton_R48wm.iconToggleButton_R48wm.iconToggleButton_R48wm.iconToggleButton_R48wm{display:flex;align-items:center;gap:2px;position:relative;height:20px;outline:none;border-radius:4px;-webkit-backdrop-filter:blur(var(--vmd-control-blur));backdrop-filter:blur(var(--vmd-control-blur))}.activePosition_IXsRn.activePosition_IXsRn.activePosition_IXsRn.activePosition_IXsRn.activePosition_IXsRn{position:absolute;height:16px;width:16px;padding:1px;box-sizing:content-box!important;background:var(--vmd-control-active-bg);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));border-radius:4px;transition:all 149ms ease;transform:translate(calc(20px * var(--index)))}.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR{padding:1px;z-index:1;width:18px;height:18px;display:flex;align-items:center;justify-content:center;transition:all 149ms ease;color:var(--vmd-control-inactive-color)}.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR.active_6QS-2.active_6QS-2.active_6QS-2.active_6QS-2.active_6QS-2{color:var(--vmd-control-active-color)}.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR.option_a5IcR>svg{width:14px;height:14px}:root{--vmd-base-blur: 4px;--vmd-bg: #0c0a19e6;--vmd-overlay-bg: #0e1227bd;--vmd-base-color: #ccc;--vmd-control-active-bg: #e6e6e682;--vmd-control-active-color: #181818;--vmd-control-active-text-input-color: var(--vmd-base-color);--vmd-control-active-text-input-placeholder-color: #a3a3a3;--vmd-control-inactive-color: #8b8b8b;--vmd-control-border: #5b5468a6;--vmd-control-bg: transparent;--vmd-control-blur: 2px;--vmd-bg-transparent: #1f1c2600;--vmd-content-bg: transparent;--vmd-content-highlight-bg: #ffffff1c;--vmd-scrollbar-track-size: 8px;--vmd-scrollbar-bg-base: #81818170;--vmd-scrollbar-bg-active: #818181;--vmd-property-meta-color: #616161;--vmd-primary-bg: #0f6013;--vmd-primary-color: #5ab65e;--vmd-secondary-bg: #6b6902;--vmd-edit-content-color: #97503c;--vmd-header-height: 60px}.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F{display:contents;box-sizing:border-box}.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F *{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;box-sizing:border-box}.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F.root_Xsw1F button{outline:none;background:transparent;border:0;cursor:pointer;margin:0;padding-block:0;padding-inline:0;color:var(--vmd-base-color)}.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7{width:18px;height:18px;padding:2px;border-radius:6px}.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7.hierarchyButton_h3FD7.active_4JTx5.active_4JTx5.active_4JTx5.active_4JTx5.active_4JTx5{background:#f0f0f01f}.treeItemHeader_9gR6Q.treeItemHeader_9gR6Q.treeItemHeader_9gR6Q.treeItemHeader_9gR6Q.treeItemHeader_9gR6Q{display:flex;align-items:center;gap:4px;margin:auto 0;cursor:pointer;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP{padding:0 4px;border-radius:4px}.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:pre;height:22px;display:flex;flex-direction:row;align-items:center;padding-left:calc(8px + (var(--level) * 20px));position:sticky;top:calc(var(--vmd-header-height) + var(--vmd-control-panel-height));z-index:1}.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA:hover{background:var(--vmd-content-highlight-bg)}.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA.treeItem_sRXPA:not([data-fitted=true])>header{opacity:.6}.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc .treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP{background:var(--vmd-primary-bg)}.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc.vmTreeItem_t-7jc .treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0.treeItemMetaText_cmfX0{color:var(--vmd-primary-color)}.extraTreeItem_z3KA1.extraTreeItem_z3KA1.extraTreeItem_z3KA1.extraTreeItem_z3KA1.extraTreeItem_z3KA1 .treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP.treeItemLabel_eiMgP{background:var(--vmd-secondary-bg)}.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3{color:#a0a0a0;opacity:1!important;width:16px;height:16px;font-weight:700;cursor:pointer}.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expanded_8-pD6.expanded_8-pD6.expanded_8-pD6.expanded_8-pD6.expanded_8-pD6{color:#b8b8b8;transform:rotate(90deg)}.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.expandButton_B24E3.disabled_MBq1Q.disabled_MBq1Q.disabled_MBq1Q.disabled_MBq1Q.disabled_MBq1Q{opacity:.35!important}.vmContentVirtualizedContent_LtS91.vmContentVirtualizedContent_LtS91.vmContentVirtualizedContent_LtS91.vmContentVirtualizedContent_LtS91.vmContentVirtualizedContent_LtS91{overflow:hidden}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar]{position:relative;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start;color:var(--vmd-base-color);background:var(--vmd-bg);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));display:flex;flex-direction:column;overflow:auto;overflow-y:auto;scrollbar-width:thin;overflow-anchor:none}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;inset:0;width:auto!important;height:auto!important;z-index:0}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;inset:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-content-wrapper::-webkit-scrollbar,.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-content:after,.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-content:before{content:" ";display:table}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar].simplebar-dragging,.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-scrollbar:before{position:absolute;content:"";background:var(--vmd-scrollbar-bg-base);border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-vertical{top:0;width:var(--vmd-scrollbar-track-size)}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-scrollbar:before{inset:2px}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-horizontal{left:0;height:var(--vmd-scrollbar-track-size)}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-track.simplebar-horizontal .simplebar-scrollbar{inset:0 auto 0 0;min-height:0;min-width:10px;width:auto}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57.vmContent_TIK57[data-simplebar] .simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}.vmContentHeader_M1JNM.vmContentHeader_M1JNM.vmContentHeader_M1JNM.vmContentHeader_M1JNM.vmContentHeader_M1JNM{display:flex;flex-direction:column;height:var(--vmd-header-height);flex:none;padding:0 8px;position:sticky;top:0;z-index:2}.vmContentHeaderLogo_FRJDO.vmContentHeaderLogo_FRJDO.vmContentHeaderLogo_FRJDO.vmContentHeaderLogo_FRJDO.vmContentHeaderLogo_FRJDO{width:16px;margin-right:6px}.vmContentHeaderTitle_lYmde.vmContentHeaderTitle_lYmde.vmContentHeaderTitle_lYmde.vmContentHeaderTitle_lYmde.vmContentHeaderTitle_lYmde{display:flex;justify-content:space-between;align-items:center;flex:none;font-weight:600;z-index:1}.vmContentHeaderTitleText_RlIFH.vmContentHeaderTitleText_RlIFH.vmContentHeaderTitleText_RlIFH.vmContentHeaderTitleText_RlIFH.vmContentHeaderTitleText_RlIFH{font-size:16px;margin-right:auto}.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9{width:100%;height:var(--vmd-control-panel-height);padding-bottom:4px;flex:none;display:flex;flex-direction:row;z-index:1;gap:4px;overflow:hidden;padding-right:6px}.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.vmContentControlPanel_CgUN9.searchIsActive_cJutI.searchIsActive_cJutI.searchIsActive_cJutI.searchIsActive_cJutI.searchIsActive_cJutI>.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA{margin-left:-106px}.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA.vmContentControlPanelActions_lONbA{display:flex;flex-direction:row;align-items:center;gap:6px;transition:all .15s ease}.hiearchyToggleButton_0FTG-.hiearchyToggleButton_0FTG-.hiearchyToggleButton_0FTG-.hiearchyToggleButton_0FTG-.hiearchyToggleButton_0FTG-{display:flex}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1{display:flex;position:relative;flex:1;-webkit-backdrop-filter:blur(var(--vmd-control-blur));backdrop-filter:blur(var(--vmd-control-blur))}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1>svg{position:absolute;width:16px;inset:50% 0;transform:translate(6px,-50%);pointer-events:none;opacity:.7}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1>input{background:var(--vmd-control-bg);border:1px solid var(--vmd-control-border);color:var(--vmd-control-active-text-input-color);border-radius:4px;outline:0;width:100%;padding:3px 26px;font-size:14px;text-overflow:ellipsis}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1>input::placeholder{color:var(--vmd-control-active-text-input-placeholder-color)}.inputGhost_J-ksi.inputGhost_J-ksi.inputGhost_J-ksi.inputGhost_J-ksi.inputGhost_J-ksi{position:absolute;inset:0;display:flex;align-items:center;padding:3px 26px;font-size:14px;pointer-events:none;white-space:pre;overflow:hidden;z-index:0}.inputGhostTyped_UxVAJ.inputGhostTyped_UxVAJ.inputGhostTyped_UxVAJ.inputGhostTyped_UxVAJ.inputGhostTyped_UxVAJ{color:transparent;white-space:pre}.inputGhostSuggestion_Ys7F3.inputGhostSuggestion_Ys7F3.inputGhostSuggestion_Ys7F3.inputGhostSuggestion_Ys7F3.inputGhostSuggestion_Ys7F3{color:var(--vmd-control-active-text-input-placeholder-color);white-space:pre;opacity:.7}.inputSuggestions_5btGB.inputSuggestions_5btGB.inputSuggestions_5btGB.inputSuggestions_5btGB.inputSuggestions_5btGB{position:absolute;left:35px;top:calc(100% - 10px);display:flex;align-items:flex-start;font-size:14px;white-space:pre;z-index:3}.inputSuggestionsList_3Gl-h.inputSuggestionsList_3Gl-h.inputSuggestionsList_3Gl-h.inputSuggestionsList_3Gl-h.inputSuggestionsList_3Gl-h{min-width:120px;max-width:320px;padding:3px;border:1px solid var(--vmd-control-border);border-radius:5px;background:var(--vmd-control-bg);box-shadow:0 6px 18px #00000059;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp{display:flex;align-items:baseline;cursor:pointer;gap:6px;padding:1px 2px;border-radius:3px;color:var(--vmd-control-active-text-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inputSuggestionOwner_cMrNk.inputSuggestionOwner_cMrNk.inputSuggestionOwner_cMrNk.inputSuggestionOwner_cMrNk.inputSuggestionOwner_cMrNk{flex:none;max-width:90px;font-size:10px;line-height:1;overflow:hidden;text-overflow:ellipsis;background:var(--vmd-primary-bg);color:#fff;padding:2px;direction:rtl;border-radius:3px;opacity:.85}.inputSuggestionValue_6fYPI.inputSuggestionValue_6fYPI.inputSuggestionValue_6fYPI.inputSuggestionValue_6fYPI.inputSuggestionValue_6fYPI{overflow:hidden;text-overflow:ellipsis}.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.inputSuggestionItem_GcQXp.selected_OPRUb.selected_OPRUb.selected_OPRUb.selected_OPRUb.selected_OPRUb{color:var(--vmd-control-active-text-input-color);background:var(--vmd-content-highlight-bg)}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1>input.inputWithSuggestion_C9PIe.inputWithSuggestion_C9PIe.inputWithSuggestion_C9PIe.inputWithSuggestion_C9PIe.inputWithSuggestion_C9PIe{background:transparent}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1>button{position:absolute;right:6px;width:16px;transform:translate(4px,-50%);top:50%;opacity:.6;display:none}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.filled_6JZa0.filled_6JZa0.filled_6JZa0.filled_6JZa0.filled_6JZa0>svg{opacity:.9}.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.vmContentInput_29GM1.filled_6JZa0.filled_6JZa0.filled_6JZa0.filled_6JZa0.filled_6JZa0>button{display:block}.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re{position:absolute;top:0;left:0;width:100%;height:calc(100% + 6px);pointer-events:none;background:linear-gradient(to bottom,var(--vmd-overlay-bg) 0%,rgba(0,0,0,0) 100%)}.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re.gradientBlur_-y-re:before{content:"";position:absolute;inset:0;background:transparent;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);-webkit-mask:linear-gradient(to bottom,var(--vmd-overlay-bg) 50%,rgba(0,0,0,0) 100%);mask:linear-gradient(to bottom,var(--vmd-overlay-bg) 50%,rgba(0,0,0,0) 100%)}[data-list-item-operations]{position:relative;right:12px;display:flex;align-items:center;margin-left:auto;gap:4px;width:0;transition:all .15s ease;overflow:hidden}*:has(>[data-list-item-operations]):hover>[data-list-item-operations]{width:auto}[data-list-item-operation]:active{transform:scale(.9)}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:pre;background:var(--vmd-content-bg);height:22px;display:flex;flex-direction:row;align-items:center;position:relative;color:var(--vmd-property-meta-color);padding-left:calc(0px + 28px + (var(--level) * 15px))}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG:hover,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq{background:var(--vmd-content-highlight-bg)}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.expandable_np03F.expandable_np03F.expandable_np03F.expandable_np03F.expandable_np03F{cursor:pointer}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG>span{flex:1;overflow:hidden;text-overflow:ellipsis;padding-right:12px;display:flex;flex-direction:row}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG[data-fitted=false]{opacity:.5}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.instance_jv3IW.instance_jv3IW.instance_jv3IW.instance_jv3IW.instance_jv3IW{--value-color: rgb(190 113 195)}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.boolean_Z6znK.boolean_Z6znK.boolean_Z6znK.boolean_Z6znK.boolean_Z6znK,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.number_U9H45.number_U9H45.number_U9H45.number_U9H45.number_U9H45,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.object_bHf4I.object_bHf4I.object_bHf4I.object_bHf4I.object_bHf4I,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.bigint_HkgX8.bigint_HkgX8.bigint_HkgX8.bigint_HkgX8.bigint_HkgX8,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.symbol_oKSwT.symbol_oKSwT.symbol_oKSwT.symbol_oKSwT.symbol_oKSwT{--value-color: rgb(89, 153, 205)}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.undefined_6CapW.undefined_6CapW.undefined_6CapW.undefined_6CapW.undefined_6CapW,.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.null_lugoL.null_lugoL.null_lugoL.null_lugoL.null_lugoL{--value-color: #499098}.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.primitive_v6LAV.string_87vm1.string_87vm1.string_87vm1.string_87vm1.string_87vm1{--value-color: #af7249}.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG{color:#ccc}.propertyMeta_Ia9ce.propertyMeta_Ia9ce.propertyMeta_Ia9ce.propertyMeta_Ia9ce.propertyMeta_Ia9ce{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g{color:var(--value-color, var(--vmd-property-meta-color));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g.propertyValue_fYO2g:has(+.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG.propertyName_KicXG){margin-right:4px}.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.property_sD8FG.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq.isEditMode_S3NAq>[data-list-item-operations]{width:auto}.editContent_WSktI.editContent_WSktI.editContent_WSktI.editContent_WSktI.editContent_WSktI{min-width:180px;flex:none;text-overflow:ellipsis;background:transparent;color:var(--vmd-edit-content-color);outline:0;border:1px solid var(--vmd-control-active-text-input-color);border-radius:4px;padding:0 4px}.notifications_50ZEK.notifications_50ZEK.notifications_50ZEK.notifications_50ZEK.notifications_50ZEK{position:absolute;z-index:1000;padding:4px;border-radius:4px;background:var(--vmd-control-border);-webkit-backdrop-filter:blur(var(--vmd-base-blur));backdrop-filter:blur(var(--vmd-base-blur));right:8px;left:4px;top:4px;display:flex;flex-direction:column;gap:4px}@keyframes notification-fade-out_1FHX2{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.notification_Yxzo-.notification_Yxzo-.notification_Yxzo-.notification_Yxzo-.notification_Yxzo-{animation:notification-fade-out_1FHX2 .25s ease forwards}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -10892,11 +10892,11 @@ function requireReactDom_development() {
|
|
|
10892
10892
|
selectedValue["$" + selectedValues[i]] = true;
|
|
10893
10893
|
}
|
|
10894
10894
|
for (var _i = 0; _i < options2.length; _i++) {
|
|
10895
|
-
var
|
|
10896
|
-
if (options2[_i].selected !==
|
|
10897
|
-
options2[_i].selected =
|
|
10895
|
+
var selected2 = selectedValue.hasOwnProperty("$" + options2[_i].value);
|
|
10896
|
+
if (options2[_i].selected !== selected2) {
|
|
10897
|
+
options2[_i].selected = selected2;
|
|
10898
10898
|
}
|
|
10899
|
-
if (
|
|
10899
|
+
if (selected2 && setDefaultSelected) {
|
|
10900
10900
|
options2[_i].defaultSelected = true;
|
|
10901
10901
|
}
|
|
10902
10902
|
}
|
|
@@ -38480,9 +38480,14 @@ const vmContentInput = "vmContentInput_29GM1";
|
|
|
38480
38480
|
const inputGhost = "inputGhost_J-ksi";
|
|
38481
38481
|
const inputGhostTyped = "inputGhostTyped_UxVAJ";
|
|
38482
38482
|
const inputGhostSuggestion = "inputGhostSuggestion_Ys7F3";
|
|
38483
|
+
const inputSuggestions = "inputSuggestions_5btGB";
|
|
38484
|
+
const inputSuggestionsList = "inputSuggestionsList_3Gl-h";
|
|
38485
|
+
const inputSuggestionItem = "inputSuggestionItem_GcQXp";
|
|
38486
|
+
const inputSuggestionOwner = "inputSuggestionOwner_cMrNk";
|
|
38487
|
+
const inputSuggestionValue = "inputSuggestionValue_6fYPI";
|
|
38488
|
+
const selected = "selected_OPRUb";
|
|
38483
38489
|
const inputWithSuggestion = "inputWithSuggestion_C9PIe";
|
|
38484
38490
|
const filled = "filled_6JZa0";
|
|
38485
|
-
const vmContentVirtualScroll = "vmContentVirtualScroll_TVyLu";
|
|
38486
38491
|
const gradientBlur = "gradientBlur_-y-re";
|
|
38487
38492
|
const css$2 = {
|
|
38488
38493
|
expandButton,
|
|
@@ -38501,9 +38506,14 @@ const css$2 = {
|
|
|
38501
38506
|
inputGhost,
|
|
38502
38507
|
inputGhostTyped,
|
|
38503
38508
|
inputGhostSuggestion,
|
|
38509
|
+
inputSuggestions,
|
|
38510
|
+
inputSuggestionsList,
|
|
38511
|
+
inputSuggestionItem,
|
|
38512
|
+
inputSuggestionOwner,
|
|
38513
|
+
inputSuggestionValue,
|
|
38514
|
+
selected,
|
|
38504
38515
|
inputWithSuggestion,
|
|
38505
38516
|
filled,
|
|
38506
|
-
vmContentVirtualScroll,
|
|
38507
38517
|
gradientBlur
|
|
38508
38518
|
};
|
|
38509
38519
|
const ExpandButton = ({
|
|
@@ -38639,7 +38649,6 @@ const MetaListItemRender = observer(
|
|
|
38639
38649
|
className: cx(css$1.property, css$1.primitive),
|
|
38640
38650
|
style: { "--level": item.depth },
|
|
38641
38651
|
"data-fitted": item.devtools.searchEngine.isItemFitted(item),
|
|
38642
|
-
title: item.stringifiedData,
|
|
38643
38652
|
"data-depth": item.depthLine,
|
|
38644
38653
|
children: item.content
|
|
38645
38654
|
},
|
|
@@ -39929,7 +39938,6 @@ const PropertyListItemRender = observer(
|
|
|
39929
39938
|
}),
|
|
39930
39939
|
style: { "--level": item.depth, "--order": item.order },
|
|
39931
39940
|
"data-fitted": item.devtools.searchEngine.isItemFitted(item),
|
|
39932
|
-
title: item.stringifiedData,
|
|
39933
39941
|
onClick: (e) => item.devtools.handlePropertyClick(item, e),
|
|
39934
39942
|
"data-depth": item.depthLine,
|
|
39935
39943
|
children: [
|
|
@@ -39938,12 +39946,12 @@ const PropertyListItemRender = observer(
|
|
|
39938
39946
|
item.extraContent
|
|
39939
39947
|
] }, void 0, true, {
|
|
39940
39948
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/list-items/property-list-item-render/index.tsx",
|
|
39941
|
-
lineNumber:
|
|
39949
|
+
lineNumber: 61,
|
|
39942
39950
|
columnNumber: 9
|
|
39943
39951
|
}, void 0),
|
|
39944
39952
|
/* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(ListItemOperations, { item }, void 0, false, {
|
|
39945
39953
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/list-items/property-list-item-render/index.tsx",
|
|
39946
|
-
lineNumber:
|
|
39954
|
+
lineNumber: 65,
|
|
39947
39955
|
columnNumber: 9
|
|
39948
39956
|
}, void 0)
|
|
39949
39957
|
]
|
|
@@ -40336,6 +40344,8 @@ const VmDevtoolsContent = withViewModel(
|
|
|
40336
40344
|
value: devtools.searchEngine.searchText,
|
|
40337
40345
|
onChange: devtools.searchEngine.handleSearchInput,
|
|
40338
40346
|
onKeyDown: devtools.searchEngine.handleKeyDown,
|
|
40347
|
+
onFocus: devtools.searchEngine.handleSearchInputFocus,
|
|
40348
|
+
onBlur: devtools.searchEngine.handleSearchInputBlur,
|
|
40339
40349
|
placeholder: devtools.searchEngine.suggestionSuffix ? "" : "search by property path or ViewModel name",
|
|
40340
40350
|
className: devtools.searchEngine.suggestionSuffix ? css$2.inputWithSuggestion : void 0
|
|
40341
40351
|
},
|
|
@@ -40350,11 +40360,11 @@ const VmDevtoolsContent = withViewModel(
|
|
|
40350
40360
|
),
|
|
40351
40361
|
/* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("button", { onClick: devtools.searchEngine.resetSearch, children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(Xmark, {}, void 0, false, {
|
|
40352
40362
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40353
|
-
lineNumber:
|
|
40363
|
+
lineNumber: 110,
|
|
40354
40364
|
columnNumber: 17
|
|
40355
40365
|
}, void 0) }, void 0, false, {
|
|
40356
40366
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40357
|
-
lineNumber:
|
|
40367
|
+
lineNumber: 109,
|
|
40358
40368
|
columnNumber: 15
|
|
40359
40369
|
}, void 0)
|
|
40360
40370
|
]
|
|
@@ -40367,7 +40377,55 @@ const VmDevtoolsContent = withViewModel(
|
|
|
40367
40377
|
columnNumber: 13
|
|
40368
40378
|
},
|
|
40369
40379
|
void 0
|
|
40370
|
-
)
|
|
40380
|
+
),
|
|
40381
|
+
devtools.searchEngine.shouldShowSuggestions && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { className: css$2.inputSuggestions, "aria-hidden": "true", children: [
|
|
40382
|
+
/* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css$2.inputGhostTyped, children: devtools.searchEngine.searchText }, void 0, false, {
|
|
40383
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40384
|
+
lineNumber: 115,
|
|
40385
|
+
columnNumber: 19
|
|
40386
|
+
}, void 0),
|
|
40387
|
+
/* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { className: css$2.inputSuggestionsList, children: devtools.searchEngine.suggestionItems.map((suggestion, index) => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
|
|
40388
|
+
"div",
|
|
40389
|
+
{
|
|
40390
|
+
onClick: (e) => {
|
|
40391
|
+
e.preventDefault();
|
|
40392
|
+
devtools.searchEngine.applySuggestion(suggestion);
|
|
40393
|
+
},
|
|
40394
|
+
className: cx(
|
|
40395
|
+
css$2.inputSuggestionItem,
|
|
40396
|
+
index === devtools.searchEngine.selectedSuggestionIndex && css$2.selected
|
|
40397
|
+
),
|
|
40398
|
+
children: [
|
|
40399
|
+
!devtools.searchEngine.isNestedSearch && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css$2.inputSuggestionOwner, children: suggestion.vmName }, void 0, false, {
|
|
40400
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40401
|
+
lineNumber: 132,
|
|
40402
|
+
columnNumber: 27
|
|
40403
|
+
}, void 0),
|
|
40404
|
+
/* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css$2.inputSuggestionValue, children: suggestion.value }, void 0, false, {
|
|
40405
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40406
|
+
lineNumber: 136,
|
|
40407
|
+
columnNumber: 25
|
|
40408
|
+
}, void 0)
|
|
40409
|
+
]
|
|
40410
|
+
},
|
|
40411
|
+
`${suggestion.vmName}/${suggestion.value}`,
|
|
40412
|
+
true,
|
|
40413
|
+
{
|
|
40414
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40415
|
+
lineNumber: 120,
|
|
40416
|
+
columnNumber: 23
|
|
40417
|
+
},
|
|
40418
|
+
void 0
|
|
40419
|
+
)) }, void 0, false, {
|
|
40420
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40421
|
+
lineNumber: 118,
|
|
40422
|
+
columnNumber: 19
|
|
40423
|
+
}, void 0)
|
|
40424
|
+
] }, void 0, true, {
|
|
40425
|
+
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40426
|
+
lineNumber: 114,
|
|
40427
|
+
columnNumber: 17
|
|
40428
|
+
}, void 0)
|
|
40371
40429
|
] }, void 0, true, {
|
|
40372
40430
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40373
40431
|
lineNumber: 47,
|
|
@@ -40393,7 +40451,7 @@ const VmDevtoolsContent = withViewModel(
|
|
|
40393
40451
|
false,
|
|
40394
40452
|
{
|
|
40395
40453
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40396
|
-
lineNumber:
|
|
40454
|
+
lineNumber: 150,
|
|
40397
40455
|
columnNumber: 11
|
|
40398
40456
|
},
|
|
40399
40457
|
void 0
|
|
@@ -40403,7 +40461,7 @@ const VmDevtoolsContent = withViewModel(
|
|
|
40403
40461
|
false,
|
|
40404
40462
|
{
|
|
40405
40463
|
fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
|
|
40406
|
-
lineNumber:
|
|
40464
|
+
lineNumber: 146,
|
|
40407
40465
|
columnNumber: 9
|
|
40408
40466
|
},
|
|
40409
40467
|
void 0
|
|
@@ -40623,24 +40681,42 @@ class SearchEngine {
|
|
|
40623
40681
|
this.searchInputRef = createFocusableRef();
|
|
40624
40682
|
makeObservable(this, {
|
|
40625
40683
|
searchText: observable.ref,
|
|
40684
|
+
searchTextToSearch: observable.ref,
|
|
40685
|
+
selectedSuggestionIndex: observable.ref,
|
|
40686
|
+
isSearchInputFocused: observable.ref,
|
|
40687
|
+
isSuggestionsDismissed: observable.ref,
|
|
40626
40688
|
formattedSearchText: computed,
|
|
40627
40689
|
segments: computed.struct,
|
|
40628
40690
|
endsWithDot: computed,
|
|
40691
|
+
isNestedSearch: computed,
|
|
40629
40692
|
isActive: computed,
|
|
40693
|
+
isSearchTextDebouncing: computed,
|
|
40694
|
+
shouldShowSuggestions: computed,
|
|
40695
|
+
suggestionItems: computed.struct,
|
|
40696
|
+
selectedSuggestion: computed,
|
|
40630
40697
|
suggestionSuffix: computed,
|
|
40698
|
+
applySuggestion: action,
|
|
40631
40699
|
handleSearchInput: action,
|
|
40700
|
+
handleSearchInputFocus: action,
|
|
40701
|
+
handleSearchInputBlur: action,
|
|
40632
40702
|
handleKeyDown: action,
|
|
40633
40703
|
resetSearch: action
|
|
40634
40704
|
});
|
|
40635
40705
|
}
|
|
40636
40706
|
searchInputRef;
|
|
40637
40707
|
searchText = "";
|
|
40708
|
+
searchTextToSearch = "";
|
|
40709
|
+
selectedSuggestionIndex = 0;
|
|
40710
|
+
isSearchInputFocused = false;
|
|
40711
|
+
isSuggestionsDismissed = false;
|
|
40638
40712
|
searchCacheKey = "";
|
|
40639
40713
|
isSearching = false;
|
|
40714
|
+
searchTextToSearchTimeout = null;
|
|
40640
40715
|
scrollToSearchMatchTimeout = null;
|
|
40716
|
+
static searchDebounceMs = 150;
|
|
40641
40717
|
static itemHeight = 22;
|
|
40642
40718
|
get formattedSearchText() {
|
|
40643
|
-
return this.
|
|
40719
|
+
return this.searchTextToSearch.toLowerCase().trim();
|
|
40644
40720
|
}
|
|
40645
40721
|
/**
|
|
40646
40722
|
* Сегменты поиска, разбитые по точке.
|
|
@@ -40652,45 +40728,149 @@ class SearchEngine {
|
|
|
40652
40728
|
return all[all.length - 1] === "" ? all.slice(0, -1) : all;
|
|
40653
40729
|
}
|
|
40654
40730
|
get endsWithDot() {
|
|
40655
|
-
return this.
|
|
40731
|
+
return this.searchTextToSearch.trim().endsWith(".");
|
|
40732
|
+
}
|
|
40733
|
+
get isNestedSearch() {
|
|
40734
|
+
return this.endsWithDot || this.segments.length > 1;
|
|
40656
40735
|
}
|
|
40657
40736
|
get isActive() {
|
|
40658
40737
|
return this.formattedSearchText.length > 0;
|
|
40659
40738
|
}
|
|
40660
|
-
|
|
40661
|
-
|
|
40662
|
-
|
|
40663
|
-
|
|
40664
|
-
|
|
40665
|
-
|
|
40666
|
-
|
|
40739
|
+
get isSearchTextDebouncing() {
|
|
40740
|
+
return this.searchText !== this.searchTextToSearch;
|
|
40741
|
+
}
|
|
40742
|
+
get shouldShowSuggestions() {
|
|
40743
|
+
return this.isSearchInputFocused && !this.isSuggestionsDismissed && this.suggestionItems.length > 0;
|
|
40744
|
+
}
|
|
40745
|
+
get suggestionItems() {
|
|
40746
|
+
if (this.isSearchTextDebouncing) return [];
|
|
40747
|
+
if (!this.isActive) return [];
|
|
40667
40748
|
const { segments } = this;
|
|
40668
|
-
if (segments.length === 0) return
|
|
40749
|
+
if (segments.length === 0) return [];
|
|
40669
40750
|
const completingSegment = this.endsWithDot ? "" : segments[segments.length - 1];
|
|
40670
|
-
if (!this.endsWithDot && !completingSegment) return
|
|
40751
|
+
if (!this.endsWithDot && !completingSegment) return [];
|
|
40671
40752
|
const rootItems = this.config.getRootItems();
|
|
40672
40753
|
const pathSegments = this.endsWithDot ? segments : segments.slice(0, -1);
|
|
40673
40754
|
const candidates = this.getCandidatePropsAtDepth(rootItems, pathSegments);
|
|
40755
|
+
const suggestionsByVM = /* @__PURE__ */ new Map();
|
|
40756
|
+
const seen = /* @__PURE__ */ new Set();
|
|
40674
40757
|
for (const prop of candidates) {
|
|
40675
40758
|
const nameLower = prop.searchData.property;
|
|
40676
40759
|
const nameOriginal = prop.property ?? "";
|
|
40677
|
-
|
|
40678
|
-
|
|
40760
|
+
const vmName = this.getOwnerVMName(prop);
|
|
40761
|
+
const uniqueKey = `${vmName}/${nameLower}`;
|
|
40762
|
+
if (nameLower.startsWith(completingSegment) && nameLower.length >= completingSegment.length) {
|
|
40763
|
+
if (seen.has(uniqueKey)) continue;
|
|
40764
|
+
seen.add(uniqueKey);
|
|
40765
|
+
const suggestions = suggestionsByVM.get(vmName) ?? [];
|
|
40766
|
+
suggestions.push({
|
|
40767
|
+
value: nameOriginal,
|
|
40768
|
+
suffix: nameOriginal.slice(completingSegment.length),
|
|
40769
|
+
vmName
|
|
40770
|
+
});
|
|
40771
|
+
suggestionsByVM.set(vmName, suggestions);
|
|
40679
40772
|
}
|
|
40680
40773
|
}
|
|
40681
|
-
|
|
40774
|
+
const result = [];
|
|
40775
|
+
const groups = [...suggestionsByVM.values()];
|
|
40776
|
+
let offset = 0;
|
|
40777
|
+
while (result.length < 10) {
|
|
40778
|
+
let hasSuggestion = false;
|
|
40779
|
+
for (const group of groups) {
|
|
40780
|
+
const suggestion = group[offset];
|
|
40781
|
+
if (!suggestion) continue;
|
|
40782
|
+
result.push(suggestion);
|
|
40783
|
+
hasSuggestion = true;
|
|
40784
|
+
if (result.length >= 10) {
|
|
40785
|
+
return result;
|
|
40786
|
+
}
|
|
40787
|
+
}
|
|
40788
|
+
if (!hasSuggestion) break;
|
|
40789
|
+
offset++;
|
|
40790
|
+
}
|
|
40791
|
+
return result;
|
|
40682
40792
|
}
|
|
40793
|
+
get selectedSuggestion() {
|
|
40794
|
+
if (this.suggestionItems.length === 0) return null;
|
|
40795
|
+
const index = Math.min(
|
|
40796
|
+
this.selectedSuggestionIndex,
|
|
40797
|
+
this.suggestionItems.length - 1
|
|
40798
|
+
);
|
|
40799
|
+
return this.suggestionItems[index] ?? null;
|
|
40800
|
+
}
|
|
40801
|
+
/**
|
|
40802
|
+
* Суффикс выбранного свойства, которое начинается с последнего сегмента.
|
|
40803
|
+
* Отображается как серая подсказка в инпуте.
|
|
40804
|
+
* Например: ввод "_pay" → suggestionSuffix = "load" (от "_payload")
|
|
40805
|
+
*/
|
|
40806
|
+
get suggestionSuffix() {
|
|
40807
|
+
return this.selectedSuggestion?.suffix ?? "";
|
|
40808
|
+
}
|
|
40809
|
+
applySuggestion = (suggestion) => {
|
|
40810
|
+
this.clearSearchDebounce();
|
|
40811
|
+
const nextSearchText = this.searchText + suggestion.suffix;
|
|
40812
|
+
this.searchText = nextSearchText;
|
|
40813
|
+
this.searchTextToSearch = nextSearchText;
|
|
40814
|
+
this.selectedSuggestionIndex = 0;
|
|
40815
|
+
this.isSuggestionsDismissed = false;
|
|
40816
|
+
this.searchInputRef.current?.focus();
|
|
40817
|
+
this.scheduleScrollToFirstSearchMatch();
|
|
40818
|
+
};
|
|
40683
40819
|
handleSearchInput = (e) => {
|
|
40684
40820
|
this.searchText = e.target.value;
|
|
40685
|
-
this.
|
|
40821
|
+
this.selectedSuggestionIndex = 0;
|
|
40822
|
+
this.isSuggestionsDismissed = false;
|
|
40823
|
+
this.scheduleSearchTextDebounce();
|
|
40824
|
+
};
|
|
40825
|
+
handleSearchInputFocus = (_e) => {
|
|
40826
|
+
this.isSearchInputFocused = true;
|
|
40827
|
+
this.isSuggestionsDismissed = false;
|
|
40828
|
+
};
|
|
40829
|
+
handleSearchInputBlur = (_e) => {
|
|
40830
|
+
this.isSearchInputFocused = false;
|
|
40686
40831
|
};
|
|
40687
40832
|
handleKeyDown = (e) => {
|
|
40833
|
+
if (e.key === "Escape") {
|
|
40834
|
+
e.preventDefault();
|
|
40835
|
+
e.stopPropagation();
|
|
40836
|
+
this.isSuggestionsDismissed = true;
|
|
40837
|
+
return;
|
|
40838
|
+
}
|
|
40839
|
+
if (e.key === "ArrowDown" && this.suggestionItems.length > 0) {
|
|
40840
|
+
e.preventDefault();
|
|
40841
|
+
this.selectedSuggestionIndex = (this.selectedSuggestionIndex + 1) % this.suggestionItems.length;
|
|
40842
|
+
return;
|
|
40843
|
+
}
|
|
40844
|
+
if (e.key === "ArrowUp" && this.suggestionItems.length > 0) {
|
|
40845
|
+
e.preventDefault();
|
|
40846
|
+
this.selectedSuggestionIndex = (this.selectedSuggestionIndex - 1 + this.suggestionItems.length) % this.suggestionItems.length;
|
|
40847
|
+
return;
|
|
40848
|
+
}
|
|
40688
40849
|
if (e.key === "Tab" && this.suggestionSuffix) {
|
|
40689
40850
|
e.preventDefault();
|
|
40690
|
-
this.
|
|
40691
|
-
this.scheduleScrollToFirstSearchMatch();
|
|
40851
|
+
this.applySuggestion(this.selectedSuggestion);
|
|
40692
40852
|
}
|
|
40693
40853
|
};
|
|
40854
|
+
clearSearchDebounce() {
|
|
40855
|
+
if (this.searchTextToSearchTimeout) {
|
|
40856
|
+
clearTimeout(this.searchTextToSearchTimeout);
|
|
40857
|
+
this.searchTextToSearchTimeout = null;
|
|
40858
|
+
}
|
|
40859
|
+
}
|
|
40860
|
+
scheduleSearchTextDebounce() {
|
|
40861
|
+
this.clearSearchDebounce();
|
|
40862
|
+
if (!this.searchText.trim()) {
|
|
40863
|
+
this.searchTextToSearch = "";
|
|
40864
|
+
return;
|
|
40865
|
+
}
|
|
40866
|
+
this.searchTextToSearchTimeout = setTimeout(() => {
|
|
40867
|
+
runInAction(() => {
|
|
40868
|
+
this.searchTextToSearchTimeout = null;
|
|
40869
|
+
this.searchTextToSearch = this.searchText;
|
|
40870
|
+
this.scheduleScrollToFirstSearchMatch();
|
|
40871
|
+
});
|
|
40872
|
+
}, SearchEngine.searchDebounceMs);
|
|
40873
|
+
}
|
|
40694
40874
|
scheduleScrollToFirstSearchMatch() {
|
|
40695
40875
|
if (this.scrollToSearchMatchTimeout) {
|
|
40696
40876
|
clearTimeout(this.scrollToSearchMatchTimeout);
|
|
@@ -40742,52 +40922,59 @@ class SearchEngine {
|
|
|
40742
40922
|
*/
|
|
40743
40923
|
getCandidatePropsAtDepth(rootItems, pathSegments) {
|
|
40744
40924
|
const allVMs = this.collectAllVMs(rootItems);
|
|
40925
|
+
const extras = rootItems.filter(
|
|
40926
|
+
(item) => item instanceof ExtraListItem
|
|
40927
|
+
);
|
|
40745
40928
|
if (pathSegments.length === 0) {
|
|
40746
|
-
|
|
40747
|
-
|
|
40748
|
-
|
|
40749
|
-
...vm.children.filter(
|
|
40750
|
-
(c) => c instanceof PropertyListItem
|
|
40751
|
-
)
|
|
40752
|
-
);
|
|
40753
|
-
}
|
|
40754
|
-
return props;
|
|
40929
|
+
return [...allVMs, ...extras].flatMap(
|
|
40930
|
+
(item) => this.getDirectPropertyChildren(item)
|
|
40931
|
+
);
|
|
40755
40932
|
}
|
|
40756
40933
|
const firstSeg = pathSegments[0];
|
|
40757
40934
|
const result = [];
|
|
40758
40935
|
for (const vm of allVMs) {
|
|
40759
|
-
const directProps =
|
|
40760
|
-
(c) => c instanceof PropertyListItem
|
|
40761
|
-
);
|
|
40936
|
+
const directProps = this.getDirectPropertyChildren(vm);
|
|
40762
40937
|
const firstSegmentIsExactProperty = directProps.some(
|
|
40763
40938
|
(prop) => prop.searchData.property === firstSeg
|
|
40764
40939
|
);
|
|
40765
40940
|
const vmNameMatch = !firstSegmentIsExactProperty && (vm.searchData.name.includes(firstSeg) || vm.searchData.id.includes(firstSeg));
|
|
40766
40941
|
if (vmNameMatch) {
|
|
40767
|
-
|
|
40768
|
-
result.push(...directProps);
|
|
40769
|
-
} else {
|
|
40770
|
-
result.push(
|
|
40771
|
-
...this.navigatePropertyPath(directProps, pathSegments.slice(1))
|
|
40772
|
-
);
|
|
40773
|
-
}
|
|
40942
|
+
result.push(...this.getOwnerMatchedPathCandidates(directProps, pathSegments));
|
|
40774
40943
|
} else if (firstSegmentIsExactProperty) {
|
|
40775
|
-
|
|
40776
|
-
if (pathSegments.length === 1) {
|
|
40777
|
-
for (const prop of matchingProps) {
|
|
40778
|
-
result.push(...prop.children);
|
|
40779
|
-
}
|
|
40780
|
-
} else {
|
|
40781
|
-
for (const prop of matchingProps) {
|
|
40782
|
-
result.push(
|
|
40783
|
-
...this.navigatePropertyPath(prop.children, pathSegments.slice(1))
|
|
40784
|
-
);
|
|
40785
|
-
}
|
|
40786
|
-
}
|
|
40944
|
+
result.push(...this.getPropertyPathCandidates(directProps, pathSegments));
|
|
40787
40945
|
}
|
|
40788
40946
|
}
|
|
40947
|
+
for (const extra of extras) {
|
|
40948
|
+
const directProps = this.getDirectPropertyChildren(extra);
|
|
40949
|
+
const firstSegmentIsExactProperty = directProps.some(
|
|
40950
|
+
(prop) => prop.searchData.property === firstSeg
|
|
40951
|
+
);
|
|
40952
|
+
if (!firstSegmentIsExactProperty) continue;
|
|
40953
|
+
result.push(...this.getPropertyPathCandidates(directProps, pathSegments));
|
|
40954
|
+
}
|
|
40789
40955
|
return result;
|
|
40790
40956
|
}
|
|
40957
|
+
getOwnerMatchedPathCandidates(directProps, pathSegments) {
|
|
40958
|
+
if (pathSegments.length === 1) {
|
|
40959
|
+
return directProps;
|
|
40960
|
+
}
|
|
40961
|
+
return this.navigatePropertyPath(directProps, pathSegments.slice(1));
|
|
40962
|
+
}
|
|
40963
|
+
getPropertyPathCandidates(directProps, pathSegments) {
|
|
40964
|
+
const [firstSeg, ...restSegments] = pathSegments;
|
|
40965
|
+
const matchingProps = this.getPathMatchingProps(directProps, firstSeg);
|
|
40966
|
+
if (restSegments.length === 0) {
|
|
40967
|
+
return matchingProps.flatMap((prop) => prop.children);
|
|
40968
|
+
}
|
|
40969
|
+
return matchingProps.flatMap(
|
|
40970
|
+
(prop) => this.navigatePropertyPath(prop.children, restSegments)
|
|
40971
|
+
);
|
|
40972
|
+
}
|
|
40973
|
+
getDirectPropertyChildren(item) {
|
|
40974
|
+
return item.children.filter(
|
|
40975
|
+
(child) => child instanceof PropertyListItem
|
|
40976
|
+
);
|
|
40977
|
+
}
|
|
40791
40978
|
/**
|
|
40792
40979
|
* Уже введённый path-сегмент должен совпадать строго:
|
|
40793
40980
|
* `product.` заходит только в `product`, а не в `productAsyncTasks`
|
|
@@ -40796,6 +40983,19 @@ class SearchEngine {
|
|
|
40796
40983
|
getPathMatchingProps(props, segment) {
|
|
40797
40984
|
return props.filter((p) => p.searchData.property === segment);
|
|
40798
40985
|
}
|
|
40986
|
+
getOwnerVMName(item) {
|
|
40987
|
+
let parent = item.parentListItem;
|
|
40988
|
+
while (parent instanceof PropertyListItem) {
|
|
40989
|
+
parent = parent.parentListItem;
|
|
40990
|
+
}
|
|
40991
|
+
if (parent instanceof VMListItem) {
|
|
40992
|
+
return parent.displayName;
|
|
40993
|
+
}
|
|
40994
|
+
if (parent instanceof ExtraListItem) {
|
|
40995
|
+
return parent.displayName;
|
|
40996
|
+
}
|
|
40997
|
+
return "";
|
|
40998
|
+
}
|
|
40799
40999
|
/**
|
|
40800
41000
|
* Навигация вглубь по цепочке свойств.
|
|
40801
41001
|
* Возвращает свойства на нужной глубине.
|
|
@@ -40864,10 +41064,18 @@ class SearchEngine {
|
|
|
40864
41064
|
return this.getVMSearchItems(item);
|
|
40865
41065
|
}
|
|
40866
41066
|
if (item instanceof ExtraListItem) {
|
|
40867
|
-
return
|
|
41067
|
+
return this.getExtraSearchItems(item);
|
|
40868
41068
|
}
|
|
40869
41069
|
return [item];
|
|
40870
41070
|
}
|
|
41071
|
+
getExtraSearchItems(item) {
|
|
41072
|
+
const directProps = this.getDirectPropertyChildren(item);
|
|
41073
|
+
const matchesByProperty = directProps.some(
|
|
41074
|
+
(prop) => prop.searchData.property.includes(this.segments[0] ?? "")
|
|
41075
|
+
);
|
|
41076
|
+
if (!matchesByProperty) return [];
|
|
41077
|
+
return [item, ...this.getPropertySearchItems(directProps, this.segments)];
|
|
41078
|
+
}
|
|
40871
41079
|
getVMSearchItems(vmItem) {
|
|
40872
41080
|
const result = [];
|
|
40873
41081
|
if (!this.vmMatchesSearch(vmItem)) {
|
|
@@ -40983,14 +41191,14 @@ class SearchEngine {
|
|
|
40983
41191
|
propLevel++;
|
|
40984
41192
|
parent = parent.parentListItem;
|
|
40985
41193
|
}
|
|
40986
|
-
if (!(parent instanceof VMListItem))
|
|
41194
|
+
if (!(parent instanceof VMListItem) && !(parent instanceof ExtraListItem)) {
|
|
41195
|
+
return false;
|
|
41196
|
+
}
|
|
40987
41197
|
const firstSeg = segments[0];
|
|
40988
41198
|
const hasPathSyntax = this.endsWithDot || segments.length > 1;
|
|
40989
|
-
const parentDirectProps =
|
|
40990
|
-
(child) => child instanceof PropertyListItem
|
|
40991
|
-
);
|
|
41199
|
+
const parentDirectProps = this.getDirectPropertyChildren(parent);
|
|
40992
41200
|
const firstSegmentIsExactProperty = hasPathSyntax && parentDirectProps.some((prop) => prop.searchData.property === firstSeg);
|
|
40993
|
-
const vmMatchesByName = !firstSegmentIsExactProperty && (parent.searchData.name.includes(firstSeg) || parent.searchData.id.includes(firstSeg));
|
|
41201
|
+
const vmMatchesByName = parent instanceof VMListItem && !firstSegmentIsExactProperty && (parent.searchData.name.includes(firstSeg) || parent.searchData.id.includes(firstSeg));
|
|
40994
41202
|
const propSegments = vmMatchesByName ? segments.slice(1) : segments;
|
|
40995
41203
|
if (propSegments.length === 0) return false;
|
|
40996
41204
|
const targetLevel = propSegments.length - 1;
|
|
@@ -41032,14 +41240,14 @@ class SearchEngine {
|
|
|
41032
41240
|
propLevel++;
|
|
41033
41241
|
parent = parent.parentListItem;
|
|
41034
41242
|
}
|
|
41035
|
-
if (!(parent instanceof VMListItem))
|
|
41243
|
+
if (!(parent instanceof VMListItem) && !(parent instanceof ExtraListItem)) {
|
|
41244
|
+
return true;
|
|
41245
|
+
}
|
|
41036
41246
|
const firstSeg = segments[0];
|
|
41037
41247
|
const hasPathSyntax = this.endsWithDot || segments.length > 1;
|
|
41038
|
-
const parentDirectProps =
|
|
41039
|
-
(child) => child instanceof PropertyListItem
|
|
41040
|
-
);
|
|
41248
|
+
const parentDirectProps = this.getDirectPropertyChildren(parent);
|
|
41041
41249
|
const firstSegmentIsExactProperty = hasPathSyntax && parentDirectProps.some((prop) => prop.searchData.property === firstSeg);
|
|
41042
|
-
const vmMatchesByName = !firstSegmentIsExactProperty && (parent.searchData.name.includes(firstSeg) || parent.searchData.id.includes(firstSeg));
|
|
41250
|
+
const vmMatchesByName = parent instanceof VMListItem && !firstSegmentIsExactProperty && (parent.searchData.name.includes(firstSeg) || parent.searchData.id.includes(firstSeg));
|
|
41043
41251
|
const propSegments = vmMatchesByName ? segments.slice(1) : segments;
|
|
41044
41252
|
const depthToCheck = Math.min(propLevel, propSegments.length);
|
|
41045
41253
|
for (let i = 0; i < depthToCheck; i++) {
|
|
@@ -41069,11 +41277,15 @@ class SearchEngine {
|
|
|
41069
41277
|
return item.searchData.property === segment;
|
|
41070
41278
|
}
|
|
41071
41279
|
resetSearch = () => {
|
|
41280
|
+
this.clearSearchDebounce();
|
|
41072
41281
|
if (this.scrollToSearchMatchTimeout) {
|
|
41073
41282
|
clearTimeout(this.scrollToSearchMatchTimeout);
|
|
41074
41283
|
this.scrollToSearchMatchTimeout = null;
|
|
41075
41284
|
}
|
|
41076
41285
|
this.searchText = "";
|
|
41286
|
+
this.searchTextToSearch = "";
|
|
41287
|
+
this.selectedSuggestionIndex = 0;
|
|
41288
|
+
this.isSuggestionsDismissed = false;
|
|
41077
41289
|
this.focusInput();
|
|
41078
41290
|
};
|
|
41079
41291
|
focusInput = () => {
|