/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./dev/admin/modules/folder/FolderApp.jsx": /*!************************************************!*\ !*** ./dev/admin/modules/folder/FolderApp.jsx ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _hooks_useFolderDragDrop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hooks/useFolderDragDrop */ \"./dev/admin/modules/folder/hooks/useFolderDragDrop.js\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\n/* harmony import */ var _components_FolderSearch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/FolderSearch */ \"./dev/admin/modules/folder/components/FolderSearch.jsx\");\n/* harmony import */ var _components_FolderStats__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/FolderStats */ \"./dev/admin/modules/folder/components/FolderStats.jsx\");\n/* harmony import */ var _components_FolderList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/FolderList */ \"./dev/admin/modules/folder/components/FolderList.jsx\");\n/* harmony import */ var _components_modals__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/modals */ \"./dev/admin/modules/folder/components/modals/index.js\");\n/* harmony import */ var _components_FolderActions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/FolderActions */ \"./dev/admin/modules/folder/components/FolderActions/index.jsx\");\n/* harmony import */ var _components_NewFolder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/NewFolder */ \"./dev/admin/modules/folder/components/NewFolder.jsx\");\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * FolderApp Component\n * Main container component for the folder module\n */\n\n\n\n\n\n\n// Components\n\n\n\n\n\n\nvar $ = window.jQuery;\nvar FolderApp = function FolderApp() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n var _useFolderComputed = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderComputed)(),\n filteredFolders = _useFolderComputed.filteredFolders;\n var dragDrop = (0,_hooks_useFolderDragDrop__WEBPACK_IMPORTED_MODULE_2__.useFolderDragDrop)();\n\n // Sidebar visibility state\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.getSidebarVisibility)(state.postTypeTax);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n isSidebarVisible = _useState2[0],\n setIsSidebarVisible = _useState2[1];\n\n // Refs to prevent re-initialization\n var initializedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n var actionsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(actions);\n var dragDropRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(dragDrop);\n\n // Update refs on each render\n actionsRef.current = actions;\n dragDropRef.current = dragDrop;\n\n // Toggle sidebar visibility\n var handleToggleSidebar = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n setIsSidebarVisible(function (prev) {\n var newValue = !prev;\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.setSidebarVisibility)(state.postTypeTax, newValue);\n return newValue;\n });\n }, [state.postTypeTax]);\n\n // Sync modal collapsed state with sidebar visibility\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var modal = document.getElementById('wp-media-modal');\n if (modal) {\n if (!isSidebarVisible) {\n modal.classList.add('adminify-folder-collapsed');\n } else {\n modal.classList.remove('adminify-folder-collapsed');\n }\n }\n }, [isSidebarVisible]);\n\n // Initialize on mount (only once)\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (initializedRef.current) return;\n initializedRef.current = true;\n\n // Load sort preference from cookie\n var savedSort = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.getSortPreference)(state.postTypeTax);\n if (savedSort && savedSort !== state.sort) {\n actionsRef.current.handleSortChange(savedSort);\n }\n\n // Initialize folder click events for WordPress media library\n initFolderEvents();\n\n // Initialize drag and drop\n $(function () {\n dragDropRef.current.initialize();\n initSubmenuEvents();\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Re-initialize droppables when filter changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n // Skip if not initialized yet\n if (!initializedRef.current) return;\n var timer = setTimeout(function () {\n dragDropRef.current.initDraggableEvents();\n dragDropRef.current.initDroppableEvents();\n }, 50);\n return function () {\n return clearTimeout(timer);\n };\n }, [state.filterText]);\n\n /**\n * Initialize folder click events for WordPress integration\n */\n var initFolderEvents = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var _window$wp3;\n // Check if we're on the media library page (grid view)\n var isMediaLibraryPage = $(\"body\").hasClass(\"upload-php\");\n // Check if we're in a modal context\n var isInModal = $(\".media-modal\").length > 0;\n\n /**\n * Setup click handler for filtering attachments via AJAX\n */\n var setupFolderClickHandler = function setupFolderClickHandler() {\n $(\".folder--lists, .folder--stats\").off(\"click.adminifyFolder\", \"li a\").on(\"click.adminifyFolder\", \"li a\", function (event) {\n var _window$wp;\n event.preventDefault();\n event.stopPropagation();\n var url = $(this).attr(\"href\");\n var searchParams = new URLSearchParams(url.split(\"?\")[1] || \"\");\n var mediaFolder = searchParams.get(\"media_folder\") || \"\";\n\n // Update active state\n $(\".folder--lists, .folder--stats\").find(\"li\").removeClass(\"active\");\n $(this).closest(\"li\").addClass(\"active\");\n\n // Filter attachments via wp.media\n // Try to get the library from current frame or modal frame\n var library = null;\n if ((_window$wp = window.wp) !== null && _window$wp !== void 0 && (_window$wp = _window$wp.media) !== null && _window$wp !== void 0 && (_window$wp = _window$wp.frame) !== null && _window$wp !== void 0 && _window$wp.content) {\n // For media library page\n library = window.wp.media.frame.content.get(\"library\");\n } else if ($(\".media-modal\").length) {\n var _window$wp2;\n // For modal context - find the frame through wp.media.frames\n // Try to access through wp.media.frames\n if ((_window$wp2 = window.wp) !== null && _window$wp2 !== void 0 && (_window$wp2 = _window$wp2.media) !== null && _window$wp2 !== void 0 && _window$wp2.frames) {\n Object.values(window.wp.media.frames).forEach(function (frame) {\n if (frame && frame.content) {\n var lib = frame.content.get(\"library\");\n if (lib && lib.collection) {\n library = lib;\n }\n }\n });\n }\n\n // Alternative: access through attachments browser\n if (!library) {\n var attachmentsBrowser = $(\".attachments-browser\");\n if (attachmentsBrowser.length && attachmentsBrowser.data(\"backboneView\")) {\n var view = attachmentsBrowser.data(\"backboneView\");\n if (view && view.collection) {\n view.collection.props.set(\"media_folder\", mediaFolder);\n return; // Exit early, we've set the filter\n }\n }\n }\n }\n if (library && library.collection) {\n library.collection.props.set(\"media_folder\", mediaFolder);\n }\n\n // Only update URL if not in modal (modal has its own URL handling)\n if (!isInModal) {\n window.history.pushState({}, \"\", url);\n }\n });\n };\n if ((_window$wp3 = window.wp) !== null && _window$wp3 !== void 0 && _window$wp3.media) {\n // For media library grid view page or modal - handle folder clicks via AJAX\n if (isMediaLibraryPage || isInModal) {\n // Setup immediately if frame is ready\n if (window.wp.media.frame || isInModal) {\n setupFolderClickHandler();\n } else {\n // Wait for wp.media.frame to be ready\n var checkFrame = setInterval(function () {\n var _window$wp4;\n if ((_window$wp4 = window.wp) !== null && _window$wp4 !== void 0 && (_window$wp4 = _window$wp4.media) !== null && _window$wp4 !== void 0 && _window$wp4.frame) {\n clearInterval(checkFrame);\n setupFolderClickHandler();\n }\n }, 100);\n\n // Clear interval after 5 seconds to prevent infinite loop\n setTimeout(function () {\n return clearInterval(checkFrame);\n }, 5000);\n }\n } else {\n // For future modal context - extend AttachmentsView\n var AttachmentsView = window.wp.media.view.Attachments;\n window.wp.media.view.Attachments = AttachmentsView.extend({\n initialize: function initialize() {\n AttachmentsView.prototype.initialize.apply(this, arguments);\n\n // Setup click handler when view initializes\n setupFolderClickHandler();\n }\n });\n }\n } else {\n // Fallback for list view\n $(\".folder--lists, .folder--stats\").off(\"click.adminifyFolder\", \"li a\").on(\"click.adminifyFolder\", \"li a\", function (event) {\n event.preventDefault();\n var url = $(this).attr(\"href\");\n $(\".folder--lists, .folder--stats\").find(\"li\").removeClass(\"active\");\n $(this).closest(\"li\").addClass(\"active\");\n if ($(\"#the-list\").length) {\n $(\"#the-list\").load(\"\".concat(url, \" #the-list > tr\"));\n window.history.pushState({}, \"\", url);\n }\n });\n }\n }, []);\n\n /**\n * Initialize submenu toggle events\n */\n var initSubmenuEvents = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n $(\".folder--actions .has--sub-menu > a\").on(\"click\", function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n $(this).parent().toggleClass(\"sub-menu--open\");\n });\n $(\"body\").on(\"click\", function () {\n $(\".has--sub-menu.sub-menu--open\").removeClass(\"sub-menu--open\");\n });\n }, []);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-widget \".concat(!isSidebarVisible ? 'is-collapsed' : '')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"wp-adminify--sidebar-toggle\",\n onClick: handleToggleSidebar,\n title: isSidebarVisible ? 'Hide Folders' : 'Show Folders'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"dashicons \".concat(isSidebarVisible ? 'dashicons-arrow-left-alt2' : 'dashicons-category')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-app\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-app--inner\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"folder--header\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, \"Folders\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_NewFolder__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_FolderActions__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_FolderStats__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_FolderSearch__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null), state.folders.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_FolderList__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n folders: filteredFolders,\n folderSelectToggle: state.folderSelectToggle,\n className: \"folder--lists\"\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--popup-area\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--popup-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--popup-container_inner\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_modals__WEBPACK_IMPORTED_MODULE_7__.CreateFolderModal, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_modals__WEBPACK_IMPORTED_MODULE_7__.RenameFolderModal, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_modals__WEBPACK_IMPORTED_MODULE_7__.DeleteFolderModal, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_modals__WEBPACK_IMPORTED_MODULE_7__.MoveToFolderModal, null)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FolderApp);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/FolderApp.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/api/folderApi.js": /*!***************************************************!*\ !*** ./dev/admin/modules/folder/api/folderApi.js ***! \***************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createFolder: () => (/* binding */ createFolder),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ deleteFolders: () => (/* binding */ deleteFolders),\n/* harmony export */ moveToFolder: () => (/* binding */ moveToFolder),\n/* harmony export */ refreshFolders: () => (/* binding */ refreshFolders),\n/* harmony export */ renameFolder: () => (/* binding */ renameFolder)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\n/**\n * Folder API - WordPress AJAX wrapper\n * Handles all server communication for folder operations\n */\n\nvar getConfig = function getConfig() {\n return window.PXLBSADMINIFY_FOLDER_DATA || {};\n};\n\n/**\n * Base WordPress AJAX helper\n * @param {string} route - The API route/action\n * @param {Object} params - Additional parameters\n * @returns {Promise} Response data\n */\nvar wpAjax = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(route) {\n var params,\n config,\n formData,\n response,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n params = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n config = getConfig();\n formData = new FormData();\n formData.append('action', 'pxlbsadminify_folder');\n formData.append('route', route);\n formData.append('_ajax_nonce', config.nonce);\n formData.append('post_type', config.post_type);\n formData.append('post_type_tax', config.post_type_tax);\n Object.entries(params).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n if (Array.isArray(value)) {\n value.forEach(function (item, index) {\n formData.append(\"\".concat(key, \"[\").concat(index, \"]\"), item);\n });\n } else {\n formData.append(key, value);\n }\n });\n _context.next = 11;\n return fetch(config.ajaxurl, {\n method: 'POST',\n body: formData,\n credentials: 'same-origin'\n });\n case 11:\n response = _context.sent;\n return _context.abrupt(\"return\", response.json());\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function wpAjax(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * Create a new folder\n * @param {string} name - Folder name\n * @param {string} color - Folder color (hex)\n * @param {number|null} parentId - Parent folder ID (for sub-folders, Pro only)\n */\nvar createFolder = function createFolder(name, color) {\n var parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var params = {\n new_folder_name: name,\n folder_color_tag: color\n };\n if (parentId) {\n params.parent_folder = parentId;\n }\n return wpAjax('create_new_folder', params);\n};\n\n/**\n * Rename an existing folder\n * @param {number} termId - Folder term ID\n * @param {string} name - New folder name\n * @param {string} color - New folder color (hex)\n */\nvar renameFolder = function renameFolder(termId, name, color) {\n return wpAjax('rename_folder', {\n term_id: termId,\n folder_name: name,\n folder_color_tag: color\n });\n};\n\n/**\n * Delete folders\n * @param {number[]} termIds - Array of folder term IDs to delete\n */\nvar deleteFolders = function deleteFolders(termIds) {\n return wpAjax('delete_folders', {\n term_ids: termIds\n });\n};\n\n/**\n * Move or copy posts to a folder\n * @param {number[]} postIds - Array of post IDs\n * @param {number|string} folderId - Target folder ID or 'uncategorized'\n * @param {boolean} shouldMove - True to move, false to copy\n * @param {string} screen - Current screen (pagenow)\n * @param {string} mode - View mode ('list' or 'grid')\n */\nvar moveToFolder = function moveToFolder(postIds, folderId, shouldMove, screen, mode) {\n return wpAjax('move_to_folder', {\n post_ids: postIds,\n folder_id: folderId,\n move_to_folder: shouldMove,\n screen: screen,\n mode: mode\n });\n};\n\n/**\n * Refresh folders data from server\n */\nvar refreshFolders = function refreshFolders() {\n return wpAjax('refresh_folders');\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n createFolder: createFolder,\n renameFolder: renameFolder,\n deleteFolders: deleteFolders,\n moveToFolder: moveToFolder,\n refreshFolders: refreshFolders\n});\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/api/folderApi.js?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/Delete.jsx": /*!**********************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/Delete.jsx ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar Delete = function Delete() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle bulk delete from header\n */\n var handleHeaderDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n var foldersToEdit = [];\n if (state.folderSelectToggle) {\n foldersToEdit = state.folders.filter(function (folder) {\n return folder.selected;\n });\n } else {\n foldersToEdit = actions.getActiveFolders();\n }\n if (foldersToEdit.length > 0) {\n actions.handleShowDeleteModal(foldersToEdit);\n }\n }, [state.folderSelectToggle, state.folders, actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"btn--folder-delete\",\n onClick: handleHeaderDelete\n }, \"Delete\");\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Delete);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/Delete.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/Expand.jsx": /*!**********************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/Expand.jsx ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar Expand = function Expand() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle expand change\n */\n var handleExpand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (expand) {\n if (expand) {\n actions.handleExpandChange(expand);\n }\n }, [actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n className: \"btn--folder-expand\",\n onClick: function onClick(e) {\n e.preventDefault();\n state.expand === \"collapsed\" ? handleExpand(\"expanded\") : handleExpand(\"collapsed\");\n }\n }, state.expand === \"expanded\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"lucide lucide-unfold-vertical-icon lucide-unfold-vertical\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M12 22v-6\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M12 8V2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M4 12H2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M10 12H8\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M16 12h-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M22 12h-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m15 5-3 3-3-3\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m15 19-3-3-3 3\"\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"lucide lucide-unfold-vertical-icon lucide-unfold-vertical\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M12 22v-6\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M12 8V2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M4 12H2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M10 12H8\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M16 12h-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M22 12h-2\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m15 19-3 3-3-3\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m15 5-3-3-3 3\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Expand);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/Expand.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/Rename.jsx": /*!**********************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/Rename.jsx ***! \**********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar Rename = function Rename() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle bulk rename from header\n */\n var handleHeaderRename = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n var foldersToEdit = [];\n if (state.folderSelectToggle) {\n foldersToEdit = state.folders.filter(function (folder) {\n return folder.selected;\n });\n } else {\n foldersToEdit = actions.getActiveFolders();\n }\n if (foldersToEdit.length > 0) {\n actions.handleShowRenameModal(foldersToEdit[0]);\n }\n }, [state.folderSelectToggle, state.folders, actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"btn--folder-rename\",\n onClick: handleHeaderRename\n }, \"Rename\");\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Rename);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/Rename.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/SelectAll.jsx": /*!*************************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/SelectAll.jsx ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar SelectAll = function SelectAll() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle folder select toggle\n */\n var handleToggleSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n actions.handleToggleFolderSelect();\n }, [actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"checkbox\",\n checked: state.folderSelectToggle,\n onChange: handleToggleSelect\n }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SelectAll);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/SelectAll.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/Sort.jsx": /*!********************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/Sort.jsx ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar Sort = function Sort() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle sort change\n */\n var handleSort = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (sort) {\n if (sort) {\n actions.handleSortChange(sort);\n }\n }, [actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n className: \"btn--folder-sort\",\n onClick: function onClick(e) {\n e.preventDefault();\n state.sort === \"a-z\" ? handleSort(\"z-a\") : handleSort(\"a-z\");\n }\n }, state.sort === \"z-a\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"lucide lucide-arrow-up-az-icon lucide-arrow-up-a-z\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m3 8 4-4 4 4\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M7 4v16\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M20 8h-5\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M15 14h5l-5 6h5\"\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"lucide lucide-arrow-down-za-icon lucide-arrow-down-z-a\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"m3 16 4 4 4-4\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M7 4v16\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M15 4h5l-5 6h5\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M20 18h-5\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Sort);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/Sort.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderActions/index.jsx": /*!*********************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderActions/index.jsx ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Rename__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Rename */ \"./dev/admin/modules/folder/components/FolderActions/Rename.jsx\");\n/* harmony import */ var _SelectAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SelectAll */ \"./dev/admin/modules/folder/components/FolderActions/SelectAll.jsx\");\n/* harmony import */ var _Delete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Delete */ \"./dev/admin/modules/folder/components/FolderActions/Delete.jsx\");\n/* harmony import */ var _Sort__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Sort */ \"./dev/admin/modules/folder/components/FolderActions/Sort.jsx\");\n/* harmony import */ var _Expand__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Expand */ \"./dev/admin/modules/folder/components/FolderActions/Expand.jsx\");\n\n\n\n\n\n\nvar FolderActions = function FolderActions() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"folder--actions\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_SelectAll__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"folder--actions-triggers\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Rename__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Delete__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: \"folder-sort--list\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"folder--sort has--sub-menu\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Expand__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"folder--sort has--sub-menu\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Sort__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FolderActions);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderActions/index.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderItem.jsx": /*!************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderItem.jsx ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\n/* harmony import */ var _FolderList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FolderList */ \"./dev/admin/modules/folder/components/FolderList.jsx\");\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * FolderItem Component\n * Renders a single folder item with context menu\n * Uses only useFolderActions to prevent unnecessary re-renders\n */\n\n\n\n\n\n\n/**\n * Convert hex color to a solid light tint (blended with white)\n */\nvar hexToLightTint = function hexToLightTint(hex) {\n var tintAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n var r = 92,\n g = 57,\n b = 242;\n if (hex) {\n hex = hex.replace('#', '');\n if (hex.length === 3) {\n hex = hex.split('').map(function (_char) {\n return _char + _char;\n }).join('');\n }\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n }\n var blendedR = Math.round(255 + (r - 255) * tintAmount);\n var blendedG = Math.round(255 + (g - 255) * tintAmount);\n var blendedB = Math.round(255 + (b - 255) * tintAmount);\n return \"rgb(\".concat(blendedR, \", \").concat(blendedG, \", \").concat(blendedB, \")\");\n};\nvar FolderItem = function FolderItem(_ref) {\n var folder = _ref.folder,\n folderSelectToggle = _ref.folderSelectToggle,\n isActive = _ref.isActive,\n postTypeTax = _ref.postTypeTax;\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_2__.useFolderActions)();\n var _useFolderState = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_2__.useFolderState)(),\n globalExpand = _useFolderState.expand;\n var liRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n isOpen: false,\n x: 0,\n y: 0\n }),\n _useState2 = _slicedToArray(_useState, 2),\n menuState = _useState2[0],\n setMenuState = _useState2[1];\n\n // Check if folder has children\n var hasChildren = folder.children && folder.children.length > 0;\n\n // Initialize expand state from stored preference\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () {\n // First check individual folder preference (overrides global)\n var expandedIds = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.getExpandedFolderIds)(postTypeTax);\n if (expandedIds.includes(Number(folder.term_id))) {\n return true;\n }\n // Then check global preference\n return globalExpand === 'expanded';\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n isExpanded = _useState4[0],\n setIsExpanded = _useState4[1];\n\n // Track previous global expand state to detect changes\n var prevGlobalExpand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(globalExpand);\n\n // Sync local state with global expand state changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (prevGlobalExpand.current !== globalExpand) {\n prevGlobalExpand.current = globalExpand;\n setIsExpanded(globalExpand === 'expanded');\n }\n }, [globalExpand]);\n\n // Toggle individual folder expand/collapse with persistence\n var handleToggleExpand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n setIsExpanded(function (prev) {\n var newState = !prev;\n // Save to cookie\n if (newState) {\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.addExpandedFolderId)(postTypeTax, folder.term_id);\n } else {\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.removeExpandedFolderId)(postTypeTax, folder.term_id);\n }\n return newState;\n });\n }, [postTypeTax, folder.term_id]);\n var folderUrl = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.getFolderUrl)(folder, postTypeTax);\n\n // Close menu when clicking outside, scrolling, or another menu opens\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var handleClickOutside = function handleClickOutside(e) {\n if (menuState.isOpen && !e.target.closest('.adminify--context-menu-portal')) {\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }\n };\n var handleScroll = function handleScroll() {\n if (menuState.isOpen) {\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }\n };\n var handleCloseAllMenus = function handleCloseAllMenus(e) {\n if (e.detail !== folder.term_id && menuState.isOpen) {\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }\n };\n document.addEventListener('click', handleClickOutside);\n document.addEventListener('scroll', handleScroll, true);\n document.addEventListener('adminify-close-context-menus', handleCloseAllMenus);\n return function () {\n document.removeEventListener('click', handleClickOutside);\n document.removeEventListener('scroll', handleScroll, true);\n document.removeEventListener('adminify-close-context-menus', handleCloseAllMenus);\n };\n }, [menuState.isOpen, folder.term_id]);\n var handleContextMenu = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n document.dispatchEvent(new CustomEvent('adminify-close-context-menus', {\n detail: folder.term_id\n }));\n var mouseX = e.clientX;\n var mouseY = e.clientY;\n var menuWidth = 170;\n var menuHeight = 130;\n var viewportWidth = window.innerWidth;\n var viewportHeight = window.innerHeight;\n var posX = mouseX;\n var posY = mouseY;\n if (mouseX + menuWidth > viewportWidth - 10) {\n posX = mouseX - menuWidth;\n }\n if (mouseY + menuHeight > viewportHeight - 10) {\n posY = mouseY - menuHeight;\n }\n posX = Math.max(10, posX);\n posY = Math.max(10, posY);\n setMenuState({\n isOpen: true,\n x: posX,\n y: posY\n });\n }, [folder.term_id]);\n var handleCheckboxClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.stopPropagation();\n actions.handleToggleFolderSelection(folder.term_id);\n }, [folder.term_id, actions]);\n var handleMenuNewSubFolder = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n actions.handleShowCreateModal(folder.term_id);\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }, [folder.term_id, actions]);\n var handleMenuRename = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n actions.handleShowRenameModal(folder);\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }, [folder, actions]);\n var handleMenuDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n e.stopPropagation();\n actions.handleShowDeleteModal([folder]);\n setMenuState({\n isOpen: false,\n x: 0,\n y: 0\n });\n }, [folder, actions]);\n\n // Context menu portal\n var contextMenu = menuState.isOpen ? /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: \"adminify--context-menu-portal\",\n style: {\n position: 'fixed',\n left: \"\".concat(menuState.x, \"px\"),\n top: \"\".concat(menuState.y, \"px\"),\n zIndex: 999999\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: handleMenuNewSubFolder\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-icon dashicons dashicons-category\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-text\"\n }, \"New Sub-folder\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: handleMenuRename\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-icon dashicons dashicons-edit\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-text\"\n }, \"Rename\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"adminify-menu-separator\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: handleMenuDelete,\n className: \"adminify-menu-delete\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-icon dashicons dashicons-trash\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"adminify-menu-text\"\n }, \"Delete\")))), document.body) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n ref: liRef,\n className: \"folder--single-root has--sub-menu \".concat(isActive ? 'active' : '', \" \").concat(isExpanded ? 'is-expanded' : 'is-collapsed'),\n \"data-folder\": folder.term_id\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--icon-control\"\n }, !folderSelectToggle ? hasChildren ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"wp-adminify--folder-toggle \".concat(isExpanded ? 'is-expanded' : 'is-collapsed'),\n onClick: handleToggleExpand,\n style: {\n color: folder.color\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--icon dashicons \".concat(isExpanded ? 'dashicons-open-folder' : 'dashicons-category')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--badge dashicons \".concat(isExpanded ? 'dashicons-minus' : 'dashicons-plus-alt2')\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--icon dashicons dashicons-category\",\n style: {\n color: folder.color\n }\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n className: \"wp-adminify--control\",\n type: \"checkbox\",\n checked: folder.selected || false,\n onClick: handleCheckboxClick,\n onChange: function onChange() {}\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: folderUrl,\n onContextMenu: handleContextMenu,\n style: {\n backgroundColor: isActive ? hexToLightTint(folder.color, 0.15) : undefined\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--name\",\n style: {\n color: folder.color\n }\n }, folder.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, folder.count))), isExpanded && hasChildren && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FolderList__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n folders: folder.children,\n folderSelectToggle: folderSelectToggle,\n postTypeTax: postTypeTax,\n className: \"folder--sub-lists\"\n })), contextMenu);\n};\n\n// Import FolderList for recursive rendering\n\n\n// Don't use custom memo comparison since we're using useFolderState for expand\n// The component will re-render when expand state changes\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FolderItem);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderItem.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderList.jsx": /*!************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderList.jsx ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FolderItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FolderItem */ \"./dev/admin/modules/folder/components/FolderItem.jsx\");\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\n/**\n * FolderList Component\n * Recursive folder list that renders folder items and their children\n */\n\n\n\n\n\nvar FolderList = function FolderList(_ref) {\n var folders = _ref.folders,\n folderSelectToggle = _ref.folderSelectToggle,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n propPostTypeTax = _ref.postTypeTax;\n // Get postTypeTax from state if not passed as prop (for top-level list)\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_2__.useFolderState)();\n var postTypeTax = propPostTypeTax || state.postTypeTax;\n if (!folders || !folders.length) {\n return null;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: className\n }, folders.map(function (folder) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FolderItem__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: folder.term_id,\n folder: folder,\n folderSelectToggle: folderSelectToggle,\n isActive: (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_3__.isActiveFolder)(folder, postTypeTax),\n postTypeTax: postTypeTax\n });\n }));\n};\n\n// Memoize to prevent unnecessary re-renders\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(FolderList));\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderList.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderSearch.jsx": /*!**************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderSearch.jsx ***! \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/**\n * FolderSearch Component\n * Search input for filtering folders\n */\n\n\n\nvar FolderSearch = function FolderSearch() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n var handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n actions.handleFilterChange(e.target.value);\n }, [actions]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"folder--search\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n placeholder: \"Search folder\",\n value: state.filterText,\n onChange: handleChange\n }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(FolderSearch));\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderSearch.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/FolderStats.jsx": /*!*************************************************************!*\ !*** ./dev/admin/modules/folder/components/FolderStats.jsx ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\n/**\n * FolderStats Component\n * Displays \"All\" and \"Uncategorized\" folder statistics\n */\n\n\n\n\nvar FolderStats = function FolderStats() {\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n var _useFolderComputed = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderComputed)(),\n totalPostsCount = _useFolderComputed.totalPostsCount;\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n var isAllActive = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__.isActiveFolder)('all', state.postTypeTax);\n var isUncategorizedActive = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__.isActiveFolder)('uncategorized', state.postTypeTax);\n var allUrl = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__.getFolderUrl)('all', state.postTypeTax);\n }, [state.postTypeTax]);\n var uncategorizedUrl = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__.getFolderUrl)('uncategorized', state.postTypeTax);\n }, [state.postTypeTax]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"folder--stats\"\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"folder--single-all \".concat(isAllActive ? 'active' : ''),\n \"data-folder\": \"all\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: allUrl\n }, /*#__PURE__*/React.createElement(\"span\", null, \"All\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, totalPostsCount))), /*#__PURE__*/React.createElement(\"li\", {\n className: \"folder--single-uncategorized \".concat(isUncategorizedActive ? 'active' : ''),\n \"data-folder\": \"uncategorized\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: uncategorizedUrl\n }, /*#__PURE__*/React.createElement(\"span\", null, \"Uncategorized\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, state.totalUncatPosts))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(FolderStats));\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/FolderStats.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/ModalFolderSidebar.jsx": /*!********************************************************************!*\ !*** ./dev/admin/modules/folder/components/ModalFolderSidebar.jsx ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * ModalFolderSidebar Component\n * Simplified folder sidebar for WordPress media upload modal\n * Used within the media modal context (post/page editors)\n */\n\n\n\n\n/**\n * Modal Folder Stats - Shows All and Uncategorized counts\n */\nvar ModalFolderStats = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(function (_ref) {\n var totalPosts = _ref.totalPosts,\n uncategorizedCount = _ref.uncategorizedCount,\n activeFolder = _ref.activeFolder,\n onFolderClick = _ref.onFolderClick;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: \"folder--stats\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"folder--single-all \".concat(activeFolder === 'all' ? 'active' : ''),\n \"data-folder\": \"all\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: function onClick(e) {\n e.preventDefault();\n onFolderClick('all');\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, \"All\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, totalPosts))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"folder--single-uncategorized \".concat(activeFolder === 'uncategorized' ? 'active' : ''),\n \"data-folder\": \"uncategorized\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: function onClick(e) {\n e.preventDefault();\n onFolderClick('uncategorized');\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, \"Uncategorized\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, uncategorizedCount))));\n});\n\n/**\n * Modal Folder Search - Search input for filtering folders\n */\nvar ModalFolderSearch = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(function (_ref2) {\n var filterText = _ref2.filterText,\n onFilterChange = _ref2.onFilterChange;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"folder--search\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n placeholder: \"Search folder\",\n value: filterText,\n onChange: function onChange(e) {\n return onFilterChange(e.target.value);\n }\n }));\n});\n\n/**\n * Modal Folder Item - Single folder item (simplified, no context menu)\n */\nvar ModalFolderItem = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(function (_ref3) {\n var folder = _ref3.folder,\n isActive = _ref3.isActive,\n onFolderClick = _ref3.onFolderClick,\n children = _ref3.children;\n var handleClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n onFolderClick(folder.slug);\n }, [folder.slug, onFolderClick]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n className: \"folder--single-root \".concat(isActive ? 'active' : ''),\n \"data-folder\": folder.term_id\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: handleClick,\n style: {\n color: folder.color || undefined,\n backgroundColor: isActive && folder.color ? hexToLightTint(folder.color, 0.15) : undefined\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--folder-left\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--icon-control\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--icon dashicons dashicons-open-folder\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--name\"\n }, folder.name)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"wp-adminify--count\"\n }, folder.count)), children);\n});\n\n/**\n * Modal Folder List - Recursive folder list\n */\nvar ModalFolderList = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(function (_ref4) {\n var folders = _ref4.folders,\n activeFolder = _ref4.activeFolder,\n onFolderClick = _ref4.onFolderClick,\n _ref4$className = _ref4.className,\n className = _ref4$className === void 0 ? '' : _ref4$className;\n if (!folders || !folders.length) {\n return null;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: className\n }, folders.map(function (folder) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ModalFolderItem, {\n key: folder.term_id,\n folder: folder,\n isActive: activeFolder === folder.slug,\n onFolderClick: onFolderClick\n }, folder.children && folder.children.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ModalFolderList, {\n folders: folder.children,\n activeFolder: activeFolder,\n onFolderClick: onFolderClick,\n className: \"folder--sub-lists\"\n }));\n }));\n});\n\n/**\n * Convert hex color to a solid light tint (blended with white)\n */\nvar hexToLightTint = function hexToLightTint(hex) {\n var tintAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n var r = 92,\n g = 57,\n b = 242;\n if (hex) {\n hex = hex.replace('#', '');\n if (hex.length === 3) {\n hex = hex.split('').map(function (_char) {\n return _char + _char;\n }).join('');\n }\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n }\n var blendedR = Math.round(255 + (r - 255) * tintAmount);\n var blendedG = Math.round(255 + (g - 255) * tintAmount);\n var blendedB = Math.round(255 + (b - 255) * tintAmount);\n return \"rgb(\".concat(blendedR, \", \").concat(blendedG, \", \").concat(blendedB, \")\");\n};\n\n/**\n * Main ModalFolderSidebar Component\n */\nvar ModalFolderSidebar = function ModalFolderSidebar(_ref5) {\n var initialData = _ref5.initialData,\n collection = _ref5.collection;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),\n _useState2 = _slicedToArray(_useState, 2),\n filterText = _useState2[0],\n setFilterText = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('all'),\n _useState4 = _slicedToArray(_useState3, 2),\n activeFolder = _useState4[0],\n setActiveFolder = _useState4[1];\n\n // Extract data from initialData\n var folders = (initialData === null || initialData === void 0 ? void 0 : initialData.folders) || [];\n var folderHierarchy = (initialData === null || initialData === void 0 ? void 0 : initialData.folder_hierarchy) || {};\n var totalPosts = (initialData === null || initialData === void 0 ? void 0 : initialData.total_posts) || {};\n var totalUncatPosts = (initialData === null || initialData === void 0 ? void 0 : initialData.total_uncat_posts) || 0;\n\n // Compute filtered and sorted folders\n var displayFolders = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n var result = _toConsumableArray(folders);\n result = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.sortFolders)(result, 'a-z');\n if (filterText.trim()) {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.filterFolders)(result, filterText);\n }\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.buildFolderHierarchy)(result, folderHierarchy);\n }, [folders, folderHierarchy, filterText]);\n\n // Calculate total posts count\n var totalPostsCount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.calculateTotalPosts)(totalPosts);\n }, [totalPosts]);\n\n /**\n * Handle folder click - updates the media library filter\n */\n var handleFolderClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (folderSlug) {\n setActiveFolder(folderSlug);\n if (!collection) return;\n\n // Set the media_folder property on the collection\n if (folderSlug === 'all') {\n // Clear the filter to show all attachments\n collection.props.set({\n media_folder: ''\n });\n } else if (folderSlug === 'uncategorized') {\n // Use -1 to indicate uncategorized (no folder assigned)\n collection.props.set({\n media_folder: '-1'\n });\n } else {\n // Filter by specific folder slug\n collection.props.set({\n media_folder: folderSlug\n });\n }\n }, [collection]);\n\n // Listen for external changes to the collection's media_folder prop\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!collection) return;\n var handleChange = function handleChange() {\n var currentFolder = collection.props.get('media_folder');\n if (currentFolder === '' || currentFolder === undefined) {\n setActiveFolder('all');\n } else if (currentFolder === '-1') {\n setActiveFolder('uncategorized');\n } else {\n setActiveFolder(currentFolder);\n }\n };\n collection.props.on('change:media_folder', handleChange);\n return function () {\n collection.props.off('change:media_folder', handleChange);\n };\n }, [collection]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--modal-folder-sidebar\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-app\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify--folder-app--inner\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"folder--header\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, \"Folders\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ModalFolderStats, {\n totalPosts: totalPostsCount,\n uncategorizedCount: totalUncatPosts,\n activeFolder: activeFolder,\n onFolderClick: handleFolderClick\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ModalFolderSearch, {\n filterText: filterText,\n onFilterChange: setFilterText\n }), folders.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ModalFolderList, {\n folders: displayFolders,\n activeFolder: activeFolder,\n onFolderClick: handleFolderClick,\n className: \"folder--lists\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(ModalFolderSidebar));\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/ModalFolderSidebar.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/NewFolder.jsx": /*!***********************************************************!*\ !*** ./dev/admin/modules/folder/components/NewFolder.jsx ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n\n\nvar NewFolder = function NewFolder() {\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n\n /**\n * Handle create new folder\n */\n var handleCreateNew = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n e.preventDefault();\n actions.handleShowCreateModal();\n }, [actions]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: handleCreateNew\n }, \"New Folder\");\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewFolder);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/NewFolder.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/ColorPicker.jsx": /*!********************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/ColorPicker.jsx ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * ColorPicker Component\n * Reusable color picker for folder color selection\n */\n\n\nvar ColorPicker = function ColorPicker(_ref) {\n var colors = _ref.colors,\n activeColor = _ref.activeColor,\n onColorSelect = _ref.onColorSelect,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? 'Colour Tag' : _ref$label;\n var handleColorClick = function handleColorClick(e, color) {\n e.preventDefault();\n onColorSelect(color);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder__color\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, label), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"ul\", {\n className: \"wp-adminify--colors\"\n }, colors.map(function (color) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"li\", {\n key: color,\n className: color === activeColor ? 'active' : ''\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n onClick: function onClick(e) {\n return handleColorClick(e, color);\n },\n style: {\n background: color\n }\n }));\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorPicker);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/ColorPicker.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/CreateFolderModal.jsx": /*!**************************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/CreateFolderModal.jsx ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ColorPicker */ \"./dev/admin/modules/folder/components/modals/ColorPicker.jsx\");\n/**\n * CreateFolderModal Component\n * Modal for creating new folders and sub-folders\n */\n\n\n\n\nvar CreateFolderModal = function CreateFolderModal() {\n var _useFolderContext = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderContext)(),\n state = _useFolderContext.state,\n actions = _useFolderContext.actions,\n computed = _useFolderContext.computed;\n var modals = state.modals,\n newFolderName = state.newFolderName,\n activeColorTag = state.activeColorTag,\n errors = state.errors,\n isPro = state.isPro,\n proNotice = state.proNotice,\n colorTags = state.colorTags;\n var isReachedLimit = computed.isReachedLimit;\n if (!modals.create.open) {\n return null;\n }\n var isSubFolder = modals.create.parentFolder !== null;\n var showProNotice = isSubFolder ? !isPro : isReachedLimit;\n var handleNameChange = function handleNameChange(e) {\n actions.handleNewFolderNameChange(e.target.value);\n };\n var handleSubmit = function handleSubmit(e) {\n e.preventDefault();\n actions.handleCreateFolder();\n };\n var handleClose = function handleClose(e) {\n e.preventDefault();\n actions.handleHideCreateModal();\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--create-new-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n className: \"wp-adminify--popup-close\",\n href: \"#\",\n onClick: handleClose\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"dashicons dashicons-no-alt\"\n })), isSubFolder ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h3\", null, \"New Sub Folder\"), isPro ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder__name\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"Sub Folder Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n value: newFolderName || '',\n onChange: handleNameChange,\n placeholder: \"Write here\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ColorPicker__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n colors: colorTags,\n activeColor: activeColorTag,\n onColorSelect: actions.handleColorChange,\n label: \"Colour Tag\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"adminify-save-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-primary\",\n onClick: handleSubmit\n }, \"Save Folder\")), errors.create && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder-error\"\n }, errors.create)) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify-folder--pro-notice\",\n dangerouslySetInnerHTML: {\n __html: proNotice\n }\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, showProNotice ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"wp-adminify-folder--pro-notice\",\n dangerouslySetInnerHTML: {\n __html: proNotice\n }\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder__name\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"Folder Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n value: newFolderName || '',\n onChange: handleNameChange,\n placeholder: \"Folder name here\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ColorPicker__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n colors: colorTags,\n activeColor: activeColorTag,\n onColorSelect: actions.handleColorChange,\n label: \"Colour Tag\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"adminify-save-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-primary\",\n onClick: handleSubmit\n }, \"Save Folder\")), errors.create && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder-error\"\n }, errors.create))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CreateFolderModal);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/CreateFolderModal.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/DeleteFolderModal.jsx": /*!**************************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/DeleteFolderModal.jsx ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/**\n * DeleteFolderModal Component\n * Confirmation modal for deleting folders\n */\n\n\n\nvar DeleteFolderModal = function DeleteFolderModal() {\n var _useFolderContext = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderContext)(),\n state = _useFolderContext.state,\n actions = _useFolderContext.actions;\n var modals = state.modals;\n if (!modals[\"delete\"].open) {\n return null;\n }\n var handleDelete = function handleDelete(e) {\n e.preventDefault();\n actions.handleDeleteFolders();\n };\n var handleClose = function handleClose(e) {\n e.preventDefault();\n actions.handleHideDeleteModal();\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--delete-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n className: \"wp-adminify--popup-close\",\n href: \"#\",\n onClick: handleClose\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"dashicons dashicons-no-alt\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h3\", null, \"Are you sure you want to delete the selected folder?\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"Items in the folder will not be deleted.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button\",\n onClick: handleClose\n }, \"No, Keep it\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-primary\",\n onClick: handleDelete\n }, \"Yes, Delete it!\")));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DeleteFolderModal);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/DeleteFolderModal.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/MoveToFolderModal.jsx": /*!**************************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/MoveToFolderModal.jsx ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/**\n * MoveToFolderModal Component\n * Modal for choosing between copy or move when post is already in a folder\n */\n\n\n\nvar MoveToFolderModal = function MoveToFolderModal() {\n var _useFolderContext = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderContext)(),\n state = _useFolderContext.state;\n var modals = state.modals;\n if (!modals.moveTo.open) {\n return null;\n }\n\n // Note: The actual click handling is done via jQuery event delegation\n // in useFolderDragDrop hook for Promise-based resolution\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--move-to-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h3\", null, \"Few posts are already in another Folder\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"Please choose a option whether you want to copy or move to new Folder.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-copy\"\n }, \"Copy To Folder\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-primary button-move\"\n }, \"Move To Folder\")));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MoveToFolderModal);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/MoveToFolderModal.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/RenameFolderModal.jsx": /*!**************************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/RenameFolderModal.jsx ***! \**************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ColorPicker */ \"./dev/admin/modules/folder/components/modals/ColorPicker.jsx\");\n/**\n * RenameFolderModal Component\n * Modal for renaming folders and changing colors\n */\n\n\n\n\nvar RenameFolderModal = function RenameFolderModal() {\n var _useFolderContext = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderContext)(),\n state = _useFolderContext.state,\n actions = _useFolderContext.actions,\n computed = _useFolderContext.computed;\n var modals = state.modals,\n renameFolderName = state.renameFolderName,\n activeColorTag = state.activeColorTag,\n errors = state.errors;\n var availableColorTags = computed.availableColorTags;\n if (!modals.rename.open) {\n return null;\n }\n var handleNameChange = function handleNameChange(e) {\n actions.handleRenameFolderNameChange(e.target.value);\n };\n var handleSubmit = function handleSubmit(e) {\n e.preventDefault();\n actions.handleRenameFolder();\n };\n var handleClose = function handleClose(e) {\n e.preventDefault();\n actions.handleHideRenameModal();\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--rename-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n className: \"wp-adminify--popup-close\",\n href: \"#\",\n onClick: handleClose\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"dashicons dashicons-no-alt\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h3\", null, \"Rename Folder\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder__name\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"Rename Folder\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n value: renameFolderName || '',\n onChange: handleNameChange,\n placeholder: \"Write here\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ColorPicker__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n colors: availableColorTags,\n activeColor: activeColorTag,\n onColorSelect: actions.handleColorChange,\n label: \"Change Color\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"adminify-save-folder\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n href: \"#\",\n className: \"button button-primary\",\n onClick: handleSubmit\n }, \"Save Folder\")), errors.rename && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"popup--new-folder-error\"\n }, errors.rename));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RenameFolderModal);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/RenameFolderModal.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/components/modals/index.js": /*!*************************************************************!*\ !*** ./dev/admin/modules/folder/components/modals/index.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColorPicker: () => (/* reexport safe */ _ColorPicker__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ CreateFolderModal: () => (/* reexport safe */ _CreateFolderModal__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ DeleteFolderModal: () => (/* reexport safe */ _DeleteFolderModal__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ MoveToFolderModal: () => (/* reexport safe */ _MoveToFolderModal__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ RenameFolderModal: () => (/* reexport safe */ _RenameFolderModal__WEBPACK_IMPORTED_MODULE_1__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _CreateFolderModal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateFolderModal */ \"./dev/admin/modules/folder/components/modals/CreateFolderModal.jsx\");\n/* harmony import */ var _RenameFolderModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RenameFolderModal */ \"./dev/admin/modules/folder/components/modals/RenameFolderModal.jsx\");\n/* harmony import */ var _DeleteFolderModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DeleteFolderModal */ \"./dev/admin/modules/folder/components/modals/DeleteFolderModal.jsx\");\n/* harmony import */ var _MoveToFolderModal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MoveToFolderModal */ \"./dev/admin/modules/folder/components/modals/MoveToFolderModal.jsx\");\n/* harmony import */ var _ColorPicker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorPicker */ \"./dev/admin/modules/folder/components/modals/ColorPicker.jsx\");\n/**\n * Modal Components Index\n * Export all modal components from a single entry point\n */\n\n\n\n\n\n\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/components/modals/index.js?"); /***/ }), /***/ "./dev/admin/modules/folder/hooks/useFolderDragDrop.js": /*!*************************************************************!*\ !*** ./dev/admin/modules/folder/hooks/useFolderDragDrop.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ useFolderDragDrop: () => (/* binding */ useFolderDragDrop)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\n/**\n * Folder Drag & Drop Hook\n * Handles drag and drop functionality for posts/attachments to folders\n */\n\n\n\n\nvar $ = window.jQuery;\n\n/**\n * Create drag helper element with item count\n * @param {number} count - Number of items being dragged\n * @returns {jQuery} Helper element\n */\nvar createDragHelper = function createDragHelper(count) {\n var text = count === 1 ? 'Move 1 item' : \"Move \".concat(count, \" items\");\n return $(\"\\n
\\n \\n \".concat(text, \"\\n
\\n \"));\n};\n\n/**\n * Get count of selected items for dragging\n * @param {jQuery} draggable - The draggable element\n * @returns {number} Count of items\n */\nvar getSelectedItemsCount = function getSelectedItemsCount(draggable) {\n // Multiple selection from list view\n if (draggable.hasClass('adminify-move-multiple')) {\n return $('#the-list .check-column input[type=checkbox]:checked').length;\n }\n\n // Grid view - check if bulk select mode\n if (draggable.hasClass('attachment')) {\n if ($('.media-toolbar.wp-filter').hasClass('media-toolbar-mode-select')) {\n var selectedCount = $('.attachments-browser li.attachment.selected').length;\n return selectedCount > 0 ? selectedCount : 1;\n }\n }\n\n // Single item\n return 1;\n};\n\n/**\n * Custom hook for folder drag and drop functionality\n * Uses jQuery UI for WordPress compatibility with post/attachment dragging\n */\nvar useFolderDragDrop = function useFolderDragDrop() {\n var actions = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderActions)();\n var state = (0,_store_FolderContext__WEBPACK_IMPORTED_MODULE_1__.useFolderState)();\n\n // Use ref to access current state without causing re-renders\n var stateRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(state);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n stateRef.current = state;\n }, [state]);\n var moveResolverRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var initializedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n\n /**\n * Set up post/folder mapping from DOM elements\n */\n var setPostsFolders = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var posts = {};\n\n // List view posts\n $('#the-list .adminify-move-file').each(function () {\n var id = $(this).data('id');\n var folders = $(this).data('folders');\n posts[id] = folders ? String(folders).split(',').map(function (f) {\n return Number(f);\n }) : [];\n });\n\n // Grid view attachments\n $('.attachments-browser .attachments .attachment').each(function () {\n var id = $(this).data('id');\n var folders = $(this).find('.attachment-preview').data('folders');\n posts[id] = folders ? String(folders).split(',').map(function (f) {\n return Number(f);\n }) : [];\n });\n actions.handleSetPosts(posts);\n }, [actions]);\n\n /**\n * Initialize draggable elements (posts/attachments)\n */\n var initDraggableEvents = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n // List view items - single file\n $('.adminify-move-file:not(.ui-draggable)').draggable({\n revert: 'invalid',\n containment: 'document',\n cursor: 'move',\n appendTo: 'body',\n cursorAt: {\n left: 5,\n top: -25\n },\n helper: function helper() {\n return createDragHelper(1);\n },\n start: function start() {\n $(this).closest('td').addClass('adminify-draggable');\n $('body').addClass('adminify--items-dragging');\n },\n stop: function stop() {\n $(this).closest('td').removeClass('adminify-draggable');\n $('body').removeClass('adminify--items-dragging');\n }\n });\n\n // List view items - multiple selection\n $('.adminify-move-multiple:not(.ui-draggable)').draggable({\n revert: 'invalid',\n containment: 'document',\n cursor: 'move',\n appendTo: 'body',\n cursorAt: {\n left: 5,\n top: -25\n },\n helper: function helper() {\n var count = $('#the-list .check-column input[type=checkbox]:checked').length;\n return createDragHelper(count > 0 ? count : 1);\n },\n start: function start() {\n $(this).closest('td').addClass('adminify-draggable');\n $('body').addClass('adminify--items-dragging');\n },\n stop: function stop() {\n $(this).closest('td').removeClass('adminify-draggable');\n $('body').removeClass('adminify--items-dragging');\n }\n });\n\n // Grid view attachments\n $('.attachments-browser li.attachment:not(.ui-draggable)').draggable({\n revert: 'invalid',\n containment: 'document',\n cursor: 'move',\n appendTo: 'body',\n cursorAt: {\n left: 5,\n top: -25\n },\n helper: function helper() {\n var count = getSelectedItemsCount($(this));\n return createDragHelper(count);\n },\n start: function start() {\n $('body').addClass('adminify--items-dragging');\n },\n stop: function stop() {\n $('body').removeClass('adminify--items-dragging');\n }\n });\n }, []);\n\n /**\n * Show move/copy prompt and return user choice\n */\n var shouldWeMoveToFolder = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n actions.handleShowMoveToModal([], null);\n return new Promise(function (resolve) {\n moveResolverRef.current = resolve;\n var handleClick = function handleClick(e) {\n e.preventDefault();\n var shouldMove = $(e.target).hasClass('button-move');\n resolve(shouldMove);\n cleanup();\n };\n var cleanup = function cleanup() {\n $('body').off('click.promptDialog', '.button-move, .button-copy');\n actions.handleHideMoveToModal();\n moveResolverRef.current = null;\n };\n $('body').on('click.promptDialog', '.button-move, .button-copy', handleClick);\n });\n }, [actions]);\n\n /**\n * Initialize droppable folder targets\n */\n var initDroppableEvents = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n $('.folder--lists li .wp-adminify--folder-row > a:not(.ui-droppable), .folder--stats li.folder--single-uncategorized > a:not(.ui-droppable)').droppable({\n accept: '.adminify-move-file, .adminify-move-multiple, .attachments-browser li.attachment',\n hoverClass: 'adminify-drop-hover',\n classes: {\n 'ui-droppable-active': 'ui-state-highlight'\n },\n tolerance: 'pointer',\n drop: function () {\n var _drop = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event, ui) {\n var folderID, postIDs, shouldMove, posts, hasExistingFolder, isAttachment, mode, response;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n folderID = $(this).closest('li').data('folder');\n if (folderID) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\");\n case 3:\n postIDs = []; // Multiple selection from list view\n if (ui.draggable.hasClass('adminify-move-multiple')) {\n postIDs = $('#the-list .check-column input[type=checkbox]:checked').toArray().map(function (input) {\n return input.value;\n });\n $('.wp-list-table .manage-column.check-column input').prop('checked', false);\n }\n // Single item from list view\n else if (ui.draggable.hasClass('adminify-move-file')) {\n postIDs = [ui.draggable[0].attributes['data-id'].nodeValue];\n }\n // Attachments from grid view\n else if (ui.draggable.hasClass('attachment')) {\n if ($('.media-toolbar.wp-filter').hasClass('media-toolbar-mode-select')) {\n postIDs = $('.attachments-browser li.attachment.selected').toArray().map(function (media) {\n return media.dataset.id;\n });\n } else {\n postIDs = [ui.draggable[0].attributes['data-id'].nodeValue];\n }\n }\n if (postIDs.length) {\n _context.next = 7;\n break;\n }\n return _context.abrupt(\"return\");\n case 7:\n shouldMove = false; // Check if any posts are already in a folder (use ref for current state)\n if (!(folderID !== 'uncategorized')) {\n _context.next = 15;\n break;\n }\n posts = stateRef.current.posts;\n hasExistingFolder = postIDs.some(function (postId) {\n var folderIds = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_2__.getFolderIdsByPostId)(posts, postId);\n return folderIds && folderIds.length > 0;\n });\n if (!hasExistingFolder) {\n _context.next = 15;\n break;\n }\n _context.next = 14;\n return shouldWeMoveToFolder();\n case 14:\n shouldMove = _context.sent;\n case 15:\n // Determine mode\n isAttachment = ui.draggable.hasClass('attachment');\n mode = isAttachment ? 'grid' : $('input[name=post_view]').first().val() || 'list'; // Move to folder\n _context.next = 19;\n return actions.handleMoveToFolder(postIDs, folderID, shouldMove, mode);\n case 19:\n response = _context.sent;\n if (response.success) {\n refreshRows();\n }\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function drop(_x, _x2) {\n return _drop.apply(this, arguments);\n }\n return drop;\n }()\n });\n }, [actions, shouldWeMoveToFolder]);\n\n /**\n * Refresh current view rows\n */\n var refreshRows = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var $currentItem = $('.folder--lists li.active, .folder--stats li.active').first();\n var $target = $currentItem.length ? $currentItem : $('.folder--stats li').first();\n $target.children('a').trigger('click');\n }, []);\n\n /**\n * Handle WordPress AJAX events for re-initialization\n */\n var resetOnOtherAjaxEvents = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n var _window$wp;\n $(document).ajaxComplete(function (event, xhr, settings) {\n if (settings.dataType === 'html') {\n initDraggableEvents();\n return;\n }\n if (!settings.data) return;\n var accepted = ['inline-save', 'query-attachments', 'delete-post'].some(function (action) {\n return settings.data.indexOf(\"action=\".concat(action)) !== -1;\n });\n if (accepted) {\n setTimeout(function () {\n initDraggableEvents();\n actions.handleRefreshFolders();\n }, 100);\n }\n });\n\n // Handle upload completion\n if ((_window$wp = window.wp) !== null && _window$wp !== void 0 && (_window$wp = _window$wp.Uploader) !== null && _window$wp !== void 0 && _window$wp.queue) {\n window.wp.Uploader.queue.on('reset', function () {\n initDraggableEvents();\n actions.handleRefreshFolders();\n });\n }\n }, [initDraggableEvents, actions]);\n\n /**\n * Initialize all drag/drop events\n */\n var initialize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n if (initializedRef.current) return; // Prevent double initialization\n initializedRef.current = true;\n setPostsFolders();\n initDraggableEvents();\n initDroppableEvents();\n resetOnOtherAjaxEvents();\n }, [setPostsFolders, initDraggableEvents, initDroppableEvents, resetOnOtherAjaxEvents]);\n\n /**\n * Reinitialize after data changes\n */\n var reinitialize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {\n setTimeout(function () {\n initDroppableEvents();\n initDraggableEvents();\n setPostsFolders();\n }, 200);\n }, [initDroppableEvents, initDraggableEvents, setPostsFolders]);\n\n // Store folders length in ref to detect actual changes\n var foldersLengthRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(state.folders.length);\n\n // Effect to reinitialize when folders change (only on actual folder count change)\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n // Skip initial render\n if (!initializedRef.current) {\n return;\n }\n\n // Only reinitialize if folder count actually changed\n if (state.folders.length !== foldersLengthRef.current && state.folders.length > 0) {\n foldersLengthRef.current = state.folders.length;\n setTimeout(function () {\n initDroppableEvents();\n initDraggableEvents();\n setPostsFolders();\n }, 200);\n }\n }, [state.folders.length, initDroppableEvents, initDraggableEvents, setPostsFolders]);\n return {\n initialize: initialize,\n reinitialize: reinitialize,\n setPostsFolders: setPostsFolders,\n initDraggableEvents: initDraggableEvents,\n initDroppableEvents: initDroppableEvents,\n refreshRows: refreshRows\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useFolderDragDrop);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/hooks/useFolderDragDrop.js?"); /***/ }), /***/ "./dev/admin/modules/folder/index.jsx": /*!********************************************!*\ !*** ./dev/admin/modules/folder/index.jsx ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FolderApp: () => (/* reexport safe */ _FolderApp__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ FolderProvider: () => (/* reexport safe */ _store_FolderContext__WEBPACK_IMPORTED_MODULE_2__.FolderProvider),\n/* harmony export */ ModalFolderSidebar: () => (/* reexport safe */ _components_ModalFolderSidebar__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ waitForElm: () => (/* binding */ waitForElm)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _store_FolderContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./store/FolderContext */ \"./dev/admin/modules/folder/store/FolderContext.jsx\");\n/* harmony import */ var _FolderApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FolderApp */ \"./dev/admin/modules/folder/FolderApp.jsx\");\n/* harmony import */ var _components_ModalFolderSidebar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/ModalFolderSidebar */ \"./dev/admin/modules/folder/components/ModalFolderSidebar.jsx\");\n/* harmony import */ var _folder_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./folder.scss */ \"./dev/admin/modules/folder/folder.scss\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n * Folder Module Entry Point\n * Initializes the React folder application\n */\n\n\n\n\n\n\n\nvar $ = window.jQuery;\n\n/**\n * Initialize the folder module\n * @param {boolean} isModal - Whether this is being rendered inside a modal\n */\nvar initFolderModule = function initFolderModule() {\n var isModal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var containerId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'wp-adminify--folder-app';\n var container = document.getElementById(containerId);\n var initialData = window.PXLBSADMINIFY_FOLDER_DATA;\n if (!container || !initialData) {\n return;\n }\n\n // Prevent multiple React root creations on the same container\n if (container.dataset.reactRootInitialized === 'true') {\n return;\n }\n\n // Mark container as initialized\n container.dataset.reactRootInitialized = 'true';\n\n // Modify attachment template to include folder data attribute\n var attachmentTemplate = $('#tmpl-attachment');\n if (attachmentTemplate.length) {\n var template = attachmentTemplate.html().replace('data.orientation }}\">', 'data.orientation }}\" data-folders=\"{{ data.media_folder }}\">');\n attachmentTemplate.html(template);\n }\n\n // Create React root and render\n var root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(container);\n root.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_store_FolderContext__WEBPACK_IMPORTED_MODULE_2__.FolderProvider, {\n initialData: initialData\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FolderApp__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null)));\n\n // Store root in global Map for cleanup (especially important for modals)\n if (isModal && window.wpAdminifyModalRoots) {\n var _container$closest;\n var mapKey = ((_container$closest = container.closest('.wp-adminify--modal-folder-container')) === null || _container$closest === void 0 ? void 0 : _container$closest.id) || container.id;\n window.wpAdminifyModalRoots.set(mapKey, root);\n }\n return root;\n};\n\n/**\n * Initialize media folder filter (for grid view dropdown)\n */\nvar initMediaFolderFilter = function initMediaFolderFilter() {\n $(document).ready(function () {\n $('#wp-adminify-media-folder-filter').on('change', function (e) {\n e.preventDefault();\n var folderSlug = $(this).val();\n var url = new URL(window.location.href);\n var params = url.searchParams;\n if (folderSlug && folderSlug !== '0' && folderSlug !== 'all') {\n params.set('media_folder', encodeURIComponent(folderSlug));\n } else {\n params[\"delete\"]('media_folder');\n }\n url.search = params.toString();\n history.pushState(null, '', url.toString());\n window.location.reload();\n });\n\n // Handle upload with folder assignment\n if ($('body.wp-admin').hasClass('media-new-php') && _typeof(window.uploader) === 'object') {\n window.uploader.bind('BeforeUpload', function (up) {\n var settings = up.settings.multipart_params;\n settings.folder_id = $('#folders').val();\n });\n }\n });\n};\n\n// Initialize when DOM is ready\n$(function () {\n // Check if we're in a modal context\n var isInModal = function isInModal() {\n var container = document.getElementById('wp-adminify--folder-app');\n return container && container.closest('.media-modal') !== null;\n };\n waitForElm(\"#wp-adminify--folder-app\").then(function (elm) {\n try {\n initFolderModule(isInModal());\n } catch (e) {\n console.log('Cannot access contentDocument (cross-origin or error):', e.message);\n }\n });\n initFolderModule(isInModal());\n initMediaFolderFilter();\n});\n\n// Expose initFolderModule globally for modal-popup-folder.js to use\nwindow.wpAdminifyInitFolderModule = initFolderModule;\n\n// Export for potential external use\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initFolderModule);\n\n/**\n *\n * @param {CSS} selector\n * @returns exits DOM\n */\nfunction waitForElm(selector) {\n return new Promise(function (resolve) {\n if (document.querySelector(selector)) {\n return resolve(document.querySelector(selector));\n }\n var observer = new MutationObserver(function (mutations) {\n if (document.querySelector(selector)) {\n observer.disconnect();\n resolve(document.querySelector(selector));\n }\n });\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n });\n}\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/index.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/store/FolderContext.jsx": /*!**********************************************************!*\ !*** ./dev/admin/modules/folder/store/FolderContext.jsx ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FolderProvider: () => (/* binding */ FolderProvider),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ useFolderActions: () => (/* binding */ useFolderActions),\n/* harmony export */ useFolderComputed: () => (/* binding */ useFolderComputed),\n/* harmony export */ useFolderContext: () => (/* binding */ useFolderContext),\n/* harmony export */ useFolderState: () => (/* binding */ useFolderState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _folderReducer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./folderReducer */ \"./dev/admin/modules/folder/store/folderReducer.js\");\n/* harmony import */ var _folderActions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./folderActions */ \"./dev/admin/modules/folder/store/folderActions.js\");\n/* harmony import */ var _api_folderApi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api/folderApi */ \"./dev/admin/modules/folder/api/folderApi.js\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/**\n * Folder Context Provider\n * Split into separate contexts to prevent unnecessary re-renders\n */\n\n\n\n\n\n\n\n// Separate contexts to prevent unnecessary re-renders\nvar FolderStateContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\nvar FolderActionsContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\nvar FolderComputedContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\n\n/**\n * Folder Provider Component\n */\nvar FolderProvider = function FolderProvider(_ref) {\n var initialData = _ref.initialData,\n children = _ref.children;\n var _useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_folderReducer__WEBPACK_IMPORTED_MODULE_1__.folderReducer, initialData, _folderReducer__WEBPACK_IMPORTED_MODULE_1__.createInitialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n // Use ref to access current state in callbacks without triggering re-renders\n var stateRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(state);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n stateRef.current = state;\n }, [state]);\n\n // Memoized computed values\n var computed = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n var filteredFolders = function () {\n var folders = state.folders;\n folders = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.sortFolders)(folders, state.sort);\n if (state.filterText.trim()) {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.filterFolders)(folders, state.filterText);\n }\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.buildFolderHierarchy)(folders, state.folderHierarchy);\n }();\n var totalPostsCount = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.calculateTotalPosts)(state.totalPosts);\n var isReachedLimit = state.isPro ? false : state.folders.length >= 3;\n var folderToEdit = state.foldersToEdit[0] || null;\n var availableColorTags = (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.getColorTags)(folderToEdit, state.colorTags);\n return {\n filteredFolders: filteredFolders,\n totalPostsCount: totalPostsCount,\n isReachedLimit: isReachedLimit,\n availableColorTags: availableColorTags\n };\n }, [state.folders, state.sort, state.filterText, state.folderHierarchy, state.totalPosts, state.isPro, state.foldersToEdit, state.colorTags]);\n\n // Actions - NEVER changes after initial creation (uses stateRef)\n var actions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return {\n // Filter and sort\n handleFilterChange: function handleFilterChange(text) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setFilter)(text));\n },\n handleSortChange: function handleSortChange(sort) {\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.setSortPreference)(stateRef.current.postTypeTax, sort);\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setSort)(sort));\n },\n handleExpandChange: function handleExpandChange(expand) {\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.setExpandPreference)(stateRef.current.postTypeTax, expand);\n // Clear individual expanded folder IDs when using global expand/collapse\n (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.clearExpandedFolderIds)(stateRef.current.postTypeTax);\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setExpand)(expand));\n },\n handleToggleFolderSelect: function handleToggleFolderSelect() {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.toggleFolderSelect)());\n },\n handleToggleFolderSelection: function handleToggleFolderSelection(folderId) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.toggleFolderSelection)(folderId));\n },\n // Modal handlers\n handleShowCreateModal: function handleShowCreateModal() {\n var parentFolder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n document.body.classList.add('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.openCreateModal)(parentFolder));\n },\n handleHideCreateModal: function handleHideCreateModal() {\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeCreateModal)());\n },\n handleShowRenameModal: function handleShowRenameModal(folder) {\n document.body.classList.add('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.openRenameModal)(folder));\n },\n handleHideRenameModal: function handleHideRenameModal() {\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeRenameModal)());\n },\n handleShowDeleteModal: function handleShowDeleteModal(folders) {\n var foldersArray = Array.isArray(folders) ? folders : [folders];\n document.body.classList.add('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.openDeleteModal)(foldersArray));\n },\n handleHideDeleteModal: function handleHideDeleteModal() {\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeDeleteModal)());\n },\n handleShowMoveToModal: function handleShowMoveToModal(postIds, targetFolder) {\n document.body.classList.add('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.openMoveToModal)(postIds, targetFolder));\n },\n handleHideMoveToModal: function handleHideMoveToModal() {\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeMoveToModal)());\n },\n // Form handlers\n handleNewFolderNameChange: function handleNewFolderNameChange(name) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setNewFolderName)(name));\n },\n handleRenameFolderNameChange: function handleRenameFolderNameChange(name) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setRenameFolderName)(name));\n },\n handleColorChange: function handleColorChange(color) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setActiveColor)(color));\n },\n // API actions\n handleCreateFolder: function () {\n var _handleCreateFolder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _stateRef$current, newFolderName, activeColorTag, modals, isPro, parentFolder, response, _response$data;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _stateRef$current = stateRef.current, newFolderName = _stateRef$current.newFolderName, activeColorTag = _stateRef$current.activeColorTag, modals = _stateRef$current.modals, isPro = _stateRef$current.isPro;\n parentFolder = isPro ? modals.create.parentFolder : null;\n _context.prev = 2;\n _context.next = 5;\n return _api_folderApi__WEBPACK_IMPORTED_MODULE_3__.createFolder(newFolderName, activeColorTag, parentFolder);\n case 5:\n response = _context.sent;\n if (response.success) {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.refreshData)(response.data));\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeCreateModal)());\n } else {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setCreateError)(((_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.message) || 'Failed to create folder'));\n }\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](2);\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setCreateError)('An error occurred while creating the folder'));\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 9]]);\n }));\n function handleCreateFolder() {\n return _handleCreateFolder.apply(this, arguments);\n }\n return handleCreateFolder;\n }(),\n handleRenameFolder: function () {\n var _handleRenameFolder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var _stateRef$current2, renameFolderName, activeColorTag, originalFolderName, originalColorTag, foldersToEdit, hasNameChange, hasColorChange, folder, response, _response$data2;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _stateRef$current2 = stateRef.current, renameFolderName = _stateRef$current2.renameFolderName, activeColorTag = _stateRef$current2.activeColorTag, originalFolderName = _stateRef$current2.originalFolderName, originalColorTag = _stateRef$current2.originalColorTag, foldersToEdit = _stateRef$current2.foldersToEdit;\n hasNameChange = renameFolderName.trim() !== originalFolderName.trim();\n hasColorChange = activeColorTag !== originalColorTag;\n if (!(!hasNameChange && !hasColorChange)) {\n _context2.next = 7;\n break;\n }\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeRenameModal)());\n return _context2.abrupt(\"return\");\n case 7:\n folder = foldersToEdit[0];\n if (folder) {\n _context2.next = 10;\n break;\n }\n return _context2.abrupt(\"return\");\n case 10:\n _context2.prev = 10;\n _context2.next = 13;\n return _api_folderApi__WEBPACK_IMPORTED_MODULE_3__.renameFolder(folder.term_id, renameFolderName, activeColorTag);\n case 13:\n response = _context2.sent;\n if (response.success) {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.refreshData)(response.data));\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeRenameModal)());\n } else {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setRenameError)(((_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.message) || 'Failed to rename folder'));\n }\n _context2.next = 20;\n break;\n case 17:\n _context2.prev = 17;\n _context2.t0 = _context2[\"catch\"](10);\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setRenameError)('An error occurred while renaming the folder'));\n case 20:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 17]]);\n }));\n function handleRenameFolder() {\n return _handleRenameFolder.apply(this, arguments);\n }\n return handleRenameFolder;\n }(),\n handleDeleteFolders: function () {\n var _handleDeleteFolders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var foldersToEdit, termIds, response;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n foldersToEdit = stateRef.current.foldersToEdit;\n if (foldersToEdit.length) {\n _context3.next = 5;\n break;\n }\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeDeleteModal)());\n return _context3.abrupt(\"return\");\n case 5:\n termIds = foldersToEdit.map(function (folder) {\n return folder.term_id;\n });\n _context3.prev = 6;\n _context3.next = 9;\n return _api_folderApi__WEBPACK_IMPORTED_MODULE_3__.deleteFolders(termIds);\n case 9:\n response = _context3.sent;\n if (response.success) {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.refreshData)(response.data));\n document.body.classList.remove('wp-adminify--popup-show');\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.closeDeleteModal)());\n }\n _context3.next = 16;\n break;\n case 13:\n _context3.prev = 13;\n _context3.t0 = _context3[\"catch\"](6);\n console.error('Error deleting folders:', _context3.t0);\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[6, 13]]);\n }));\n function handleDeleteFolders() {\n return _handleDeleteFolders.apply(this, arguments);\n }\n return handleDeleteFolders;\n }(),\n handleMoveToFolder: function () {\n var _handleMoveToFolder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(postIds, folderId, shouldMove) {\n var mode,\n screen,\n response,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n mode = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : 'list';\n _context4.prev = 1;\n screen = window.pagenow || '';\n _context4.next = 5;\n return _api_folderApi__WEBPACK_IMPORTED_MODULE_3__.moveToFolder(postIds, folderId, shouldMove, screen, mode);\n case 5:\n response = _context4.sent;\n if (response.success) {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.refreshData)(response.data));\n }\n return _context4.abrupt(\"return\", response);\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](1);\n console.error('Error moving to folder:', _context4.t0);\n return _context4.abrupt(\"return\", {\n success: false\n });\n case 14:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[1, 10]]);\n }));\n function handleMoveToFolder(_x, _x2, _x3) {\n return _handleMoveToFolder.apply(this, arguments);\n }\n return handleMoveToFolder;\n }(),\n handleRefreshFolders: function () {\n var _handleRefreshFolders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var response;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return _api_folderApi__WEBPACK_IMPORTED_MODULE_3__.refreshFolders();\n case 3:\n response = _context5.sent;\n if (response.success) {\n dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.refreshData)(response.data));\n }\n _context5.next = 10;\n break;\n case 7:\n _context5.prev = 7;\n _context5.t0 = _context5[\"catch\"](0);\n console.error('Error refreshing folders:', _context5.t0);\n case 10:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 7]]);\n }));\n function handleRefreshFolders() {\n return _handleRefreshFolders.apply(this, arguments);\n }\n return handleRefreshFolders;\n }(),\n handleSetPosts: function handleSetPosts(posts) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setPosts)(posts));\n },\n isFolderActive: function isFolderActive(folder) {\n return (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_4__.isActiveFolder)(folder, stateRef.current.postTypeTax);\n },\n setFoldersToEdit: function setFoldersToEdit(folders) {\n return dispatch((0,_folderActions__WEBPACK_IMPORTED_MODULE_2__.setFoldersToEdit)(folders));\n },\n getActiveFolders: function getActiveFolders() {\n var activeLi = document.querySelector('.folder--lists li.active');\n if (activeLi) {\n var folderId = activeLi.dataset.folder;\n return stateRef.current.folders.filter(function (f) {\n return f.term_id === Number(folderId);\n });\n }\n return [];\n },\n getStateRef: function getStateRef() {\n return stateRef;\n }\n };\n }, [dispatch]); // Only depends on dispatch which never changes\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FolderActionsContext.Provider, {\n value: actions\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FolderStateContext.Provider, {\n value: state\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FolderComputedContext.Provider, {\n value: computed\n }, children)));\n};\n\n/**\n * Hook to get ONLY actions (never causes re-render)\n */\nvar useFolderActions = function useFolderActions() {\n var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FolderActionsContext);\n if (!context) {\n throw new Error('useFolderActions must be used within a FolderProvider');\n }\n return context;\n};\n\n/**\n * Hook to get state (re-renders when state changes)\n */\nvar useFolderState = function useFolderState() {\n var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FolderStateContext);\n if (!context) {\n throw new Error('useFolderState must be used within a FolderProvider');\n }\n return context;\n};\n\n/**\n * Hook to get computed values (re-renders when computed changes)\n */\nvar useFolderComputed = function useFolderComputed() {\n var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(FolderComputedContext);\n if (!context) {\n throw new Error('useFolderComputed must be used within a FolderProvider');\n }\n return context;\n};\n\n/**\n * Combined hook for backward compatibility\n */\nvar useFolderContext = function useFolderContext() {\n var state = useFolderState();\n var actions = useFolderActions();\n var computed = useFolderComputed();\n return {\n state: state,\n actions: actions,\n computed: computed\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FolderStateContext);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/store/FolderContext.jsx?"); /***/ }), /***/ "./dev/admin/modules/folder/store/folderActions.js": /*!*********************************************************!*\ !*** ./dev/admin/modules/folder/store/folderActions.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ActionTypes: () => (/* binding */ ActionTypes),\n/* harmony export */ addFolderToEdit: () => (/* binding */ addFolderToEdit),\n/* harmony export */ clearErrors: () => (/* binding */ clearErrors),\n/* harmony export */ clearFoldersToEdit: () => (/* binding */ clearFoldersToEdit),\n/* harmony export */ closeCreateModal: () => (/* binding */ closeCreateModal),\n/* harmony export */ closeDeleteModal: () => (/* binding */ closeDeleteModal),\n/* harmony export */ closeMoveToModal: () => (/* binding */ closeMoveToModal),\n/* harmony export */ closeRenameModal: () => (/* binding */ closeRenameModal),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ openCreateModal: () => (/* binding */ openCreateModal),\n/* harmony export */ openDeleteModal: () => (/* binding */ openDeleteModal),\n/* harmony export */ openMoveToModal: () => (/* binding */ openMoveToModal),\n/* harmony export */ openRenameModal: () => (/* binding */ openRenameModal),\n/* harmony export */ refreshData: () => (/* binding */ refreshData),\n/* harmony export */ removeFolderToEdit: () => (/* binding */ removeFolderToEdit),\n/* harmony export */ setActiveColor: () => (/* binding */ setActiveColor),\n/* harmony export */ setCreateError: () => (/* binding */ setCreateError),\n/* harmony export */ setCurrentView: () => (/* binding */ setCurrentView),\n/* harmony export */ setDeleteError: () => (/* binding */ setDeleteError),\n/* harmony export */ setExpand: () => (/* binding */ setExpand),\n/* harmony export */ setFilter: () => (/* binding */ setFilter),\n/* harmony export */ setFolders: () => (/* binding */ setFolders),\n/* harmony export */ setFoldersToEdit: () => (/* binding */ setFoldersToEdit),\n/* harmony export */ setLoading: () => (/* binding */ setLoading),\n/* harmony export */ setNewFolderName: () => (/* binding */ setNewFolderName),\n/* harmony export */ setPosts: () => (/* binding */ setPosts),\n/* harmony export */ setRenameError: () => (/* binding */ setRenameError),\n/* harmony export */ setRenameFolderName: () => (/* binding */ setRenameFolderName),\n/* harmony export */ setSort: () => (/* binding */ setSort),\n/* harmony export */ toggleFolderSelect: () => (/* binding */ toggleFolderSelect),\n/* harmony export */ toggleFolderSelection: () => (/* binding */ toggleFolderSelection)\n/* harmony export */ });\n/**\n * Folder Action Types and Action Creators\n */\n\n// Action Types\nvar ActionTypes = {\n // Data actions\n SET_FOLDERS: 'SET_FOLDERS',\n SET_POSTS: 'SET_POSTS',\n REFRESH_DATA: 'REFRESH_DATA',\n // UI State actions\n SET_FILTER: 'SET_FILTER',\n SET_SORT: 'SET_SORT',\n SET_EXPAND: 'SET_EXPAND',\n SET_CURRENT_VIEW: 'SET_CURRENT_VIEW',\n TOGGLE_FOLDER_SELECT: 'TOGGLE_FOLDER_SELECT',\n // Folder selection for bulk actions\n ADD_FOLDER_TO_EDIT: 'ADD_FOLDER_TO_EDIT',\n REMOVE_FOLDER_TO_EDIT: 'REMOVE_FOLDER_TO_EDIT',\n SET_FOLDERS_TO_EDIT: 'SET_FOLDERS_TO_EDIT',\n CLEAR_FOLDERS_TO_EDIT: 'CLEAR_FOLDERS_TO_EDIT',\n TOGGLE_FOLDER_SELECTION: 'TOGGLE_FOLDER_SELECTION',\n // Modal actions\n OPEN_CREATE_MODAL: 'OPEN_CREATE_MODAL',\n CLOSE_CREATE_MODAL: 'CLOSE_CREATE_MODAL',\n OPEN_RENAME_MODAL: 'OPEN_RENAME_MODAL',\n CLOSE_RENAME_MODAL: 'CLOSE_RENAME_MODAL',\n OPEN_DELETE_MODAL: 'OPEN_DELETE_MODAL',\n CLOSE_DELETE_MODAL: 'CLOSE_DELETE_MODAL',\n OPEN_MOVE_TO_MODAL: 'OPEN_MOVE_TO_MODAL',\n CLOSE_MOVE_TO_MODAL: 'CLOSE_MOVE_TO_MODAL',\n // Form state actions\n SET_NEW_FOLDER_NAME: 'SET_NEW_FOLDER_NAME',\n SET_RENAME_FOLDER_NAME: 'SET_RENAME_FOLDER_NAME',\n SET_ACTIVE_COLOR: 'SET_ACTIVE_COLOR',\n // Error actions\n SET_CREATE_ERROR: 'SET_CREATE_ERROR',\n SET_RENAME_ERROR: 'SET_RENAME_ERROR',\n SET_DELETE_ERROR: 'SET_DELETE_ERROR',\n CLEAR_ERRORS: 'CLEAR_ERRORS',\n // Loading state\n SET_LOADING: 'SET_LOADING'\n};\n\n// Action Creators\n\n// Data actions\nvar setFolders = function setFolders(folders) {\n return {\n type: ActionTypes.SET_FOLDERS,\n payload: folders\n };\n};\nvar setPosts = function setPosts(posts) {\n return {\n type: ActionTypes.SET_POSTS,\n payload: posts\n };\n};\nvar refreshData = function refreshData(data) {\n return {\n type: ActionTypes.REFRESH_DATA,\n payload: data\n };\n};\n\n// UI State actions\nvar setFilter = function setFilter(filterText) {\n return {\n type: ActionTypes.SET_FILTER,\n payload: filterText\n };\n};\nvar setSort = function setSort(sort) {\n return {\n type: ActionTypes.SET_SORT,\n payload: sort\n };\n};\nvar setExpand = function setExpand(expand) {\n return {\n type: ActionTypes.SET_EXPAND,\n payload: expand\n };\n};\nvar setCurrentView = function setCurrentView(view) {\n return {\n type: ActionTypes.SET_CURRENT_VIEW,\n payload: view\n };\n};\nvar toggleFolderSelect = function toggleFolderSelect() {\n return {\n type: ActionTypes.TOGGLE_FOLDER_SELECT\n };\n};\n\n// Folder selection actions\nvar addFolderToEdit = function addFolderToEdit(folder) {\n return {\n type: ActionTypes.ADD_FOLDER_TO_EDIT,\n payload: folder\n };\n};\nvar removeFolderToEdit = function removeFolderToEdit(folderId) {\n return {\n type: ActionTypes.REMOVE_FOLDER_TO_EDIT,\n payload: folderId\n };\n};\nvar setFoldersToEdit = function setFoldersToEdit(folders) {\n return {\n type: ActionTypes.SET_FOLDERS_TO_EDIT,\n payload: folders\n };\n};\nvar clearFoldersToEdit = function clearFoldersToEdit() {\n return {\n type: ActionTypes.CLEAR_FOLDERS_TO_EDIT\n };\n};\nvar toggleFolderSelection = function toggleFolderSelection(folderId) {\n return {\n type: ActionTypes.TOGGLE_FOLDER_SELECTION,\n payload: folderId\n };\n};\n\n// Modal actions\nvar openCreateModal = function openCreateModal() {\n var parentFolder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return {\n type: ActionTypes.OPEN_CREATE_MODAL,\n payload: {\n parentFolder: parentFolder\n }\n };\n};\nvar closeCreateModal = function closeCreateModal() {\n return {\n type: ActionTypes.CLOSE_CREATE_MODAL\n };\n};\nvar openRenameModal = function openRenameModal(folder) {\n return {\n type: ActionTypes.OPEN_RENAME_MODAL,\n payload: {\n folder: folder\n }\n };\n};\nvar closeRenameModal = function closeRenameModal() {\n return {\n type: ActionTypes.CLOSE_RENAME_MODAL\n };\n};\nvar openDeleteModal = function openDeleteModal(folders) {\n return {\n type: ActionTypes.OPEN_DELETE_MODAL,\n payload: {\n folders: folders\n }\n };\n};\nvar closeDeleteModal = function closeDeleteModal() {\n return {\n type: ActionTypes.CLOSE_DELETE_MODAL\n };\n};\nvar openMoveToModal = function openMoveToModal(postIds, targetFolder) {\n return {\n type: ActionTypes.OPEN_MOVE_TO_MODAL,\n payload: {\n postIds: postIds,\n targetFolder: targetFolder\n }\n };\n};\nvar closeMoveToModal = function closeMoveToModal() {\n return {\n type: ActionTypes.CLOSE_MOVE_TO_MODAL\n };\n};\n\n// Form state actions\nvar setNewFolderName = function setNewFolderName(name) {\n return {\n type: ActionTypes.SET_NEW_FOLDER_NAME,\n payload: name\n };\n};\nvar setRenameFolderName = function setRenameFolderName(name) {\n return {\n type: ActionTypes.SET_RENAME_FOLDER_NAME,\n payload: name\n };\n};\nvar setActiveColor = function setActiveColor(color) {\n return {\n type: ActionTypes.SET_ACTIVE_COLOR,\n payload: color\n };\n};\n\n// Error actions\nvar setCreateError = function setCreateError(error) {\n return {\n type: ActionTypes.SET_CREATE_ERROR,\n payload: error\n };\n};\nvar setRenameError = function setRenameError(error) {\n return {\n type: ActionTypes.SET_RENAME_ERROR,\n payload: error\n };\n};\nvar setDeleteError = function setDeleteError(error) {\n return {\n type: ActionTypes.SET_DELETE_ERROR,\n payload: error\n };\n};\nvar clearErrors = function clearErrors() {\n return {\n type: ActionTypes.CLEAR_ERRORS\n };\n};\n\n// Loading state\nvar setLoading = function setLoading(isLoading) {\n return {\n type: ActionTypes.SET_LOADING,\n payload: isLoading\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ActionTypes);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/store/folderActions.js?"); /***/ }), /***/ "./dev/admin/modules/folder/store/folderReducer.js": /*!*********************************************************!*\ !*** ./dev/admin/modules/folder/store/folderReducer.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createInitialState: () => (/* binding */ createInitialState),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ folderReducer: () => (/* binding */ folderReducer)\n/* harmony export */ });\n/* harmony import */ var _folderActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./folderActions */ \"./dev/admin/modules/folder/store/folderActions.js\");\n/* harmony import */ var _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/folderUtils */ \"./dev/admin/modules/folder/utils/folderUtils.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Folder Reducer\n * Manages all state transitions for the folder module\n */\n\n\n\n\n/**\n * Initial state for the folder module\n */\nvar createInitialState = function createInitialState() {\n var initialData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n // Data\n folders: initialData.folders || [],\n folderHierarchy: initialData.folder_hierarchy || {},\n posts: {},\n totalPosts: initialData.total_posts || {\n 'auto-draft': 0,\n draft: 0,\n future: 0,\n inherit: 0,\n pending: 0,\n \"private\": 0,\n publish: 0,\n 'request-completed': 0,\n 'request-confirmed': 0,\n 'request-failed': 0,\n 'request-pending': 0,\n trash: 0\n },\n totalUncatPosts: initialData.total_uncat_posts || 0,\n // Config\n postType: initialData.post_type || '',\n postTypeTax: initialData.post_type_tax || '',\n adminUrl: initialData.adminurl || '',\n isPro: !!initialData.is_pro,\n proNotice: initialData.pro_notice || '',\n // UI State\n filterText: '',\n sort: (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.getSortPreference)(initialData.post_type_tax || ''),\n expand: (0,_utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.getExpandPreference)(initialData.post_type_tax || ''),\n currentView: 'all',\n folderSelectToggle: false,\n foldersToEdit: [],\n // Modal State\n modals: {\n create: {\n open: false,\n parentFolder: null\n },\n rename: {\n open: false,\n folder: null\n },\n \"delete\": {\n open: false,\n folders: []\n },\n moveTo: {\n open: false,\n postIds: [],\n targetFolder: null\n }\n },\n // Form State\n newFolderName: '',\n renameFolderName: '',\n activeColorTag: _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n originalColorTag: _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n originalFolderName: '',\n // Errors\n errors: {\n create: null,\n rename: null,\n \"delete\": null\n },\n // Loading\n loading: false,\n // Color options\n colorTags: _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS\n };\n};\n\n/**\n * Folder reducer\n * @param {Object} state - Current state\n * @param {Object} action - Action object with type and payload\n * @returns {Object} New state\n */\nvar folderReducer = function folderReducer(state, action) {\n var _action$payload$total;\n switch (action.type) {\n // Data actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_FOLDERS:\n return _objectSpread(_objectSpread({}, state), {}, {\n folders: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_POSTS:\n return _objectSpread(_objectSpread({}, state), {}, {\n posts: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.REFRESH_DATA:\n return _objectSpread(_objectSpread({}, state), {}, {\n folders: action.payload.folders || state.folders,\n totalPosts: action.payload.total_posts || state.totalPosts,\n totalUncatPosts: (_action$payload$total = action.payload.total_uncat_posts) !== null && _action$payload$total !== void 0 ? _action$payload$total : state.totalUncatPosts,\n folderHierarchy: action.payload.folder_hierarchy || state.folderHierarchy\n });\n\n // UI State actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_FILTER:\n return _objectSpread(_objectSpread({}, state), {}, {\n filterText: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_SORT:\n return _objectSpread(_objectSpread({}, state), {}, {\n sort: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_EXPAND:\n return _objectSpread(_objectSpread({}, state), {}, {\n expand: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_CURRENT_VIEW:\n return _objectSpread(_objectSpread({}, state), {}, {\n currentView: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.TOGGLE_FOLDER_SELECT:\n return _objectSpread(_objectSpread({}, state), {}, {\n folderSelectToggle: !state.folderSelectToggle,\n // Reset selections when toggling off\n folders: state.folderSelectToggle ? state.folders.map(function (f) {\n return _objectSpread(_objectSpread({}, f), {}, {\n selected: false\n });\n }) : state.folders\n });\n\n // Folder selection actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.ADD_FOLDER_TO_EDIT:\n return _objectSpread(_objectSpread({}, state), {}, {\n foldersToEdit: [].concat(_toConsumableArray(state.foldersToEdit), [action.payload])\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.REMOVE_FOLDER_TO_EDIT:\n return _objectSpread(_objectSpread({}, state), {}, {\n foldersToEdit: state.foldersToEdit.filter(function (f) {\n return f.term_id !== action.payload;\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_FOLDERS_TO_EDIT:\n return _objectSpread(_objectSpread({}, state), {}, {\n foldersToEdit: action.payload\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLEAR_FOLDERS_TO_EDIT:\n return _objectSpread(_objectSpread({}, state), {}, {\n foldersToEdit: []\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.TOGGLE_FOLDER_SELECTION:\n return _objectSpread(_objectSpread({}, state), {}, {\n folders: state.folders.map(function (folder) {\n return folder.term_id === action.payload ? _objectSpread(_objectSpread({}, folder), {}, {\n selected: !folder.selected\n }) : folder;\n })\n });\n\n // Modal actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.OPEN_CREATE_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n create: {\n open: true,\n parentFolder: action.payload.parentFolder\n }\n }),\n newFolderName: '',\n activeColorTag: _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n originalColorTag: _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n create: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLOSE_CREATE_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n create: {\n open: false,\n parentFolder: null\n }\n }),\n newFolderName: '',\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n create: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.OPEN_RENAME_MODAL:\n var folderToRename = action.payload.folder;\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n rename: {\n open: true,\n folder: folderToRename\n }\n }),\n foldersToEdit: [folderToRename],\n renameFolderName: (folderToRename === null || folderToRename === void 0 ? void 0 : folderToRename.name) || '',\n originalFolderName: (folderToRename === null || folderToRename === void 0 ? void 0 : folderToRename.name) || '',\n activeColorTag: (folderToRename === null || folderToRename === void 0 ? void 0 : folderToRename.color) || _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n originalColorTag: (folderToRename === null || folderToRename === void 0 ? void 0 : folderToRename.color) || _utils_folderUtils__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_COLOR_TAGS[0],\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n rename: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLOSE_RENAME_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n rename: {\n open: false,\n folder: null\n }\n }),\n renameFolderName: '',\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n rename: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.OPEN_DELETE_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n \"delete\": {\n open: true,\n folders: action.payload.folders\n }\n }),\n foldersToEdit: action.payload.folders,\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n \"delete\": null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLOSE_DELETE_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n \"delete\": {\n open: false,\n folders: []\n }\n }),\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n \"delete\": null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.OPEN_MOVE_TO_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n moveTo: {\n open: true,\n postIds: action.payload.postIds,\n targetFolder: action.payload.targetFolder\n }\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLOSE_MOVE_TO_MODAL:\n return _objectSpread(_objectSpread({}, state), {}, {\n modals: _objectSpread(_objectSpread({}, state.modals), {}, {\n moveTo: {\n open: false,\n postIds: [],\n targetFolder: null\n }\n })\n });\n\n // Form state actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_NEW_FOLDER_NAME:\n return _objectSpread(_objectSpread({}, state), {}, {\n newFolderName: action.payload,\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n create: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_RENAME_FOLDER_NAME:\n return _objectSpread(_objectSpread({}, state), {}, {\n renameFolderName: action.payload,\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n rename: null\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_ACTIVE_COLOR:\n return _objectSpread(_objectSpread({}, state), {}, {\n activeColorTag: action.payload\n });\n\n // Error actions\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_CREATE_ERROR:\n return _objectSpread(_objectSpread({}, state), {}, {\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n create: action.payload\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_RENAME_ERROR:\n return _objectSpread(_objectSpread({}, state), {}, {\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n rename: action.payload\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_DELETE_ERROR:\n return _objectSpread(_objectSpread({}, state), {}, {\n errors: _objectSpread(_objectSpread({}, state.errors), {}, {\n \"delete\": action.payload\n })\n });\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.CLEAR_ERRORS:\n return _objectSpread(_objectSpread({}, state), {}, {\n errors: {\n create: null,\n rename: null,\n \"delete\": null\n }\n });\n\n // Loading state\n case _folderActions__WEBPACK_IMPORTED_MODULE_0__.ActionTypes.SET_LOADING:\n return _objectSpread(_objectSpread({}, state), {}, {\n loading: action.payload\n });\n default:\n return state;\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (folderReducer);\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/store/folderReducer.js?"); /***/ }), /***/ "./dev/admin/modules/folder/utils/folderUtils.js": /*!*******************************************************!*\ !*** ./dev/admin/modules/folder/utils/folderUtils.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_COLOR_TAGS: () => (/* binding */ DEFAULT_COLOR_TAGS),\n/* harmony export */ addExpandedFolderId: () => (/* binding */ addExpandedFolderId),\n/* harmony export */ buildFolderHierarchy: () => (/* binding */ buildFolderHierarchy),\n/* harmony export */ calculateTotalPosts: () => (/* binding */ calculateTotalPosts),\n/* harmony export */ clearExpandedFolderIds: () => (/* binding */ clearExpandedFolderIds),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ expandAllFolderIds: () => (/* binding */ expandAllFolderIds),\n/* harmony export */ filterFolders: () => (/* binding */ filterFolders),\n/* harmony export */ getAllowedStatuses: () => (/* binding */ getAllowedStatuses),\n/* harmony export */ getColorTags: () => (/* binding */ getColorTags),\n/* harmony export */ getExpandPreference: () => (/* binding */ getExpandPreference),\n/* harmony export */ getExpandedFolderIds: () => (/* binding */ getExpandedFolderIds),\n/* harmony export */ getFolderById: () => (/* binding */ getFolderById),\n/* harmony export */ getFolderIdsByPostId: () => (/* binding */ getFolderIdsByPostId),\n/* harmony export */ getFolderUrl: () => (/* binding */ getFolderUrl),\n/* harmony export */ getSidebarVisibility: () => (/* binding */ getSidebarVisibility),\n/* harmony export */ getSortPreference: () => (/* binding */ getSortPreference),\n/* harmony export */ getUrlParameter: () => (/* binding */ getUrlParameter),\n/* harmony export */ isActiveFolder: () => (/* binding */ isActiveFolder),\n/* harmony export */ removeExpandedFolderId: () => (/* binding */ removeExpandedFolderId),\n/* harmony export */ setExpandPreference: () => (/* binding */ setExpandPreference),\n/* harmony export */ setExpandedFolderIds: () => (/* binding */ setExpandedFolderIds),\n/* harmony export */ setSidebarVisibility: () => (/* binding */ setSidebarVisibility),\n/* harmony export */ setSortPreference: () => (/* binding */ setSortPreference),\n/* harmony export */ sortFolders: () => (/* binding */ sortFolders)\n/* harmony export */ });\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.mjs\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\n * Folder Utilities\n * Helper functions for folder operations\n */\n\n\n\n/**\n * Parse URL parameters from a query string\n * @param {string} querystring - Full URL or query string\n * @param {string} sParam - Specific parameter to retrieve (optional)\n * @returns {Object|string} All params or specific param value\n */\nvar getUrlParameter = function getUrlParameter(querystring) {\n var sParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var queryPart = querystring.includes('?') ? querystring.substring(querystring.indexOf('?') + 1) : querystring;\n var params = new URLSearchParams(queryPart);\n var obj = {};\n var _iterator = _createForOfIteratorHelper(params.keys()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n var values = params.getAll(key);\n obj[key] = values.length > 1 ? values : params.get(key);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (sParam) {\n return obj[sParam] || '';\n }\n return obj;\n};\n\n/**\n * Generate folder URL for navigation\n * @param {Object|string} folder - Folder object or 'all'/'uncategorized'\n * @param {string} postTypeTax - Post type taxonomy slug\n * @returns {string} Folder URL\n */\nvar getFolderUrl = function getFolderUrl(folder, postTypeTax) {\n var queryStrings = window.location.search;\n var searchParams = new URLSearchParams(queryStrings);\n var postType = searchParams.get('post_type');\n var baseURL = new URL(window.location.protocol + '//' + window.location.host + window.location.pathname);\n if (postType) {\n baseURL.searchParams.set('post_type', postType);\n }\n if (folder !== 'all') {\n var folderSlug = folder === 'uncategorized' ? '-1' : folder.slug;\n baseURL.searchParams.set(postTypeTax, folderSlug);\n }\n var _iterator2 = _createForOfIteratorHelper(searchParams.entries()),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n key = _step2$value[0],\n value = _step2$value[1];\n if (key === 'post_type' || key === postTypeTax) continue;\n baseURL.searchParams.set(key, value);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return baseURL.toString();\n};\n\n/**\n * Find a folder by its term ID\n * @param {Array} folders - Array of folder objects\n * @param {number} id - Folder term ID\n * @returns {Object|undefined} Found folder or undefined\n */\nvar getFolderById = function getFolderById(folders, id) {\n return folders.find(function (folder) {\n return folder.term_id === id;\n });\n};\n\n/**\n * Get folder IDs associated with a post\n * @param {Object} posts - Posts to folders mapping\n * @param {number} postId - Post ID\n * @returns {number[]} Array of folder IDs\n */\nvar getFolderIdsByPostId = function getFolderIdsByPostId(posts, postId) {\n return posts[postId] || [];\n};\n\n/**\n * Filter folders by search text\n * @param {Array} folders - Array of folder objects\n * @param {string} searchText - Search string\n * @returns {Array} Filtered folders\n */\nvar filterFolders = function filterFolders(folders, searchText) {\n if (!searchText || !searchText.trim()) {\n return folders;\n }\n var search = searchText.trim().toLowerCase();\n return folders.filter(function (folder) {\n return folder.name.toLowerCase().includes(search);\n });\n};\n\n/**\n * Sort folders alphabetically\n * @param {Array} folders - Array of folder objects\n * @param {string} direction - 'a-z' or 'z-a'\n * @returns {Array} Sorted folders\n */\nvar sortFolders = function sortFolders(folders) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'a-z';\n return _toConsumableArray(folders).sort(function (a, b) {\n var nameA = a.name.toLowerCase();\n var nameB = b.name.toLowerCase();\n if (direction === 'a-z') {\n return nameA < nameB ? -1 : nameA > nameB ? 1 : 0;\n }\n return nameA > nameB ? -1 : nameA < nameB ? 1 : 0;\n });\n};\n\n/**\n * Build folder hierarchy with children\n * @param {Array} folders - Flat array of folders\n * @param {Object} hierarchy - Folder hierarchy mapping (parent_id -> [child_ids])\n * @returns {Array} Folders with nested children\n */\nvar buildFolderHierarchy = function buildFolderHierarchy(folders, hierarchy) {\n // Clone folders and reset children (preserve selected state)\n var foldersCopy = folders.map(function (folder) {\n return _objectSpread(_objectSpread({}, folder), {}, {\n selected: folder.selected || false,\n contexted: false,\n children: []\n });\n });\n\n // Create a map for quick lookup\n var folderMap = {};\n foldersCopy.forEach(function (folder) {\n folderMap[folder.term_id] = folder;\n });\n\n // Build hierarchy\n var rootFolders = [];\n var childIds = new Set();\n\n // Collect all child IDs\n Object.values(hierarchy).forEach(function (children) {\n children.forEach(function (childId) {\n return childIds.add(childId);\n });\n });\n\n // Add children to their parents\n Object.entries(hierarchy).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n parentId = _ref2[0],\n childIds = _ref2[1];\n var parent = folderMap[parentId];\n if (parent) {\n childIds.forEach(function (childId) {\n var child = folderMap[childId];\n if (child && !parent.children.find(function (c) {\n return c.term_id === child.term_id;\n })) {\n parent.children.push(child);\n }\n });\n }\n });\n\n // Get root folders (not children of any folder)\n foldersCopy.forEach(function (folder) {\n if (!childIds.has(folder.term_id)) {\n rootFolders.push(folder);\n }\n });\n return rootFolders;\n};\n\n/**\n * Get sort preference from cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @returns {string} Sort direction ('a-z' or 'z-a')\n */\nvar getSortPreference = function getSortPreference(taxName) {\n return js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(\"\".concat(taxName, \"__sort\")) || 'a-z';\n};\n\n/**\n * Cookie options for persistence\n */\nvar COOKIE_OPTIONS = {\n expires: 365,\n path: '/'\n};\n\n/**\n * Get sidebar visibility preference from cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @returns {boolean} True if sidebar is visible\n */\nvar getSidebarVisibility = function getSidebarVisibility(taxName) {\n var stored = js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(\"\".concat(taxName, \"__sidebar_visible\"));\n return stored !== 'false'; // Default to visible (true)\n};\n\n/**\n * Save sidebar visibility preference to cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {boolean} visible - Visibility state\n */\nvar setSidebarVisibility = function setSidebarVisibility(taxName, visible) {\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].set(\"\".concat(taxName, \"__sidebar_visible\"), String(visible), COOKIE_OPTIONS);\n};\n\n/**\n * Save sort preference to cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {string} sort - Sort direction ('a-z' or 'z-a')\n */\nvar setSortPreference = function setSortPreference(taxName, sort) {\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].set(\"\".concat(taxName, \"__sort\"), sort, COOKIE_OPTIONS);\n};\n\n/**\n * Get expand preference from cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @returns {string} Expand state ('collapsed' or 'expanded')\n */\nvar getExpandPreference = function getExpandPreference(taxName) {\n return js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(\"\".concat(taxName, \"__expand\")) || 'collapsed';\n};\n\n/**\n * Save expand preference to cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {string} expand - Expand state ('collapsed' or 'expanded')\n */\nvar setExpandPreference = function setExpandPreference(taxName, expand) {\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].set(\"\".concat(taxName, \"__expand\"), expand, COOKIE_OPTIONS);\n};\n\n/**\n * Get expanded folder IDs from cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @returns {number[]} Array of expanded folder IDs\n */\nvar getExpandedFolderIds = function getExpandedFolderIds(taxName) {\n if (!taxName) return [];\n var stored = js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get(\"\".concat(taxName, \"__expanded_folders\"));\n if (!stored) return [];\n try {\n var parsed = JSON.parse(stored);\n // Ensure all IDs are numbers\n return Array.isArray(parsed) ? parsed.map(function (id) {\n return Number(id);\n }) : [];\n } catch (_unused) {\n return [];\n }\n};\n\n/**\n * Save expanded folder IDs to cookie\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {number[]} ids - Array of expanded folder IDs\n */\nvar setExpandedFolderIds = function setExpandedFolderIds(taxName, ids) {\n if (!taxName) return;\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].set(\"\".concat(taxName, \"__expanded_folders\"), JSON.stringify(ids), COOKIE_OPTIONS);\n};\n\n/**\n * Add a folder ID to expanded list\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {number} folderId - Folder ID to add\n */\nvar addExpandedFolderId = function addExpandedFolderId(taxName, folderId) {\n if (!taxName) return;\n var numId = Number(folderId);\n var ids = getExpandedFolderIds(taxName);\n if (!ids.includes(numId)) {\n ids.push(numId);\n setExpandedFolderIds(taxName, ids);\n }\n};\n\n/**\n * Remove a folder ID from expanded list\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {number} folderId - Folder ID to remove\n */\nvar removeExpandedFolderId = function removeExpandedFolderId(taxName, folderId) {\n if (!taxName) return;\n var numId = Number(folderId);\n var ids = getExpandedFolderIds(taxName);\n var filtered = ids.filter(function (id) {\n return id !== numId;\n });\n setExpandedFolderIds(taxName, filtered);\n};\n\n/**\n * Clear all expanded folder IDs\n * @param {string} taxName - Taxonomy name for cookie key\n */\nvar clearExpandedFolderIds = function clearExpandedFolderIds(taxName) {\n if (!taxName) return;\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].remove(\"\".concat(taxName, \"__expanded_folders\"), {\n path: '/'\n });\n};\n\n/**\n * Set all folder IDs as expanded\n * @param {string} taxName - Taxonomy name for cookie key\n * @param {number[]} allFolderIds - All folder IDs to expand\n */\nvar expandAllFolderIds = function expandAllFolderIds(taxName, allFolderIds) {\n setExpandedFolderIds(taxName, allFolderIds);\n};\n\n/**\n * Check if current URL matches a folder\n * @param {Object|string} folder - Folder object or 'all'/'uncategorized'\n * @param {string} postTypeTax - Post type taxonomy slug\n * @returns {boolean} True if folder is active\n */\nvar isActiveFolder = function isActiveFolder(folder, postTypeTax) {\n var currentUrl = window.location.href;\n var folderUrl = getFolderUrl(folder, postTypeTax);\n if (folder === 'all') {\n return !currentUrl.includes(postTypeTax);\n }\n return currentUrl === folderUrl;\n};\n\n/**\n * Get allowed post statuses for counting\n * @returns {string[]} Array of allowed status strings\n */\nvar getAllowedStatuses = function getAllowedStatuses() {\n return ['pending', 'draft', 'future', 'private', 'publish', 'inherit'];\n};\n\n/**\n * Calculate total posts count from status counts\n * @param {Object} totalPosts - Object with status counts\n * @returns {number} Total count\n */\nvar calculateTotalPosts = function calculateTotalPosts(totalPosts) {\n var allowedStatuses = getAllowedStatuses();\n return allowedStatuses.reduce(function (total, status) {\n return total + (Number(totalPosts[status]) || 0);\n }, 0);\n};\n\n/**\n * Default color tags for folders\n */\nvar DEFAULT_COLOR_TAGS = ['#7B61FF', '#0347FF', '#F24AE1', '#ED2E7E', '#FFC804', '#00BA88'];\n\n/**\n * Get available color tags including custom colors\n * @param {Object|null} folder - Current folder being edited\n * @param {string[]} defaultColors - Default color options\n * @returns {string[]} Available color tags\n */\nvar getColorTags = function getColorTags() {\n var folder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var defaultColors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COLOR_TAGS;\n if (!folder || !folder.color) {\n return defaultColors;\n }\n if (defaultColors.includes(folder.color)) {\n return defaultColors;\n }\n return [].concat(_toConsumableArray(defaultColors), [folder.color]);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n getUrlParameter: getUrlParameter,\n getFolderUrl: getFolderUrl,\n getFolderById: getFolderById,\n getFolderIdsByPostId: getFolderIdsByPostId,\n filterFolders: filterFolders,\n sortFolders: sortFolders,\n buildFolderHierarchy: buildFolderHierarchy,\n getSortPreference: getSortPreference,\n setSortPreference: setSortPreference,\n getExpandPreference: getExpandPreference,\n setExpandPreference: setExpandPreference,\n getExpandedFolderIds: getExpandedFolderIds,\n setExpandedFolderIds: setExpandedFolderIds,\n addExpandedFolderId: addExpandedFolderId,\n removeExpandedFolderId: removeExpandedFolderId,\n clearExpandedFolderIds: clearExpandedFolderIds,\n expandAllFolderIds: expandAllFolderIds,\n getSidebarVisibility: getSidebarVisibility,\n setSidebarVisibility: setSidebarVisibility,\n isActiveFolder: isActiveFolder,\n getAllowedStatuses: getAllowedStatuses,\n calculateTotalPosts: calculateTotalPosts,\n getColorTags: getColorTags,\n DEFAULT_COLOR_TAGS: DEFAULT_COLOR_TAGS\n});\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/utils/folderUtils.js?"); /***/ }), /***/ "./dev/admin/modules/folder/folder.scss": /*!**********************************************!*\ !*** ./dev/admin/modules/folder/folder.scss ***! \**********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://adminify/./dev/admin/modules/folder/folder.scss?"); /***/ }), /***/ "./node_modules/react-dom/cjs/react-dom.development.js": /*!*************************************************************!*\ !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { eval("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar suppressWarning = false;\nfunction setSuppressWarning(newSuppressWarning) {\n {\n suppressWarning = newSuppressWarning;\n }\n} // In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n if (!suppressWarning) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n if (!suppressWarning) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar ScopeComponent = 21;\nvar OffscreenComponent = 22;\nvar LegacyHiddenComponent = 23;\nvar CacheComponent = 24;\nvar TracingMarkerComponent = 25;\n\n// -----------------------------------------------------------------------------\n\nvar enableClientRenderFallbackOnTextMismatch = true; // TODO: Need to review this code one more time before landing\n// the react-reconciler package.\n\nvar enableNewReconciler = false; // Support legacy Primer support on internal FB www\n\nvar enableLazyContextPropagation = false; // FB-only usage. The new API has different semantics.\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n\nvar enableSuspenseAvoidThisFallback = false; // Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\n\nvar disableCommentsAsDOMContainers = true; // Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\n\nvar enableCustomElementPropertySupport = false; // Disables children for