mobx-view-model-devtools 0.0.24 → 0.0.26

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('.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>span{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:not(.isConnected_eObxX){filter:grayscale(1)}.iconToggleButton_R48wm{display:flex;align-items:center;gap:2px;position:relative;height:20px;outline:none}.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: 2px;--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-inactive-color: #8b8b8b;--vmd-control-border: #5b5468a6;--vmd-control-bg: transparent;--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-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}.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:1}.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}.vmContentControlPanelActions_lONbA{display:flex;flex-direction:row;align-items:center;gap:6px}.hiearchyToggleButton_0FTG-{display:flex}.vmContentInput_29GM1{display:flex;position:relative;flex:1}.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>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}.vmContentVirtualized_lia62{flex:1}.vmContentVirtualized_lia62>div>div{height:22px}.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%)}.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{background:var(--vmd-content-highlight-bg)}.property_sD8FG.expandable_np03F{cursor:pointer}.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}.propertyOperations_fT6Ez{position:absolute;right:12px;display:flex;align-items:center;opacity:0}.property_sD8FG:hover>.propertyOperations_fT6Ez{opacity:1}.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[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}')),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('.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>span{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:not(.isConnected_eObxX){filter:grayscale(1)}.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: 2px;--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-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}.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:1}.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:has(.vmContentInput_29GM1 input:focus)>.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)}.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}.vmContentVirtualized_lia62{flex:1}.vmContentVirtualized_lia62>div>div{height:22px}.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%)}.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{background:var(--vmd-content-highlight-bg)}.property_sD8FG.expandable_np03F{cursor:pointer}.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}.propertyOperations_fT6Ez{position:absolute;right:12px;display:flex;align-items:center;opacity:0}.property_sD8FG:hover>.propertyOperations_fT6Ez{opacity:1}.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[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}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
2
2
  function getDefaultExportFromCjs(x2) {
3
3
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
4
4
  }
@@ -31393,6 +31393,421 @@ class ViewModelImpl extends ViewModelBase {
31393
31393
  });
31394
31394
  }
31395
31395
  }
31396
+ class LinkedAbortController extends AbortController {
31397
+ constructor(...abortSignals) {
31398
+ super();
31399
+ this.link(...abortSignals);
31400
+ }
31401
+ link(...abortSignals) {
31402
+ abortSignals.forEach((abortSignal) => {
31403
+ abortSignal?.addEventListener("abort", () => {
31404
+ this.abort(abortSignal.reason);
31405
+ });
31406
+ });
31407
+ }
31408
+ }
31409
+ const callFunction = (fn, ...args) => {
31410
+ if (typeof fn === "function") {
31411
+ return fn(...args);
31412
+ }
31413
+ return fn;
31414
+ };
31415
+ var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
31416
+ var freeSelf = typeof self == "object" && self && self.Object === Object && self;
31417
+ var root$1 = freeGlobal || freeSelf || Function("return this")();
31418
+ var Symbol$1 = root$1.Symbol;
31419
+ var objectProto$1 = Object.prototype;
31420
+ var hasOwnProperty = objectProto$1.hasOwnProperty;
31421
+ var nativeObjectToString$1 = objectProto$1.toString;
31422
+ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
31423
+ function getRawTag(value) {
31424
+ var isOwn = hasOwnProperty.call(value, symToStringTag$1), tag = value[symToStringTag$1];
31425
+ try {
31426
+ value[symToStringTag$1] = void 0;
31427
+ var unmasked = true;
31428
+ } catch (e) {
31429
+ }
31430
+ var result = nativeObjectToString$1.call(value);
31431
+ if (unmasked) {
31432
+ if (isOwn) {
31433
+ value[symToStringTag$1] = tag;
31434
+ } else {
31435
+ delete value[symToStringTag$1];
31436
+ }
31437
+ }
31438
+ return result;
31439
+ }
31440
+ var objectProto = Object.prototype;
31441
+ var nativeObjectToString = objectProto.toString;
31442
+ function objectToString(value) {
31443
+ return nativeObjectToString.call(value);
31444
+ }
31445
+ var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
31446
+ var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
31447
+ function baseGetTag(value) {
31448
+ if (value == null) {
31449
+ return value === void 0 ? undefinedTag : nullTag;
31450
+ }
31451
+ return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
31452
+ }
31453
+ function isObjectLike(value) {
31454
+ return value != null && typeof value == "object";
31455
+ }
31456
+ var symbolTag = "[object Symbol]";
31457
+ function isSymbol(value) {
31458
+ return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
31459
+ }
31460
+ var reWhitespace = /\s/;
31461
+ function trimmedEndIndex(string2) {
31462
+ var index = string2.length;
31463
+ while (index-- && reWhitespace.test(string2.charAt(index))) {
31464
+ }
31465
+ return index;
31466
+ }
31467
+ var reTrimStart = /^\s+/;
31468
+ function baseTrim(string2) {
31469
+ return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
31470
+ }
31471
+ function isObject(value) {
31472
+ var type = typeof value;
31473
+ return value != null && (type == "object" || type == "function");
31474
+ }
31475
+ var NAN = 0 / 0;
31476
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
31477
+ var reIsBinary = /^0b[01]+$/i;
31478
+ var reIsOctal = /^0o[0-7]+$/i;
31479
+ var freeParseInt = parseInt;
31480
+ function toNumber(value) {
31481
+ if (typeof value == "number") {
31482
+ return value;
31483
+ }
31484
+ if (isSymbol(value)) {
31485
+ return NAN;
31486
+ }
31487
+ if (isObject(value)) {
31488
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
31489
+ value = isObject(other) ? other + "" : other;
31490
+ }
31491
+ if (typeof value != "string") {
31492
+ return value === 0 ? value : +value;
31493
+ }
31494
+ value = baseTrim(value);
31495
+ var isBinary = reIsBinary.test(value);
31496
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
31497
+ }
31498
+ var now = function() {
31499
+ return root$1.Date.now();
31500
+ };
31501
+ var FUNC_ERROR_TEXT$1 = "Expected a function";
31502
+ var nativeMax = Math.max, nativeMin = Math.min;
31503
+ function debounce(func, wait, options) {
31504
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
31505
+ if (typeof func != "function") {
31506
+ throw new TypeError(FUNC_ERROR_TEXT$1);
31507
+ }
31508
+ wait = toNumber(wait) || 0;
31509
+ if (isObject(options)) {
31510
+ leading = !!options.leading;
31511
+ maxing = "maxWait" in options;
31512
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
31513
+ trailing = "trailing" in options ? !!options.trailing : trailing;
31514
+ }
31515
+ function invokeFunc(time) {
31516
+ var args = lastArgs, thisArg = lastThis;
31517
+ lastArgs = lastThis = void 0;
31518
+ lastInvokeTime = time;
31519
+ result = func.apply(thisArg, args);
31520
+ return result;
31521
+ }
31522
+ function leadingEdge(time) {
31523
+ lastInvokeTime = time;
31524
+ timerId = setTimeout(timerExpired, wait);
31525
+ return leading ? invokeFunc(time) : result;
31526
+ }
31527
+ function remainingWait(time) {
31528
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
31529
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
31530
+ }
31531
+ function shouldInvoke(time) {
31532
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
31533
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
31534
+ }
31535
+ function timerExpired() {
31536
+ var time = now();
31537
+ if (shouldInvoke(time)) {
31538
+ return trailingEdge(time);
31539
+ }
31540
+ timerId = setTimeout(timerExpired, remainingWait(time));
31541
+ }
31542
+ function trailingEdge(time) {
31543
+ timerId = void 0;
31544
+ if (trailing && lastArgs) {
31545
+ return invokeFunc(time);
31546
+ }
31547
+ lastArgs = lastThis = void 0;
31548
+ return result;
31549
+ }
31550
+ function cancel() {
31551
+ if (timerId !== void 0) {
31552
+ clearTimeout(timerId);
31553
+ }
31554
+ lastInvokeTime = 0;
31555
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
31556
+ }
31557
+ function flush() {
31558
+ return timerId === void 0 ? result : trailingEdge(now());
31559
+ }
31560
+ function debounced() {
31561
+ var time = now(), isInvoking = shouldInvoke(time);
31562
+ lastArgs = arguments;
31563
+ lastThis = this;
31564
+ lastCallTime = time;
31565
+ if (isInvoking) {
31566
+ if (timerId === void 0) {
31567
+ return leadingEdge(lastCallTime);
31568
+ }
31569
+ if (maxing) {
31570
+ clearTimeout(timerId);
31571
+ timerId = setTimeout(timerExpired, wait);
31572
+ return invokeFunc(lastCallTime);
31573
+ }
31574
+ }
31575
+ if (timerId === void 0) {
31576
+ timerId = setTimeout(timerExpired, wait);
31577
+ }
31578
+ return result;
31579
+ }
31580
+ debounced.cancel = cancel;
31581
+ debounced.flush = flush;
31582
+ return debounced;
31583
+ }
31584
+ var FUNC_ERROR_TEXT = "Expected a function";
31585
+ function throttle(func, wait, options) {
31586
+ var leading = true, trailing = true;
31587
+ if (typeof func != "function") {
31588
+ throw new TypeError(FUNC_ERROR_TEXT);
31589
+ }
31590
+ if (isObject(options)) {
31591
+ leading = "leading" in options ? !!options.leading : leading;
31592
+ trailing = "trailing" in options ? !!options.trailing : trailing;
31593
+ }
31594
+ return debounce(func, wait, {
31595
+ "leading": leading,
31596
+ "maxWait": wait,
31597
+ "trailing": trailing
31598
+ });
31599
+ }
31600
+ let KeyboardHandler$1 = class KeyboardHandler {
31601
+ constructor(config) {
31602
+ this.config = config;
31603
+ this.abortController = new LinkedAbortController(config.abortSignal);
31604
+ this.activateStrategy = this.config.activateStrategy ?? {
31605
+ type: "immidiately"
31606
+ };
31607
+ this.isActivated = !!(this.activateStrategy.type === "immidiately");
31608
+ observable.ref(this, "isActivated");
31609
+ observable.ref(this, "localActions");
31610
+ computed.struct(this, "actions");
31611
+ action.bound(this, "handleKeyboardClick");
31612
+ action.bound(this, "setActions");
31613
+ makeObservable(this);
31614
+ if (this.activateStrategy.type === "element-focus") {
31615
+ const ref = this.activateStrategy.ref;
31616
+ let nodeAbortController = new LinkedAbortController();
31617
+ reaction(
31618
+ () => ref.current,
31619
+ (node) => {
31620
+ if (node) {
31621
+ if (globalThis.document?.activeElement === node) {
31622
+ this.activate();
31623
+ }
31624
+ node.addEventListener("focus", this.activate, {
31625
+ signal: nodeAbortController.signal
31626
+ });
31627
+ node.addEventListener("blur", this.deactivate, {
31628
+ signal: nodeAbortController.signal
31629
+ });
31630
+ } else {
31631
+ nodeAbortController.abort();
31632
+ nodeAbortController = new LinkedAbortController(
31633
+ this.abortController.signal
31634
+ );
31635
+ }
31636
+ },
31637
+ { fireImmediately: true, signal: this.abortController.signal }
31638
+ );
31639
+ }
31640
+ globalThis.addEventListener("keydown", this.handleKeyboardClick, {
31641
+ signal: this.abortController.signal
31642
+ });
31643
+ if (config.activateStrategy?.type === "keyclick") {
31644
+ globalThis.addEventListener("click", this.activate, {
31645
+ signal: this.abortController.signal
31646
+ });
31647
+ globalThis.addEventListener("mousemove", this.activate, {
31648
+ signal: this.abortController.signal
31649
+ });
31650
+ }
31651
+ }
31652
+ abortController;
31653
+ activateStrategy;
31654
+ localActions;
31655
+ /**
31656
+ * Is user using keyboard input
31657
+ */
31658
+ isActivated;
31659
+ /**
31660
+ * User actions
31661
+ */
31662
+ get actions() {
31663
+ const usingActions = this.localActions ?? this.config.actions;
31664
+ return callFunction(usingActions) ?? [];
31665
+ }
31666
+ setActions(actions) {
31667
+ this.localActions = actions;
31668
+ }
31669
+ activate = () => {
31670
+ if (this.isActivated) {
31671
+ return;
31672
+ }
31673
+ this.isActivated = true;
31674
+ this.config.onActivate?.();
31675
+ };
31676
+ deactivate = () => {
31677
+ if (!this.isActivated) {
31678
+ return;
31679
+ }
31680
+ this.isActivated = false;
31681
+ this.config.onDeactivate?.();
31682
+ };
31683
+ handleKeyboardClick(event) {
31684
+ this.config.onKeyClick?.(event);
31685
+ if (this.activateStrategy.type === "keyclick") {
31686
+ this.activate();
31687
+ }
31688
+ if (!this.isActivated) {
31689
+ return;
31690
+ }
31691
+ for (let i = 0; i < this.actions.length; i++) {
31692
+ const action2 = this.actions[i];
31693
+ const disabled2 = callFunction(action2.disabled);
31694
+ if (disabled2) {
31695
+ continue;
31696
+ }
31697
+ for (let j = 0; j < action2.shortcuts.length; j++) {
31698
+ const shortcut = action2.shortcuts[j];
31699
+ const keys = shortcut.split("+");
31700
+ if (keys.every((key) => this.checkKey(event, key))) {
31701
+ runInAction(() => {
31702
+ action2.action(event);
31703
+ });
31704
+ return;
31705
+ }
31706
+ }
31707
+ }
31708
+ }
31709
+ checkKey(event, key) {
31710
+ if (key === "Shift" && event.shiftKey) return true;
31711
+ if ((key === "Ctrl" || key === "Control") && event.ctrlKey) return true;
31712
+ if (key === "Alt" && event.altKey) return true;
31713
+ if ((key === "Windows" || key === "Meta" || key === "Command" || key === "⌘" || key === "Win") && event.metaKey)
31714
+ return true;
31715
+ return key === event.key || key === event.code;
31716
+ }
31717
+ destroy() {
31718
+ this.abortController.abort();
31719
+ }
31720
+ };
31721
+ class Storage {
31722
+ constructor(config) {
31723
+ this.config = config;
31724
+ this.abortController = new LinkedAbortController(config?.abortSignal);
31725
+ this.abortSignal = this.abortController.signal;
31726
+ makeObservable(this);
31727
+ }
31728
+ abortController;
31729
+ abortSignal;
31730
+ getStorage(params) {
31731
+ const type = params.type ?? this.config?.type;
31732
+ if (type === "session") {
31733
+ return globalThis.sessionStorage;
31734
+ }
31735
+ return globalThis.localStorage;
31736
+ }
31737
+ createKey(params) {
31738
+ if (this.config?.createKey) {
31739
+ return this.config.createKey(params);
31740
+ }
31741
+ const prefix = params.prefix ?? this.config?.prefix ?? "";
31742
+ const namespace = params.namespace ?? this.config?.namespace;
31743
+ const key = params.key;
31744
+ return `${prefix ? `${prefix}/` : ""}${namespace ? `${namespace}/` : ""}${key}`;
31745
+ }
31746
+ get(config) {
31747
+ const key = this.createKey(config);
31748
+ const storage = this.getStorage(config);
31749
+ const rawValue = storage.getItem(key);
31750
+ let value = null;
31751
+ if (typeof rawValue === "string") {
31752
+ try {
31753
+ const parsed = JSON.parse(rawValue);
31754
+ value = parsed;
31755
+ } catch {
31756
+ value = null;
31757
+ }
31758
+ } else {
31759
+ value = rawValue;
31760
+ }
31761
+ return value ?? config.fallback ?? null;
31762
+ }
31763
+ formatValue(value) {
31764
+ return JSON.stringify(value);
31765
+ }
31766
+ set(config) {
31767
+ const key = this.createKey(config);
31768
+ const storage = this.getStorage(config);
31769
+ storage.setItem(
31770
+ key,
31771
+ config.format ? config.format(config.value) : this.formatValue(config.value)
31772
+ );
31773
+ }
31774
+ syncProperty(context, property2, params) {
31775
+ const storageKey = params?.key ?? property2;
31776
+ const fallback = params && "fallback" in params ? params.fallback : context[property2];
31777
+ runInAction(() => {
31778
+ context[property2] = this.get({
31779
+ ...params,
31780
+ key: storageKey,
31781
+ fallback
31782
+ }) ?? context[property2];
31783
+ });
31784
+ const disposer = autorun(
31785
+ () => {
31786
+ const newValue = context[property2];
31787
+ this.set({
31788
+ ...params,
31789
+ key: storageKey,
31790
+ value: newValue
31791
+ });
31792
+ },
31793
+ {
31794
+ signal: this.abortSignal
31795
+ }
31796
+ );
31797
+ this.abortSignal.addEventListener("abort", disposer);
31798
+ return () => {
31799
+ this.abortSignal.removeEventListener("abort", disposer);
31800
+ disposer();
31801
+ };
31802
+ }
31803
+ /**
31804
+ * Reset model
31805
+ * Do not clean storages
31806
+ */
31807
+ destroy() {
31808
+ this.abortController.abort();
31809
+ }
31810
+ }
31396
31811
  var client = {};
31397
31812
  var hasRequiredClient;
31398
31813
  function requireClient() {
@@ -35298,6 +35713,11 @@ const css$5 = {
35298
35713
  };
35299
35714
  class VmDevtoolsButtonVM extends ViewModelBase {
35300
35715
  devtools = this.parentViewModel.devtools;
35716
+ storage = new Storage({
35717
+ namespace: "mobx-view-model-devtools",
35718
+ prefix: "devtools-button",
35719
+ type: "local"
35720
+ });
35301
35721
  ref = createRef({
35302
35722
  onSet: (node) => {
35303
35723
  const dragState = {
@@ -35308,6 +35728,12 @@ class VmDevtoolsButtonVM extends ViewModelBase {
35308
35728
  startX: 0,
35309
35729
  startY: 0
35310
35730
  };
35731
+ const savedLeft = this.storage.get({ key: "left" });
35732
+ const savedTop = this.storage.get({ key: "top" });
35733
+ if (savedLeft && savedTop) {
35734
+ node.style.left = `${savedLeft}`;
35735
+ node.style.top = `${savedTop}`;
35736
+ }
35311
35737
  const { width, height } = node.getBoundingClientRect();
35312
35738
  node.addEventListener("mousedown", (e) => {
35313
35739
  dragState.isDragging = true;
@@ -35351,6 +35777,8 @@ class VmDevtoolsButtonVM extends ViewModelBase {
35351
35777
  if (this.position !== this.devtools.position) {
35352
35778
  runInAction(() => {
35353
35779
  this.devtools.position = this.position;
35780
+ this.storage.set({ key: "left", value: node.style.left });
35781
+ this.storage.set({ key: "top", value: node.style.top });
35354
35782
  });
35355
35783
  }
35356
35784
  };
@@ -36391,7 +36819,7 @@ const IconToggleButton = ({
36391
36819
  columnNumber: 5
36392
36820
  }, void 0);
36393
36821
  };
36394
- const root$1 = "root_Xsw1F";
36822
+ const root = "root_Xsw1F";
36395
36823
  const treeItemHeader = "treeItemHeader_9gR6Q";
36396
36824
  const treeItemLabel = "treeItemLabel_eiMgP";
36397
36825
  const treeItemMetaText = "treeItemMetaText_cmfX0";
@@ -36399,7 +36827,7 @@ const treeItem = "treeItem_sRXPA";
36399
36827
  const vmTreeItem = "vmTreeItem_t-7jc";
36400
36828
  const extraTreeItem = "extraTreeItem_z3KA1";
36401
36829
  const css$3 = {
36402
- root: root$1,
36830
+ root,
36403
36831
  treeItemHeader,
36404
36832
  treeItemLabel,
36405
36833
  treeItemMetaText,
@@ -36416,8 +36844,8 @@ const vmContentHeaderLogo = "vmContentHeaderLogo_FRJDO";
36416
36844
  const vmContentHeaderTitle = "vmContentHeaderTitle_lYmde";
36417
36845
  const vmContentHeaderTitleText = "vmContentHeaderTitleText_RlIFH";
36418
36846
  const vmContentControlPanel = "vmContentControlPanel_CgUN9";
36419
- const vmContentControlPanelActions = "vmContentControlPanelActions_lONbA";
36420
36847
  const vmContentInput = "vmContentInput_29GM1";
36848
+ const vmContentControlPanelActions = "vmContentControlPanelActions_lONbA";
36421
36849
  const filled = "filled_6JZa0";
36422
36850
  const vmContentVirtualized = "vmContentVirtualized_lia62";
36423
36851
  const gradientBlur = "gradientBlur_-y-re";
@@ -36431,8 +36859,8 @@ const css$2 = {
36431
36859
  vmContentHeaderTitle,
36432
36860
  vmContentHeaderTitleText,
36433
36861
  vmContentControlPanel,
36434
- vmContentControlPanelActions,
36435
36862
  vmContentInput,
36863
+ vmContentControlPanelActions,
36436
36864
  filled,
36437
36865
  vmContentVirtualized,
36438
36866
  gradientBlur
@@ -37161,191 +37589,6 @@ const VmDevtoolsPopup = observer(() => {
37161
37589
  void 0
37162
37590
  );
37163
37591
  });
37164
- function isObject(value) {
37165
- var type = typeof value;
37166
- return value != null && (type == "object" || type == "function");
37167
- }
37168
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
37169
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
37170
- var root = freeGlobal || freeSelf || Function("return this")();
37171
- var now = function() {
37172
- return root.Date.now();
37173
- };
37174
- var reWhitespace = /\s/;
37175
- function trimmedEndIndex(string2) {
37176
- var index = string2.length;
37177
- while (index-- && reWhitespace.test(string2.charAt(index))) {
37178
- }
37179
- return index;
37180
- }
37181
- var reTrimStart = /^\s+/;
37182
- function baseTrim(string2) {
37183
- return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
37184
- }
37185
- var Symbol$1 = root.Symbol;
37186
- var objectProto$1 = Object.prototype;
37187
- var hasOwnProperty = objectProto$1.hasOwnProperty;
37188
- var nativeObjectToString$1 = objectProto$1.toString;
37189
- var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
37190
- function getRawTag(value) {
37191
- var isOwn = hasOwnProperty.call(value, symToStringTag$1), tag = value[symToStringTag$1];
37192
- try {
37193
- value[symToStringTag$1] = void 0;
37194
- var unmasked = true;
37195
- } catch (e) {
37196
- }
37197
- var result = nativeObjectToString$1.call(value);
37198
- if (unmasked) {
37199
- if (isOwn) {
37200
- value[symToStringTag$1] = tag;
37201
- } else {
37202
- delete value[symToStringTag$1];
37203
- }
37204
- }
37205
- return result;
37206
- }
37207
- var objectProto = Object.prototype;
37208
- var nativeObjectToString = objectProto.toString;
37209
- function objectToString(value) {
37210
- return nativeObjectToString.call(value);
37211
- }
37212
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
37213
- var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
37214
- function baseGetTag(value) {
37215
- if (value == null) {
37216
- return value === void 0 ? undefinedTag : nullTag;
37217
- }
37218
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
37219
- }
37220
- function isObjectLike(value) {
37221
- return value != null && typeof value == "object";
37222
- }
37223
- var symbolTag = "[object Symbol]";
37224
- function isSymbol(value) {
37225
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
37226
- }
37227
- var NAN = 0 / 0;
37228
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
37229
- var reIsBinary = /^0b[01]+$/i;
37230
- var reIsOctal = /^0o[0-7]+$/i;
37231
- var freeParseInt = parseInt;
37232
- function toNumber(value) {
37233
- if (typeof value == "number") {
37234
- return value;
37235
- }
37236
- if (isSymbol(value)) {
37237
- return NAN;
37238
- }
37239
- if (isObject(value)) {
37240
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
37241
- value = isObject(other) ? other + "" : other;
37242
- }
37243
- if (typeof value != "string") {
37244
- return value === 0 ? value : +value;
37245
- }
37246
- value = baseTrim(value);
37247
- var isBinary = reIsBinary.test(value);
37248
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
37249
- }
37250
- var FUNC_ERROR_TEXT$1 = "Expected a function";
37251
- var nativeMax = Math.max, nativeMin = Math.min;
37252
- function debounce(func, wait, options) {
37253
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
37254
- if (typeof func != "function") {
37255
- throw new TypeError(FUNC_ERROR_TEXT$1);
37256
- }
37257
- wait = toNumber(wait) || 0;
37258
- if (isObject(options)) {
37259
- leading = !!options.leading;
37260
- maxing = "maxWait" in options;
37261
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
37262
- trailing = "trailing" in options ? !!options.trailing : trailing;
37263
- }
37264
- function invokeFunc(time) {
37265
- var args = lastArgs, thisArg = lastThis;
37266
- lastArgs = lastThis = void 0;
37267
- lastInvokeTime = time;
37268
- result = func.apply(thisArg, args);
37269
- return result;
37270
- }
37271
- function leadingEdge(time) {
37272
- lastInvokeTime = time;
37273
- timerId = setTimeout(timerExpired, wait);
37274
- return leading ? invokeFunc(time) : result;
37275
- }
37276
- function remainingWait(time) {
37277
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
37278
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
37279
- }
37280
- function shouldInvoke(time) {
37281
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
37282
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
37283
- }
37284
- function timerExpired() {
37285
- var time = now();
37286
- if (shouldInvoke(time)) {
37287
- return trailingEdge(time);
37288
- }
37289
- timerId = setTimeout(timerExpired, remainingWait(time));
37290
- }
37291
- function trailingEdge(time) {
37292
- timerId = void 0;
37293
- if (trailing && lastArgs) {
37294
- return invokeFunc(time);
37295
- }
37296
- lastArgs = lastThis = void 0;
37297
- return result;
37298
- }
37299
- function cancel() {
37300
- if (timerId !== void 0) {
37301
- clearTimeout(timerId);
37302
- }
37303
- lastInvokeTime = 0;
37304
- lastArgs = lastCallTime = lastThis = timerId = void 0;
37305
- }
37306
- function flush() {
37307
- return timerId === void 0 ? result : trailingEdge(now());
37308
- }
37309
- function debounced() {
37310
- var time = now(), isInvoking = shouldInvoke(time);
37311
- lastArgs = arguments;
37312
- lastThis = this;
37313
- lastCallTime = time;
37314
- if (isInvoking) {
37315
- if (timerId === void 0) {
37316
- return leadingEdge(lastCallTime);
37317
- }
37318
- if (maxing) {
37319
- clearTimeout(timerId);
37320
- timerId = setTimeout(timerExpired, wait);
37321
- return invokeFunc(lastCallTime);
37322
- }
37323
- }
37324
- if (timerId === void 0) {
37325
- timerId = setTimeout(timerExpired, wait);
37326
- }
37327
- return result;
37328
- }
37329
- debounced.cancel = cancel;
37330
- debounced.flush = flush;
37331
- return debounced;
37332
- }
37333
- var FUNC_ERROR_TEXT = "Expected a function";
37334
- function throttle(func, wait, options) {
37335
- var leading = true, trailing = true;
37336
- if (typeof func != "function") {
37337
- throw new TypeError(FUNC_ERROR_TEXT);
37338
- }
37339
- if (isObject(options)) {
37340
- leading = "leading" in options ? !!options.leading : leading;
37341
- trailing = "trailing" in options ? !!options.trailing : trailing;
37342
- }
37343
- return debounce(func, wait, {
37344
- "leading": leading,
37345
- "maxWait": wait,
37346
- "trailing": trailing
37347
- });
37348
- }
37349
37592
  var __assign = function() {
37350
37593
  __assign = Object.assign || function __assign2(t) {
37351
37594
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -38285,146 +38528,6 @@ const DevtoolsClient = withViewModel(DevtoolsClientVM, ({ model }) => {
38285
38528
  columnNumber: 5
38286
38529
  }, void 0);
38287
38530
  });
38288
- class LinkedAbortController extends AbortController {
38289
- constructor(...abortSignals) {
38290
- super();
38291
- this.link(...abortSignals);
38292
- }
38293
- link(...abortSignals) {
38294
- abortSignals.forEach((abortSignal) => {
38295
- abortSignal?.addEventListener("abort", () => {
38296
- this.abort(abortSignal.reason);
38297
- });
38298
- });
38299
- }
38300
- }
38301
- const callFunction = (fn, ...args) => {
38302
- if (typeof fn === "function") {
38303
- return fn(...args);
38304
- }
38305
- return fn;
38306
- };
38307
- let KeyboardHandler$1 = class KeyboardHandler {
38308
- constructor(config) {
38309
- this.config = config;
38310
- this.abortController = new LinkedAbortController(config.abortSignal);
38311
- this.activateStrategy = this.config.activateStrategy ?? {
38312
- type: "immidiately"
38313
- };
38314
- this.isActivated = !!(this.activateStrategy.type === "immidiately");
38315
- observable.ref(this, "isActivated");
38316
- observable.ref(this, "localActions");
38317
- computed.struct(this, "actions");
38318
- action.bound(this, "handleKeyboardClick");
38319
- action.bound(this, "setActions");
38320
- makeObservable(this);
38321
- if (this.activateStrategy.type === "element-focus") {
38322
- const ref = this.activateStrategy.ref;
38323
- let nodeAbortController = new LinkedAbortController();
38324
- reaction(
38325
- () => ref.current,
38326
- (node) => {
38327
- if (node) {
38328
- if (globalThis.document?.activeElement === node) {
38329
- this.activate();
38330
- }
38331
- node.addEventListener("focus", this.activate, {
38332
- signal: nodeAbortController.signal
38333
- });
38334
- node.addEventListener("blur", this.deactivate, {
38335
- signal: nodeAbortController.signal
38336
- });
38337
- } else {
38338
- nodeAbortController.abort();
38339
- nodeAbortController = new LinkedAbortController(
38340
- this.abortController.signal
38341
- );
38342
- }
38343
- },
38344
- { fireImmediately: true, signal: this.abortController.signal }
38345
- );
38346
- }
38347
- globalThis.addEventListener("keydown", this.handleKeyboardClick, {
38348
- signal: this.abortController.signal
38349
- });
38350
- if (config.activateStrategy?.type === "keyclick") {
38351
- globalThis.addEventListener("click", this.activate, {
38352
- signal: this.abortController.signal
38353
- });
38354
- globalThis.addEventListener("mousemove", this.activate, {
38355
- signal: this.abortController.signal
38356
- });
38357
- }
38358
- }
38359
- abortController;
38360
- activateStrategy;
38361
- localActions;
38362
- /**
38363
- * Is user using keyboard input
38364
- */
38365
- isActivated;
38366
- /**
38367
- * User actions
38368
- */
38369
- get actions() {
38370
- const usingActions = this.localActions ?? this.config.actions;
38371
- return callFunction(usingActions) ?? [];
38372
- }
38373
- setActions(actions) {
38374
- this.localActions = actions;
38375
- }
38376
- activate = () => {
38377
- if (this.isActivated) {
38378
- return;
38379
- }
38380
- this.isActivated = true;
38381
- this.config.onActivate?.();
38382
- };
38383
- deactivate = () => {
38384
- if (!this.isActivated) {
38385
- return;
38386
- }
38387
- this.isActivated = false;
38388
- this.config.onDeactivate?.();
38389
- };
38390
- handleKeyboardClick(event) {
38391
- this.config.onKeyClick?.(event);
38392
- if (this.activateStrategy.type === "keyclick") {
38393
- this.activate();
38394
- }
38395
- if (!this.isActivated) {
38396
- return;
38397
- }
38398
- for (let i = 0; i < this.actions.length; i++) {
38399
- const action2 = this.actions[i];
38400
- const disabled2 = callFunction(action2.disabled);
38401
- if (disabled2) {
38402
- continue;
38403
- }
38404
- for (let j = 0; j < action2.shortcuts.length; j++) {
38405
- const shortcut = action2.shortcuts[j];
38406
- const keys = shortcut.split("+");
38407
- if (keys.every((key) => this.checkKey(event, key))) {
38408
- runInAction(() => {
38409
- action2.action(event);
38410
- });
38411
- return;
38412
- }
38413
- }
38414
- }
38415
- }
38416
- checkKey(event, key) {
38417
- if (key === "Shift" && event.shiftKey) return true;
38418
- if ((key === "Ctrl" || key === "Control") && event.ctrlKey) return true;
38419
- if (key === "Alt" && event.altKey) return true;
38420
- if ((key === "Windows" || key === "Meta" || key === "Command" || key === "⌘" || key === "Win") && event.metaKey)
38421
- return true;
38422
- return key === event.key || key === event.code;
38423
- }
38424
- destroy() {
38425
- this.abortController.abort();
38426
- }
38427
- };
38428
38531
  class KeyboardHandler2 extends KeyboardHandler$1 {
38429
38532
  constructor(devtools) {
38430
38533
  super({
@@ -38612,14 +38715,14 @@ class SearchEngine {
38612
38715
  class ViewModelDevtools {
38613
38716
  constructor(config) {
38614
38717
  this.config = config;
38615
- this.isPopupOpened = !!this.config.defaultIsOpened;
38718
+ this.isPopupOpened = this.storage.get({ key: "isPopupOpened" }) ?? !!this.config.defaultIsOpened;
38616
38719
  this.displayType = "popup";
38617
- this.position = this.config.position ?? "top-right";
38720
+ this.position = this.storage.get({ key: "position" }) ?? this.config.position ?? "top-right";
38618
38721
  this.vmStore = new ViewModelStoreImpl();
38619
38722
  this.setExtras(this.config.extras);
38620
38723
  this.setStore(this.config.viewModels);
38621
- this.presentationMode = "tree";
38622
- this.sortPropertiesBy = "none";
38724
+ this.presentationMode = this.storage.get({ key: "presentationMode" }) ?? "tree";
38725
+ this.sortPropertiesBy = this.storage.get({ key: "sortPropertiesBy" }) ?? "none";
38623
38726
  this.expandedVmItemsPaths = observable.set();
38624
38727
  this.logoUrl = "data:image/png;base64,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";
38625
38728
  this.scrollContentRef = createRef();
@@ -38663,6 +38766,10 @@ class ViewModelDevtools {
38663
38766
  sortPropertiesBy;
38664
38767
  position;
38665
38768
  scrollListRef;
38769
+ storage = new Storage({
38770
+ namespace: "mobx-view-model-devtools",
38771
+ type: "session"
38772
+ });
38666
38773
  anyCache = observable.map();
38667
38774
  autoscrollTimeout;
38668
38775
  get allVms() {
@@ -38789,6 +38896,10 @@ class ViewModelDevtools {
38789
38896
  }, 200);
38790
38897
  }
38791
38898
  );
38899
+ this.storage.syncProperty(this, "isPopupOpened");
38900
+ this.storage.syncProperty(this, "sortPropertiesBy");
38901
+ this.storage.syncProperty(this, "presentationMode");
38902
+ this.storage.syncProperty(this, "position");
38792
38903
  }
38793
38904
  isInitialized = false;
38794
38905
  render() {