mobx-view-model-devtools 0.0.23 → 0.0.25

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}.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
  };
@@ -36273,7 +36701,16 @@ class ExtraListItem extends ListItem {
36273
36701
  return isFittedByName;
36274
36702
  }
36275
36703
  get propertyListItems() {
36276
- return Object.keys(this.data || {}).map((property2, order) => {
36704
+ let keys = Object.keys(this.data || {});
36705
+ if (this.devtools.sortPropertiesBy !== "none") {
36706
+ keys = keys.sort((a2, b2) => {
36707
+ if (this.devtools.sortPropertiesBy === "asc") {
36708
+ return a2.localeCompare(b2);
36709
+ }
36710
+ return b2.localeCompare(a2);
36711
+ });
36712
+ }
36713
+ return keys.map((property2, order) => {
36277
36714
  return PropertyListItem.create(
36278
36715
  this.devtools,
36279
36716
  property2,
@@ -36382,7 +36819,7 @@ const IconToggleButton = ({
36382
36819
  columnNumber: 5
36383
36820
  }, void 0);
36384
36821
  };
36385
- const root$1 = "root_Xsw1F";
36822
+ const root = "root_Xsw1F";
36386
36823
  const treeItemHeader = "treeItemHeader_9gR6Q";
36387
36824
  const treeItemLabel = "treeItemLabel_eiMgP";
36388
36825
  const treeItemMetaText = "treeItemMetaText_cmfX0";
@@ -36390,7 +36827,7 @@ const treeItem = "treeItem_sRXPA";
36390
36827
  const vmTreeItem = "vmTreeItem_t-7jc";
36391
36828
  const extraTreeItem = "extraTreeItem_z3KA1";
36392
36829
  const css$3 = {
36393
- root: root$1,
36830
+ root,
36394
36831
  treeItemHeader,
36395
36832
  treeItemLabel,
36396
36833
  treeItemMetaText,
@@ -36407,8 +36844,8 @@ const vmContentHeaderLogo = "vmContentHeaderLogo_FRJDO";
36407
36844
  const vmContentHeaderTitle = "vmContentHeaderTitle_lYmde";
36408
36845
  const vmContentHeaderTitleText = "vmContentHeaderTitleText_RlIFH";
36409
36846
  const vmContentControlPanel = "vmContentControlPanel_CgUN9";
36410
- const vmContentControlPanelActions = "vmContentControlPanelActions_lONbA";
36411
36847
  const vmContentInput = "vmContentInput_29GM1";
36848
+ const vmContentControlPanelActions = "vmContentControlPanelActions_lONbA";
36412
36849
  const filled = "filled_6JZa0";
36413
36850
  const vmContentVirtualized = "vmContentVirtualized_lia62";
36414
36851
  const gradientBlur = "gradientBlur_-y-re";
@@ -36422,8 +36859,8 @@ const css$2 = {
36422
36859
  vmContentHeaderTitle,
36423
36860
  vmContentHeaderTitleText,
36424
36861
  vmContentControlPanel,
36425
- vmContentControlPanelActions,
36426
36862
  vmContentInput,
36863
+ vmContentControlPanelActions,
36427
36864
  filled,
36428
36865
  vmContentVirtualized,
36429
36866
  gradientBlur
@@ -37152,191 +37589,6 @@ const VmDevtoolsPopup = observer(() => {
37152
37589
  void 0
37153
37590
  );
37154
37591
  });
37155
- function isObject(value) {
37156
- var type = typeof value;
37157
- return value != null && (type == "object" || type == "function");
37158
- }
37159
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
37160
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
37161
- var root = freeGlobal || freeSelf || Function("return this")();
37162
- var now = function() {
37163
- return root.Date.now();
37164
- };
37165
- var reWhitespace = /\s/;
37166
- function trimmedEndIndex(string2) {
37167
- var index = string2.length;
37168
- while (index-- && reWhitespace.test(string2.charAt(index))) {
37169
- }
37170
- return index;
37171
- }
37172
- var reTrimStart = /^\s+/;
37173
- function baseTrim(string2) {
37174
- return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
37175
- }
37176
- var Symbol$1 = root.Symbol;
37177
- var objectProto$1 = Object.prototype;
37178
- var hasOwnProperty = objectProto$1.hasOwnProperty;
37179
- var nativeObjectToString$1 = objectProto$1.toString;
37180
- var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
37181
- function getRawTag(value) {
37182
- var isOwn = hasOwnProperty.call(value, symToStringTag$1), tag = value[symToStringTag$1];
37183
- try {
37184
- value[symToStringTag$1] = void 0;
37185
- var unmasked = true;
37186
- } catch (e) {
37187
- }
37188
- var result = nativeObjectToString$1.call(value);
37189
- if (unmasked) {
37190
- if (isOwn) {
37191
- value[symToStringTag$1] = tag;
37192
- } else {
37193
- delete value[symToStringTag$1];
37194
- }
37195
- }
37196
- return result;
37197
- }
37198
- var objectProto = Object.prototype;
37199
- var nativeObjectToString = objectProto.toString;
37200
- function objectToString(value) {
37201
- return nativeObjectToString.call(value);
37202
- }
37203
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
37204
- var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
37205
- function baseGetTag(value) {
37206
- if (value == null) {
37207
- return value === void 0 ? undefinedTag : nullTag;
37208
- }
37209
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
37210
- }
37211
- function isObjectLike(value) {
37212
- return value != null && typeof value == "object";
37213
- }
37214
- var symbolTag = "[object Symbol]";
37215
- function isSymbol(value) {
37216
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
37217
- }
37218
- var NAN = 0 / 0;
37219
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
37220
- var reIsBinary = /^0b[01]+$/i;
37221
- var reIsOctal = /^0o[0-7]+$/i;
37222
- var freeParseInt = parseInt;
37223
- function toNumber(value) {
37224
- if (typeof value == "number") {
37225
- return value;
37226
- }
37227
- if (isSymbol(value)) {
37228
- return NAN;
37229
- }
37230
- if (isObject(value)) {
37231
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
37232
- value = isObject(other) ? other + "" : other;
37233
- }
37234
- if (typeof value != "string") {
37235
- return value === 0 ? value : +value;
37236
- }
37237
- value = baseTrim(value);
37238
- var isBinary = reIsBinary.test(value);
37239
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
37240
- }
37241
- var FUNC_ERROR_TEXT$1 = "Expected a function";
37242
- var nativeMax = Math.max, nativeMin = Math.min;
37243
- function debounce(func, wait, options) {
37244
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
37245
- if (typeof func != "function") {
37246
- throw new TypeError(FUNC_ERROR_TEXT$1);
37247
- }
37248
- wait = toNumber(wait) || 0;
37249
- if (isObject(options)) {
37250
- leading = !!options.leading;
37251
- maxing = "maxWait" in options;
37252
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
37253
- trailing = "trailing" in options ? !!options.trailing : trailing;
37254
- }
37255
- function invokeFunc(time) {
37256
- var args = lastArgs, thisArg = lastThis;
37257
- lastArgs = lastThis = void 0;
37258
- lastInvokeTime = time;
37259
- result = func.apply(thisArg, args);
37260
- return result;
37261
- }
37262
- function leadingEdge(time) {
37263
- lastInvokeTime = time;
37264
- timerId = setTimeout(timerExpired, wait);
37265
- return leading ? invokeFunc(time) : result;
37266
- }
37267
- function remainingWait(time) {
37268
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
37269
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
37270
- }
37271
- function shouldInvoke(time) {
37272
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
37273
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
37274
- }
37275
- function timerExpired() {
37276
- var time = now();
37277
- if (shouldInvoke(time)) {
37278
- return trailingEdge(time);
37279
- }
37280
- timerId = setTimeout(timerExpired, remainingWait(time));
37281
- }
37282
- function trailingEdge(time) {
37283
- timerId = void 0;
37284
- if (trailing && lastArgs) {
37285
- return invokeFunc(time);
37286
- }
37287
- lastArgs = lastThis = void 0;
37288
- return result;
37289
- }
37290
- function cancel() {
37291
- if (timerId !== void 0) {
37292
- clearTimeout(timerId);
37293
- }
37294
- lastInvokeTime = 0;
37295
- lastArgs = lastCallTime = lastThis = timerId = void 0;
37296
- }
37297
- function flush() {
37298
- return timerId === void 0 ? result : trailingEdge(now());
37299
- }
37300
- function debounced() {
37301
- var time = now(), isInvoking = shouldInvoke(time);
37302
- lastArgs = arguments;
37303
- lastThis = this;
37304
- lastCallTime = time;
37305
- if (isInvoking) {
37306
- if (timerId === void 0) {
37307
- return leadingEdge(lastCallTime);
37308
- }
37309
- if (maxing) {
37310
- clearTimeout(timerId);
37311
- timerId = setTimeout(timerExpired, wait);
37312
- return invokeFunc(lastCallTime);
37313
- }
37314
- }
37315
- if (timerId === void 0) {
37316
- timerId = setTimeout(timerExpired, wait);
37317
- }
37318
- return result;
37319
- }
37320
- debounced.cancel = cancel;
37321
- debounced.flush = flush;
37322
- return debounced;
37323
- }
37324
- var FUNC_ERROR_TEXT = "Expected a function";
37325
- function throttle(func, wait, options) {
37326
- var leading = true, trailing = true;
37327
- if (typeof func != "function") {
37328
- throw new TypeError(FUNC_ERROR_TEXT);
37329
- }
37330
- if (isObject(options)) {
37331
- leading = "leading" in options ? !!options.leading : leading;
37332
- trailing = "trailing" in options ? !!options.trailing : trailing;
37333
- }
37334
- return debounce(func, wait, {
37335
- "leading": leading,
37336
- "maxWait": wait,
37337
- "trailing": trailing
37338
- });
37339
- }
37340
37592
  var __assign = function() {
37341
37593
  __assign = Object.assign || function __assign2(t) {
37342
37594
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -38276,146 +38528,6 @@ const DevtoolsClient = withViewModel(DevtoolsClientVM, ({ model }) => {
38276
38528
  columnNumber: 5
38277
38529
  }, void 0);
38278
38530
  });
38279
- class LinkedAbortController extends AbortController {
38280
- constructor(...abortSignals) {
38281
- super();
38282
- this.link(...abortSignals);
38283
- }
38284
- link(...abortSignals) {
38285
- abortSignals.forEach((abortSignal) => {
38286
- abortSignal?.addEventListener("abort", () => {
38287
- this.abort(abortSignal.reason);
38288
- });
38289
- });
38290
- }
38291
- }
38292
- const callFunction = (fn, ...args) => {
38293
- if (typeof fn === "function") {
38294
- return fn(...args);
38295
- }
38296
- return fn;
38297
- };
38298
- let KeyboardHandler$1 = class KeyboardHandler {
38299
- constructor(config) {
38300
- this.config = config;
38301
- this.abortController = new LinkedAbortController(config.abortSignal);
38302
- this.activateStrategy = this.config.activateStrategy ?? {
38303
- type: "immidiately"
38304
- };
38305
- this.isActivated = !!(this.activateStrategy.type === "immidiately");
38306
- observable.ref(this, "isActivated");
38307
- observable.ref(this, "localActions");
38308
- computed.struct(this, "actions");
38309
- action.bound(this, "handleKeyboardClick");
38310
- action.bound(this, "setActions");
38311
- makeObservable(this);
38312
- if (this.activateStrategy.type === "element-focus") {
38313
- const ref = this.activateStrategy.ref;
38314
- let nodeAbortController = new LinkedAbortController();
38315
- reaction(
38316
- () => ref.current,
38317
- (node) => {
38318
- if (node) {
38319
- if (globalThis.document?.activeElement === node) {
38320
- this.activate();
38321
- }
38322
- node.addEventListener("focus", this.activate, {
38323
- signal: nodeAbortController.signal
38324
- });
38325
- node.addEventListener("blur", this.deactivate, {
38326
- signal: nodeAbortController.signal
38327
- });
38328
- } else {
38329
- nodeAbortController.abort();
38330
- nodeAbortController = new LinkedAbortController(
38331
- this.abortController.signal
38332
- );
38333
- }
38334
- },
38335
- { fireImmediately: true, signal: this.abortController.signal }
38336
- );
38337
- }
38338
- globalThis.addEventListener("keydown", this.handleKeyboardClick, {
38339
- signal: this.abortController.signal
38340
- });
38341
- if (config.activateStrategy?.type === "keyclick") {
38342
- globalThis.addEventListener("click", this.activate, {
38343
- signal: this.abortController.signal
38344
- });
38345
- globalThis.addEventListener("mousemove", this.activate, {
38346
- signal: this.abortController.signal
38347
- });
38348
- }
38349
- }
38350
- abortController;
38351
- activateStrategy;
38352
- localActions;
38353
- /**
38354
- * Is user using keyboard input
38355
- */
38356
- isActivated;
38357
- /**
38358
- * User actions
38359
- */
38360
- get actions() {
38361
- const usingActions = this.localActions ?? this.config.actions;
38362
- return callFunction(usingActions) ?? [];
38363
- }
38364
- setActions(actions) {
38365
- this.localActions = actions;
38366
- }
38367
- activate = () => {
38368
- if (this.isActivated) {
38369
- return;
38370
- }
38371
- this.isActivated = true;
38372
- this.config.onActivate?.();
38373
- };
38374
- deactivate = () => {
38375
- if (!this.isActivated) {
38376
- return;
38377
- }
38378
- this.isActivated = false;
38379
- this.config.onDeactivate?.();
38380
- };
38381
- handleKeyboardClick(event) {
38382
- this.config.onKeyClick?.(event);
38383
- if (this.activateStrategy.type === "keyclick") {
38384
- this.activate();
38385
- }
38386
- if (!this.isActivated) {
38387
- return;
38388
- }
38389
- for (let i = 0; i < this.actions.length; i++) {
38390
- const action2 = this.actions[i];
38391
- const disabled2 = callFunction(action2.disabled);
38392
- if (disabled2) {
38393
- continue;
38394
- }
38395
- for (let j = 0; j < action2.shortcuts.length; j++) {
38396
- const shortcut = action2.shortcuts[j];
38397
- const keys = shortcut.split("+");
38398
- if (keys.every((key) => this.checkKey(event, key))) {
38399
- runInAction(() => {
38400
- action2.action(event);
38401
- });
38402
- return;
38403
- }
38404
- }
38405
- }
38406
- }
38407
- checkKey(event, key) {
38408
- if (key === "Shift" && event.shiftKey) return true;
38409
- if ((key === "Ctrl" || key === "Control") && event.ctrlKey) return true;
38410
- if (key === "Alt" && event.altKey) return true;
38411
- if ((key === "Windows" || key === "Meta" || key === "Command" || key === "⌘" || key === "Win") && event.metaKey)
38412
- return true;
38413
- return key === event.key || key === event.code;
38414
- }
38415
- destroy() {
38416
- this.abortController.abort();
38417
- }
38418
- };
38419
38531
  class KeyboardHandler2 extends KeyboardHandler$1 {
38420
38532
  constructor(devtools) {
38421
38533
  super({
@@ -38603,14 +38715,14 @@ class SearchEngine {
38603
38715
  class ViewModelDevtools {
38604
38716
  constructor(config) {
38605
38717
  this.config = config;
38606
- this.isPopupOpened = !!this.config.defaultIsOpened;
38718
+ this.isPopupOpened = this.storage.get({ key: "isPopupOpened" }) ?? !!this.config.defaultIsOpened;
38607
38719
  this.displayType = "popup";
38608
- this.position = this.config.position ?? "top-right";
38720
+ this.position = this.storage.get({ key: "position" }) ?? this.config.position ?? "top-right";
38609
38721
  this.vmStore = new ViewModelStoreImpl();
38610
38722
  this.setExtras(this.config.extras);
38611
38723
  this.setStore(this.config.viewModels);
38612
- this.presentationMode = "tree";
38613
- this.sortPropertiesBy = "none";
38724
+ this.presentationMode = this.storage.get({ key: "presentationMode" }) ?? "tree";
38725
+ this.sortPropertiesBy = this.storage.get({ key: "sortPropertiesBy" }) ?? "none";
38614
38726
  this.expandedVmItemsPaths = observable.set();
38615
38727
  this.logoUrl = "data:image/png;base64,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";
38616
38728
  this.scrollContentRef = createRef();
@@ -38654,6 +38766,10 @@ class ViewModelDevtools {
38654
38766
  sortPropertiesBy;
38655
38767
  position;
38656
38768
  scrollListRef;
38769
+ storage = new Storage({
38770
+ namespace: "mobx-view-model-devtools",
38771
+ type: "local"
38772
+ });
38657
38773
  anyCache = observable.map();
38658
38774
  autoscrollTimeout;
38659
38775
  get allVms() {
@@ -38780,6 +38896,10 @@ class ViewModelDevtools {
38780
38896
  }, 200);
38781
38897
  }
38782
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");
38783
38903
  }
38784
38904
  isInitialized = false;
38785
38905
  render() {