[{"data":1,"prerenderedAt":237},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fplugins\u002Fdirty-state":3},{"id":4,"title":5,"body":6,"description":227,"extension":228,"meta":229,"navigation":232,"path":233,"seo":234,"stem":235,"__hash__":236},"docs\u002Fdocs\u002Fplugins\u002Fdirty-state.md","Индикатор изменений",{"type":7,"value":8,"toc":222},"minimark",[9,14,27,139,152,156,159,163,166,211,218],[10,11,13],"h2",{"id":12},"подключение","Подключение",[15,16,17,18,22,23,26],"p",{},"Фабрика ",[19,20,21],"code",{},"createDirtyStatePlugin(onUpdate)",", id ",[19,24,25],{},"dirty-state",". Требуется pro и включённый features.plugins.",[28,29,34],"pre",{"className":30,"code":31,"language":32,"meta":33,"style":33},"language-ts shiki shiki-themes github-dark","import { ViText, createDirtyStatePlugin } from '@vitext-ru\u002Feditor';\nconst editor = new ViText('#editor', {\n  preset: 'pro', language: 'ru',\n  plugins: [createDirtyStatePlugin(dirty => console.log(dirty))]\n});\n","ts","",[19,35,36,59,88,106,133],{"__ignoreMap":33},[37,38,41,45,49,52,56],"span",{"class":39,"line":40},"line",1,[37,42,44],{"class":43},"snl16","import",[37,46,48],{"class":47},"s95oV"," { ViText, createDirtyStatePlugin } ",[37,50,51],{"class":43},"from",[37,53,55],{"class":54},"sU2Wk"," '@vitext-ru\u002Feditor'",[37,57,58],{"class":47},";\n",[37,60,62,65,69,72,75,79,82,85],{"class":39,"line":61},2,[37,63,64],{"class":43},"const",[37,66,68],{"class":67},"sDLfK"," editor",[37,70,71],{"class":43}," =",[37,73,74],{"class":43}," new",[37,76,78],{"class":77},"svObZ"," ViText",[37,80,81],{"class":47},"(",[37,83,84],{"class":54},"'#editor'",[37,86,87],{"class":47},", {\n",[37,89,91,94,97,100,103],{"class":39,"line":90},3,[37,92,93],{"class":47},"  preset: ",[37,95,96],{"class":54},"'pro'",[37,98,99],{"class":47},", language: ",[37,101,102],{"class":54},"'ru'",[37,104,105],{"class":47},",\n",[37,107,109,112,115,117,121,124,127,130],{"class":39,"line":108},4,[37,110,111],{"class":47},"  plugins: [",[37,113,114],{"class":77},"createDirtyStatePlugin",[37,116,81],{"class":47},[37,118,120],{"class":119},"s9osk","dirty",[37,122,123],{"class":43}," =>",[37,125,126],{"class":47}," console.",[37,128,129],{"class":77},"log",[37,131,132],{"class":47},"(dirty))]\n",[37,134,136],{"class":39,"line":135},5,[37,137,138],{"class":47},"});\n",[15,140,141,142,147,148,151],{},"ViText импортируется как в ",[143,144,146],"a",{"href":145},"\u002Fdocs\u002Finstallation\u002Fesm","ESM-инструкции","; для script используйте ",[19,149,150],{},"ViText.createDirtyStatePlugin",".",[10,153,155],{"id":154},"поведение","Поведение",[15,157,158],{},"Сразу вызывает callback(false), при событии change — callback(true). Это простой индикатор, не автосохранение и не сравнение с серверной версией. Встроенного «отметить сохранённым» у него нет; состояние успешной записи организует приложение.",[10,160,162],{"id":161},"управление-и-очистка","Управление и очистка",[15,164,165],{},"Ниже альтернативный способ подключения к существующему экземпляру. Не устанавливайте один id дважды.",[28,167,169],{"className":30,"code":168,"language":32,"meta":33,"style":33},"const remove = editor.usePlugin(createDirtyStatePlugin(dirty => console.log(dirty)));\nremove();\n",[19,170,171,203],{"__ignoreMap":33},[37,172,173,175,178,180,183,186,188,190,192,194,196,198,200],{"class":39,"line":40},[37,174,64],{"class":43},[37,176,177],{"class":67}," remove",[37,179,71],{"class":43},[37,181,182],{"class":47}," editor.",[37,184,185],{"class":77},"usePlugin",[37,187,81],{"class":47},[37,189,114],{"class":77},[37,191,81],{"class":47},[37,193,120],{"class":119},[37,195,123],{"class":43},[37,197,126],{"class":47},[37,199,129],{"class":77},[37,201,202],{"class":47},"(dirty)));\n",[37,204,205,208],{"class":39,"line":61},[37,206,207],{"class":77},"remove",[37,209,210],{"class":47},"();\n",[15,212,213,214,151],{},"removePlugin('dirty-state') также удаляет расширение. Destroy автоматически освобождает его ресурсы. Подписки и UI-вклады отзываются; документ сохраняется. ",[143,215,217],{"href":216},"\u002Fdocs\u002Fplugins\u002Foverview","Контракт плагинов",[219,220,221],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":33,"searchDepth":61,"depth":61,"links":223},[224,225,226],{"id":12,"depth":61,"text":13},{"id":154,"depth":61,"text":155},{"id":161,"depth":61,"text":162},"Подключение, поведение и ограничения расширения индикатор изменений.","md",{"group":230,"order":231},"Плагины",32,true,"\u002Fdocs\u002Fplugins\u002Fdirty-state",{"title":5,"description":227},"docs\u002Fplugins\u002Fdirty-state","ozETGmNdODjdTOwEB0o-DGCVqsKABRHDUqF653nj0QE",1792670389278]