mobx-view-model-devtools 0.0.14 → 0.0.15

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('/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--font-weight-semibold:600;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static_g5P-G{position:static}.container_ueeVi{width:100%}@media(min-width:40rem){.container_ueeVi{max-width:40rem}}@media(min-width:48rem){.container_ueeVi{max-width:48rem}}@media(min-width:64rem){.container_ueeVi{max-width:64rem}}@media(min-width:80rem){.container_ueeVi{max-width:80rem}}@media(min-width:96rem){.container_ueeVi{max-width:96rem}}.blur_9rZ6A{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.rootContainer_Z8gey *{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.vmButton_Xr1Q6{z-index:99;width:calc(var(--spacing)*9);height:calc(var(--spacing)*9);cursor:pointer;border-radius:var(--radius-lg);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));position:fixed}.vmButton_Xr1Q6[data-position=top-right],.vmButton_Xr1Q6[data-position=undefined]{top:calc(var(--spacing)*3);right:calc(var(--spacing)*3)}:is(.vmButton_Xr1Q6[data-position=top-right],.vmButton_Xr1Q6[data-position=undefined]).opened_gewqL{top:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=top-left]{top:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=top-left].opened_gewqL{top:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=bottom-left]{bottom:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=bottom-left].opened_gewqL{bottom:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=bottom-right]{right:calc(var(--spacing)*3);bottom:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=bottom-right].opened_gewqL{bottom:calc(var(--spacing)*-10)}.vmButton_Xr1Q6>img{pointer-events:none;inset:calc(var(--spacing)*0);border-radius:var(--radius-lg);position:absolute}.vmButton_Xr1Q6>div{pointer-events:none;inset:calc(var(--spacing)*0);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:2px;border-color:#00000057;position:absolute}.vmButton_Xr1Q6>span{pointer-events:none;top:calc(var(--spacing)*-1);left:calc(var(--spacing)*-1);border-radius:var(--radius-lg);padding:calc(var(--spacing)*.5);--tw-leading:1;--tw-font-weight:var(--font-weight-semibold);font-size:12px;line-height:1;font-weight:var(--font-weight-semibold);color:#2aff0a;background-color:#005c26cf;display:flex;position:absolute}.vmButton_Xr1Q6.opened_gewqL{pointer-events:none}.vmButton_Xr1Q6:not(.isConnected_tjs3F){--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.vmPopup_Q4l4j{z-index:99;border-radius:var(--radius-lg);width:520px;height:calc(100vh - 24px);position:fixed}.vmPopup_Q4l4j>header button{width:28px;padding:6px}.vmPopup_Q4l4j[data-position=top-right],.vmPopup_Q4l4j[data-position=undefined]{top:calc(var(--spacing)*3);right:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=top-left]{top:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=bottom-left]{bottom:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=bottom-right]{right:calc(var(--spacing)*3);bottom:calc(var(--spacing)*3)}.vmContent_VAE7p{color:#ccc;background-color:#1e1e1e;flex-direction:column;display:flex;overflow:auto}.vmContent_VAE7p>header{height:calc(var(--spacing)*8);padding-left:calc(var(--spacing)*2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);justify-content:space-between;align-items:center;display:flex}.vmContentTree_BB36O{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*2);scrollbar-width:thin;scrollbar-color:#81818170 #1e1e1e;flex-direction:column;display:flex;overflow:auto}.vmContentTree_BB36O:hover{scrollbar-color:#818181 #1e1e1e}.line_Xgaua.vmTreeItem_t-7jc{padding-left:calc(0px + (var(--level)*20px));z-index:1;position:sticky;top:-8px}.line_Xgaua.vmTreeItem_t-7jc>header{z-index:1;cursor:pointer;align-items:center;gap:calc(var(--spacing)*1);text-overflow:ellipsis;white-space:nowrap;background-color:#1e1e1e;margin-block:auto;display:flex;overflow:hidden}.line_Xgaua.vmTreeItem_t-7jc>header>label{background:#0f6013;border-radius:4px;padding:0 4px}.line_Xgaua.vmTreeItem_t-7jc>header>span{color:#5ab65e;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.line_Xgaua.vmTreeItem_t-7jc.extrasItem_MI9Fa>header>label{background:#6b6902}.line_Xgaua.vmTreeItem_t-7jc:not([data-fitted=true])>header{opacity:.6}.vmContentFilters_No1QW{background:#1e1e1e;width:100%;padding:0 8px}.vmContentFilters_No1QW input{background:#343434;border-radius:4px;outline:0;width:100%;padding:3px 4px;font-size:14px}.propertyMeta_XxYHc{text-overflow:ellipsis;white-space:nowrap;color:#616161;overflow:hidden}.propertyMeta_XxYHc.small_Ipy6s{font-size:10px;line-height:15px}.propertyValue_s9qHJ{text-overflow:ellipsis;white-space:nowrap;color:#616161;overflow:hidden}.propertyValue_s9qHJ:has(+.property-name_2-sJi){margin-right:calc(var(--spacing)*1)}.line_Xgaua{text-overflow:ellipsis;white-space:nowrap;white-space:pre;height:22px;padding-left:calc(28px + (var(--level)*15px));background:#1e1e1e;flex-direction:row;align-items:center;font-size:14px;display:flex;position:relative;overflow:hidden}.line_Xgaua.expandable_2LUhL{cursor:pointer}.property_eoWZv[data-fitted=false]{opacity:.5}.property_eoWZv.instance_B-kEn>.propertyValue_s9qHJ{color:#ba82be}:is(.property_eoWZv.primitive_5yfCy.boolean_TwUVp,.property_eoWZv.primitive_5yfCy.number_AVdzm,.property_eoWZv.primitive_5yfCy.object_kn8wQ,.property_eoWZv.primitive_5yfCy.undefined_SMcns,.property_eoWZv.primitive_5yfCy.bigint_ZrO3O,.property_eoWZv.primitive_5yfCy.symbol_9GN4U)>.propertyValue_s9qHJ{color:#5999cd}.property_eoWZv.primitive_5yfCy.string_m1Kkx>.propertyValue_s9qHJ{color:#af7249}.expandButton_EObqt{color:#a0a0a0;cursor:pointer;width:16px;height:16px;font-weight:700;opacity:1!important}.expandButton_EObqt.expanded_uFpb7{color:#b8b8b8;transform:rotate(90deg)}.expandButton_EObqt.disabled_IDojS{opacity:.35!important}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}')),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('/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--font-weight-semibold:600;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static_g5P-G{position:static}.container_ueeVi{width:100%}@media(min-width:40rem){.container_ueeVi{max-width:40rem}}@media(min-width:48rem){.container_ueeVi{max-width:48rem}}@media(min-width:64rem){.container_ueeVi{max-width:64rem}}@media(min-width:80rem){.container_ueeVi{max-width:80rem}}@media(min-width:96rem){.container_ueeVi{max-width:96rem}}.blur_9rZ6A{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.rootContainer_Z8gey *{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px}.vmButton_Xr1Q6{z-index:99;width:calc(var(--spacing)*9);height:calc(var(--spacing)*9);cursor:pointer;border-radius:var(--radius-lg);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));position:fixed}.vmButton_Xr1Q6[data-position=top-right],.vmButton_Xr1Q6[data-position=undefined]{top:calc(var(--spacing)*3);right:calc(var(--spacing)*3)}:is(.vmButton_Xr1Q6[data-position=top-right],.vmButton_Xr1Q6[data-position=undefined]).opened_gewqL{top:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=top-left]{top:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=top-left].opened_gewqL{top:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=bottom-left]{bottom:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=bottom-left].opened_gewqL{bottom:calc(var(--spacing)*-10)}.vmButton_Xr1Q6[data-position=bottom-right]{right:calc(var(--spacing)*3);bottom:calc(var(--spacing)*3)}.vmButton_Xr1Q6[data-position=bottom-right].opened_gewqL{bottom:calc(var(--spacing)*-10)}.vmButton_Xr1Q6>img{pointer-events:none;inset:calc(var(--spacing)*0);border-radius:var(--radius-lg);position:absolute}.vmButton_Xr1Q6>div{pointer-events:none;inset:calc(var(--spacing)*0);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:2px;border-color:#00000057;position:absolute}.vmButton_Xr1Q6>span{pointer-events:none;top:calc(var(--spacing)*-1);left:calc(var(--spacing)*-1);border-radius:var(--radius-lg);padding:calc(var(--spacing)*.5);--tw-leading:1;--tw-font-weight:var(--font-weight-semibold);font-size:12px;line-height:1;font-weight:var(--font-weight-semibold);color:#2aff0a;background-color:#005c26cf;display:flex;position:absolute}.vmButton_Xr1Q6.opened_gewqL{pointer-events:none}.vmButton_Xr1Q6:not(.isConnected_tjs3F){--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.vmPopup_Q4l4j{z-index:99;border-radius:var(--radius-lg);width:520px;height:calc(100vh - 24px);position:fixed}.vmPopup_Q4l4j>header button{width:28px;padding:6px}.vmPopup_Q4l4j[data-position=top-right],.vmPopup_Q4l4j[data-position=undefined]{top:calc(var(--spacing)*3);right:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=top-left]{top:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=bottom-left]{bottom:calc(var(--spacing)*3);left:calc(var(--spacing)*3)}.vmPopup_Q4l4j[data-position=bottom-right]{right:calc(var(--spacing)*3);bottom:calc(var(--spacing)*3)}.vmContent_VAE7p{color:#ccc;background-color:#1e1e1e;flex-direction:column;display:flex;overflow:auto}.vmContent_VAE7p>header{height:calc(var(--spacing)*8);padding-left:calc(var(--spacing)*2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);justify-content:space-between;align-items:center;display:flex}.vmContentInput_zbDAW{display:flex;position:relative}.vmContentInput_zbDAW>svg{pointer-events:none;opacity:.7;width:16px;position:absolute;inset:50% 0;transform:translate(6px,-50%)}.vmContentInput_zbDAW>input{text-overflow:ellipsis;background:#343434;border-radius:4px;outline:0;width:100%;padding:3px 26px;font-size:14px}.vmContentInput_zbDAW>button{opacity:.6;width:16px;display:none;position:absolute;top:50%;right:6px;transform:translate(4px,-50%)}.vmContentInput_zbDAW.filled_-3YUt>svg{opacity:.9}.vmContentInput_zbDAW.filled_-3YUt>button{display:block}.vmContentTree_BB36O{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*2);scrollbar-width:thin;scrollbar-color:#81818170 #1e1e1e;flex-direction:column;display:flex;overflow:auto}.vmContentTree_BB36O:hover{scrollbar-color:#818181 #1e1e1e}.line_Xgaua.vmTreeItem_t-7jc{padding-left:calc(0px + (var(--level)*20px));z-index:1;position:sticky;top:-8px}.line_Xgaua.vmTreeItem_t-7jc>header{z-index:1;cursor:pointer;align-items:center;gap:calc(var(--spacing)*1);text-overflow:ellipsis;white-space:nowrap;background-color:#1e1e1e;margin-block:auto;display:flex;overflow:hidden}.line_Xgaua.vmTreeItem_t-7jc>header>label{background:#0f6013;border-radius:4px;padding:0 4px}.line_Xgaua.vmTreeItem_t-7jc>header>span{color:#5ab65e;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.line_Xgaua.vmTreeItem_t-7jc.extrasItem_MI9Fa>header>label{background:#6b6902}.line_Xgaua.vmTreeItem_t-7jc:not([data-fitted=true])>header{opacity:.6}.vmContentFilters_No1QW{background:#1e1e1e;width:100%;padding:0 8px}.propertyMeta_XxYHc{text-overflow:ellipsis;white-space:nowrap;color:#616161;overflow:hidden}.propertyMeta_XxYHc.small_Ipy6s{font-size:10px;line-height:15px}.propertyValue_s9qHJ{text-overflow:ellipsis;white-space:nowrap;color:#616161;overflow:hidden}.propertyValue_s9qHJ:has(+.property-name_2-sJi){margin-right:calc(var(--spacing)*1)}.line_Xgaua{text-overflow:ellipsis;white-space:nowrap;white-space:pre;height:22px;padding-left:calc(28px + (var(--level)*15px));background:#1e1e1e;flex-direction:row;align-items:center;font-size:14px;display:flex;position:relative;overflow:hidden}.line_Xgaua.expandable_2LUhL{cursor:pointer}.property_eoWZv[data-fitted=false]{opacity:.5}.property_eoWZv.instance_B-kEn>.propertyValue_s9qHJ{color:#ba82be}:is(.property_eoWZv.primitive_5yfCy.boolean_TwUVp,.property_eoWZv.primitive_5yfCy.number_AVdzm,.property_eoWZv.primitive_5yfCy.object_kn8wQ,.property_eoWZv.primitive_5yfCy.undefined_SMcns,.property_eoWZv.primitive_5yfCy.bigint_ZrO3O,.property_eoWZv.primitive_5yfCy.symbol_9GN4U)>.propertyValue_s9qHJ{color:#5999cd}.property_eoWZv.primitive_5yfCy.string_m1Kkx>.propertyValue_s9qHJ{color:#af7249}.expandButton_EObqt{color:#a0a0a0;cursor:pointer;width:16px;height:16px;font-weight:700;opacity:1!important}.expandButton_EObqt.expanded_uFpb7{color:#b8b8b8;transform:rotate(90deg)}.expandButton_EObqt.disabled_IDojS{opacity:.35!important}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}')),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
  }
@@ -35332,6 +35332,8 @@ const opened = "opened_gewqL";
35332
35332
  const isConnected = "isConnected_tjs3F";
35333
35333
  const vmPopup = "vmPopup_Q4l4j";
35334
35334
  const vmContent = "vmContent_VAE7p";
35335
+ const vmContentInput = "vmContentInput_zbDAW";
35336
+ const filled = "filled_-3YUt";
35335
35337
  const vmContentTree = "vmContentTree_BB36O";
35336
35338
  const line = "line_Xgaua";
35337
35339
  const vmTreeItem = "vmTreeItem_t-7jc";
@@ -35364,6 +35366,8 @@ const css = {
35364
35366
  isConnected,
35365
35367
  vmPopup,
35366
35368
  vmContent,
35369
+ vmContentInput,
35370
+ filled,
35367
35371
  vmContentTree,
35368
35372
  line,
35369
35373
  vmTreeItem,
@@ -35766,6 +35770,48 @@ const a = null, { min: u, max: h, abs: p, floor: v } = Math, g = (e, t, o) => u(
35766
35770
  let w2 = jsxRuntimeExports.jsx(te, { ref: m2, scrollRef: S2 ? _15 : void 0, data: o, bufferSize: r2, itemSize: i, shift: s, horizontal: l, keepMounted: c, cache: d, ssrCount: a2, item: u2, onScroll: h2, onScrollEnd: p2, children: t });
35767
35771
  return S2 && (w2 = jsxRuntimeExports.jsx("div", { style: { display: "flex", flexDirection: "column", justifyContent: "flex-end", minHeight: "100%", overflow: "clip" }, children: w2 })), jsxRuntimeExports.jsx("div", { ref: _15, ...g2, style: { display: l ? "inline-block" : "block", [l ? "overflowX" : "overflowY"]: "auto", contain: "strict", width: "100%", height: "100%", ...v2 }, children: w2 });
35768
35772
  }));
35773
+ const Magnifier = () => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
35774
+ "path",
35775
+ {
35776
+ fill: "currentColor",
35777
+ fillRule: "evenodd",
35778
+ d: "M11.5 7a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0m-.82 4.74a6 6 0 1 1 1.06-1.06l2.79 2.79a.75.75 0 1 1-1.06 1.06z",
35779
+ clipRule: "evenodd"
35780
+ },
35781
+ void 0,
35782
+ false,
35783
+ {
35784
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/magnifier.tsx",
35785
+ lineNumber: 3,
35786
+ columnNumber: 5
35787
+ },
35788
+ void 0
35789
+ ) }, void 0, false, {
35790
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/magnifier.tsx",
35791
+ lineNumber: 2,
35792
+ columnNumber: 3
35793
+ }, void 0);
35794
+ const XMark = () => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
35795
+ "path",
35796
+ {
35797
+ fill: "currentColor",
35798
+ fillRule: "evenodd",
35799
+ d: "M3.47 3.47a.75.75 0 0 1 1.06 0L8 6.94l3.47-3.47a.75.75 0 1 1 1.06 1.06L9.06 8l3.47 3.47a.75.75 0 1 1-1.06 1.06L8 9.06l-3.47 3.47a.75.75 0 0 1-1.06-1.06L6.94 8 3.47 4.53a.75.75 0 0 1 0-1.06",
35800
+ clipRule: "evenodd"
35801
+ },
35802
+ void 0,
35803
+ false,
35804
+ {
35805
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/x-mark.tsx",
35806
+ lineNumber: 3,
35807
+ columnNumber: 5
35808
+ },
35809
+ void 0
35810
+ ) }, void 0, false, {
35811
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/x-mark.tsx",
35812
+ lineNumber: 2,
35813
+ columnNumber: 3
35814
+ }, void 0);
35769
35815
  const ignoredKeys = /* @__PURE__ */ new Set(["constructor"]);
35770
35816
  const ignoredPrototypes = /* @__PURE__ */ new Set([
35771
35817
  globalThis.Object.prototype,
@@ -35873,7 +35919,7 @@ const ExpandButton = ({
35873
35919
  );
35874
35920
  };
35875
35921
  const ArrayProperty = observer((props) => {
35876
- const { name: property2, value, model } = props;
35922
+ const { name: property2, value, model, extraRight } = props;
35877
35923
  const isExpanded = model.isPathExpanded(props.path);
35878
35924
  const keys = Object.keys(value);
35879
35925
  const isExpandable = keys.length > 0;
@@ -35882,27 +35928,36 @@ const ArrayProperty = observer((props) => {
35882
35928
  "div",
35883
35929
  {
35884
35930
  className: cx(css.line, css.property, css.array, {
35885
- [css.expandable]: isExpandable
35931
+ [css.expandable]: isExpandable,
35932
+ [css.expanded]: isExpanded
35886
35933
  }),
35887
35934
  style: { "--level": props.level, "--order": props.order },
35888
35935
  onClick: () => model.handleExpandPropertyClick(props.path),
35889
35936
  "data-fitted": props.isFitted,
35937
+ "data-depth": String().padEnd(props.level, "-"),
35890
35938
  children: [
35891
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: property2 }, void 0, false, {
35892
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35893
- lineNumber: 26,
35894
- columnNumber: 9
35895
- }, void 0),
35896
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
35939
+ property2 === void 0 ? null : /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
35940
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: property2 }, void 0, false, {
35941
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35942
+ lineNumber: 30,
35943
+ columnNumber: 13
35944
+ }, void 0),
35945
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
35946
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35947
+ lineNumber: 31,
35948
+ columnNumber: 13
35949
+ }, void 0)
35950
+ ] }, void 0, true, {
35897
35951
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35898
- lineNumber: 27,
35899
- columnNumber: 9
35952
+ lineNumber: 29,
35953
+ columnNumber: 11
35900
35954
  }, void 0),
35901
35955
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyValue, children: isExpanded ? "[" : isExpandable ? "[...]" : `[]` }, void 0, false, {
35902
35956
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35903
- lineNumber: 28,
35957
+ lineNumber: 34,
35904
35958
  columnNumber: 9
35905
- }, void 0)
35959
+ }, void 0),
35960
+ !isExpanded && extraRight
35906
35961
  ]
35907
35962
  },
35908
35963
  void 0,
@@ -35924,7 +35979,12 @@ const ArrayProperty = observer((props) => {
35924
35979
  value: value[key],
35925
35980
  key,
35926
35981
  path: `${props.path}.${key}`,
35927
- level: props.level + 1
35982
+ level: props.level + 1,
35983
+ extraRight: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `,` }, void 0, false, {
35984
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35985
+ lineNumber: 50,
35986
+ columnNumber: 27
35987
+ }, void 0)
35928
35988
  }
35929
35989
  )),
35930
35990
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -35935,24 +35995,27 @@ const ArrayProperty = observer((props) => {
35935
35995
  "--level": props.level,
35936
35996
  "--order": keys.length
35937
35997
  },
35938
- children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `]` }, void 0, false, {
35939
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35940
- lineNumber: 54,
35941
- columnNumber: 13
35942
- }, void 0)
35998
+ children: [
35999
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `]` }, void 0, false, {
36000
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
36001
+ lineNumber: 62,
36002
+ columnNumber: 13
36003
+ }, void 0),
36004
+ extraRight
36005
+ ]
35943
36006
  },
35944
36007
  void 0,
35945
- false,
36008
+ true,
35946
36009
  {
35947
36010
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35948
- lineNumber: 45,
36011
+ lineNumber: 53,
35949
36012
  columnNumber: 11
35950
36013
  },
35951
36014
  void 0
35952
36015
  )
35953
36016
  ] }, void 0, true, {
35954
36017
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/array.tsx",
35955
- lineNumber: 33,
36018
+ lineNumber: 40,
35956
36019
  columnNumber: 9
35957
36020
  }, void 0)
35958
36021
  ] }, void 0, true, {
@@ -35962,7 +36025,7 @@ const ArrayProperty = observer((props) => {
35962
36025
  }, void 0);
35963
36026
  });
35964
36027
  const FunctionProperty = observer((props) => {
35965
- const { name: property2, value } = props;
36028
+ const { name: property2, value, extraRight } = props;
35966
36029
  const argLabels = Array.from(
35967
36030
  { length: value.length },
35968
36031
  (_15, i) => `arg${i + 1}`
@@ -35974,17 +36037,19 @@ const FunctionProperty = observer((props) => {
35974
36037
  title: String(value),
35975
36038
  style: { "--level": props.level, "--order": props.order },
35976
36039
  "data-fitted": props.isFitted,
36040
+ "data-depth": String().padEnd(props.level, "-"),
35977
36041
  children: [
35978
36042
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: property2 }, void 0, false, {
35979
36043
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/function.tsx",
35980
- lineNumber: 24,
36044
+ lineNumber: 25,
35981
36045
  columnNumber: 7
35982
36046
  }, void 0),
35983
36047
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `(${argLabels.join(", ")})` }, void 0, false, {
35984
36048
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/function.tsx",
35985
- lineNumber: 25,
36049
+ lineNumber: 26,
35986
36050
  columnNumber: 7
35987
- }, void 0)
36051
+ }, void 0),
36052
+ extraRight
35988
36053
  ]
35989
36054
  },
35990
36055
  void 0,
@@ -35998,7 +36063,7 @@ const FunctionProperty = observer((props) => {
35998
36063
  );
35999
36064
  });
36000
36065
  const InstanceProperty = observer((props) => {
36001
- const { name, value, model } = props;
36066
+ const { name, value, model, extraRight } = props;
36002
36067
  const isExpanded = model.isPathExpanded(props.path);
36003
36068
  const Constructor = value.constructor;
36004
36069
  const className = Constructor.name;
@@ -36007,24 +36072,33 @@ const InstanceProperty = observer((props) => {
36007
36072
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36008
36073
  "div",
36009
36074
  {
36010
- className: cx(css.line, css.property, css.instance, css.expandable),
36075
+ className: cx(css.line, css.property, css.instance, css.expandable, {
36076
+ [css.expanded]: isExpanded
36077
+ }),
36011
36078
  style: { "--level": props.level, "--order": props.order },
36012
36079
  onClick: () => model.handleExpandPropertyClick(props.path),
36013
36080
  "data-fitted": props.isFitted,
36081
+ "data-depth": String().padEnd(props.level, "-"),
36014
36082
  children: [
36015
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: name }, void 0, false, {
36016
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36017
- lineNumber: 27,
36018
- columnNumber: 9
36019
- }, void 0),
36020
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36083
+ name === void 0 ? null : /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
36084
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: name }, void 0, false, {
36085
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36086
+ lineNumber: 32,
36087
+ columnNumber: 13
36088
+ }, void 0),
36089
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36090
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36091
+ lineNumber: 33,
36092
+ columnNumber: 13
36093
+ }, void 0)
36094
+ ] }, void 0, true, {
36021
36095
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36022
- lineNumber: 28,
36023
- columnNumber: 9
36096
+ lineNumber: 31,
36097
+ columnNumber: 11
36024
36098
  }, void 0),
36025
36099
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyValue, children: `${className}` }, void 0, false, {
36026
36100
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36027
- lineNumber: 29,
36101
+ lineNumber: 36,
36028
36102
  columnNumber: 9
36029
36103
  }, void 0),
36030
36104
  isExpanded && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: [
@@ -36032,9 +36106,10 @@ const InstanceProperty = observer((props) => {
36032
36106
  `{`
36033
36107
  ] }, void 0, true, {
36034
36108
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36035
- lineNumber: 30,
36109
+ lineNumber: 37,
36036
36110
  columnNumber: 24
36037
- }, void 0)
36111
+ }, void 0),
36112
+ !isExpanded && extraRight
36038
36113
  ]
36039
36114
  },
36040
36115
  void 0,
@@ -36056,7 +36131,12 @@ const InstanceProperty = observer((props) => {
36056
36131
  value: value[key],
36057
36132
  key,
36058
36133
  path: `${props.path}.${key}`,
36059
- level: props.level + 1
36134
+ level: props.level + 1,
36135
+ extraRight: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `,` }, void 0, false, {
36136
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36137
+ lineNumber: 51,
36138
+ columnNumber: 27
36139
+ }, void 0)
36060
36140
  }
36061
36141
  )),
36062
36142
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -36067,24 +36147,27 @@ const InstanceProperty = observer((props) => {
36067
36147
  "--level": props.level,
36068
36148
  "--order": keys.length
36069
36149
  },
36070
- children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `}` }, void 0, false, {
36071
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36072
- lineNumber: 54,
36073
- columnNumber: 13
36074
- }, void 0)
36150
+ children: [
36151
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `}` }, void 0, false, {
36152
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36153
+ lineNumber: 63,
36154
+ columnNumber: 13
36155
+ }, void 0),
36156
+ extraRight
36157
+ ]
36075
36158
  },
36076
36159
  void 0,
36077
- false,
36160
+ true,
36078
36161
  {
36079
36162
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36080
- lineNumber: 45,
36163
+ lineNumber: 54,
36081
36164
  columnNumber: 11
36082
36165
  },
36083
36166
  void 0
36084
36167
  )
36085
36168
  ] }, void 0, true, {
36086
36169
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/instance.tsx",
36087
- lineNumber: 33,
36170
+ lineNumber: 41,
36088
36171
  columnNumber: 9
36089
36172
  }, void 0)
36090
36173
  ] }, void 0, true, {
@@ -36094,7 +36177,7 @@ const InstanceProperty = observer((props) => {
36094
36177
  }, void 0);
36095
36178
  });
36096
36179
  const ObjectProperty = observer((props) => {
36097
- const { name: property2, value, model } = props;
36180
+ const { name, value, model, extraRight } = props;
36098
36181
  const isExpanded = model.isPathExpanded(props.path);
36099
36182
  const keys = getAllKeys(value);
36100
36183
  const isExpandable = keys.length > 0;
@@ -36103,27 +36186,36 @@ const ObjectProperty = observer((props) => {
36103
36186
  "div",
36104
36187
  {
36105
36188
  className: cx(css.line, css.property, css.object, {
36106
- [css.expandable]: isExpandable
36189
+ [css.expandable]: isExpandable,
36190
+ [css.expanded]: isExpanded
36107
36191
  }),
36108
36192
  style: { "--level": props.level, "--order": props.order },
36109
36193
  onClick: () => model.handleExpandPropertyClick(props.path),
36110
36194
  "data-fitted": props.isFitted,
36195
+ "data-depth": String().padEnd(props.level, "-"),
36111
36196
  children: [
36112
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: property2 }, void 0, false, {
36113
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36114
- lineNumber: 27,
36115
- columnNumber: 9
36116
- }, void 0),
36117
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36197
+ name === void 0 ? null : /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
36198
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: name }, void 0, false, {
36199
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36200
+ lineNumber: 31,
36201
+ columnNumber: 13
36202
+ }, void 0),
36203
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36204
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36205
+ lineNumber: 32,
36206
+ columnNumber: 13
36207
+ }, void 0)
36208
+ ] }, void 0, true, {
36118
36209
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36119
- lineNumber: 28,
36120
- columnNumber: 9
36210
+ lineNumber: 30,
36211
+ columnNumber: 11
36121
36212
  }, void 0),
36122
36213
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyValue, children: isExpanded ? "{" : isExpandable ? "{...}" : `{}` }, void 0, false, {
36123
36214
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36124
- lineNumber: 29,
36215
+ lineNumber: 35,
36125
36216
  columnNumber: 9
36126
- }, void 0)
36217
+ }, void 0),
36218
+ !isExpanded && extraRight
36127
36219
  ]
36128
36220
  },
36129
36221
  void 0,
@@ -36136,7 +36228,7 @@ const ObjectProperty = observer((props) => {
36136
36228
  void 0
36137
36229
  ),
36138
36230
  isExpanded && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
36139
- keys.map((key, order) => /* @__PURE__ */ reactExports.createElement(
36231
+ keys.map((key, order, arr) => /* @__PURE__ */ reactExports.createElement(
36140
36232
  Property,
36141
36233
  {
36142
36234
  ...props,
@@ -36145,7 +36237,12 @@ const ObjectProperty = observer((props) => {
36145
36237
  value: value[key],
36146
36238
  key,
36147
36239
  path: `${props.path}.${key}`,
36148
- level: props.level + 1
36240
+ level: props.level + 1,
36241
+ extraRight: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `,` }, void 0, false, {
36242
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36243
+ lineNumber: 51,
36244
+ columnNumber: 27
36245
+ }, void 0)
36149
36246
  }
36150
36247
  )),
36151
36248
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -36156,24 +36253,27 @@ const ObjectProperty = observer((props) => {
36156
36253
  "--level": props.level,
36157
36254
  "--order": keys.length
36158
36255
  },
36159
- children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `}` }, void 0, false, {
36160
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36161
- lineNumber: 55,
36162
- columnNumber: 13
36163
- }, void 0)
36256
+ children: [
36257
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `}` }, void 0, false, {
36258
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36259
+ lineNumber: 63,
36260
+ columnNumber: 13
36261
+ }, void 0),
36262
+ extraRight
36263
+ ]
36164
36264
  },
36165
36265
  void 0,
36166
- false,
36266
+ true,
36167
36267
  {
36168
36268
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36169
- lineNumber: 46,
36269
+ lineNumber: 54,
36170
36270
  columnNumber: 11
36171
36271
  },
36172
36272
  void 0
36173
36273
  )
36174
36274
  ] }, void 0, true, {
36175
36275
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/object.tsx",
36176
- lineNumber: 34,
36276
+ lineNumber: 41,
36177
36277
  columnNumber: 9
36178
36278
  }, void 0)
36179
36279
  ] }, void 0, true, {
@@ -36183,7 +36283,7 @@ const ObjectProperty = observer((props) => {
36183
36283
  }, void 0);
36184
36284
  });
36185
36285
  const PrimitiveProperty = observer((props) => {
36186
- const { name, value } = props;
36286
+ const { name, value, extraRight } = props;
36187
36287
  const primitiveType = typeof value;
36188
36288
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36189
36289
  "div",
@@ -36192,22 +36292,30 @@ const PrimitiveProperty = observer((props) => {
36192
36292
  style: { "--level": props.level, "--order": props.order },
36193
36293
  "data-fitted": props.isFitted,
36194
36294
  title: String(value),
36295
+ "data-depth": String().padEnd(props.level, "-"),
36195
36296
  children: [
36196
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: name }, void 0, false, {
36297
+ name === void 0 ? null : /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
36298
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyName, children: name }, void 0, false, {
36299
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/primitive.tsx",
36300
+ lineNumber: 23,
36301
+ columnNumber: 11
36302
+ }, void 0),
36303
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36304
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/primitive.tsx",
36305
+ lineNumber: 24,
36306
+ columnNumber: 11
36307
+ }, void 0)
36308
+ ] }, void 0, true, {
36197
36309
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/primitive.tsx",
36198
- lineNumber: 20,
36199
- columnNumber: 7
36310
+ lineNumber: 22,
36311
+ columnNumber: 9
36200
36312
  }, void 0),
36201
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: ": " }, void 0, false, {
36313
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyValue, children: primitiveType === "symbol" ? `Symbol(${Symbol.keyFor(value) || ""})` : primitiveType === "string" ? `"${value}"` : `${value}` }, void 0, false, {
36202
36314
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/primitive.tsx",
36203
- lineNumber: 21,
36315
+ lineNumber: 27,
36204
36316
  columnNumber: 7
36205
36317
  }, void 0),
36206
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyValue, children: primitiveType === "symbol" ? "Symbol" : primitiveType === "string" ? `"${value}"` : `${value}` }, void 0, false, {
36207
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/primitive.tsx",
36208
- lineNumber: 22,
36209
- columnNumber: 7
36210
- }, void 0)
36318
+ extraRight
36211
36319
  ]
36212
36320
  },
36213
36321
  void 0,
@@ -36231,38 +36339,38 @@ const Property = observer((rootProps) => {
36231
36339
  if (Array.isArray(value)) {
36232
36340
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(ArrayProperty, { ...props }, void 0, false, {
36233
36341
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36234
- lineNumber: 35,
36342
+ lineNumber: 36,
36235
36343
  columnNumber: 12
36236
36344
  }, void 0);
36237
36345
  }
36238
36346
  if (_exports.isObject(value) && value.constructor?.name && value.constructor.name !== "Object") {
36239
36347
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(InstanceProperty, { ...props }, void 0, false, {
36240
36348
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36241
- lineNumber: 43,
36349
+ lineNumber: 44,
36242
36350
  columnNumber: 12
36243
36351
  }, void 0);
36244
36352
  } else if (_exports.isFunction(value)) {
36245
36353
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(FunctionProperty, { ...props }, void 0, false, {
36246
36354
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36247
- lineNumber: 45,
36355
+ lineNumber: 46,
36248
36356
  columnNumber: 12
36249
36357
  }, void 0);
36250
36358
  } else if (_exports.isObject(value)) {
36251
36359
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(ObjectProperty, { ...props }, void 0, false, {
36252
36360
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36253
- lineNumber: 47,
36361
+ lineNumber: 48,
36254
36362
  columnNumber: 12
36255
36363
  }, void 0);
36256
36364
  } else if (valueType.startsWith("[object ") && value && typeof value === "object" && "constructor" in value) {
36257
36365
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(InstanceProperty, { ...props }, void 0, false, {
36258
36366
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36259
- lineNumber: 54,
36367
+ lineNumber: 55,
36260
36368
  columnNumber: 12
36261
36369
  }, void 0);
36262
36370
  } else {
36263
36371
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(PrimitiveProperty, { ...props }, void 0, false, {
36264
36372
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/property/index.tsx",
36265
- lineNumber: 56,
36373
+ lineNumber: 57,
36266
36374
  columnNumber: 12
36267
36375
  }, void 0);
36268
36376
  }
@@ -36279,6 +36387,7 @@ const ExtrasItemRender = withViewModel(
36279
36387
  {
36280
36388
  className: cx(css.line, css.vmTreeItem, css.extrasItem),
36281
36389
  "data-fitted": "true",
36390
+ "data-depth": String().padEnd(depth, "-"),
36282
36391
  style: { "--level": depth },
36283
36392
  children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("header", { children: [
36284
36393
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -36292,19 +36401,19 @@ const ExtrasItemRender = withViewModel(
36292
36401
  false,
36293
36402
  {
36294
36403
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/extras-item-render/index.tsx",
36295
- lineNumber: 27,
36404
+ lineNumber: 28,
36296
36405
  columnNumber: 13
36297
36406
  },
36298
36407
  void 0
36299
36408
  ),
36300
36409
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("label", { children: "Extras" }, void 0, false, {
36301
36410
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/extras-item-render/index.tsx",
36302
- lineNumber: 32,
36411
+ lineNumber: 33,
36303
36412
  columnNumber: 13
36304
36413
  }, void 0)
36305
36414
  ] }, void 0, true, {
36306
36415
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/extras-item-render/index.tsx",
36307
- lineNumber: 26,
36416
+ lineNumber: 27,
36308
36417
  columnNumber: 11
36309
36418
  }, void 0)
36310
36419
  },
@@ -36324,7 +36433,10 @@ const ExtrasItemRender = withViewModel(
36324
36433
  name: property2,
36325
36434
  order,
36326
36435
  value: extras[property2],
36327
- isFitted: model.devtools.checkIsExtrasPropertyFitted(property2),
36436
+ isFitted: model.devtools.searchEngine.getSearchPropertyResult(
36437
+ { type: "extras", item: extras },
36438
+ property2
36439
+ ),
36328
36440
  level: depth + 1,
36329
36441
  path: property2
36330
36442
  },
@@ -36332,7 +36444,7 @@ const ExtrasItemRender = withViewModel(
36332
36444
  false,
36333
36445
  {
36334
36446
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/extras-item-render/index.tsx",
36335
- lineNumber: 36,
36447
+ lineNumber: 37,
36336
36448
  columnNumber: 11
36337
36449
  },
36338
36450
  void 0
@@ -36349,13 +36461,17 @@ const VmTreeItemRender = withViewModel(
36349
36461
  ({ model }) => {
36350
36462
  const vmItem = model.payload.vmItem;
36351
36463
  const isExpanded = model.devtools.isExpanded(vmItem);
36352
- const fittedInfo = model.devtools.getVMFittedInfo(vmItem);
36464
+ const itemSearchResult = model.devtools.searchEngine.getSearchResult({
36465
+ type: "vm",
36466
+ item: vmItem
36467
+ });
36353
36468
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(jsxDevRuntimeExports.Fragment, { children: [
36354
36469
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36355
36470
  "div",
36356
36471
  {
36357
36472
  className: cx(css.line, css.vmTreeItem),
36358
- "data-fitted": fittedInfo.isFittedByName || fittedInfo.isFittedById,
36473
+ "data-fitted": itemSearchResult.isFittedByName || itemSearchResult.isFittedById,
36474
+ "data-depth": String().padEnd(vmItem.depth, "-"),
36359
36475
  style: { "--level": vmItem.depth },
36360
36476
  children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("header", { onClick: () => model.handleVmItemHeaderClick(vmItem), children: [
36361
36477
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -36370,24 +36486,24 @@ const VmTreeItemRender = withViewModel(
36370
36486
  false,
36371
36487
  {
36372
36488
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36373
- lineNumber: 25,
36489
+ lineNumber: 31,
36374
36490
  columnNumber: 13
36375
36491
  },
36376
36492
  void 0
36377
36493
  ),
36378
36494
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("label", { title: vmItem.displayName, children: vmItem.displayName }, void 0, false, {
36379
36495
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36380
- lineNumber: 31,
36496
+ lineNumber: 37,
36381
36497
  columnNumber: 13
36382
36498
  }, void 0),
36383
36499
  /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { title: vmItem.vm.id, children: vmItem.vm.id }, void 0, false, {
36384
36500
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36385
- lineNumber: 32,
36501
+ lineNumber: 38,
36386
36502
  columnNumber: 13
36387
36503
  }, void 0)
36388
36504
  ] }, void 0, true, {
36389
36505
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36390
- lineNumber: 24,
36506
+ lineNumber: 30,
36391
36507
  columnNumber: 11
36392
36508
  }, void 0)
36393
36509
  },
@@ -36395,19 +36511,27 @@ const VmTreeItemRender = withViewModel(
36395
36511
  false,
36396
36512
  {
36397
36513
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36398
- lineNumber: 19,
36514
+ lineNumber: 22,
36399
36515
  columnNumber: 9
36400
36516
  },
36401
36517
  void 0
36402
36518
  ),
36403
- vmItem.properties.map((property2, order) => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36519
+ vmItem.properties.map((property2, order, arr) => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36404
36520
  Property,
36405
36521
  {
36406
36522
  model,
36407
36523
  name: property2,
36408
36524
  order,
36409
36525
  value: vmItem.vm[property2],
36410
- isFitted: model.devtools.checkIsPropertyFitted(vmItem, property2),
36526
+ isFitted: model.devtools.searchEngine.getSearchPropertyResult(
36527
+ { type: "vm", item: vmItem },
36528
+ property2
36529
+ ),
36530
+ extraRight: order !== arr.length - 1 && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { className: css.propertyMeta, children: `,` }, void 0, false, {
36531
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36532
+ lineNumber: 54,
36533
+ columnNumber: 17
36534
+ }, void 0),
36411
36535
  level: vmItem.depth,
36412
36536
  path: property2
36413
36537
  },
@@ -36415,7 +36539,7 @@ const VmTreeItemRender = withViewModel(
36415
36539
  false,
36416
36540
  {
36417
36541
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36418
- lineNumber: 36,
36542
+ lineNumber: 42,
36419
36543
  columnNumber: 11
36420
36544
  },
36421
36545
  void 0
@@ -36429,14 +36553,14 @@ const VmTreeItemRender = withViewModel(
36429
36553
  false,
36430
36554
  {
36431
36555
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36432
- lineNumber: 49,
36556
+ lineNumber: 63,
36433
36557
  columnNumber: 13
36434
36558
  },
36435
36559
  void 0
36436
36560
  ))
36437
36561
  ] }, void 0, true, {
36438
36562
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/vm-tree-item-render/index.tsx",
36439
- lineNumber: 18,
36563
+ lineNumber: 21,
36440
36564
  columnNumber: 7
36441
36565
  }, void 0);
36442
36566
  }
@@ -36448,117 +36572,103 @@ const VmDevtoolsContent = observer(
36448
36572
  ...props
36449
36573
  }) => {
36450
36574
  const model = useViewModel();
36451
- return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36452
- "div",
36453
- {
36454
- ...props,
36455
- className: cx(css.vmContent, className),
36456
- children: [
36457
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("header", { children: [
36458
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { children: "mobx-view-model devtools" }, void 0, false, {
36459
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36460
- lineNumber: 28,
36461
- columnNumber: 11
36462
- }, void 0),
36463
- headerContent
36464
- ] }, void 0, true, {
36575
+ return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { ...props, className: cx(css.vmContent, className), children: [
36576
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("header", { children: [
36577
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("span", { children: "mobx-view-model devtools" }, void 0, false, {
36578
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36579
+ lineNumber: 27,
36580
+ columnNumber: 11
36581
+ }, void 0),
36582
+ headerContent
36583
+ ] }, void 0, true, {
36584
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36585
+ lineNumber: 26,
36586
+ columnNumber: 9
36587
+ }, void 0),
36588
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { className: css.vmContentFilters, children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { className: `${css.vmContentInput} ${model.devtools.searchEngine.isActive && css.filled}`, children: [
36589
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(Magnifier, {}, void 0, false, {
36590
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36591
+ lineNumber: 32,
36592
+ columnNumber: 13
36593
+ }, void 0),
36594
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36595
+ "input",
36596
+ {
36597
+ ref: model.devtools.searchEngine.searchInputRef,
36598
+ autoFocus: true,
36599
+ placeholder: "search by property path or ViewModel name"
36600
+ },
36601
+ void 0,
36602
+ false,
36603
+ {
36465
36604
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36466
- lineNumber: 27,
36467
- columnNumber: 9
36468
- }, void 0),
36469
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("div", { className: css.vmContentFilters, children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36470
- "input",
36471
- {
36472
- value: model.devtools.search,
36473
- ref: model.devtools.inputRef,
36474
- autoFocus: true,
36475
- placeholder: "search by property path or ViewModel name",
36476
- onChange: model.devtools.handleSearchChange
36477
- },
36478
- void 0,
36479
- false,
36480
- {
36481
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36482
- lineNumber: 32,
36483
- columnNumber: 11
36484
- },
36485
- void 0
36486
- ) }, void 0, false, {
36605
+ lineNumber: 33,
36606
+ columnNumber: 13
36607
+ },
36608
+ void 0
36609
+ ),
36610
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("button", { onClick: model.devtools.searchEngine.resetSearch, children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(XMark, {}, void 0, false, {
36611
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36612
+ lineNumber: 39,
36613
+ columnNumber: 15
36614
+ }, void 0) }, void 0, false, {
36615
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36616
+ lineNumber: 38,
36617
+ columnNumber: 13
36618
+ }, void 0)
36619
+ ] }, void 0, true, {
36620
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36621
+ lineNumber: 31,
36622
+ columnNumber: 11
36623
+ }, void 0) }, void 0, false, {
36624
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36625
+ lineNumber: 30,
36626
+ columnNumber: 9
36627
+ }, void 0),
36628
+ /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(oe, { className: css.vmContentTree, ref: model.devtools.scrollListRef, children: [
36629
+ model.devtools.vmTree.map((vmItem) => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36630
+ VmTreeItemRender,
36631
+ {
36632
+ payload: { vmItem, devtools: model.devtools }
36633
+ },
36634
+ vmItem.key,
36635
+ false,
36636
+ {
36487
36637
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36488
- lineNumber: 31,
36489
- columnNumber: 9
36490
- }, void 0),
36491
- /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(oe, { className: css.vmContentTree, ref: model.devtools.scrollListRef, children: [
36492
- model.devtools.vmTree.map((vmItem) => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36493
- VmTreeItemRender,
36494
- {
36495
- payload: { vmItem, devtools: model.devtools }
36496
- },
36497
- vmItem.key,
36498
- false,
36499
- {
36500
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36501
- lineNumber: 42,
36502
- columnNumber: 13
36503
- },
36504
- void 0
36505
- )),
36506
- !!model.devtools.extras && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36507
- ExtrasItemRender,
36508
- {
36509
- payload: {
36510
- extras: model.devtools.extras,
36511
- devtools: model.devtools
36512
- }
36513
- },
36514
- void 0,
36515
- false,
36516
- {
36517
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36518
- lineNumber: 48,
36519
- columnNumber: 13
36520
- },
36521
- void 0
36522
- )
36523
- ] }, void 0, true, {
36638
+ lineNumber: 45,
36639
+ columnNumber: 13
36640
+ },
36641
+ void 0
36642
+ )),
36643
+ !!model.devtools.extras && /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36644
+ ExtrasItemRender,
36645
+ {
36646
+ payload: {
36647
+ extras: model.devtools.extras,
36648
+ devtools: model.devtools
36649
+ }
36650
+ },
36651
+ void 0,
36652
+ false,
36653
+ {
36524
36654
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36525
- lineNumber: 40,
36526
- columnNumber: 9
36527
- }, void 0)
36528
- ]
36529
- },
36530
- void 0,
36531
- true,
36532
- {
36655
+ lineNumber: 51,
36656
+ columnNumber: 13
36657
+ },
36658
+ void 0
36659
+ )
36660
+ ] }, void 0, true, {
36533
36661
  fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36534
- lineNumber: 23,
36535
- columnNumber: 7
36536
- },
36537
- void 0
36538
- );
36662
+ lineNumber: 43,
36663
+ columnNumber: 9
36664
+ }, void 0)
36665
+ ] }, void 0, true, {
36666
+ fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/devtools-content/index.tsx",
36667
+ lineNumber: 25,
36668
+ columnNumber: 7
36669
+ }, void 0);
36539
36670
  }
36540
36671
  );
36541
- const XMark = () => /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 16 16", children: /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
36542
- "path",
36543
- {
36544
- fill: "currentColor",
36545
- fillRule: "evenodd",
36546
- d: "M3.47 3.47a.75.75 0 0 1 1.06 0L8 6.94l3.47-3.47a.75.75 0 1 1 1.06 1.06L9.06 8l3.47 3.47a.75.75 0 1 1-1.06 1.06L8 9.06l-3.47 3.47a.75.75 0 0 1-1.06-1.06L6.94 8 3.47 4.53a.75.75 0 0 1 0-1.06",
36547
- clipRule: "evenodd"
36548
- },
36549
- void 0,
36550
- false,
36551
- {
36552
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/x-mark.tsx",
36553
- lineNumber: 3,
36554
- columnNumber: 5
36555
- },
36556
- void 0
36557
- ) }, void 0, false, {
36558
- fileName: "/home/js2me/projects/open-source/mobx-view-model-devtools/src/ui/icons/x-mark.tsx",
36559
- lineNumber: 2,
36560
- columnNumber: 3
36561
- }, void 0);
36562
36672
  const VmDevtoolsPopup = observer(() => {
36563
36673
  const model = useViewModel();
36564
36674
  return /* @__PURE__ */ jsxDevRuntimeExports.jsxDEV(
@@ -36767,6 +36877,14 @@ class KeyboardHandler2 extends KeyboardHandler$1 {
36767
36877
  devtools.isAllVmsExpandedByDefault = true;
36768
36878
  }
36769
36879
  },
36880
+ {
36881
+ shortcuts: ["Tab"],
36882
+ action: (e) => {
36883
+ if (devtools.searchEngine.searchInputRef.meta.focused) {
36884
+ e.preventDefault();
36885
+ }
36886
+ }
36887
+ },
36770
36888
  {
36771
36889
  shortcuts: ["Ctrl+ArrowDown"],
36772
36890
  action: () => {
@@ -36806,50 +36924,212 @@ class ViewModelStoreImpl extends ViewModelStoreBase {
36806
36924
  });
36807
36925
  }
36808
36926
  }
36809
- const checkPath = (obj, path) => {
36810
- const parts = path.split(".");
36811
- let current = obj;
36812
- for (const part of parts) {
36813
- if (part in current) {
36814
- current = current[part];
36815
- } else {
36816
- return false;
36817
- }
36818
- }
36819
- return true;
36820
- };
36821
- const createFocusableRef = () => {
36927
+ const createFocusableRef = (cfg) => {
36928
+ const handleFocus = action(() => {
36929
+ ref.meta.focused = true;
36930
+ });
36931
+ const handleBlur = action(() => {
36932
+ ref.meta.focused = false;
36933
+ });
36934
+ let lastNode;
36822
36935
  const ref = createRef({
36823
36936
  meta: {
36824
36937
  focused: false
36825
36938
  },
36826
- onSet: (input) => {
36827
- if (document.activeElement === input) {
36939
+ onSet: (node) => {
36940
+ if (document.activeElement === node) {
36828
36941
  runInAction(() => {
36829
36942
  ref.meta.focused = true;
36830
36943
  });
36831
36944
  }
36832
- input.addEventListener(
36833
- "focus",
36834
- action(() => {
36835
- ref.meta.focused = true;
36836
- })
36837
- );
36838
- input.addEventListener(
36839
- "blur",
36840
- action(() => {
36841
- ref.meta.focused = false;
36842
- })
36843
- );
36945
+ node.addEventListener("focus", handleFocus);
36946
+ node.addEventListener("blur", handleBlur);
36947
+ cfg?.onSet?.(node);
36948
+ lastNode = node;
36949
+ },
36950
+ onUnset: () => {
36951
+ cfg?.onUnset?.();
36952
+ lastNode?.removeEventListener("focus", handleFocus);
36953
+ lastNode?.removeEventListener("blur", handleBlur);
36954
+ lastNode = void 0;
36844
36955
  }
36845
36956
  });
36846
36957
  return ref;
36847
36958
  };
36959
+ class SearchEngine {
36960
+ searchInputRef;
36961
+ fittedVmIds = /* @__PURE__ */ new Set();
36962
+ rawSearchText;
36963
+ formattedSearchText;
36964
+ searchTextUpdateTimeout;
36965
+ segments = [];
36966
+ get cache() {
36967
+ this.fittedVmIds.clear();
36968
+ this.formattedSearchText;
36969
+ return /* @__PURE__ */ new Map();
36970
+ }
36971
+ get isActive() {
36972
+ return !!this.formattedSearchText;
36973
+ }
36974
+ defaultSearchResult = {
36975
+ isFitted: true,
36976
+ isFittedByName: true,
36977
+ fittedProperties: [],
36978
+ fittedPath: []
36979
+ };
36980
+ getSearchResult(input) {
36981
+ if (!this.isActive) {
36982
+ return this.defaultSearchResult;
36983
+ }
36984
+ if (input.type === "extras") {
36985
+ return this.defaultSearchResult;
36986
+ }
36987
+ const { item } = input;
36988
+ if (this.cache.has(item.key)) {
36989
+ return this.cache.get(item.key);
36990
+ }
36991
+ if (!this.segments.length) {
36992
+ return this.defaultSearchResult;
36993
+ }
36994
+ const isFittedByProperty = false;
36995
+ let fittedProperties = [];
36996
+ const firstSegment = this.segments[0];
36997
+ const secondSegment = this.segments[1];
36998
+ let propSegmentsToCheck = [];
36999
+ let isFittedById;
37000
+ let isFittedByName;
37001
+ let isFittedAllProperties;
37002
+ if (secondSegment) {
37003
+ isFittedById = item.searchData.id === firstSegment;
37004
+ isFittedByName = item.searchData.name === firstSegment;
37005
+ if (isFittedById || isFittedByName) {
37006
+ propSegmentsToCheck = [secondSegment];
37007
+ } else {
37008
+ propSegmentsToCheck = [firstSegment];
37009
+ }
37010
+ } else {
37011
+ isFittedById = item.searchData.id.startsWith(firstSegment);
37012
+ isFittedByName = item.searchData.name.startsWith(firstSegment);
37013
+ if (!isFittedById && !isFittedByName) {
37014
+ propSegmentsToCheck = [firstSegment];
37015
+ }
37016
+ }
37017
+ if (item.vm.id && isFittedById) {
37018
+ this.fittedVmIds.add(item.vm.id);
37019
+ }
37020
+ const isFittedByPropertyPath = false;
37021
+ let fullFittedProperty;
37022
+ if (propSegmentsToCheck.length) {
37023
+ item.properties.forEach((origProperty) => {
37024
+ const property2 = origProperty.toLowerCase();
37025
+ for (const segment of propSegmentsToCheck) {
37026
+ const isFullFitted = property2 === segment;
37027
+ if (isFullFitted) {
37028
+ fullFittedProperty = property2;
37029
+ fittedProperties.push(origProperty);
37030
+ return;
37031
+ }
37032
+ const isFittedProperty = !!segment && property2.startsWith(segment);
37033
+ if (isFittedProperty) {
37034
+ fittedProperties.push(origProperty);
37035
+ }
37036
+ }
37037
+ });
37038
+ } else {
37039
+ fittedProperties = item.properties;
37040
+ isFittedAllProperties = true;
37041
+ }
37042
+ const isFitted = isFittedByName || isFittedById || isFittedByProperty || isFittedByPropertyPath;
37043
+ this.cache.set(item.key, {
37044
+ isFitted,
37045
+ isFittedById,
37046
+ isFittedByName,
37047
+ isFittedByPropertyPath,
37048
+ fittedProperties,
37049
+ fullFittedProperty,
37050
+ isFittedAllProperties,
37051
+ fittedPath: this.segments
37052
+ });
37053
+ return this.cache.get(item.key);
37054
+ }
37055
+ getSearchPropertyResult(input, property2) {
37056
+ if (!this.isActive) {
37057
+ return true;
37058
+ }
37059
+ const searchResult = this.getSearchResult(input);
37060
+ if (input.type === "vm" && searchResult.isFittedAllProperties && input.item.vm.id && !this.fittedVmIds.has(input.item.vm.id)) {
37061
+ return false;
37062
+ }
37063
+ return searchResult.fittedProperties.includes(property2);
37064
+ }
37065
+ setSearchText(searchText) {
37066
+ this.rawSearchText = searchText;
37067
+ this.formattedSearchText = searchText.toLowerCase().trim();
37068
+ this.segments.length = 0;
37069
+ if (!this.formattedSearchText) {
37070
+ return;
37071
+ }
37072
+ const segments = this.segments;
37073
+ let startWithNextSegment = true;
37074
+ for (let i = 0; i < searchText.length; ) {
37075
+ const char = searchText[i];
37076
+ if (i === 0 && char === ".") {
37077
+ i++;
37078
+ continue;
37079
+ }
37080
+ if (char === " ") {
37081
+ i++;
37082
+ continue;
37083
+ }
37084
+ if (char === ".") {
37085
+ startWithNextSegment = true;
37086
+ i++;
37087
+ continue;
37088
+ }
37089
+ if (startWithNextSegment) {
37090
+ segments.push("");
37091
+ startWithNextSegment = false;
37092
+ }
37093
+ const lastIndex = segments.length - 1;
37094
+ segments[lastIndex] += char.toLowerCase();
37095
+ i++;
37096
+ }
37097
+ }
37098
+ resetSearch = () => {
37099
+ clearTimeout(this.searchTextUpdateTimeout);
37100
+ this.setSearchText("");
37101
+ if (this.searchInputRef.current) {
37102
+ this.searchInputRef.current.value = "";
37103
+ }
37104
+ };
37105
+ constructor() {
37106
+ this.setSearchText("");
37107
+ this.searchInputRef = createFocusableRef({
37108
+ onSet: (input) => {
37109
+ if (this.rawSearchText && input.value !== this.rawSearchText) {
37110
+ input.value = this.rawSearchText;
37111
+ }
37112
+ input.addEventListener("input", () => {
37113
+ clearTimeout(this.searchTextUpdateTimeout);
37114
+ this.searchTextUpdateTimeout = setTimeout(() => {
37115
+ this.setSearchText(input.value);
37116
+ }, 100);
37117
+ });
37118
+ }
37119
+ });
37120
+ makeObservable(this, {
37121
+ rawSearchText: observable.ref,
37122
+ formattedSearchText: observable.ref,
37123
+ isActive: computed,
37124
+ cache: computed,
37125
+ setSearchText: action.bound
37126
+ });
37127
+ }
37128
+ }
36848
37129
  class ViewModelDevtools {
36849
37130
  constructor(config) {
36850
37131
  this.config = config;
36851
37132
  this.isPopupOpened = !!this.config.defaultIsOpened;
36852
- this.search = "";
36853
37133
  this.displayType = "popup";
36854
37134
  this.extras = this.config.extras;
36855
37135
  this.vmStore = new ViewModelStoreImpl();
@@ -36857,15 +37137,15 @@ class ViewModelDevtools {
36857
37137
  this.expandedVmsSet = observable.set();
36858
37138
  this.isAllVmsExpandedByDefault = true;
36859
37139
  this.expandedVmItemsPaths = observable.set();
36860
- this.logoUrl = "https://js2me.github.io/mobx-view-model/logo.png";
37140
+ this.logoUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAACTFBMVEUvEQFCGQIuEQFAGALpZhjoZhlgJANAGALrZhiAMAR1KwNKHAJXIAM4FQFsKgWUNgL09PYvEQCgPARoJwNRHgL////U0dCoSRGSPgzFTQljKwl5MggjDQHm5ORWsU2JNATWWBC4SQxsMQysQAX6+vra2NbMUQtRJQxWLgu/SAXf3t62tLOyr6zCbTecSxmyQQLIxcDAvbqbmZaVeWeKc2WgRBB/OhCMOQu4QwPt7e/DuLCYz5NoOB2tqqdsaGVhW1NagUJtTjtkYCe8XyaRRRiHRRTi29XKyMfr0cG2p5yag3JfVElMR0GfcjBVMx/KWRnoYxXdXhRzQBB0OA3n6OrOzM2npKPLq5frs5TUpo2umounkHp3cm6mgWqBbGB8aVZzYVBXnktWT0eYY0BYZzOGazGmWi3IYid1QSOxTxZYSBQ6IBFFJA6lPAP/8uvR2s3qybbSwLW8q6G3nYigm4B8fHvxonW9kXWSjGhrgl5vZlpZqk+ZdE5cjE16fkzuh0q9eUetcUKAWEBpdj90bjg/PDfteDRZdTGwaS6sYCljVCl2TCflbCJZYSKlVSJfRh/dZB2OWR1nRhFfNRHO48zo1crjwamuv5SfqpSXtpGro4bEm4SMhoGFu3yQlHqFf3l5tHKtjHCFe2ageWLSimBnYFuue1hYlk1uikCCYT5XijqRWjdNPTLRcS5VVCC7WB3WYBtsTRYmHBNYPxLA3bzwv6LVsZ+4tJyQxYqHqHvVlnJzn2uegF39l1t1oEiKjzyAdjpeRDShaClCLR/JXT/FAAAABnRSTlP7uLgrtivDuZKUAAAElElEQVQ4yyWURXsbMRRFpyRF0vCM2a6ZmWPXYWqwTVKGMDRNUmZmZmZmZub+scrp3bzN+e65q8dMmQwBwqwKnLZTNrsVDW/Y8P3AgRJPKcK8ykHIMZOmMJMgAYAlimCwGQRsHdHpayOv2tsN4wJmIZTMEiSTGMgRQoCC/B5ZAYIu/fylIthsBlkAHCeZKaNChuE4yKkA2w2IAKtdhyNpWY76ZUwkFZkIUFmeNTPU6vUadSMOOg2htNWURRhRkwQBr9OlHXQNYTipbVHZ6tX5JiPGKgsgUBQWUgckMDX/woIFC+uwzEhcWz43J6ANVgEC+dpIrcJyEp8+MeR4k4hpz696PyTIdBMZ+jAv0RBqGXPUZkw1YT0AEtCFw/3NiVgiVbWMR5hCJnnZs5uB+PoeB4pk9OFaoM9adTVDXeXzGm7+9fI8AIwEsiwBV12BYIWZmCL6DIBGozGt8+6vCLmbOp8e0vF0uMKzrH7hnHii3GyGpgjiOcLr9QDubwlaFj3d9oD6GcIqQM1enVO25FobqD1x2IQIp/KAjPUtabCs7e/fHR7hGQAUDqKN4rz9fb/XrJrf76gzcuqexsY91xJaS2Pq7oNdNVaGZ4kElaWituXNaF50b3p8uoN451m02y6VaS1rkksXbwybGMJBSMBSSy5YPtqUs6zbse816HHn8jsuB91zGpNNi2/vyjAsYGmSWm080VblFj9WV589eylnSR7ZnHDnGrvvbNq2K8JgwALCJhtCFVsKjnwgftLnexsKxE4uHyiPB9ZV79s3uHuYwbSKA3e1oeYWn3GxO17lW34kblnke7F5SVCb8lUf6aibxSgYEAhS2mDfs1GuKqa98WLghltb5Tv+dX1obtdY5YBD384gpAIWbmkI9TR7Ve+awMrNe1eK1Hbw1voQbTr46PSrEsaOAVak+7F8d/OYz5sMiJc/uzQXB45Xfpo719L0tvrn85ISxmYFkFe7YmXdPaNecHSueO6cRrzV++TJDFF0rVt+pvVYEbIDs0RS2rKKLW2s0bgoJ7o077ZunT59hkajuXKm82XJBKRAs5R0l/VVnOWNxscB0eW63jt9AnJd6ch6JiCnwkJzyhJqqSjwDkdHXnSt3P7wPyQuNgkTkB1jOryrPth8v+Do7Oz8Vl+/6eD2CZ1LXKsXxtsp5EQAQph0B8vLl2FTpq7u6NEzxysfFiHRchsjq392CQN4IJkLa93xJd0Zkykbqct0vK6urOwtNlmWYgVFKQQh6yvsnl8fu0OLsD4dOXF6cO/eyu2910WNuGDnvfApqlPUwoYFq2bWr97D026driZ8uHVw8NeORz8uipoVK1wrdhZ1oHDvy8KF8zfqMUZpnW54uKbm8KFDf1pbWy+cn0lThFSWEG/WaOQF2SrbnbJ9Fo3H4xnJoKzDaNJTG90kQcIKCAAcLaVxGuz0B/k9HpssOJ0I20uKEGOGHCsIPAAoGnU6x52lfkPU7zfMNsjRUsFqmIAmmzmJIISBCpAgO6OCMC7T47H5BdqP2ikzlb5DxswBjAAhvFX2+2UrRgIyHDtwzGMoFexFZto/HbAJBdFwHOYAAAAASUVORK5CYII=";
36861
37141
  this.inputRef = createFocusableRef();
36862
37142
  this.scrollContentRef = createRef();
36863
37143
  this.scrollListRef = createRef();
36864
37144
  this.keyboardHandler = new KeyboardHandler2(this);
37145
+ this.searchEngine = new SearchEngine();
36865
37146
  makeObservable(this, {
36866
37147
  isPopupOpened: observable.ref,
36867
37148
  isAllVmsExpandedByDefault: observable,
36868
- search: observable.ref,
36869
37149
  projectVmStore: observable.ref,
36870
37150
  extras: observable.ref,
36871
37151
  setStore: action,
@@ -36874,11 +37154,8 @@ class ViewModelDevtools {
36874
37154
  handleExpandExtraPropertyClick: action,
36875
37155
  allVms: computed.struct,
36876
37156
  isActive: computed,
36877
- isInSearch: computed,
36878
37157
  vmTree: computed.struct,
36879
- rootVms: computed.struct,
36880
- handleSearchChange: action,
36881
- searchCache: computed
37158
+ rootVms: computed.struct
36882
37159
  });
36883
37160
  this.render();
36884
37161
  }
@@ -36893,9 +37170,10 @@ class ViewModelDevtools {
36893
37170
  inputRef;
36894
37171
  scrollContentRef;
36895
37172
  keyboardHandler;
36896
- search;
37173
+ searchEngine;
36897
37174
  expandedVmsSet;
36898
37175
  scrollListRef;
37176
+ autoscrollTimeout;
36899
37177
  get allVms() {
36900
37178
  const vmStore = this.projectVmStore;
36901
37179
  const viewModelsMap = vmStore?.viewModels ?? /* @__PURE__ */ new Map();
@@ -36909,9 +37187,6 @@ class ViewModelDevtools {
36909
37187
  return !vmParams || vmParams.parentViewModel == null;
36910
37188
  });
36911
37189
  }
36912
- get formattedSearch() {
36913
- return this.search.toLowerCase().trim();
36914
- }
36915
37190
  get vmTree() {
36916
37191
  const flattenTreeItems = [];
36917
37192
  const result = [];
@@ -36932,7 +37207,11 @@ class ViewModelDevtools {
36932
37207
  children: [],
36933
37208
  depth,
36934
37209
  key: `${displayName}-${vm.id}-${depth}`,
36935
- properties: getAllKeys(vm)
37210
+ properties: getAllKeys(vm),
37211
+ searchData: {
37212
+ name: displayName.toLowerCase().trim(),
37213
+ id: (vm.id || "").toLowerCase().trim()
37214
+ }
36936
37215
  };
36937
37216
  flattenTreeItems.push(treeItem);
36938
37217
  const collectedChildren = this.allVms.filter((maybeChildVm) => {
@@ -36953,101 +37232,27 @@ class ViewModelDevtools {
36953
37232
  get isActive() {
36954
37233
  return !!this.projectVmStore || Object.keys(this.extras || {}).length > 0;
36955
37234
  }
36956
- get isInSearch() {
36957
- return !!this.search.toLowerCase().trim();
37235
+ get containerId() {
37236
+ return this.config.containerId ?? "view-model-devtools";
36958
37237
  }
36959
- get searchCache() {
36960
- this.formattedSearch;
36961
- return /* @__PURE__ */ new Map();
37238
+ isExpanded(vmItem) {
37239
+ return this.expandedVmsSet.has(vmItem.key) || this.searchEngine.isActive || this.isAllVmsExpandedByDefault;
36962
37240
  }
36963
- getVMFittedInfo(vmTreeItem2) {
36964
- if (!this.isInSearch) {
36965
- return {
36966
- isFitted: true,
36967
- isFittedByName: true,
36968
- fittedProperties: []
36969
- };
36970
- }
36971
- if (this.searchCache.has(vmTreeItem2.key)) {
36972
- return this.searchCache.get(vmTreeItem2.key);
36973
- }
36974
- let isFittedByProperty = false;
36975
- const fittedProperties = [];
36976
- let isFittedByName = vmTreeItem2.displayName.toLowerCase().trim().includes(this.formattedSearch);
36977
- let isFittedByPropertyPath = checkPath(vmTreeItem2.vm, this.search);
36978
- if (!isFittedByPropertyPath && this.search.at(-1) === ".") {
36979
- isFittedByPropertyPath = checkPath(
36980
- vmTreeItem2.vm,
36981
- this.search.slice(0, -1)
36982
- );
36983
- }
36984
- let usedSearchForProperties = this.formattedSearch;
36985
- if (!isFittedByPropertyPath && this.search.split(".")[0].toLowerCase() === vmTreeItem2.displayName.toLowerCase()) {
36986
- const removedVmNameSearch = this.search.split(".").slice(1).join(".");
36987
- if (removedVmNameSearch) {
36988
- isFittedByPropertyPath = checkPath(vmTreeItem2.vm, removedVmNameSearch);
36989
- } else {
36990
- isFittedByPropertyPath = true;
36991
- isFittedByName = true;
36992
- }
36993
- usedSearchForProperties = removedVmNameSearch.toLowerCase().trim();
36994
- }
36995
- vmTreeItem2.properties.forEach((property2) => {
36996
- let isFitted2 = false;
36997
- if (isFittedByName) {
36998
- isFitted2 = true;
36999
- } else {
37000
- const formattedProperty = property2.toLowerCase().trim();
37001
- if (formattedProperty.includes(usedSearchForProperties)) {
37002
- isFitted2 = true;
37003
- } else if (usedSearchForProperties !== "." && `.${formattedProperty}`.includes(usedSearchForProperties)) {
37004
- isFitted2 = true;
37241
+ checkIsVmPathExpanded(vmItem, path) {
37242
+ const searchResult = this.searchEngine.getSearchResult({
37243
+ item: vmItem,
37244
+ type: "vm"
37245
+ });
37246
+ if (searchResult.fittedPath.length) {
37247
+ if (searchResult.isFittedById || searchResult.isFittedByName) {
37248
+ if (searchResult.fittedPath.slice(1).join(".").startsWith(path.toLowerCase())) {
37249
+ return true;
37005
37250
  }
37006
- }
37007
- if (isFittedByPropertyPath) {
37008
- const part = usedSearchForProperties.split(".")[0];
37009
- if (part === property2) {
37010
- isFitted2 = true;
37251
+ } else {
37252
+ if (searchResult.fittedPath.join(".").startsWith(path.toLowerCase())) {
37253
+ return true;
37011
37254
  }
37012
37255
  }
37013
- if (!isFittedByProperty) {
37014
- isFittedByProperty = isFitted2;
37015
- }
37016
- if (isFitted2) {
37017
- fittedProperties.push(property2);
37018
- }
37019
- });
37020
- const isFittedById = !!vmTreeItem2.vm.id && vmTreeItem2.vm.id.includes(this.formattedSearch);
37021
- const isFitted = isFittedByName || isFittedById || isFittedByProperty || isFittedByPropertyPath;
37022
- this.searchCache.set(vmTreeItem2.key, {
37023
- isFitted,
37024
- isFittedById,
37025
- isFittedByName,
37026
- isFittedByPropertyPath,
37027
- fittedProperties
37028
- });
37029
- return this.searchCache.get(vmTreeItem2.key);
37030
- }
37031
- checkIsPropertyFitted(vmItem, property2) {
37032
- if (!this.isInSearch) {
37033
- return true;
37034
- }
37035
- return this.getVMFittedInfo(vmItem).fittedProperties.includes(property2);
37036
- }
37037
- checkIsExtrasPropertyFitted(property2) {
37038
- if (!this.isInSearch) {
37039
- return true;
37040
- }
37041
- return this.formattedSearch.includes(property2.toLowerCase());
37042
- }
37043
- isExpanded(vmItem) {
37044
- return this.expandedVmsSet.has(vmItem.key) || this.isInSearch || this.isAllVmsExpandedByDefault;
37045
- }
37046
- checkIsVmPathExpanded(vmItem, path) {
37047
- const vmFittedInfo = this.getVMFittedInfo(vmItem);
37048
- const firstPathSegment = (path.startsWith(".") ? path.slice(1) : path).split(".")[0];
37049
- if (firstPathSegment && vmFittedInfo.fittedProperties.includes(firstPathSegment)) {
37050
- return this.expandedVmItemsPaths.has(`${vmItem.key}%%%${path}`);
37051
37256
  }
37052
37257
  return this.expandedVmItemsPaths.has(`${vmItem.key}%%%${path}`);
37053
37258
  }
@@ -37078,9 +37283,6 @@ class ViewModelDevtools {
37078
37283
  this.expandedVmsSet.add(vmItem.key);
37079
37284
  }
37080
37285
  }
37081
- handleSearchChange = (e) => {
37082
- this.search = e.target.value;
37083
- };
37084
37286
  getVmParams(vm) {
37085
37287
  if ("vmParams" in vm) {
37086
37288
  return vm.vmParams;
@@ -37093,16 +37295,48 @@ class ViewModelDevtools {
37093
37295
  setExtras(extras) {
37094
37296
  this.extras = extras;
37095
37297
  }
37298
+ init() {
37299
+ reaction(
37300
+ () => this.searchEngine.formattedSearchText,
37301
+ () => {
37302
+ clearTimeout(this.autoscrollTimeout);
37303
+ this.autoscrollTimeout = setTimeout(() => {
37304
+ if (!this.isActive) {
37305
+ this.scrollListRef.current?.scrollTo(0);
37306
+ return;
37307
+ }
37308
+ let maxLevel = 0;
37309
+ let lastFoundElementIndex;
37310
+ const htmlCollection = document.querySelectorAll(
37311
+ `#${this.containerId} [data-fitted]`
37312
+ );
37313
+ htmlCollection.forEach(
37314
+ (element, index) => {
37315
+ if (element.dataset.fitted === "true" && element.dataset.depth && element.dataset.depth.length >= maxLevel) {
37316
+ maxLevel = element.dataset.depth.length;
37317
+ lastFoundElementIndex = index;
37318
+ }
37319
+ }
37320
+ );
37321
+ if (lastFoundElementIndex !== void 0) {
37322
+ this.scrollListRef.current?.scrollToIndex(lastFoundElementIndex, {
37323
+ align: "end",
37324
+ smooth: true
37325
+ });
37326
+ }
37327
+ }, 200);
37328
+ }
37329
+ );
37330
+ }
37096
37331
  render() {
37097
- const containerId = this.config.containerId ?? "view-model-devtools";
37098
37332
  let container2 = document.querySelector(
37099
- `#${containerId}`
37333
+ `#${this.containerId}`
37100
37334
  );
37101
37335
  if (!container2) {
37102
37336
  container2 = document.createElement("div");
37103
37337
  container2.style = "display: contents;";
37104
37338
  container2.className = css.rootContainer;
37105
- container2.id = containerId;
37339
+ container2.id = this.containerId;
37106
37340
  if (document.body) {
37107
37341
  document.body.appendChild(container2);
37108
37342
  } else {
@@ -37110,6 +37344,7 @@ class ViewModelDevtools {
37110
37344
  document.body.appendChild(container2);
37111
37345
  });
37112
37346
  }
37347
+ this.init();
37113
37348
  }
37114
37349
  const root = clientExports.createRoot(container2);
37115
37350
  root.render(reactExports.createElement(DevtoolsClient, { payload: { devtools: this } }));