{"code":"(window.webpackJsonpGUI=window.webpackJsonpGUI||[]).push([[52],{1489:function(e,n,s){(e.exports=s(9)(!1)).push([e.i,\".sa-search-sprites-container {\\n position: relative;\\n display: flex;\\n align-items: center;\\n}\\n\\ninput.sa-search-sprites-box {\\n width: 100%;\\n box-sizing: border-box;\\n background-color: transparent;\\n border: 0px;\\n border-bottom: 1px solid var(--ui-black-transparent);\\n outline: none;\\n padding: 5px 20px 5px 10px;\\n}\\n\\n.sa-search-sprites-reset {\\n display: none;\\n margin: 0;\\n padding: 0;\\n background: none;\\n border: none;\\n outline: none;\\n cursor: pointer;\\n position: absolute;\\n right: 0;\\n padding-right: 5px;\\n font-size: 25px;\\n}\\n\\n.sa-search-sprites-box:not(:placeholder-shown) ~ .sa-search-sprites-reset {\\n display: block;\\n}\\n\",\"\"])},1561:function(e,n,s){\"use strict\";s.r(n),s.d(n,\"resources\",(function(){return r}));var t=s(1489);const r={\"userscript.js\":async function(e){let n,s,{addon:t,console:r,msg:o}=e;const a=document.createElement(\"div\");a.className=\"sa-search-sprites-container\",t.tab.displayNoneWhileDisabled(a,{display:\"flex\"});const i=document.createElement(\"input\");i.className=\"sa-search-sprites-box\",i.placeholder=o(\"placeholder\"),i.autocomplete=\"off\",i.type=\"text\";const c=e=>{if(!n)return;e=e.toLowerCase();const s=n=>n.toLowerCase().includes(e);for(const t of n.children){const n=!e||s(t.children[0].children[1].innerText)||s(t.children[0].children[2].children[0].innerText)&&t.children[0].classList.contains(\"sa-folders-folder\");t.style.display=n?\"\":\"none\"}};i.addEventListener(\"input\",(e=>{c(e.target.value)}));const l=()=>{c(\"\"),i.value=\"\"},d=document.createElement(\"button\");for(d.className=\"sa-search-sprites-reset\",d.addEventListener(\"click\",l),d.textContent=\"×\",t.self.addEventListener(\"disabled\",l),a.appendChild(i),a.appendChild(d);;)await t.tab.waitForElement(\"div[class^='sprite-selector_items-wrapper']\",{markAsSeen:!0,reduxEvents:[\"scratch-gui/mode/SET_PLAYER\",\"fontsLoaded/SET_FONTS_LOADED\",\"scratch-gui/locales/SELECT_LOCALE\"],reduxCondition:e=>!e.scratchGui.mode.isPlayerOnly}),n=document.querySelector('[class^=\"sprite-selector_items-wrapper\"]'),s=document.querySelector('[class^=\"sprite-selector_scroll-wrapper\"]'),s.insertBefore(a,n),l()},\"search-bar.css\":s.n(t).a}}}]);","name":"js/pentapod/addon-entry-search-sprites.a7aa4f501f12a7b7b300.js","input":"(window[\"webpackJsonpGUI\"] = window[\"webpackJsonpGUI\"] || []).push([[52],{\n\n/***/ 1489:\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(9)(false);\n// imports\n\n\n// module\nexports.push([module.i, \".sa-search-sprites-container {\\n position: relative;\\n display: flex;\\n align-items: center;\\n}\\n\\ninput.sa-search-sprites-box {\\n width: 100%;\\n box-sizing: border-box;\\n background-color: transparent;\\n border: 0px;\\n border-bottom: 1px solid var(--ui-black-transparent);\\n outline: none;\\n padding: 5px 20px 5px 10px;\\n}\\n\\n.sa-search-sprites-reset {\\n display: none;\\n margin: 0;\\n padding: 0;\\n background: none;\\n border: none;\\n outline: none;\\n cursor: pointer;\\n position: absolute;\\n right: 0;\\n padding-right: 5px;\\n font-size: 25px;\\n}\\n\\n.sa-search-sprites-box:not(:placeholder-shown) ~ .sa-search-sprites-reset {\\n display: block;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ 1561:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"resources\", function() { return /* binding */ resources; });\n\n// CONCATENATED MODULE: ./src/addons/addons/search-sprites/userscript.js\n/* harmony default export */ var userscript = (async function (_ref) {\n let {\n addon,\n console,\n msg\n } = _ref;\n let spritesContainer;\n let spriteSelectorContainer;\n const container = document.createElement(\"div\");\n container.className = \"sa-search-sprites-container\";\n addon.tab.displayNoneWhileDisabled(container, {\n display: \"flex\"\n });\n const searchBox = document.createElement(\"input\");\n searchBox.className = \"sa-search-sprites-box\";\n searchBox.placeholder = msg(\"placeholder\");\n searchBox.autocomplete = \"off\";\n // search might make more sense, but browsers treat them special in ways that this addon does not handle,\n // so just leave it as a text input. Also note that Scratch uses type=text for its own search inputs in\n // the libraries, so this fits right in.\n searchBox.type = \"text\";\n const search = query => {\n if (!spritesContainer) return;\n query = query.toLowerCase();\n const containsQuery = str => str.toLowerCase().includes(query);\n for (const sprite of spritesContainer.children) {\n const visible = !query || containsQuery(sprite.children[0].children[1].innerText) || containsQuery(sprite.children[0].children[2].children[0].innerText) && sprite.children[0].classList.contains(\"sa-folders-folder\");\n sprite.style.display = visible ? \"\" : \"none\";\n }\n };\n searchBox.addEventListener(\"input\", e => {\n search(e.target.value);\n });\n const reset = () => {\n search(\"\");\n searchBox.value = \"\";\n };\n const resetButton = document.createElement(\"button\");\n resetButton.className = \"sa-search-sprites-reset\";\n resetButton.addEventListener(\"click\", reset);\n resetButton.textContent = \"×\";\n addon.self.addEventListener(\"disabled\", reset);\n container.appendChild(searchBox);\n container.appendChild(resetButton);\n while (true) {\n await addon.tab.waitForElement(\"div[class^='sprite-selector_items-wrapper']\", {\n markAsSeen: true,\n reduxEvents: [\"scratch-gui/mode/SET_PLAYER\", \"fontsLoaded/SET_FONTS_LOADED\", \"scratch-gui/locales/SELECT_LOCALE\"],\n reduxCondition: state => !state.scratchGui.mode.isPlayerOnly\n });\n spritesContainer = document.querySelector('[class^=\"sprite-selector_items-wrapper\"]');\n spriteSelectorContainer = document.querySelector('[class^=\"sprite-selector_scroll-wrapper\"]');\n spriteSelectorContainer.insertBefore(container, spritesContainer);\n reset(); // Clear search box after going outside then inside\n }\n});\n// EXTERNAL MODULE: ./node_modules/css-loader!./src/addons/addons/search-sprites/search-bar.css\nvar search_bar = __webpack_require__(1489);\nvar search_bar_default = /*#__PURE__*/__webpack_require__.n(search_bar);\n\n// CONCATENATED MODULE: ./src/addons/addons/search-sprites/_runtime_entry.js\n/* generated by pull.js */\n\n\nconst resources = {\n \"userscript.js\": userscript,\n \"search-bar.css\": search_bar_default.a\n};\n\n/***/ })\n\n}]);","inputSourceMap":null}