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/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 selected = selectedValue.hasOwnProperty("$" + options2[_i].value);
10896
- if (options2[_i].selected !== selected) {
10897
- options2[_i].selected = selected;
10895
+ var selected2 = selectedValue.hasOwnProperty("$" + options2[_i].value);
10896
+ if (options2[_i].selected !== selected2) {
10897
+ options2[_i].selected = selected2;
10898
10898
  }
10899
- if (selected && setDefaultSelected) {
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: 62,
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: 66,
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: 108,
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: 107,
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: 117,
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: 113,
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.searchText.toLowerCase().trim();
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.searchText.trim().endsWith(".");
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
- * Например: ввод "_pay" → suggestionSuffix = "load" (от "_payload")
40664
- */
40665
- get suggestionSuffix() {
40666
- if (!this.isActive) return "";
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
- if (nameLower.startsWith(completingSegment) && nameLower.length > completingSegment.length) {
40678
- return nameOriginal.slice(completingSegment.length);
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
- return "";
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.scheduleScrollToFirstSearchMatch();
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.searchText += this.suggestionSuffix;
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
- const props = [];
40747
- for (const vm of allVMs) {
40748
- props.push(
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 = vm.children.filter(
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
- if (pathSegments.length === 1) {
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
- const matchingProps = this.getPathMatchingProps(directProps, firstSeg);
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 item.isExpanded ? [item, ...item.children] : [item];
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)) return false;
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 = parent.children.filter(
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)) return true;
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 = parent.children.filter(
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 = () => {