[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fapi-reference":3,"page-\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fapi-reference-ru":717,"surroundings\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fapi-reference-ru":3522},[4],{"title":5,"ignore":6,"path":7,"stem":8,"children":9,"page":26},"Документация",true,"\u002Fru\u002Fdocs","ru\u002F01.docs",[10,27,708],{"title":11,"path":12,"stem":13,"children":14,"page":-1},"Русский","\u002Fru\u002Fdocs\u002Fwelcome","ru\u002F01.docs\u002F01.welcome\u002F01.index",[15,17],{"title":16,"path":12,"stem":13},"Welcome",{"title":18,"path":19,"stem":20,"children":21,"page":26},"Get Started","\u002Fru\u002Fdocs\u002Fwelcome\u002Fget-started","ru\u002F01.docs\u002F01.welcome\u002F01.get-started",[22],{"title":23,"path":24,"stem":25},"Установка","\u002Fru\u002Fdocs\u002Fwelcome\u002Fget-started\u002Finstallation","ru\u002F01.docs\u002F01.welcome\u002F01.get-started\u002F02.installation",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"Основные инструменты","\u002Fru\u002Fdocs\u002Fcore","ru\u002F01.docs\u002F02.core",[32,57,69,77,112,146,176,190,199,229,243,272,281,289,298,316,324,344,376,413,422,430,439,447,458,479,503,532,560,587,614,651,679],{"title":33,"path":34,"stem":35,"children":36,"page":26},"MD5","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5","ru\u002F01.docs\u002F02.core\u002F01.md5",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"Введение","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F01.md5\u002F01.introduction",{"title":42,"path":43,"stem":44},"Базовое Использование","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F01.md5\u002F02.basic-usage",{"title":46,"path":47,"stem":48},"Расширенные функции","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F01.md5\u002F03.advanced-features",{"title":50,"path":51,"stem":52},"Соображения Безопасности","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F01.md5\u002F04.security-considerations",{"title":54,"path":55,"stem":56},"Справочник API","\u002Fru\u002Fdocs\u002Fcore\u002Fmd5\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F01.md5\u002F05.api-reference",{"title":58,"path":59,"stem":60,"children":61,"page":26},"UUID","\u002Fru\u002Fdocs\u002Fcore\u002Fuuid","ru\u002F01.docs\u002F02.core\u002F02.uuid",[62,65],{"title":38,"path":63,"stem":64},"\u002Fru\u002Fdocs\u002Fcore\u002Fuuid\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F02.uuid\u002F01.introduction",{"title":66,"path":67,"stem":68},"API","\u002Fru\u002Fdocs\u002Fcore\u002Fuuid\u002Fapi","ru\u002F01.docs\u002F02.core\u002F02.uuid\u002F02.api",{"title":70,"path":71,"stem":72,"children":73,"page":26},"Генератор QR-кодов","\u002Fru\u002Fdocs\u002Fcore\u002Fqr-code-generator","ru\u002F01.docs\u002F02.core\u002F03.qr-code-generator",[74],{"title":70,"path":75,"stem":76},"\u002Fru\u002Fdocs\u002Fcore\u002Fqr-code-generator\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F03.qr-code-generator\u002F01.introduction",{"title":78,"path":79,"stem":80,"children":81,"page":26},"Image Cropper","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper","ru\u002F01.docs\u002F02.core\u002F04.image-cropper",[82,85,89,93,97,100,104,108],{"title":38,"path":83,"stem":84},"\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F0.introduction",{"title":86,"path":87,"stem":88},"Базовое использование","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F02.basic-usage",{"title":90,"path":91,"stem":92},"Расширенные возможности","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F03.advanced-features",{"title":94,"path":95,"stem":96},"Вопросы безопасности","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F04.security-considerations",{"title":54,"path":98,"stem":99},"\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F05.api-reference",{"title":101,"path":102,"stem":103},"Примеры","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F06.examples",{"title":105,"path":106,"stem":107},"Часто задаваемые вопросы","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F07.faq",{"title":109,"path":110,"stem":111},"Связанные инструменты","\u002Fru\u002Fdocs\u002Fcore\u002Fimage-cropper\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F08.related-tools",{"title":113,"path":114,"stem":115,"children":116,"page":26},"Json To Csv","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv",[117,121,124,127,131,135,139,142],{"title":118,"path":119,"stem":120},"Introduction","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F0.introduction",{"title":86,"path":122,"stem":123},"\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F02.basic-usage",{"title":90,"path":125,"stem":126},"\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F03.advanced-features",{"title":128,"path":129,"stem":130},"Соображения безопасности","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F04.security-considerations",{"title":132,"path":133,"stem":134},"Справочник по API","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F05.api-reference",{"title":136,"path":137,"stem":138},"Primery","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F06.examples",{"title":105,"path":140,"stem":141},"\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F07.faq",{"title":143,"path":144,"stem":145},"Похожие инструменты","\u002Fru\u002Fdocs\u002Fcore\u002Fjson-to-csv\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F05.json-to-csv\u002F08.related-tools",{"title":147,"path":148,"stem":149,"children":150,"page":26},"Open Graph Meta Generator","\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator",[151,154,158,161,164,167,170,173],{"title":118,"path":152,"stem":153},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F0.introduction",{"title":155,"path":156,"stem":157},"Руководство по базовому использованию","\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F02.basic-usage",{"title":90,"path":159,"stem":160},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F03.advanced-features",{"title":128,"path":162,"stem":163},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F04.security-considerations",{"title":132,"path":165,"stem":166},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F05.api-reference",{"title":101,"path":168,"stem":169},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F06.examples",{"title":105,"path":171,"stem":172},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F07.faq",{"title":109,"path":174,"stem":175},"\u002Fru\u002Fdocs\u002Fcore\u002Fopen-graph-meta-generator\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F05.open-graph-meta-generator\u002F08.related-tools",{"title":177,"path":178,"stem":179,"children":180,"page":26},"Scientific Calculator","\u002Fru\u002Fdocs\u002Fcore\u002Fscientific-calculator","ru\u002F01.docs\u002F02.core\u002F05.scientific-calculator",[181,184,187],{"title":118,"path":182,"stem":183},"\u002Fru\u002Fdocs\u002Fcore\u002Fscientific-calculator\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.scientific-calculator\u002F0.introduction",{"title":86,"path":185,"stem":186},"\u002Fru\u002Fdocs\u002Fcore\u002Fscientific-calculator\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F05.scientific-calculator\u002F02.basic-usage",{"title":90,"path":188,"stem":189},"\u002Fru\u002Fdocs\u002Fcore\u002Fscientific-calculator\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F05.scientific-calculator\u002F03.advanced-features",{"title":191,"path":192,"stem":193,"children":194,"page":26},"Sha Calculator","\u002Fru\u002Fdocs\u002Fcore\u002Fsha-calculator","ru\u002F01.docs\u002F02.core\u002F05.sha-calculator",[195],{"title":196,"path":197,"stem":198},"Калькулятор SHA‑хэша","\u002Fru\u002Fdocs\u002Fcore\u002Fsha-calculator\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.sha-calculator\u002F0.introduction",{"title":200,"path":201,"stem":202,"children":203,"page":26},"Sql Prettify","\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify",[204,207,211,214,217,220,223,226],{"title":118,"path":205,"stem":206},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F0.introduction",{"title":208,"path":209,"stem":210},"Основное использование","\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F02.basic-usage",{"title":90,"path":212,"stem":213},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F03.advanced-features",{"title":94,"path":215,"stem":216},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F04.security-considerations",{"title":54,"path":218,"stem":219},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F05.api-reference",{"title":101,"path":221,"stem":222},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F06.examples",{"title":105,"path":224,"stem":225},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F07.faq",{"title":109,"path":227,"stem":228},"\u002Fru\u002Fdocs\u002Fcore\u002Fsql-prettify\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F05.sql-prettify\u002F08.related-tools",{"title":230,"path":231,"stem":232,"children":233,"page":26},"Yaml To Toml","\u002Fru\u002Fdocs\u002Fcore\u002Fyaml-to-toml","ru\u002F01.docs\u002F02.core\u002F05.yaml-to-toml",[234,237,240],{"title":118,"path":235,"stem":236},"\u002Fru\u002Fdocs\u002Fcore\u002Fyaml-to-toml\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F05.yaml-to-toml\u002F0.introduction",{"title":208,"path":238,"stem":239},"\u002Fru\u002Fdocs\u002Fcore\u002Fyaml-to-toml\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F05.yaml-to-toml\u002F02.basic-usage",{"title":90,"path":241,"stem":242},"\u002Fru\u002Fdocs\u002Fcore\u002Fyaml-to-toml\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F05.yaml-to-toml\u002F03.advanced-features",{"title":244,"path":245,"stem":246,"children":247,"page":26},"Beyond Compare","\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare",[248,251,254,257,260,263,266,269],{"title":118,"path":249,"stem":250},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F0.introduction",{"title":86,"path":252,"stem":253},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F02.basic-usage",{"title":90,"path":255,"stem":256},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F03.advanced-features",{"title":94,"path":258,"stem":259},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F04.security-considerations",{"title":132,"path":261,"stem":262},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F05.api-reference",{"title":101,"path":264,"stem":265},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F06.examples",{"title":105,"path":267,"stem":268},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F07.faq",{"title":109,"path":270,"stem":271},"\u002Fru\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F08.related-tools",{"title":273,"path":274,"stem":275,"children":276,"page":26},"Clock","\u002Fru\u002Fdocs\u002Fcore\u002Fclock","ru\u002F01.docs\u002F02.core\u002F06.clock",[277],{"title":278,"path":279,"stem":280},"Clock Tool","\u002Fru\u002Fdocs\u002Fcore\u002Fclock\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F06.clock\u002F0.introduction",{"title":282,"path":283,"stem":284,"children":285,"page":26},"Group Chat","\u002Fru\u002Fdocs\u002Fcore\u002Fgroup-chat","ru\u002F01.docs\u002F02.core\u002F06.group-chat",[286],{"title":118,"path":287,"stem":288},"\u002Fru\u002Fdocs\u002Fcore\u002Fgroup-chat\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F06.group-chat\u002F0.introduction",{"title":290,"path":291,"stem":292,"children":293,"page":26},"Hmac Calculator","\u002Fru\u002Fdocs\u002Fcore\u002Fhmac-calculator","ru\u002F01.docs\u002F02.core\u002F06.hmac-calculator",[294],{"title":295,"path":296,"stem":297},"Калькулятор HMAC","\u002Fru\u002Fdocs\u002Fcore\u002Fhmac-calculator\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F06.hmac-calculator\u002F0.introduction",{"title":299,"path":300,"stem":301,"children":302,"page":26},"Jwt Parser","\u002Fru\u002Fdocs\u002Fcore\u002Fjwt-parser","ru\u002F01.docs\u002F02.core\u002F06.jwt-parser",[303,306,309,313],{"title":118,"path":304,"stem":305},"\u002Fru\u002Fdocs\u002Fcore\u002Fjwt-parser\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F06.jwt-parser\u002F0.introduction",{"title":42,"path":307,"stem":308},"\u002Fru\u002Fdocs\u002Fcore\u002Fjwt-parser\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F06.jwt-parser\u002F02.basic-usage",{"title":310,"path":311,"stem":312},"Продвинутые возможности","\u002Fru\u002Fdocs\u002Fcore\u002Fjwt-parser\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F06.jwt-parser\u002F03.advanced-features",{"title":94,"path":314,"stem":315},"\u002Fru\u002Fdocs\u002Fcore\u002Fjwt-parser\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F06.jwt-parser\u002F04.security-considerations",{"title":317,"path":318,"stem":319,"children":320,"page":26},"Screenshot Tool","\u002Fru\u002Fdocs\u002Fcore\u002Fscreenshot-tool","ru\u002F01.docs\u002F02.core\u002F07.screenshot-tool",[321],{"title":118,"path":322,"stem":323},"\u002Fru\u002Fdocs\u002Fcore\u002Fscreenshot-tool\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F07.screenshot-tool\u002F0.introduction",{"title":325,"path":326,"stem":327,"children":328,"page":26},"Area Converter","\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter","ru\u002F01.docs\u002F02.core\u002F08.area-converter",[329,332,335,338,341],{"title":118,"path":330,"stem":331},"\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F08.area-converter\u002F0.introduction",{"title":86,"path":333,"stem":334},"\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F08.area-converter\u002F02.basic-usage",{"title":46,"path":336,"stem":337},"\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F08.area-converter\u002F03.advanced-features",{"title":101,"path":339,"stem":340},"\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F08.area-converter\u002F04.examples",{"title":105,"path":342,"stem":343},"\u002Fru\u002Fdocs\u002Fcore\u002Farea-converter\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F08.area-converter\u002F05.faq",{"title":345,"path":346,"stem":347,"children":348,"page":26},"Camera Recorder","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder",[349,352,356,360,364,368,372],{"title":118,"path":350,"stem":351},"\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F0.introduction",{"title":353,"path":354,"stem":355},"Basic Usage","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F02.basic-usage",{"title":357,"path":358,"stem":359},"Advanced Features","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F03.advanced-features",{"title":361,"path":362,"stem":363},"Examples","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F04.examples",{"title":365,"path":366,"stem":367},"Frequently Asked Questions","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F05.faq",{"title":369,"path":370,"stem":371},"Related Tools","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F06.related-tools",{"title":373,"path":374,"stem":375},"Security Considerations","\u002Fru\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F07.security-considerations",{"title":377,"path":378,"stem":379,"children":380,"page":26},"Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas",[381,385,389,393,397,401,405,409],{"title":382,"path":383,"stem":384},"Введение - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F0.introduction",{"title":386,"path":387,"stem":388},"Базовое использование - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F02.basic-usage",{"title":390,"path":391,"stem":392},"Расширенные возможности - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F03.advanced-features",{"title":394,"path":395,"stem":396},"Безопасность - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F04.security-considerations",{"title":398,"path":399,"stem":400},"Справка по API - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F05.api-reference",{"title":402,"path":403,"stem":404},"Примеры - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F06.examples",{"title":406,"path":407,"stem":408},"FAQ - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F07.faq",{"title":410,"path":411,"stem":412},"Смежные инструменты - Cursor Canvas","\u002Fru\u002Fdocs\u002Fcore\u002Fcursor-canvas\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F09.cursor-canvas\u002F08.related-tools",{"title":414,"path":415,"stem":416,"children":417,"page":26},"Keycode Info","\u002Fru\u002Fdocs\u002Fcore\u002Fkeycode-info","ru\u002F01.docs\u002F02.core\u002F13.keycode-info",[418],{"title":419,"path":420,"stem":421},"Информация о Кодеке Клавиши - Введение","\u002Fru\u002Fdocs\u002Fcore\u002Fkeycode-info\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F13.keycode-info\u002F0.introduction",{"title":423,"path":424,"stem":425,"children":426,"page":26},"Xml To Json","\u002Fru\u002Fdocs\u002Fcore\u002Fxml-to-json","ru\u002F01.docs\u002F02.core\u002F16.xml-to-json",[427],{"title":118,"path":428,"stem":429},"\u002Fru\u002Fdocs\u002Fcore\u002Fxml-to-json\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F16.xml-to-json\u002F0.introduction",{"title":431,"path":432,"stem":433,"children":434,"page":26},"Text Replacer","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-replacer","ru\u002F01.docs\u002F02.core\u002F19.text-replacer",[435],{"title":436,"path":437,"stem":438},"Инструмент замены текста - Введение","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-replacer\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F19.text-replacer\u002F01.introduction",{"title":440,"path":441,"stem":442,"children":443,"page":26},"Temperature Converter","\u002Fru\u002Fdocs\u002Fcore\u002Ftemperature-converter","ru\u002F01.docs\u002F02.core\u002F20.temperature-converter",[444],{"title":118,"path":445,"stem":446},"\u002Fru\u002Fdocs\u002Fcore\u002Ftemperature-converter\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F20.temperature-converter\u002F0.introduction",{"title":448,"path":449,"stem":450,"children":451,"page":26},"Black Wallpaper","\u002Fru\u002Fdocs\u002Fcore\u002Fblack-wallpaper","ru\u002F01.docs\u002F02.core\u002F23.black-wallpaper",[452,455],{"title":118,"path":453,"stem":454},"\u002Fru\u002Fdocs\u002Fcore\u002Fblack-wallpaper\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F23.black-wallpaper\u002F0.introduction",{"title":86,"path":456,"stem":457},"\u002Fru\u002Fdocs\u002Fcore\u002Fblack-wallpaper\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F23.black-wallpaper\u002F02.basic-usage",{"title":459,"path":460,"stem":461,"children":462,"page":26},"Text Diff","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-diff","ru\u002F01.docs\u002F02.core\u002F23.text-diff",[463,467,471,475],{"title":464,"path":465,"stem":466},"Инструмент Text Diff - Введение","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F23.text-diff\u002F0.introduction",{"title":468,"path":469,"stem":470},"Базовое использование - Инструмент Text Diff","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F23.text-diff\u002F02.basic-usage",{"title":472,"path":473,"stem":474},"Расширенные функции - Инструмент Text Diff","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F23.text-diff\u002F03.advanced-features",{"title":476,"path":477,"stem":478},"Примеры - Инструмент Text Diff","\u002Fru\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F23.text-diff\u002F04.examples",{"title":480,"path":481,"stem":482,"children":483,"page":26},"M3u8 Player","\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player",[484,487,490,493,496,500],{"title":118,"path":485,"stem":486},"\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F0.introduction",{"title":208,"path":488,"stem":489},"\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F02.basic-usage",{"title":46,"path":491,"stem":492},"\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F03.advanced-features",{"title":54,"path":494,"stem":495},"\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F05.api-reference",{"title":497,"path":498,"stem":499},"Примеры кода","\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F06.examples",{"title":105,"path":501,"stem":502},"\u002Fru\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F07.faq",{"title":504,"path":505,"stem":506,"children":507,"page":26},"Screen Dead Pixel Detector","\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector",[508,512,515,518,522,525,529],{"title":509,"path":510,"stem":511},"Детектор битых пикселей экрана","\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F0.introduction",{"title":86,"path":513,"stem":514},"\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F02.basic-usage",{"title":90,"path":516,"stem":517},"\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F03.advanced-features",{"title":519,"path":520,"stem":521},"Безопасность и конфиденциальность","\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F04.security-considerations",{"title":101,"path":523,"stem":524},"\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F06.examples",{"title":526,"path":527,"stem":528},"FAQ","\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F07.faq",{"title":109,"path":530,"stem":531},"\u002Fru\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F08.related-tools",{"title":533,"path":534,"stem":535,"children":536,"page":26},"Survey Tool","\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool","ru\u002F01.docs\u002F02.core\u002F31.survey-tool",[537,541,544,547,551,554,557],{"title":538,"path":539,"stem":540},"Инструмент опросов","\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F0.introduction",{"title":86,"path":542,"stem":543},"\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F02.basic-usage",{"title":46,"path":545,"stem":546},"\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F03.advanced-features",{"title":548,"path":549,"stem":550},"Безопасность","\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F04.security-considerations",{"title":101,"path":552,"stem":553},"\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F06.examples",{"title":526,"path":555,"stem":556},"\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F07.faq",{"title":109,"path":558,"stem":559},"\u002Fru\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F08.related-tools",{"title":561,"path":562,"stem":563,"children":564,"page":26},"Vue Office","\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office","ru\u002F01.docs\u002F02.core\u002F32.vue-office",[565,569,572,575,578,581,584],{"title":566,"path":567,"stem":568},"Просмотр документов Vue Office","\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F0.introduction",{"title":86,"path":570,"stem":571},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F02.basic-usage",{"title":90,"path":573,"stem":574},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F03.advanced-features",{"title":94,"path":576,"stem":577},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F04.security-considerations",{"title":101,"path":579,"stem":580},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F06.examples",{"title":526,"path":582,"stem":583},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F07.faq",{"title":109,"path":585,"stem":586},"\u002Fru\u002Fdocs\u002Fcore\u002Fvue-office\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F32.vue-office\u002F08.related-tools",{"title":588,"path":589,"stem":590,"children":591,"page":26},"Event Calendar","\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar","ru\u002F01.docs\u002F02.core\u002F33.event-calendar",[592,596,599,602,605,608,611],{"title":593,"path":594,"stem":595},"Календарь событий","\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F0.introduction",{"title":86,"path":597,"stem":598},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F02.basic-usage",{"title":46,"path":600,"stem":601},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F03.advanced-features",{"title":548,"path":603,"stem":604},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F04.security-considerations",{"title":101,"path":606,"stem":607},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F06.examples",{"title":526,"path":609,"stem":610},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F07.faq",{"title":109,"path":612,"stem":613},"\u002Fru\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F08.related-tools",{"title":615,"path":616,"stem":617,"children":618,"page":26},"Html Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview","ru\u002F01.docs\u002F02.core\u002F35.html-preview",[619,623,627,631,635,639,643,647],{"title":620,"path":621,"stem":622},"Introduction - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F0.introduction",{"title":624,"path":625,"stem":626},"Basic usage - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F02.basic-usage",{"title":628,"path":629,"stem":630},"Advanced features - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F03.advanced-features",{"title":632,"path":633,"stem":634},"Security considerations - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F04.security-considerations",{"title":636,"path":637,"stem":638},"API reference - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F05.api-reference",{"title":640,"path":641,"stem":642},"Examples - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F06.examples",{"title":644,"path":645,"stem":646},"FAQ - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F07.faq",{"title":648,"path":649,"stem":650},"Related tools - HTML Preview","\u002Fru\u002Fdocs\u002Fcore\u002Fhtml-preview\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F35.html-preview\u002F08.related-tools",{"title":652,"path":653,"stem":654,"children":655,"page":26},"Генератор визиток","\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card","ru\u002F01.docs\u002F02.core\u002F36.business-card",[656,659,662,666,669,672,676],{"title":652,"path":657,"stem":658},"\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F0.introduction",{"title":208,"path":660,"stem":661},"\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F02.basic-usage",{"title":663,"path":664,"stem":665},"Дополнительно","\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F03.advanced-features",{"title":548,"path":667,"stem":668},"\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F04.security-considerations",{"title":101,"path":670,"stem":671},"\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Fexamples","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F06.examples",{"title":673,"path":674,"stem":675},"Вопросы","\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Ffaq","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F07.faq",{"title":143,"path":677,"stem":678},"\u002Fru\u002Fdocs\u002Fcore\u002Fbusiness-card\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002F36.business-card\u002F08.related-tools",{"title":680,"path":681,"stem":682,"children":683,"page":26},"Base64","\u002Fru\u002Fdocs\u002Fcore\u002Fbase64","ru\u002F01.docs\u002F02.core\u002Fbase64",[684,687,690,693,696,699,702,705],{"title":118,"path":685,"stem":686},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fintroduction","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F0.introduction",{"title":208,"path":688,"stem":689},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fbasic-usage","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F02.basic-usage",{"title":46,"path":691,"stem":692},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fadvanced-features","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F03.advanced-features",{"title":128,"path":694,"stem":695},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fsecurity-considerations","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F04.security-considerations",{"title":54,"path":697,"stem":698},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fapi-reference","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F05.api-reference",{"title":101,"path":700,"stem":701},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Fexamples","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F06.examples",{"title":105,"path":703,"stem":704},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Ffaq","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F07.faq",{"title":109,"path":706,"stem":707},"\u002Fru\u002Fdocs\u002Fcore\u002Fbase64\u002Frelated-tools","ru\u002F01.docs\u002F02.core\u002Fbase64\u002F08.related-tools",{"title":709,"path":710,"stem":711,"children":712,"page":26},"Troubleshooting","\u002Fru\u002Fdocs\u002Ftroubleshooting","ru\u002F01.docs\u002F06.troubleshooting",[713],{"title":714,"path":715,"stem":716},"Часто Задаваемые Вопросы","\u002Fru\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues","ru\u002F01.docs\u002F06.troubleshooting\u002F01.common-issues",{"id":718,"title":54,"body":719,"description":729,"extension":3517,"meta":3518,"navigation":6,"path":98,"seo":3519,"sitemap":3520,"stem":99,"__hash__":3521},"content_ru\u002Fru\u002F01.docs\u002F02.core\u002F04.image-cropper\u002F05.api-reference.md",{"type":720,"value":721,"toc":3486},"minimark",[722,726,730,735,740,743,842,847,971,975,1036,1040,1043,1193,1196,1283,1287,1379,1383,1387,1542,1546,1638,1642,1646,2035,2039,2327,2331,2604,2608,2612,2647,2651,2722,2726,2730,2897,2901,3043,3047,3051,3189,3193,3482],[723,724,54],"h1",{"id":725},"справочник-api",[727,728,729],"p",{},"Технический справочник для разработчиков, которые хотят интегрировать или расширить функциональность Image Cropper (Обрезка изображений).",[731,732,734],"h2",{"id":733},"основные-компоненты","Основные компоненты",[736,737,739],"h3",{"id":738},"компонент-imagecropper","Компонент ImageCropper",[727,741,742],{},"Главный компонент Vue, предоставляющий интерфейс для обрезки изображений.",[744,745,750],"pre",{"className":746,"code":747,"language":748,"meta":749,"style":749},"language-vue shiki shiki-themes github-light github-light dark-plus","\u003Ctemplate>\n  \u003CImageCropper\n    :aspect-ratio=\"aspectRatio\"\n    :output-format=\"format\"\n    :quality=\"quality\"\n    @crop-complete=\"handleCropComplete\"\n  \u002F>\n\u003C\u002Ftemplate>\n","vue","",[751,752,753,769,778,793,804,815,826,832],"code",{"__ignoreMap":749},[754,755,758,762,766],"span",{"class":756,"line":757},"line",1,[754,759,761],{"class":760},"skpqk","\u003C",[754,763,765],{"class":764},"sq2bZ","template",[754,767,768],{"class":760},">\n",[754,770,772,775],{"class":756,"line":771},2,[754,773,774],{"class":760},"  \u003C",[754,776,777],{"class":764},"ImageCropper\n",[754,779,781,785,789],{"class":756,"line":780},3,[754,782,784],{"class":783},"shCbc","    :aspect-ratio",[754,786,788],{"class":787},"svVIm","=",[754,790,792],{"class":791},"sjj1j","\"aspectRatio\"\n",[754,794,796,799,801],{"class":756,"line":795},4,[754,797,798],{"class":783},"    :output-format",[754,800,788],{"class":787},[754,802,803],{"class":791},"\"format\"\n",[754,805,807,810,812],{"class":756,"line":806},5,[754,808,809],{"class":783},"    :quality",[754,811,788],{"class":787},[754,813,814],{"class":791},"\"quality\"\n",[754,816,818,821,823],{"class":756,"line":817},6,[754,819,820],{"class":783},"    @crop-complete",[754,822,788],{"class":787},[754,824,825],{"class":791},"\"handleCropComplete\"\n",[754,827,829],{"class":756,"line":828},7,[754,830,831],{"class":760},"  \u002F>\n",[754,833,835,838,840],{"class":756,"line":834},8,[754,836,837],{"class":760},"\u003C\u002F",[754,839,765],{"class":764},[754,841,768],{"class":760},[843,844,846],"h4",{"id":845},"свойства-props","Свойства (Props)",[848,849,850,869],"table",{},[851,852,853],"thead",{},[854,855,856,860,863,866],"tr",{},[857,858,859],"th",{},"Свойство",[857,861,862],{},"Тип",[857,864,865],{},"По умолчанию",[857,867,868],{},"Описание",[870,871,872,893,913,933,953],"tbody",{},[854,873,874,880,885,890],{},[875,876,877],"td",{},[751,878,879],{},"aspectRatio",[875,881,882],{},[751,883,884],{},"number | 'free'",[875,886,887],{},[751,888,889],{},"'free'",[875,891,892],{},"Ограничение соотношения сторон",[854,894,895,900,905,910],{},[875,896,897],{},[751,898,899],{},"outputFormat",[875,901,902],{},[751,903,904],{},"'png' | 'jpeg' | 'webp'",[875,906,907],{},[751,908,909],{},"'png'",[875,911,912],{},"Формат выходного изображения",[854,914,915,920,925,930],{},[875,916,917],{},[751,918,919],{},"quality",[875,921,922],{},[751,923,924],{},"number[]",[875,926,927],{},[751,928,929],{},"[85]",[875,931,932],{},"Качество JPEG (10-100)",[854,934,935,940,945,950],{},[875,936,937],{},[751,938,939],{},"maxWidth",[875,941,942],{},[751,943,944],{},"number",[875,946,947],{},[751,948,949],{},"undefined",[875,951,952],{},"Максимальная ширина на выходе",[854,954,955,960,964,968],{},[875,956,957],{},[751,958,959],{},"maxHeight",[875,961,962],{},[751,963,944],{},[875,965,966],{},[751,967,949],{},[875,969,970],{},"Максимальная высота на выходе",[843,972,974],{"id":973},"события-events","События (Events)",[848,976,977,989],{},[851,978,979],{},[854,980,981,984,987],{},[857,982,983],{},"Событие",[857,985,986],{},"Полезная нагрузка",[857,988,868],{},[870,990,991,1006,1021],{},[854,992,993,998,1003],{},[875,994,995],{},[751,996,997],{},"crop-complete",[875,999,1000],{},[751,1001,1002],{},"CropResult",[875,1004,1005],{},"Срабатывает при завершении обрезки",[854,1007,1008,1013,1018],{},[875,1009,1010],{},[751,1011,1012],{},"image-loaded",[875,1014,1015],{},[751,1016,1017],{},"ImageInfo",[875,1019,1020],{},"Срабатывает при загрузке исходного изображения",[854,1022,1023,1028,1033],{},[875,1024,1025],{},[751,1026,1027],{},"error",[875,1029,1030],{},[751,1031,1032],{},"Error",[875,1034,1035],{},"Срабатывает при возникновении ошибки",[731,1037,1039],{"id":1038},"определения-типов","Определения типов",[736,1041,1002],{"id":1042},"cropresult",[744,1044,1048],{"className":1045,"code":1046,"language":1047,"meta":749,"style":749},"language-typescript shiki shiki-themes github-light github-light dark-plus","interface CropResult {\n  url: string; \u002F\u002F URL Blob-объекта обрезанного изображения\n  blob: Blob; \u002F\u002F Данные blob изображения\n  canvas: HTMLCanvasElement; \u002F\u002F Элемент Canvas\n  info: {\n    width: number; \u002F\u002F Выходная ширина в пикселях\n    height: number; \u002F\u002F Выходная высота в пикселях\n    size: number; \u002F\u002F Размер файла в байтах\n    format: string; \u002F\u002F Выходной формат\n  };\n}\n","typescript",[751,1049,1050,1063,1084,1099,1114,1123,1138,1152,1166,1181,1187],{"__ignoreMap":749},[754,1051,1052,1056,1060],{"class":756,"line":757},[754,1053,1055],{"class":1054},"sGiLm","interface",[754,1057,1059],{"class":1058},"s_0E6"," CropResult",[754,1061,1062],{"class":787}," {\n",[754,1064,1065,1069,1073,1077,1080],{"class":756,"line":771},[754,1066,1068],{"class":1067},"szM7h","  url",[754,1070,1072],{"class":1071},"sGmsN",":",[754,1074,1076],{"class":1075},"s2-Xe"," string",[754,1078,1079],{"class":787},"; ",[754,1081,1083],{"class":1082},"sLEZ0","\u002F\u002F URL Blob-объекта обрезанного изображения\n",[754,1085,1086,1089,1091,1094,1096],{"class":756,"line":780},[754,1087,1088],{"class":1067},"  blob",[754,1090,1072],{"class":1071},[754,1092,1093],{"class":1058}," Blob",[754,1095,1079],{"class":787},[754,1097,1098],{"class":1082},"\u002F\u002F Данные blob изображения\n",[754,1100,1101,1104,1106,1109,1111],{"class":756,"line":795},[754,1102,1103],{"class":1067},"  canvas",[754,1105,1072],{"class":1071},[754,1107,1108],{"class":1058}," HTMLCanvasElement",[754,1110,1079],{"class":787},[754,1112,1113],{"class":1082},"\u002F\u002F Элемент Canvas\n",[754,1115,1116,1119,1121],{"class":756,"line":806},[754,1117,1118],{"class":1067},"  info",[754,1120,1072],{"class":1071},[754,1122,1062],{"class":787},[754,1124,1125,1128,1130,1133,1135],{"class":756,"line":817},[754,1126,1127],{"class":1067},"    width",[754,1129,1072],{"class":1071},[754,1131,1132],{"class":1075}," number",[754,1134,1079],{"class":787},[754,1136,1137],{"class":1082},"\u002F\u002F Выходная ширина в пикселях\n",[754,1139,1140,1143,1145,1147,1149],{"class":756,"line":828},[754,1141,1142],{"class":1067},"    height",[754,1144,1072],{"class":1071},[754,1146,1132],{"class":1075},[754,1148,1079],{"class":787},[754,1150,1151],{"class":1082},"\u002F\u002F Выходная высота в пикселях\n",[754,1153,1154,1157,1159,1161,1163],{"class":756,"line":834},[754,1155,1156],{"class":1067},"    size",[754,1158,1072],{"class":1071},[754,1160,1132],{"class":1075},[754,1162,1079],{"class":787},[754,1164,1165],{"class":1082},"\u002F\u002F Размер файла в байтах\n",[754,1167,1169,1172,1174,1176,1178],{"class":756,"line":1168},9,[754,1170,1171],{"class":1067},"    format",[754,1173,1072],{"class":1071},[754,1175,1076],{"class":1075},[754,1177,1079],{"class":787},[754,1179,1180],{"class":1082},"\u002F\u002F Выходной формат\n",[754,1182,1184],{"class":756,"line":1183},10,[754,1185,1186],{"class":787},"  };\n",[754,1188,1190],{"class":756,"line":1189},11,[754,1191,1192],{"class":787},"}\n",[736,1194,1017],{"id":1195},"imageinfo",[744,1197,1199],{"className":1045,"code":1198,"language":1047,"meta":749,"style":749},"interface ImageInfo {\n  width: number; \u002F\u002F Исходная ширина\n  height: number; \u002F\u002F Исходная высота\n  size: number; \u002F\u002F Размер файла в байтах\n  type: string; \u002F\u002F MIME-тип\n  name: string; \u002F\u002F Исходное имя файла\n}\n",[751,1200,1201,1210,1224,1238,1251,1265,1279],{"__ignoreMap":749},[754,1202,1203,1205,1208],{"class":756,"line":757},[754,1204,1055],{"class":1054},[754,1206,1207],{"class":1058}," ImageInfo",[754,1209,1062],{"class":787},[754,1211,1212,1215,1217,1219,1221],{"class":756,"line":771},[754,1213,1214],{"class":1067},"  width",[754,1216,1072],{"class":1071},[754,1218,1132],{"class":1075},[754,1220,1079],{"class":787},[754,1222,1223],{"class":1082},"\u002F\u002F Исходная ширина\n",[754,1225,1226,1229,1231,1233,1235],{"class":756,"line":780},[754,1227,1228],{"class":1067},"  height",[754,1230,1072],{"class":1071},[754,1232,1132],{"class":1075},[754,1234,1079],{"class":787},[754,1236,1237],{"class":1082},"\u002F\u002F Исходная высота\n",[754,1239,1240,1243,1245,1247,1249],{"class":756,"line":795},[754,1241,1242],{"class":1067},"  size",[754,1244,1072],{"class":1071},[754,1246,1132],{"class":1075},[754,1248,1079],{"class":787},[754,1250,1165],{"class":1082},[754,1252,1253,1256,1258,1260,1262],{"class":756,"line":806},[754,1254,1255],{"class":1067},"  type",[754,1257,1072],{"class":1071},[754,1259,1076],{"class":1075},[754,1261,1079],{"class":787},[754,1263,1264],{"class":1082},"\u002F\u002F MIME-тип\n",[754,1266,1267,1270,1272,1274,1276],{"class":756,"line":817},[754,1268,1269],{"class":1067},"  name",[754,1271,1072],{"class":1071},[754,1273,1076],{"class":1075},[754,1275,1079],{"class":787},[754,1277,1278],{"class":1082},"\u002F\u002F Исходное имя файла\n",[754,1280,1281],{"class":756,"line":828},[754,1282,1192],{"class":787},[736,1284,1286],{"id":1285},"cropsettings","CropSettings",[744,1288,1290],{"className":1045,"code":1289,"language":1047,"meta":749,"style":749},"interface CropSettings {\n  aspectRatio: number | \"free\";\n  outputFormat: \"png\" | \"jpeg\" | \"webp\";\n  quality: number;\n  outputWidth?: number;\n  outputHeight?: number;\n}\n",[751,1291,1292,1301,1319,1341,1352,1364,1375],{"__ignoreMap":749},[754,1293,1294,1296,1299],{"class":756,"line":757},[754,1295,1055],{"class":1054},[754,1297,1298],{"class":1058}," CropSettings",[754,1300,1062],{"class":787},[754,1302,1303,1306,1308,1310,1313,1316],{"class":756,"line":771},[754,1304,1305],{"class":1067},"  aspectRatio",[754,1307,1072],{"class":1071},[754,1309,1132],{"class":1075},[754,1311,1312],{"class":1071}," |",[754,1314,1315],{"class":791}," \"free\"",[754,1317,1318],{"class":787},";\n",[754,1320,1321,1324,1326,1329,1331,1334,1336,1339],{"class":756,"line":780},[754,1322,1323],{"class":1067},"  outputFormat",[754,1325,1072],{"class":1071},[754,1327,1328],{"class":791}," \"png\"",[754,1330,1312],{"class":1071},[754,1332,1333],{"class":791}," \"jpeg\"",[754,1335,1312],{"class":1071},[754,1337,1338],{"class":791}," \"webp\"",[754,1340,1318],{"class":787},[754,1342,1343,1346,1348,1350],{"class":756,"line":795},[754,1344,1345],{"class":1067},"  quality",[754,1347,1072],{"class":1071},[754,1349,1132],{"class":1075},[754,1351,1318],{"class":787},[754,1353,1354,1357,1360,1362],{"class":756,"line":806},[754,1355,1356],{"class":1067},"  outputWidth",[754,1358,1359],{"class":1071},"?:",[754,1361,1132],{"class":1075},[754,1363,1318],{"class":787},[754,1365,1366,1369,1371,1373],{"class":756,"line":817},[754,1367,1368],{"class":1067},"  outputHeight",[754,1370,1359],{"class":1071},[754,1372,1132],{"class":1075},[754,1374,1318],{"class":787},[754,1376,1377],{"class":756,"line":828},[754,1378,1192],{"class":787},[731,1380,1382],{"id":1381},"интеграция-с-cropperjs","Интеграция с Cropper.js",[736,1384,1386],{"id":1385},"параметры-конфигурации","Параметры конфигурации",[744,1388,1392],{"className":1389,"code":1390,"language":1391,"meta":749,"style":749},"language-javascript shiki shiki-themes github-light github-light dark-plus","const cropperOptions = {\n  aspectRatio: NaN, \u002F\u002F Свободное соотношение сторон\n  viewMode: 1, \u002F\u002F Ограничить область обрезки холстом\n  responsive: true, \u002F\u002F Адаптивный cropper\n  restore: false, \u002F\u002F Не восстанавливать после изменения размера\n  guides: true, \u002F\u002F Показывать пунктирные линии\n  center: true, \u002F\u002F Показывать центральный индикатор\n  highlight: false, \u002F\u002F Не выделять область обрезки\n  cropBoxMovable: true, \u002F\u002F Разрешить перемещение области обрезки\n  cropBoxResizable: true, \u002F\u002F Разрешить изменение размера области обрезки\n  toggleDragModeOnDblclick: false, \u002F\u002F Отключить двойной клик\n};\n","javascript",[751,1393,1394,1408,1424,1438,1451,1464,1476,1488,1500,1512,1524,1536],{"__ignoreMap":749},[754,1395,1396,1399,1403,1406],{"class":756,"line":757},[754,1397,1398],{"class":1054},"const",[754,1400,1402],{"class":1401},"sdRU0"," cropperOptions",[754,1404,1405],{"class":1071}," =",[754,1407,1062],{"class":787},[754,1409,1410,1414,1418,1421],{"class":756,"line":771},[754,1411,1413],{"class":1412},"szTj3","  aspectRatio:",[754,1415,1417],{"class":1416},"sLV08"," NaN",[754,1419,1420],{"class":787},", ",[754,1422,1423],{"class":1082},"\u002F\u002F Свободное соотношение сторон\n",[754,1425,1426,1429,1433,1435],{"class":756,"line":780},[754,1427,1428],{"class":1412},"  viewMode:",[754,1430,1432],{"class":1431},"sewGd"," 1",[754,1434,1420],{"class":787},[754,1436,1437],{"class":1082},"\u002F\u002F Ограничить область обрезки холстом\n",[754,1439,1440,1443,1446,1448],{"class":756,"line":795},[754,1441,1442],{"class":1412},"  responsive:",[754,1444,1445],{"class":1416}," true",[754,1447,1420],{"class":787},[754,1449,1450],{"class":1082},"\u002F\u002F Адаптивный cropper\n",[754,1452,1453,1456,1459,1461],{"class":756,"line":806},[754,1454,1455],{"class":1412},"  restore:",[754,1457,1458],{"class":1416}," false",[754,1460,1420],{"class":787},[754,1462,1463],{"class":1082},"\u002F\u002F Не восстанавливать после изменения размера\n",[754,1465,1466,1469,1471,1473],{"class":756,"line":817},[754,1467,1468],{"class":1412},"  guides:",[754,1470,1445],{"class":1416},[754,1472,1420],{"class":787},[754,1474,1475],{"class":1082},"\u002F\u002F Показывать пунктирные линии\n",[754,1477,1478,1481,1483,1485],{"class":756,"line":828},[754,1479,1480],{"class":1412},"  center:",[754,1482,1445],{"class":1416},[754,1484,1420],{"class":787},[754,1486,1487],{"class":1082},"\u002F\u002F Показывать центральный индикатор\n",[754,1489,1490,1493,1495,1497],{"class":756,"line":834},[754,1491,1492],{"class":1412},"  highlight:",[754,1494,1458],{"class":1416},[754,1496,1420],{"class":787},[754,1498,1499],{"class":1082},"\u002F\u002F Не выделять область обрезки\n",[754,1501,1502,1505,1507,1509],{"class":756,"line":1168},[754,1503,1504],{"class":1412},"  cropBoxMovable:",[754,1506,1445],{"class":1416},[754,1508,1420],{"class":787},[754,1510,1511],{"class":1082},"\u002F\u002F Разрешить перемещение области обрезки\n",[754,1513,1514,1517,1519,1521],{"class":756,"line":1183},[754,1515,1516],{"class":1412},"  cropBoxResizable:",[754,1518,1445],{"class":1416},[754,1520,1420],{"class":787},[754,1522,1523],{"class":1082},"\u002F\u002F Разрешить изменение размера области обрезки\n",[754,1525,1526,1529,1531,1533],{"class":756,"line":1189},[754,1527,1528],{"class":1412},"  toggleDragModeOnDblclick:",[754,1530,1458],{"class":1416},[754,1532,1420],{"class":787},[754,1534,1535],{"class":1082},"\u002F\u002F Отключить двойной клик\n",[754,1537,1539],{"class":756,"line":1538},12,[754,1540,1541],{"class":787},"};\n",[736,1543,1545],{"id":1544},"методы","Методы",[848,1547,1548,1563],{},[851,1549,1550],{},[854,1551,1552,1555,1558,1561],{},[857,1553,1554],{},"Метод",[857,1556,1557],{},"Параметры",[857,1559,1560],{},"Возвращает",[857,1562,868],{},[870,1564,1565,1585,1605,1622],{},[854,1566,1567,1572,1577,1582],{},[875,1568,1569],{},[751,1570,1571],{},"getCroppedCanvas()",[875,1573,1574],{},[751,1575,1576],{},"options?",[875,1578,1579],{},[751,1580,1581],{},"HTMLCanvasElement",[875,1583,1584],{},"Получить обрезанную область как холст",[854,1586,1587,1592,1597,1602],{},[875,1588,1589],{},[751,1590,1591],{},"setAspectRatio()",[875,1593,1594],{},[751,1595,1596],{},"ratio: number",[875,1598,1599],{},[751,1600,1601],{},"void",[875,1603,1604],{},"Изменить соотношение сторон",[854,1606,1607,1612,1615,1619],{},[875,1608,1609],{},[751,1610,1611],{},"reset()",[875,1613,1614],{},"-",[875,1616,1617],{},[751,1618,1601],{},[875,1620,1621],{},"Сбросить в исходное состояние",[854,1623,1624,1629,1631,1635],{},[875,1625,1626],{},[751,1627,1628],{},"destroy()",[875,1630,1614],{},[875,1632,1633],{},[751,1634,1601],{},[875,1636,1637],{},"Уничтожить экземпляр cropper",[731,1639,1641],{"id":1640},"утилиты","Утилиты",[736,1643,1645],{"id":1644},"работа-с-файлами","Работа с файлами",[744,1647,1649],{"className":1045,"code":1648,"language":1047,"meta":749,"style":749},"\u002F\u002F Загрузка изображения из файла\nfunction loadImageFromFile(file: File): Promise\u003Cstring> {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.onload = (e) => resolve(e.target?.result as string);\n    reader.onerror = reject;\n    reader.readAsDataURL(file);\n  });\n}\n\n\u002F\u002F Скачивание blob как файла\nfunction downloadBlob(blob: Blob, filename: string): void {\n  const url = URL.createObjectURL(blob);\n  const link = document.createElement(\"a\");\n  link.href = url;\n  link.download = filename;\n  document.body.appendChild(link);\n  link.click();\n  document.body.removeChild(link);\n  URL.revokeObjectURL(url);\n}\n",[751,1650,1651,1656,1692,1722,1740,1789,1805,1820,1825,1829,1834,1839,1873,1898,1923,1940,1957,1980,1992,2012,2030],{"__ignoreMap":749},[754,1652,1653],{"class":756,"line":757},[754,1654,1655],{"class":1082},"\u002F\u002F Загрузка изображения из файла\n",[754,1657,1658,1661,1665,1668,1671,1673,1676,1679,1681,1684,1686,1689],{"class":756,"line":771},[754,1659,1660],{"class":1054},"function",[754,1662,1664],{"class":1663},"sqMzV"," loadImageFromFile",[754,1666,1667],{"class":787},"(",[754,1669,1670],{"class":1067},"file",[754,1672,1072],{"class":1071},[754,1674,1675],{"class":1058}," File",[754,1677,1678],{"class":787},")",[754,1680,1072],{"class":1071},[754,1682,1683],{"class":1058}," Promise",[754,1685,761],{"class":787},[754,1687,1688],{"class":1075},"string",[754,1690,1691],{"class":787},"> {\n",[754,1693,1694,1698,1701,1703,1706,1709,1711,1714,1717,1720],{"class":756,"line":780},[754,1695,1697],{"class":1696},"srAhW","  return",[754,1699,1700],{"class":1054}," new",[754,1702,1683],{"class":1075},[754,1704,1705],{"class":787},"((",[754,1707,1708],{"class":1067},"resolve",[754,1710,1420],{"class":787},[754,1712,1713],{"class":1067},"reject",[754,1715,1716],{"class":787},") ",[754,1718,1719],{"class":1054},"=>",[754,1721,1062],{"class":787},[754,1723,1724,1727,1730,1732,1734,1737],{"class":756,"line":795},[754,1725,1726],{"class":1054},"    const",[754,1728,1729],{"class":1401}," reader",[754,1731,1405],{"class":1071},[754,1733,1700],{"class":1054},[754,1735,1736],{"class":1663}," FileReader",[754,1738,1739],{"class":787},"();\n",[754,1741,1742,1745,1748,1751,1753,1756,1759,1761,1763,1766,1768,1770,1772,1775,1778,1781,1784,1786],{"class":756,"line":806},[754,1743,1744],{"class":1412},"    reader",[754,1746,1747],{"class":787},".",[754,1749,1750],{"class":1663},"onload",[754,1752,1405],{"class":1071},[754,1754,1755],{"class":787}," (",[754,1757,1758],{"class":1067},"e",[754,1760,1716],{"class":787},[754,1762,1719],{"class":1054},[754,1764,1765],{"class":1663}," resolve",[754,1767,1667],{"class":787},[754,1769,1758],{"class":1412},[754,1771,1747],{"class":787},[754,1773,1774],{"class":1412},"target",[754,1776,1777],{"class":787},"?.",[754,1779,1780],{"class":1412},"result",[754,1782,1783],{"class":1696}," as",[754,1785,1076],{"class":1075},[754,1787,1788],{"class":787},");\n",[754,1790,1791,1793,1795,1798,1800,1803],{"class":756,"line":817},[754,1792,1744],{"class":1412},[754,1794,1747],{"class":787},[754,1796,1797],{"class":1412},"onerror",[754,1799,1405],{"class":1071},[754,1801,1802],{"class":1412}," reject",[754,1804,1318],{"class":787},[754,1806,1807,1809,1811,1814,1816,1818],{"class":756,"line":828},[754,1808,1744],{"class":1412},[754,1810,1747],{"class":787},[754,1812,1813],{"class":1663},"readAsDataURL",[754,1815,1667],{"class":787},[754,1817,1670],{"class":1412},[754,1819,1788],{"class":787},[754,1821,1822],{"class":756,"line":834},[754,1823,1824],{"class":787},"  });\n",[754,1826,1827],{"class":756,"line":1168},[754,1828,1192],{"class":787},[754,1830,1831],{"class":756,"line":1183},[754,1832,1833],{"emptyLinePlaceholder":6},"\n",[754,1835,1836],{"class":756,"line":1189},[754,1837,1838],{"class":1082},"\u002F\u002F Скачивание blob как файла\n",[754,1840,1841,1843,1846,1848,1851,1853,1855,1857,1860,1862,1864,1866,1868,1871],{"class":756,"line":1538},[754,1842,1660],{"class":1054},[754,1844,1845],{"class":1663}," downloadBlob",[754,1847,1667],{"class":787},[754,1849,1850],{"class":1067},"blob",[754,1852,1072],{"class":1071},[754,1854,1093],{"class":1058},[754,1856,1420],{"class":787},[754,1858,1859],{"class":1067},"filename",[754,1861,1072],{"class":1071},[754,1863,1076],{"class":1075},[754,1865,1678],{"class":787},[754,1867,1072],{"class":1071},[754,1869,1870],{"class":1075}," void",[754,1872,1062],{"class":787},[754,1874,1876,1879,1882,1884,1887,1889,1892,1894,1896],{"class":756,"line":1875},13,[754,1877,1878],{"class":1054},"  const",[754,1880,1881],{"class":1401}," url",[754,1883,1405],{"class":1071},[754,1885,1886],{"class":1401}," URL",[754,1888,1747],{"class":787},[754,1890,1891],{"class":1663},"createObjectURL",[754,1893,1667],{"class":787},[754,1895,1850],{"class":1412},[754,1897,1788],{"class":787},[754,1899,1901,1903,1906,1908,1911,1913,1916,1918,1921],{"class":756,"line":1900},14,[754,1902,1878],{"class":1054},[754,1904,1905],{"class":1401}," link",[754,1907,1405],{"class":1071},[754,1909,1910],{"class":1412}," document",[754,1912,1747],{"class":787},[754,1914,1915],{"class":1663},"createElement",[754,1917,1667],{"class":787},[754,1919,1920],{"class":791},"\"a\"",[754,1922,1788],{"class":787},[754,1924,1926,1929,1931,1934,1936,1938],{"class":756,"line":1925},15,[754,1927,1928],{"class":1412},"  link",[754,1930,1747],{"class":787},[754,1932,1933],{"class":1412},"href",[754,1935,1405],{"class":1071},[754,1937,1881],{"class":1412},[754,1939,1318],{"class":787},[754,1941,1943,1945,1947,1950,1952,1955],{"class":756,"line":1942},16,[754,1944,1928],{"class":1412},[754,1946,1747],{"class":787},[754,1948,1949],{"class":1412},"download",[754,1951,1405],{"class":1071},[754,1953,1954],{"class":1412}," filename",[754,1956,1318],{"class":787},[754,1958,1960,1963,1965,1968,1970,1973,1975,1978],{"class":756,"line":1959},17,[754,1961,1962],{"class":1412},"  document",[754,1964,1747],{"class":787},[754,1966,1967],{"class":1412},"body",[754,1969,1747],{"class":787},[754,1971,1972],{"class":1663},"appendChild",[754,1974,1667],{"class":787},[754,1976,1977],{"class":1412},"link",[754,1979,1788],{"class":787},[754,1981,1983,1985,1987,1990],{"class":756,"line":1982},18,[754,1984,1928],{"class":1412},[754,1986,1747],{"class":787},[754,1988,1989],{"class":1663},"click",[754,1991,1739],{"class":787},[754,1993,1995,1997,1999,2001,2003,2006,2008,2010],{"class":756,"line":1994},19,[754,1996,1962],{"class":1412},[754,1998,1747],{"class":787},[754,2000,1967],{"class":1412},[754,2002,1747],{"class":787},[754,2004,2005],{"class":1663},"removeChild",[754,2007,1667],{"class":787},[754,2009,1977],{"class":1412},[754,2011,1788],{"class":787},[754,2013,2015,2018,2020,2023,2025,2028],{"class":756,"line":2014},20,[754,2016,2017],{"class":1401},"  URL",[754,2019,1747],{"class":787},[754,2021,2022],{"class":1663},"revokeObjectURL",[754,2024,1667],{"class":787},[754,2026,2027],{"class":1412},"url",[754,2029,1788],{"class":787},[754,2031,2033],{"class":756,"line":2032},21,[754,2034,1192],{"class":787},[736,2036,2038],{"id":2037},"обработка-изображений","Обработка изображений",[744,2040,2042],{"className":1045,"code":2041,"language":1047,"meta":749,"style":749},"\u002F\u002F Конвертация холста в blob\nfunction canvasToBlob(canvas: HTMLCanvasElement, format: string, quality?: number): Promise\u003CBlob> {\n  return new Promise((resolve) => {\n    canvas.toBlob(resolve, `image\u002F${format}`, quality);\n  });\n}\n\n\u002F\u002F Получение размеров изображения\nfunction getImageDimensions(src: string): Promise\u003C{ width: number; height: number }> {\n  return new Promise((resolve) => {\n    const img = new Image();\n    img.onload = () =>\n      resolve({\n        width: img.naturalWidth,\n        height: img.naturalHeight,\n      });\n    img.src = src;\n  });\n}\n",[751,2043,2044,2049,2095,2113,2150,2154,2158,2162,2167,2211,2229,2245,2262,2270,2285,2299,2304,2319,2323],{"__ignoreMap":749},[754,2045,2046],{"class":756,"line":757},[754,2047,2048],{"class":1082},"\u002F\u002F Конвертация холста в blob\n",[754,2050,2051,2053,2056,2058,2061,2063,2065,2067,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2093],{"class":756,"line":771},[754,2052,1660],{"class":1054},[754,2054,2055],{"class":1663}," canvasToBlob",[754,2057,1667],{"class":787},[754,2059,2060],{"class":1067},"canvas",[754,2062,1072],{"class":1071},[754,2064,1108],{"class":1058},[754,2066,1420],{"class":787},[754,2068,2069],{"class":1067},"format",[754,2071,1072],{"class":1071},[754,2073,1076],{"class":1075},[754,2075,1420],{"class":787},[754,2077,919],{"class":1067},[754,2079,1359],{"class":1071},[754,2081,1132],{"class":1075},[754,2083,1678],{"class":787},[754,2085,1072],{"class":1071},[754,2087,1683],{"class":1058},[754,2089,761],{"class":787},[754,2091,2092],{"class":1058},"Blob",[754,2094,1691],{"class":787},[754,2096,2097,2099,2101,2103,2105,2107,2109,2111],{"class":756,"line":780},[754,2098,1697],{"class":1696},[754,2100,1700],{"class":1054},[754,2102,1683],{"class":1075},[754,2104,1705],{"class":787},[754,2106,1708],{"class":1067},[754,2108,1716],{"class":787},[754,2110,1719],{"class":1054},[754,2112,1062],{"class":787},[754,2114,2115,2118,2120,2123,2125,2127,2129,2132,2136,2138,2141,2144,2146,2148],{"class":756,"line":795},[754,2116,2117],{"class":1412},"    canvas",[754,2119,1747],{"class":787},[754,2121,2122],{"class":1663},"toBlob",[754,2124,1667],{"class":787},[754,2126,1708],{"class":1412},[754,2128,1420],{"class":787},[754,2130,2131],{"class":791},"`image\u002F",[754,2133,2135],{"class":2134},"s7eq4","${",[754,2137,2069],{"class":1412},[754,2139,2140],{"class":2134},"}",[754,2142,2143],{"class":791},"`",[754,2145,1420],{"class":787},[754,2147,919],{"class":1412},[754,2149,1788],{"class":787},[754,2151,2152],{"class":756,"line":806},[754,2153,1824],{"class":787},[754,2155,2156],{"class":756,"line":817},[754,2157,1192],{"class":787},[754,2159,2160],{"class":756,"line":828},[754,2161,1833],{"emptyLinePlaceholder":6},[754,2163,2164],{"class":756,"line":834},[754,2165,2166],{"class":1082},"\u002F\u002F Получение размеров изображения\n",[754,2168,2169,2171,2174,2176,2179,2181,2183,2185,2187,2189,2192,2195,2197,2199,2201,2204,2206,2208],{"class":756,"line":1168},[754,2170,1660],{"class":1054},[754,2172,2173],{"class":1663}," getImageDimensions",[754,2175,1667],{"class":787},[754,2177,2178],{"class":1067},"src",[754,2180,1072],{"class":1071},[754,2182,1076],{"class":1075},[754,2184,1678],{"class":787},[754,2186,1072],{"class":1071},[754,2188,1683],{"class":1058},[754,2190,2191],{"class":787},"\u003C{ ",[754,2193,2194],{"class":1067},"width",[754,2196,1072],{"class":1071},[754,2198,1132],{"class":1075},[754,2200,1079],{"class":787},[754,2202,2203],{"class":1067},"height",[754,2205,1072],{"class":1071},[754,2207,1132],{"class":1075},[754,2209,2210],{"class":787}," }> {\n",[754,2212,2213,2215,2217,2219,2221,2223,2225,2227],{"class":756,"line":1183},[754,2214,1697],{"class":1696},[754,2216,1700],{"class":1054},[754,2218,1683],{"class":1075},[754,2220,1705],{"class":787},[754,2222,1708],{"class":1067},[754,2224,1716],{"class":787},[754,2226,1719],{"class":1054},[754,2228,1062],{"class":787},[754,2230,2231,2233,2236,2238,2240,2243],{"class":756,"line":1189},[754,2232,1726],{"class":1054},[754,2234,2235],{"class":1401}," img",[754,2237,1405],{"class":1071},[754,2239,1700],{"class":1054},[754,2241,2242],{"class":1663}," Image",[754,2244,1739],{"class":787},[754,2246,2247,2250,2252,2254,2256,2259],{"class":756,"line":1538},[754,2248,2249],{"class":1412},"    img",[754,2251,1747],{"class":787},[754,2253,1750],{"class":1663},[754,2255,1405],{"class":1071},[754,2257,2258],{"class":787}," () ",[754,2260,2261],{"class":1054},"=>\n",[754,2263,2264,2267],{"class":756,"line":1875},[754,2265,2266],{"class":1663},"      resolve",[754,2268,2269],{"class":787},"({\n",[754,2271,2272,2275,2277,2279,2282],{"class":756,"line":1900},[754,2273,2274],{"class":1412},"        width:",[754,2276,2235],{"class":1412},[754,2278,1747],{"class":787},[754,2280,2281],{"class":1412},"naturalWidth",[754,2283,2284],{"class":787},",\n",[754,2286,2287,2290,2292,2294,2297],{"class":756,"line":1925},[754,2288,2289],{"class":1412},"        height:",[754,2291,2235],{"class":1412},[754,2293,1747],{"class":787},[754,2295,2296],{"class":1412},"naturalHeight",[754,2298,2284],{"class":787},[754,2300,2301],{"class":756,"line":1942},[754,2302,2303],{"class":787},"      });\n",[754,2305,2306,2308,2310,2312,2314,2317],{"class":756,"line":1959},[754,2307,2249],{"class":1412},[754,2309,1747],{"class":787},[754,2311,2178],{"class":1412},[754,2313,1405],{"class":1071},[754,2315,2316],{"class":1412}," src",[754,2318,1318],{"class":787},[754,2320,2321],{"class":756,"line":1982},[754,2322,1824],{"class":787},[754,2324,2325],{"class":756,"line":1994},[754,2326,1192],{"class":787},[736,2328,2330],{"id":2329},"конвертация-форматов","Конвертация форматов",[744,2332,2334],{"className":1045,"code":2333,"language":1047,"meta":749,"style":749},"\u002F\u002F Форматирование размера файла для отображения\nfunction formatFileSize(bytes: number): string {\n  const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n  if (bytes === 0) return \"0 Bytes\";\n  const i = Math.floor(Math.log(bytes) \u002F Math.log(1024));\n  return Math.round((bytes \u002F Math.pow(1024, i)) * 100) \u002F 100 + \" \" + sizes[i];\n}\n\n\u002F\u002F Валидация файла изображения\nfunction isValidImageFile(file: File): boolean {\n  return file.type.startsWith(\"image\u002F\");\n}\n",[751,2335,2336,2341,2365,2398,2423,2473,2539,2543,2547,2552,2576,2600],{"__ignoreMap":749},[754,2337,2338],{"class":756,"line":757},[754,2339,2340],{"class":1082},"\u002F\u002F Форматирование размера файла для отображения\n",[754,2342,2343,2345,2348,2350,2353,2355,2357,2359,2361,2363],{"class":756,"line":771},[754,2344,1660],{"class":1054},[754,2346,2347],{"class":1663}," formatFileSize",[754,2349,1667],{"class":787},[754,2351,2352],{"class":1067},"bytes",[754,2354,1072],{"class":1071},[754,2356,1132],{"class":1075},[754,2358,1678],{"class":787},[754,2360,1072],{"class":1071},[754,2362,1076],{"class":1075},[754,2364,1062],{"class":787},[754,2366,2367,2369,2372,2374,2377,2380,2382,2385,2387,2390,2392,2395],{"class":756,"line":780},[754,2368,1878],{"class":1054},[754,2370,2371],{"class":1401}," sizes",[754,2373,1405],{"class":1071},[754,2375,2376],{"class":787}," [",[754,2378,2379],{"class":791},"\"Bytes\"",[754,2381,1420],{"class":787},[754,2383,2384],{"class":791},"\"KB\"",[754,2386,1420],{"class":787},[754,2388,2389],{"class":791},"\"MB\"",[754,2391,1420],{"class":787},[754,2393,2394],{"class":791},"\"GB\"",[754,2396,2397],{"class":787},"];\n",[754,2399,2400,2403,2405,2407,2410,2413,2415,2418,2421],{"class":756,"line":795},[754,2401,2402],{"class":1696},"  if",[754,2404,1755],{"class":787},[754,2406,2352],{"class":1412},[754,2408,2409],{"class":1071}," ===",[754,2411,2412],{"class":1431}," 0",[754,2414,1716],{"class":787},[754,2416,2417],{"class":1696},"return",[754,2419,2420],{"class":791}," \"0 Bytes\"",[754,2422,1318],{"class":787},[754,2424,2425,2427,2430,2432,2435,2437,2440,2442,2445,2447,2450,2452,2454,2456,2459,2461,2463,2465,2467,2470],{"class":756,"line":806},[754,2426,1878],{"class":1054},[754,2428,2429],{"class":1401}," i",[754,2431,1405],{"class":1071},[754,2433,2434],{"class":1412}," Math",[754,2436,1747],{"class":787},[754,2438,2439],{"class":1663},"floor",[754,2441,1667],{"class":787},[754,2443,2444],{"class":1412},"Math",[754,2446,1747],{"class":787},[754,2448,2449],{"class":1663},"log",[754,2451,1667],{"class":787},[754,2453,2352],{"class":1412},[754,2455,1716],{"class":787},[754,2457,2458],{"class":1071},"\u002F",[754,2460,2434],{"class":1412},[754,2462,1747],{"class":787},[754,2464,2449],{"class":1663},[754,2466,1667],{"class":787},[754,2468,2469],{"class":1431},"1024",[754,2471,2472],{"class":787},"));\n",[754,2474,2475,2477,2479,2481,2484,2486,2488,2491,2493,2495,2498,2500,2502,2504,2507,2510,2513,2516,2518,2520,2522,2525,2528,2530,2532,2535,2537],{"class":756,"line":817},[754,2476,1697],{"class":1696},[754,2478,2434],{"class":1412},[754,2480,1747],{"class":787},[754,2482,2483],{"class":1663},"round",[754,2485,1705],{"class":787},[754,2487,2352],{"class":1412},[754,2489,2490],{"class":1071}," \u002F",[754,2492,2434],{"class":1412},[754,2494,1747],{"class":787},[754,2496,2497],{"class":1663},"pow",[754,2499,1667],{"class":787},[754,2501,2469],{"class":1431},[754,2503,1420],{"class":787},[754,2505,2506],{"class":1412},"i",[754,2508,2509],{"class":787},")) ",[754,2511,2512],{"class":1071},"*",[754,2514,2515],{"class":1431}," 100",[754,2517,1716],{"class":787},[754,2519,2458],{"class":1071},[754,2521,2515],{"class":1431},[754,2523,2524],{"class":1071}," +",[754,2526,2527],{"class":791}," \" \"",[754,2529,2524],{"class":1071},[754,2531,2371],{"class":1412},[754,2533,2534],{"class":787},"[",[754,2536,2506],{"class":1412},[754,2538,2397],{"class":787},[754,2540,2541],{"class":756,"line":828},[754,2542,1192],{"class":787},[754,2544,2545],{"class":756,"line":834},[754,2546,1833],{"emptyLinePlaceholder":6},[754,2548,2549],{"class":756,"line":1168},[754,2550,2551],{"class":1082},"\u002F\u002F Валидация файла изображения\n",[754,2553,2554,2556,2559,2561,2563,2565,2567,2569,2571,2574],{"class":756,"line":1183},[754,2555,1660],{"class":1054},[754,2557,2558],{"class":1663}," isValidImageFile",[754,2560,1667],{"class":787},[754,2562,1670],{"class":1067},[754,2564,1072],{"class":1071},[754,2566,1675],{"class":1058},[754,2568,1678],{"class":787},[754,2570,1072],{"class":1071},[754,2572,2573],{"class":1075}," boolean",[754,2575,1062],{"class":787},[754,2577,2578,2580,2583,2585,2588,2590,2593,2595,2598],{"class":756,"line":1189},[754,2579,1697],{"class":1696},[754,2581,2582],{"class":1412}," file",[754,2584,1747],{"class":787},[754,2586,2587],{"class":1412},"type",[754,2589,1747],{"class":787},[754,2591,2592],{"class":1663},"startsWith",[754,2594,1667],{"class":787},[754,2596,2597],{"class":791},"\"image\u002F\"",[754,2599,1788],{"class":787},[754,2601,2602],{"class":756,"line":1538},[754,2603,1192],{"class":787},[731,2605,2607],{"id":2606},"совместимость-с-браузерами","Совместимость с браузерами",[736,2609,2611],{"id":2610},"необходимые-api","Необходимые API",[2613,2614,2615,2623,2629,2635,2641],"ul",{},[2616,2617,2618,2622],"li",{},[2619,2620,2621],"strong",{},"Canvas API",": Для манипуляций с изображениями",[2616,2624,2625,2628],{},[2619,2626,2627],{},"File API",": Для обработки загрузки файлов",[2616,2630,2631,2634],{},[2619,2632,2633],{},"Blob API",": Для генерации результатов",[2616,2636,2637,2640],{},[2619,2638,2639],{},"URL.createObjectURL",": Для предпросмотра изображений",[2616,2642,2643,2646],{},[2619,2644,2645],{},"Clipboard API",": Для функциональности копирования (опционально)",[736,2648,2650],{"id":2649},"поддержка-браузерами","Поддержка браузерами",[848,2652,2653,2672],{},[851,2654,2655],{},[854,2656,2657,2660,2663,2666,2669],{},[857,2658,2659],{},"Функция",[857,2661,2662],{},"Chrome",[857,2664,2665],{},"Firefox",[857,2667,2668],{},"Safari",[857,2670,2671],{},"Edge",[870,2673,2674,2691,2707],{},[854,2675,2676,2679,2682,2685,2688],{},[875,2677,2678],{},"Основные функции",[875,2680,2681],{},"✅ 50+",[875,2683,2684],{},"✅ 52+",[875,2686,2687],{},"✅ 10+",[875,2689,2690],{},"✅ 79+",[854,2692,2693,2696,2699,2702,2705],{},[875,2694,2695],{},"Вывод WebP",[875,2697,2698],{},"✅ 32+",[875,2700,2701],{},"✅ 65+",[875,2703,2704],{},"✅ 14+",[875,2706,2690],{},[854,2708,2709,2711,2714,2717,2720],{},[875,2710,2645],{},[875,2712,2713],{},"✅ 66+",[875,2715,2716],{},"✅ 63+",[875,2718,2719],{},"✅ 13.1+",[875,2721,2690],{},[731,2723,2725],{"id":2724},"обработка-ошибок","Обработка ошибок",[736,2727,2729],{"id":2728},"общие-типы-ошибок","Общие типы ошибок",[744,2731,2733],{"className":1045,"code":2732,"language":1047,"meta":749,"style":749},"\u002F\u002F Ошибки валидации файла\nclass InvalidFileTypeError extends Error {\n  constructor() {\n    super(\"Недопустимый тип файла. Пожалуйста, выберите файл изображения.\");\n  }\n}\n\n\u002F\u002F Ошибки памяти\nclass ImageTooLargeError extends Error {\n  constructor() {\n    super(\"Изображение слишком велико для обработки в этом браузере.\");\n  }\n}\n\n\u002F\u002F Ошибки обработки\nclass CropProcessingError extends Error {\n  constructor(message: string) {\n    super(`Ошибка обработки обрезки: ${message}`);\n  }\n}\n",[751,2734,2735,2740,2756,2764,2776,2781,2785,2789,2794,2807,2813,2824,2828,2832,2836,2841,2854,2870,2889,2893],{"__ignoreMap":749},[754,2736,2737],{"class":756,"line":757},[754,2738,2739],{"class":1082},"\u002F\u002F Ошибки валидации файла\n",[754,2741,2742,2745,2748,2751,2754],{"class":756,"line":771},[754,2743,2744],{"class":1054},"class",[754,2746,2747],{"class":1058}," InvalidFileTypeError",[754,2749,2750],{"class":1054}," extends",[754,2752,2753],{"class":1058}," Error",[754,2755,1062],{"class":787},[754,2757,2758,2761],{"class":756,"line":780},[754,2759,2760],{"class":1054},"  constructor",[754,2762,2763],{"class":787},"() {\n",[754,2765,2766,2769,2771,2774],{"class":756,"line":795},[754,2767,2768],{"class":1416},"    super",[754,2770,1667],{"class":787},[754,2772,2773],{"class":791},"\"Недопустимый тип файла. Пожалуйста, выберите файл изображения.\"",[754,2775,1788],{"class":787},[754,2777,2778],{"class":756,"line":806},[754,2779,2780],{"class":787},"  }\n",[754,2782,2783],{"class":756,"line":817},[754,2784,1192],{"class":787},[754,2786,2787],{"class":756,"line":828},[754,2788,1833],{"emptyLinePlaceholder":6},[754,2790,2791],{"class":756,"line":834},[754,2792,2793],{"class":1082},"\u002F\u002F Ошибки памяти\n",[754,2795,2796,2798,2801,2803,2805],{"class":756,"line":1168},[754,2797,2744],{"class":1054},[754,2799,2800],{"class":1058}," ImageTooLargeError",[754,2802,2750],{"class":1054},[754,2804,2753],{"class":1058},[754,2806,1062],{"class":787},[754,2808,2809,2811],{"class":756,"line":1183},[754,2810,2760],{"class":1054},[754,2812,2763],{"class":787},[754,2814,2815,2817,2819,2822],{"class":756,"line":1189},[754,2816,2768],{"class":1416},[754,2818,1667],{"class":787},[754,2820,2821],{"class":791},"\"Изображение слишком велико для обработки в этом браузере.\"",[754,2823,1788],{"class":787},[754,2825,2826],{"class":756,"line":1538},[754,2827,2780],{"class":787},[754,2829,2830],{"class":756,"line":1875},[754,2831,1192],{"class":787},[754,2833,2834],{"class":756,"line":1900},[754,2835,1833],{"emptyLinePlaceholder":6},[754,2837,2838],{"class":756,"line":1925},[754,2839,2840],{"class":1082},"\u002F\u002F Ошибки обработки\n",[754,2842,2843,2845,2848,2850,2852],{"class":756,"line":1942},[754,2844,2744],{"class":1054},[754,2846,2847],{"class":1058}," CropProcessingError",[754,2849,2750],{"class":1054},[754,2851,2753],{"class":1058},[754,2853,1062],{"class":787},[754,2855,2856,2858,2860,2863,2865,2867],{"class":756,"line":1959},[754,2857,2760],{"class":1054},[754,2859,1667],{"class":787},[754,2861,2862],{"class":1067},"message",[754,2864,1072],{"class":1071},[754,2866,1076],{"class":1075},[754,2868,2869],{"class":787},") {\n",[754,2871,2872,2874,2876,2879,2881,2883,2885,2887],{"class":756,"line":1982},[754,2873,2768],{"class":1416},[754,2875,1667],{"class":787},[754,2877,2878],{"class":791},"`Ошибка обработки обрезки: ",[754,2880,2135],{"class":2134},[754,2882,2862],{"class":1412},[754,2884,2140],{"class":2134},[754,2886,2143],{"class":791},[754,2888,1788],{"class":787},[754,2890,2891],{"class":756,"line":1994},[754,2892,2780],{"class":787},[754,2894,2895],{"class":756,"line":2014},[754,2896,1192],{"class":787},[736,2898,2900],{"id":2899},"восстановление-после-ошибок","Восстановление после ошибок",[744,2902,2904],{"className":1045,"code":2903,"language":1047,"meta":749,"style":749},"\u002F\u002F Изящная обработка ошибок\nfunction handleCropError(error: Error): void {\n  if (error instanceof InvalidFileTypeError) {\n    \u002F\u002F Показать сообщение об ошибке типа файла\n    showErrorMessage(\"Пожалуйста, выберите допустимый файл изображения\");\n  } else if (error instanceof ImageTooLargeError) {\n    \u002F\u002F Предложить уменьшить размер изображения\n    showErrorMessage(\n      \"Изображение слишком велико. Пожалуйста, используйте изображение меньшего размера\",\n    );\n  } else {\n    \u002F\u002F Общая обработка ошибок\n    showErrorMessage(\"Произошла ошибка. Пожалуйста, попробуйте снова\");\n  }\n}\n",[751,2905,2906,2911,2934,2949,2954,2966,2987,2992,2999,3006,3011,3019,3024,3035,3039],{"__ignoreMap":749},[754,2907,2908],{"class":756,"line":757},[754,2909,2910],{"class":1082},"\u002F\u002F Изящная обработка ошибок\n",[754,2912,2913,2915,2918,2920,2922,2924,2926,2928,2930,2932],{"class":756,"line":771},[754,2914,1660],{"class":1054},[754,2916,2917],{"class":1663}," handleCropError",[754,2919,1667],{"class":787},[754,2921,1027],{"class":1067},[754,2923,1072],{"class":1071},[754,2925,2753],{"class":1058},[754,2927,1678],{"class":787},[754,2929,1072],{"class":1071},[754,2931,1870],{"class":1075},[754,2933,1062],{"class":787},[754,2935,2936,2938,2940,2942,2945,2947],{"class":756,"line":780},[754,2937,2402],{"class":1696},[754,2939,1755],{"class":787},[754,2941,1027],{"class":1412},[754,2943,2944],{"class":1054}," instanceof",[754,2946,2747],{"class":1058},[754,2948,2869],{"class":787},[754,2950,2951],{"class":756,"line":795},[754,2952,2953],{"class":1082},"    \u002F\u002F Показать сообщение об ошибке типа файла\n",[754,2955,2956,2959,2961,2964],{"class":756,"line":806},[754,2957,2958],{"class":1663},"    showErrorMessage",[754,2960,1667],{"class":787},[754,2962,2963],{"class":791},"\"Пожалуйста, выберите допустимый файл изображения\"",[754,2965,1788],{"class":787},[754,2967,2968,2971,2974,2977,2979,2981,2983,2985],{"class":756,"line":817},[754,2969,2970],{"class":787},"  } ",[754,2972,2973],{"class":1696},"else",[754,2975,2976],{"class":1696}," if",[754,2978,1755],{"class":787},[754,2980,1027],{"class":1412},[754,2982,2944],{"class":1054},[754,2984,2800],{"class":1058},[754,2986,2869],{"class":787},[754,2988,2989],{"class":756,"line":828},[754,2990,2991],{"class":1082},"    \u002F\u002F Предложить уменьшить размер изображения\n",[754,2993,2994,2996],{"class":756,"line":834},[754,2995,2958],{"class":1663},[754,2997,2998],{"class":787},"(\n",[754,3000,3001,3004],{"class":756,"line":1168},[754,3002,3003],{"class":791},"      \"Изображение слишком велико. Пожалуйста, используйте изображение меньшего размера\"",[754,3005,2284],{"class":787},[754,3007,3008],{"class":756,"line":1183},[754,3009,3010],{"class":787},"    );\n",[754,3012,3013,3015,3017],{"class":756,"line":1189},[754,3014,2970],{"class":787},[754,3016,2973],{"class":1696},[754,3018,1062],{"class":787},[754,3020,3021],{"class":756,"line":1538},[754,3022,3023],{"class":1082},"    \u002F\u002F Общая обработка ошибок\n",[754,3025,3026,3028,3030,3033],{"class":756,"line":1875},[754,3027,2958],{"class":1663},[754,3029,1667],{"class":787},[754,3031,3032],{"class":791},"\"Произошла ошибка. Пожалуйста, попробуйте снова\"",[754,3034,1788],{"class":787},[754,3036,3037],{"class":756,"line":1900},[754,3038,2780],{"class":787},[754,3040,3041],{"class":756,"line":1925},[754,3042,1192],{"class":787},[731,3044,3046],{"id":3045},"оптимизация-производительности","Оптимизация производительности",[736,3048,3050],{"id":3049},"управление-памятью","Управление памятью",[744,3052,3054],{"className":1045,"code":3053,"language":1047,"meta":749,"style":749},"\u002F\u002F Очистка ресурсов\nfunction cleanup(): void {\n  \u002F\u002F Отзыв URL blob-объектов\n  blobUrls.forEach((url) => URL.revokeObjectURL(url));\n\n  \u002F\u002F Уничтожение экземпляра cropper\n  if (cropper) {\n    cropper.destroy();\n    cropper = null;\n  }\n\n  \u002F\u002F Очистка ссылок на холст\n  canvasRefs.length = 0;\n}\n",[751,3055,3056,3061,3077,3082,3112,3116,3121,3132,3144,3155,3159,3163,3168,3185],{"__ignoreMap":749},[754,3057,3058],{"class":756,"line":757},[754,3059,3060],{"class":1082},"\u002F\u002F Очистка ресурсов\n",[754,3062,3063,3065,3068,3071,3073,3075],{"class":756,"line":771},[754,3064,1660],{"class":1054},[754,3066,3067],{"class":1663}," cleanup",[754,3069,3070],{"class":787},"()",[754,3072,1072],{"class":1071},[754,3074,1870],{"class":1075},[754,3076,1062],{"class":787},[754,3078,3079],{"class":756,"line":780},[754,3080,3081],{"class":1082},"  \u002F\u002F Отзыв URL blob-объектов\n",[754,3083,3084,3087,3089,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110],{"class":756,"line":795},[754,3085,3086],{"class":1412},"  blobUrls",[754,3088,1747],{"class":787},[754,3090,3091],{"class":1663},"forEach",[754,3093,1705],{"class":787},[754,3095,2027],{"class":1067},[754,3097,1716],{"class":787},[754,3099,1719],{"class":1054},[754,3101,1886],{"class":1401},[754,3103,1747],{"class":787},[754,3105,2022],{"class":1663},[754,3107,1667],{"class":787},[754,3109,2027],{"class":1412},[754,3111,2472],{"class":787},[754,3113,3114],{"class":756,"line":806},[754,3115,1833],{"emptyLinePlaceholder":6},[754,3117,3118],{"class":756,"line":817},[754,3119,3120],{"class":1082},"  \u002F\u002F Уничтожение экземпляра cropper\n",[754,3122,3123,3125,3127,3130],{"class":756,"line":828},[754,3124,2402],{"class":1696},[754,3126,1755],{"class":787},[754,3128,3129],{"class":1412},"cropper",[754,3131,2869],{"class":787},[754,3133,3134,3137,3139,3142],{"class":756,"line":834},[754,3135,3136],{"class":1412},"    cropper",[754,3138,1747],{"class":787},[754,3140,3141],{"class":1663},"destroy",[754,3143,1739],{"class":787},[754,3145,3146,3148,3150,3153],{"class":756,"line":1168},[754,3147,3136],{"class":1412},[754,3149,1405],{"class":1071},[754,3151,3152],{"class":1416}," null",[754,3154,1318],{"class":787},[754,3156,3157],{"class":756,"line":1183},[754,3158,2780],{"class":787},[754,3160,3161],{"class":756,"line":1189},[754,3162,1833],{"emptyLinePlaceholder":6},[754,3164,3165],{"class":756,"line":1538},[754,3166,3167],{"class":1082},"  \u002F\u002F Очистка ссылок на холст\n",[754,3169,3170,3173,3175,3179,3181,3183],{"class":756,"line":1875},[754,3171,3172],{"class":1412},"  canvasRefs",[754,3174,1747],{"class":787},[754,3176,3178],{"class":3177},"sSQ6O","length",[754,3180,1405],{"class":1071},[754,3182,2412],{"class":1431},[754,3184,1318],{"class":787},[754,3186,3187],{"class":756,"line":1900},[754,3188,1192],{"class":787},[736,3190,3192],{"id":3191},"обработка-больших-изображений","Обработка больших изображений",[744,3194,3196],{"className":1045,"code":3195,"language":1047,"meta":749,"style":749},"\u002F\u002F Эффективная обработка больших изображений\nfunction processLargeImage(canvas: HTMLCanvasElement): HTMLCanvasElement {\n  const maxDimension = 4096; \u002F\u002F Лимит браузера\n  const scale = Math.min(maxDimension \u002F canvas.width, maxDimension \u002F canvas.height, 1);\n\n  if (scale \u003C 1) {\n    const scaledCanvas = document.createElement(\"canvas\");\n    scaledCanvas.width = canvas.width * scale;\n    scaledCanvas.height = canvas.height * scale;\n\n    const ctx = scaledCanvas.getContext(\"2d\");\n    ctx.drawImage(canvas, 0, 0, scaledCanvas.width, scaledCanvas.height);\n\n    return scaledCanvas;\n  }\n\n  return canvas;\n}\n",[751,3197,3198,3203,3226,3243,3292,3296,3312,3334,3358,3380,3384,3407,3449,3453,3462,3466,3470,3478],{"__ignoreMap":749},[754,3199,3200],{"class":756,"line":757},[754,3201,3202],{"class":1082},"\u002F\u002F Эффективная обработка больших изображений\n",[754,3204,3205,3207,3210,3212,3214,3216,3218,3220,3222,3224],{"class":756,"line":771},[754,3206,1660],{"class":1054},[754,3208,3209],{"class":1663}," processLargeImage",[754,3211,1667],{"class":787},[754,3213,2060],{"class":1067},[754,3215,1072],{"class":1071},[754,3217,1108],{"class":1058},[754,3219,1678],{"class":787},[754,3221,1072],{"class":1071},[754,3223,1108],{"class":1058},[754,3225,1062],{"class":787},[754,3227,3228,3230,3233,3235,3238,3240],{"class":756,"line":780},[754,3229,1878],{"class":1054},[754,3231,3232],{"class":1401}," maxDimension",[754,3234,1405],{"class":1071},[754,3236,3237],{"class":1431}," 4096",[754,3239,1079],{"class":787},[754,3241,3242],{"class":1082},"\u002F\u002F Лимит браузера\n",[754,3244,3245,3247,3250,3252,3254,3256,3259,3261,3264,3266,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3290],{"class":756,"line":795},[754,3246,1878],{"class":1054},[754,3248,3249],{"class":1401}," scale",[754,3251,1405],{"class":1071},[754,3253,2434],{"class":1412},[754,3255,1747],{"class":787},[754,3257,3258],{"class":1663},"min",[754,3260,1667],{"class":787},[754,3262,3263],{"class":1412},"maxDimension",[754,3265,2490],{"class":1071},[754,3267,3268],{"class":1412}," canvas",[754,3270,1747],{"class":787},[754,3272,2194],{"class":1412},[754,3274,1420],{"class":787},[754,3276,3263],{"class":1412},[754,3278,2490],{"class":1071},[754,3280,3268],{"class":1412},[754,3282,1747],{"class":787},[754,3284,2203],{"class":1412},[754,3286,1420],{"class":787},[754,3288,3289],{"class":1431},"1",[754,3291,1788],{"class":787},[754,3293,3294],{"class":756,"line":806},[754,3295,1833],{"emptyLinePlaceholder":6},[754,3297,3298,3300,3302,3305,3308,3310],{"class":756,"line":817},[754,3299,2402],{"class":1696},[754,3301,1755],{"class":787},[754,3303,3304],{"class":1412},"scale",[754,3306,3307],{"class":1071}," \u003C",[754,3309,1432],{"class":1431},[754,3311,2869],{"class":787},[754,3313,3314,3316,3319,3321,3323,3325,3327,3329,3332],{"class":756,"line":828},[754,3315,1726],{"class":1054},[754,3317,3318],{"class":1401}," scaledCanvas",[754,3320,1405],{"class":1071},[754,3322,1910],{"class":1412},[754,3324,1747],{"class":787},[754,3326,1915],{"class":1663},[754,3328,1667],{"class":787},[754,3330,3331],{"class":791},"\"canvas\"",[754,3333,1788],{"class":787},[754,3335,3336,3339,3341,3343,3345,3347,3349,3351,3354,3356],{"class":756,"line":834},[754,3337,3338],{"class":1412},"    scaledCanvas",[754,3340,1747],{"class":787},[754,3342,2194],{"class":1412},[754,3344,1405],{"class":1071},[754,3346,3268],{"class":1412},[754,3348,1747],{"class":787},[754,3350,2194],{"class":1412},[754,3352,3353],{"class":1071}," *",[754,3355,3249],{"class":1412},[754,3357,1318],{"class":787},[754,3359,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378],{"class":756,"line":1168},[754,3361,3338],{"class":1412},[754,3363,1747],{"class":787},[754,3365,2203],{"class":1412},[754,3367,1405],{"class":1071},[754,3369,3268],{"class":1412},[754,3371,1747],{"class":787},[754,3373,2203],{"class":1412},[754,3375,3353],{"class":1071},[754,3377,3249],{"class":1412},[754,3379,1318],{"class":787},[754,3381,3382],{"class":756,"line":1183},[754,3383,1833],{"emptyLinePlaceholder":6},[754,3385,3386,3388,3391,3393,3395,3397,3400,3402,3405],{"class":756,"line":1189},[754,3387,1726],{"class":1054},[754,3389,3390],{"class":1401}," ctx",[754,3392,1405],{"class":1071},[754,3394,3318],{"class":1412},[754,3396,1747],{"class":787},[754,3398,3399],{"class":1663},"getContext",[754,3401,1667],{"class":787},[754,3403,3404],{"class":791},"\"2d\"",[754,3406,1788],{"class":787},[754,3408,3409,3412,3414,3417,3419,3421,3423,3426,3428,3430,3432,3435,3437,3439,3441,3443,3445,3447],{"class":756,"line":1538},[754,3410,3411],{"class":1412},"    ctx",[754,3413,1747],{"class":787},[754,3415,3416],{"class":1663},"drawImage",[754,3418,1667],{"class":787},[754,3420,2060],{"class":1412},[754,3422,1420],{"class":787},[754,3424,3425],{"class":1431},"0",[754,3427,1420],{"class":787},[754,3429,3425],{"class":1431},[754,3431,1420],{"class":787},[754,3433,3434],{"class":1412},"scaledCanvas",[754,3436,1747],{"class":787},[754,3438,2194],{"class":1412},[754,3440,1420],{"class":787},[754,3442,3434],{"class":1412},[754,3444,1747],{"class":787},[754,3446,2203],{"class":1412},[754,3448,1788],{"class":787},[754,3450,3451],{"class":756,"line":1875},[754,3452,1833],{"emptyLinePlaceholder":6},[754,3454,3455,3458,3460],{"class":756,"line":1900},[754,3456,3457],{"class":1696},"    return",[754,3459,3318],{"class":1412},[754,3461,1318],{"class":787},[754,3463,3464],{"class":756,"line":1925},[754,3465,2780],{"class":787},[754,3467,3468],{"class":756,"line":1942},[754,3469,1833],{"emptyLinePlaceholder":6},[754,3471,3472,3474,3476],{"class":756,"line":1959},[754,3473,1697],{"class":1696},[754,3475,3268],{"class":1412},[754,3477,1318],{"class":787},[754,3479,3480],{"class":756,"line":1982},[754,3481,1192],{"class":787},[3483,3484,3485],"style",{},"html pre.shiki code .skpqk, html code.shiki .skpqk{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#808080}html pre.shiki code .sq2bZ, html code.shiki .sq2bZ{--shiki-default:#22863A;--shiki-light:#22863A;--shiki-dark:#569CD6}html pre.shiki code .shCbc, html code.shiki .shCbc{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#9CDCFE}html pre.shiki code .svVIm, html code.shiki .svVIm{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#D4D4D4}html pre.shiki code .sjj1j, html code.shiki .sjj1j{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#CE9178}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);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sGiLm, html code.shiki .sGiLm{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#569CD6}html pre.shiki code .s_0E6, html code.shiki .s_0E6{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#4EC9B0}html pre.shiki code .szM7h, html code.shiki .szM7h{--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#9CDCFE}html pre.shiki code .sGmsN, html code.shiki .sGmsN{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#D4D4D4}html pre.shiki code .s2-Xe, html code.shiki .s2-Xe{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4EC9B0}html pre.shiki code .sLEZ0, html code.shiki .sLEZ0{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A9955}html pre.shiki code .sdRU0, html code.shiki .sdRU0{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4FC1FF}html pre.shiki code .szTj3, html code.shiki .szTj3{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#9CDCFE}html pre.shiki code .sLV08, html code.shiki .sLV08{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#569CD6}html pre.shiki code .sewGd, html code.shiki .sewGd{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#B5CEA8}html pre.shiki code .sqMzV, html code.shiki .sqMzV{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#DCDCAA}html pre.shiki code .srAhW, html code.shiki .srAhW{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#C586C0}html pre.shiki code .s7eq4, html code.shiki .s7eq4{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#569CD6}html pre.shiki code .sSQ6O, html code.shiki .sSQ6O{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#9CDCFE}",{"title":749,"searchDepth":771,"depth":771,"links":3487},[3488,3491,3496,3500,3505,3509,3513],{"id":733,"depth":771,"text":734,"children":3489},[3490],{"id":738,"depth":780,"text":739},{"id":1038,"depth":771,"text":1039,"children":3492},[3493,3494,3495],{"id":1042,"depth":780,"text":1002},{"id":1195,"depth":780,"text":1017},{"id":1285,"depth":780,"text":1286},{"id":1381,"depth":771,"text":1382,"children":3497},[3498,3499],{"id":1385,"depth":780,"text":1386},{"id":1544,"depth":780,"text":1545},{"id":1640,"depth":771,"text":1641,"children":3501},[3502,3503,3504],{"id":1644,"depth":780,"text":1645},{"id":2037,"depth":780,"text":2038},{"id":2329,"depth":780,"text":2330},{"id":2606,"depth":771,"text":2607,"children":3506},[3507,3508],{"id":2610,"depth":780,"text":2611},{"id":2649,"depth":780,"text":2650},{"id":2724,"depth":771,"text":2725,"children":3510},[3511,3512],{"id":2728,"depth":780,"text":2729},{"id":2899,"depth":780,"text":2900},{"id":3045,"depth":771,"text":3046,"children":3514},[3515,3516],{"id":3049,"depth":780,"text":3050},{"id":3191,"depth":780,"text":3192},"md",{},{"title":54,"description":729},{"loc":98},"f4IWxrU2hb3sYnblVGF6Psl8llL2ytHDa8kUsklF3IA",[3523,3523],null]