PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.7
Elementor Website Builder – more than just a page builder v3.35.7
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | assets/js/element-manager-admin.js +768 -5 4.2.23.35.7 View file →
@@ -836,12 +836,9 @@
836 836 gap: 1.5,
837 837 sx: function sx(theme) {
838 838 return {
839 839 position: 'sticky',
840 - top: 0,
841 - '@media screen and (max-width: 782px)': {
842 - top: 'calc(var(--e-admin-bar-height, 0px) + var(--e-top-bar-header-height, 0px))'
843 - },
840 + top: theme.spacing(10),
844 841 backgroundColor: 'var(--e-one-palette-background-default)',
845 842 zIndex: 10,
846 843 paddingBlock: 2,
847 844 paddingInline: 2,
@@ -1758,8 +1755,767 @@
1758 1755 };
1759 1756
1760 1757 /***/ }),
1761 1758
1759 +/***/ "../modules/element-manager/assets/js/app.js":
1760 +/*!***************************************************!*\
1761 + !*** ../modules/element-manager/assets/js/app.js ***!
1762 + \***************************************************/
1763 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1764 +
1765 +"use strict";
1766 +
1767 +
1768 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1769 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1770 +Object.defineProperty(exports, "__esModule", ({
1771 + value: true
1772 +}));
1773 +exports.AppLegacy = void 0;
1774 +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1775 +var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1776 +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
1777 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1778 +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1779 +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1780 +var _components = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
1781 +var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1782 +var _upgradeButton = __webpack_require__(/*! ./upgrade-button */ "../modules/element-manager/assets/js/upgrade-button.js");
1783 +var _api = __webpack_require__(/*! ./api */ "../modules/element-manager/assets/js/api.js");
1784 +var _rolePermissions = __webpack_require__(/*! ./role-permissions */ "../modules/element-manager/assets/js/role-permissions.js");
1785 +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1786 +function 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; }
1787 +function _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) { (0, _defineProperty2.default)(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; } /* eslint-disable react/prop-types */
1788 +var AppLegacy = exports.AppLegacy = function AppLegacy() {
1789 + var _useState = (0, _react.useState)(true),
1790 + _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1791 + isLoading = _useState2[0],
1792 + setIsLoading = _useState2[1];
1793 + var _useState3 = (0, _react.useState)(''),
1794 + _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1795 + searchKeyword = _useState4[0],
1796 + setSearchKeyword = _useState4[1];
1797 + var _useState5 = (0, _react.useState)([]),
1798 + _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1799 + widgets = _useState6[0],
1800 + setWidgets = _useState6[1];
1801 + var _useState7 = (0, _react.useState)([]),
1802 + _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
1803 + promotionWidgets = _useState8[0],
1804 + setPromotionWidgets = _useState8[1];
1805 + var _useState9 = (0, _react.useState)([]),
1806 + _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
1807 + plugins = _useState0[0],
1808 + setPlugins = _useState0[1];
1809 + var _useState1 = (0, _react.useState)([]),
1810 + _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
1811 + roles = _useState10[0],
1812 + setRoles = _useState10[1];
1813 + var _useState11 = (0, _react.useState)({
1814 + isLoading: false,
1815 + data: null
1816 + }),
1817 + _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
1818 + usageWidgets = _useState12[0],
1819 + setUsageWidgets = _useState12[1];
1820 + var _useState13 = (0, _react.useState)([]),
1821 + _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
1822 + widgetsDisabled = _useState14[0],
1823 + setWidgetsDisabled = _useState14[1];
1824 + var _useState15 = (0, _react.useState)('widget'),
1825 + _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
1826 + sortingColumn = _useState16[0],
1827 + setSortingColumn = _useState16[1];
1828 + var _useState17 = (0, _react.useState)('asc'),
1829 + _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
1830 + sortingDirection = _useState18[0],
1831 + setSortingDirection = _useState18[1];
1832 + var _useState19 = (0, _react.useState)(''),
1833 + _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
1834 + filterByPlugin = _useState20[0],
1835 + setFilterByPlugin = _useState20[1];
1836 + var _useState21 = (0, _react.useState)('all'),
1837 + _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
1838 + filterByStatus = _useState22[0],
1839 + setFilterByStatus = _useState22[1];
1840 + var _useState23 = (0, _react.useState)({
1841 + isSaving: false,
1842 + isUnsavedChanges: false
1843 + }),
1844 + _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
1845 + changeProgress = _useState24[0],
1846 + setChangeProgress = _useState24[1];
1847 + var _useState25 = (0, _react.useState)(false),
1848 + _useState26 = (0, _slicedToArray2.default)(_useState25, 2),
1849 + isConfirmDialogOpen = _useState26[0],
1850 + setIsConfirmDialogOpen = _useState26[1];
1851 + var _useState27 = (0, _react.useState)(false),
1852 + _useState28 = (0, _slicedToArray2.default)(_useState27, 2),
1853 + isSnackbarOpen = _useState28[0],
1854 + setIsSnackbarOpen = _useState28[1];
1855 + var _useState29 = (0, _react.useState)(null),
1856 + _useState30 = (0, _slicedToArray2.default)(_useState29, 2),
1857 + noticeData = _useState30[0],
1858 + setNoticeData = _useState30[1];
1859 + var _useState31 = (0, _react.useState)(null),
1860 + _useState32 = (0, _slicedToArray2.default)(_useState31, 2),
1861 + widgetsRoleRestrictions = _useState32[0],
1862 + setWidgetsRoleRestrictions = _useState32[1];
1863 + var _useState33 = (0, _react.useState)([]),
1864 + _useState34 = (0, _slicedToArray2.default)(_useState33, 2),
1865 + promotionData = _useState34[0],
1866 + setPromotionData = _useState34[1];
1867 + var managerPermissions = promotionData.manager_permissions,
1868 + elementManager = promotionData.element_manager;
1869 + var getWidgetUsage = function getWidgetUsage(widgetName) {
1870 + if (!usageWidgets.data || !usageWidgets.data.hasOwnProperty(widgetName)) {
1871 + return 0;
1872 + }
1873 + return usageWidgets.data[widgetName];
1874 + };
1875 + var sortedAndFilteredWidgets = (0, _react.useMemo)(function () {
1876 + var filteredWidgets = widgets.filter(function (widget) {
1877 + return widget.title.toLowerCase().includes(searchKeyword.toLowerCase());
1878 + });
1879 + if ('' !== filterByPlugin) {
1880 + filteredWidgets = filteredWidgets.filter(function (widget) {
1881 + return widget.plugin.toLowerCase() === filterByPlugin.toLowerCase();
1882 + });
1883 + }
1884 + if ('all' !== filterByStatus) {
1885 + filteredWidgets = filteredWidgets.filter(function (widget) {
1886 + if ('active' === filterByStatus) {
1887 + return !widgetsDisabled.includes(widget.name);
1888 + }
1889 + return widgetsDisabled.includes(widget.name);
1890 + });
1891 + }
1892 + filteredWidgets.sort(function (a, b) {
1893 + var aValue;
1894 + var bValue;
1895 + if ('widget' === sortingColumn) {
1896 + aValue = a.title;
1897 + bValue = b.title;
1898 + }
1899 + if ('usage' === sortingColumn) {
1900 + aValue = getWidgetUsage(a.name);
1901 + bValue = getWidgetUsage(b.name);
1902 + }
1903 + if (aValue === bValue) {
1904 + return 0;
1905 + }
1906 + if ('asc' === sortingDirection) {
1907 + return aValue < bValue ? -1 : 1;
1908 + }
1909 + return aValue > bValue ? -1 : 1;
1910 + });
1911 + return filteredWidgets;
1912 + }, [widgets, searchKeyword, sortingColumn, sortingDirection, filterByPlugin, usageWidgets, filterByStatus, widgetsDisabled]);
1913 + var getSortingIndicatorClasses = function getSortingIndicatorClasses(column) {
1914 + if (sortingColumn !== column) {
1915 + return '';
1916 + }
1917 + if ('asc' === sortingDirection) {
1918 + return 'sorted asc';
1919 + }
1920 + return 'sorted desc';
1921 + };
1922 + var onSortingClicked = function onSortingClicked(column) {
1923 + if (sortingColumn === column) {
1924 + if ('asc' === sortingDirection) {
1925 + setSortingDirection('desc');
1926 + } else {
1927 + setSortingDirection('asc');
1928 + }
1929 + } else {
1930 + setSortingColumn(column);
1931 + setSortingDirection('asc');
1932 + }
1933 + };
1934 + var onSaveClicked = /*#__PURE__*/function () {
1935 + var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1936 + return _regenerator.default.wrap(function (_context) {
1937 + while (1) switch (_context.prev = _context.next) {
1938 + case 0:
1939 + setIsConfirmDialogOpen(false);
1940 + setChangeProgress(_objectSpread(_objectSpread({}, changeProgress), {}, {
1941 + isSaving: true
1942 + }));
1943 + _context.next = 1;
1944 + return (0, _api.saveDisabledWidgets)(widgetsDisabled, widgetsRoleRestrictions);
1945 + case 1:
1946 + setChangeProgress(_objectSpread(_objectSpread({}, changeProgress), {}, {
1947 + isSaving: false,
1948 + isUnsavedChanges: false
1949 + }));
1950 + setIsSnackbarOpen(true);
1951 + case 2:
1952 + case "end":
1953 + return _context.stop();
1954 + }
1955 + }, _callee);
1956 + }));
1957 + return function onSaveClicked() {
1958 + return _ref.apply(this, arguments);
1959 + };
1960 + }();
1961 + var deactivateAllUnusedWidgets = function deactivateAllUnusedWidgets() {
1962 + var widgetsToDeactivate = widgets.filter(function (widget) {
1963 + return !usageWidgets.data.hasOwnProperty(widget.name) || widgetsDisabled.includes(widget.name);
1964 + });
1965 + setWidgetsDisabled(widgetsToDeactivate.map(function (widget) {
1966 + return widget.name;
1967 + }));
1968 + };
1969 + var enableAllWidgets = function enableAllWidgets() {
1970 + setWidgetsDisabled([]);
1971 + };
1972 + var onScanUsageElementsClicked = /*#__PURE__*/function () {
1973 + var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
1974 + var data;
1975 + return _regenerator.default.wrap(function (_context2) {
1976 + while (1) switch (_context2.prev = _context2.next) {
1977 + case 0:
1978 + setUsageWidgets(_objectSpread(_objectSpread({}, usageWidgets), {}, {
1979 + isLoading: true
1980 + }));
1981 + _context2.next = 1;
1982 + return (0, _api.getUsageWidgets)();
1983 + case 1:
1984 + data = _context2.sent;
1985 + setUsageWidgets({
1986 + data: data,
1987 + isLoading: false
1988 + });
1989 + setSortingColumn('usage');
1990 + setSortingDirection('desc');
1991 + case 2:
1992 + case "end":
1993 + return _context2.stop();
1994 + }
1995 + }, _callee2);
1996 + }));
1997 + return function onScanUsageElementsClicked() {
1998 + return _ref2.apply(this, arguments);
1999 + };
2000 + }();
2001 + var UsageTimesColumn = function UsageTimesColumn(_ref3) {
2002 + var widgetName = _ref3.widgetName;
2003 + if (null !== usageWidgets.data) {
2004 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, getWidgetUsage(widgetName), " ", (0, _i18n.__)('times', 'elementor'));
2005 + }
2006 + if (usageWidgets.isLoading) {
2007 + return /*#__PURE__*/_react.default.createElement(_components.Spinner, null);
2008 + }
2009 + return /*#__PURE__*/_react.default.createElement(_components.Button, {
2010 + onClick: onScanUsageElementsClicked,
2011 + size: 'small',
2012 + variant: 'secondary',
2013 + className: "e-id-elementor-element-manager-button-show-usage"
2014 + }, (0, _i18n.__)('Show', 'elementor'));
2015 + };
2016 + (0, _react.useEffect)(function () {
2017 + var onLoading = /*#__PURE__*/function () {
2018 + var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
2019 + var _appData$additional_d, _appData$additional_d2;
2020 + var appData, pluginsData;
2021 + return _regenerator.default.wrap(function (_context3) {
2022 + while (1) switch (_context3.prev = _context3.next) {
2023 + case 0:
2024 + _context3.next = 1;
2025 + return (0, _api.getAdminAppData)();
2026 + case 1:
2027 + appData = _context3.sent;
2028 + setNoticeData(appData.notice_data);
2029 + setWidgetsDisabled(appData.disabled_elements);
2030 + setWidgets(appData.widgets);
2031 + setPromotionWidgets(appData.promotion_widgets);
2032 + setPromotionData(appData.promotion_data);
2033 + if ((_appData$additional_d = appData.additional_data) !== null && _appData$additional_d !== void 0 && _appData$additional_d.roles) {
2034 + setRoles(appData.additional_data.roles);
2035 + }
2036 + if ((_appData$additional_d2 = appData.additional_data) !== null && _appData$additional_d2 !== void 0 && _appData$additional_d2.role_restrictions) {
2037 + setWidgetsRoleRestrictions(appData.additional_data.role_restrictions);
2038 + }
2039 + pluginsData = appData.plugins.map(function (plugin) {
2040 + return {
2041 + label: plugin,
2042 + value: plugin
2043 + };
2044 + });
2045 + pluginsData.unshift({
2046 + label: (0, _i18n.__)('All Plugins', 'elementor'),
2047 + value: ''
2048 + });
2049 + setPlugins(pluginsData);
2050 + setIsLoading(false);
2051 + case 2:
2052 + case "end":
2053 + return _context3.stop();
2054 + }
2055 + }, _callee3);
2056 + }));
2057 + return function onLoading() {
2058 + return _ref4.apply(this, arguments);
2059 + };
2060 + }();
2061 + onLoading();
2062 + }, []);
2063 + (0, _react.useEffect)(function () {
2064 + if (isLoading) {
2065 + return;
2066 + }
2067 + setChangeProgress(_objectSpread(_objectSpread({}, changeProgress), {}, {
2068 + isUnsavedChanges: true
2069 + }));
2070 + }, [widgetsDisabled, widgetsRoleRestrictions]);
2071 + (0, _react.useEffect)(function () {
2072 + var handleBeforeUnload = function handleBeforeUnload(event) {
2073 + event.preventDefault();
2074 + event.returnValue = '';
2075 + };
2076 + if (changeProgress.isUnsavedChanges) {
2077 + window.addEventListener('beforeunload', handleBeforeUnload);
2078 + } else {
2079 + window.removeEventListener('beforeunload', handleBeforeUnload);
2080 + }
2081 + return function () {
2082 + window.removeEventListener('beforeunload', handleBeforeUnload);
2083 + };
2084 + }, [changeProgress.isUnsavedChanges]);
2085 + if (isLoading) {
2086 + return /*#__PURE__*/_react.default.createElement(_components.Flex, {
2087 + justify: 'center',
2088 + style: {
2089 + margin: '100px'
2090 + }
2091 + }, /*#__PURE__*/_react.default.createElement(_components.Spinner, {
2092 + style: {
2093 + height: 'calc(4px * 20)',
2094 + width: 'calc(4px * 20)'
2095 + }
2096 + }));
2097 + }
2098 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
2099 + style: {
2100 + marginBottom: '20px',
2101 + maxWidth: '800px'
2102 + }
2103 + }, (0, _i18n.__)('Here\'s where you can fine-tune Elementor to your workflow. Disable elements you don\'t use for a cleaner interface, more focused creative experience, and improved performance.', 'elementor'), ' ', /*#__PURE__*/_react.default.createElement("a", {
2104 + href: "https://go.elementor.com/wp-dash-element-manager/",
2105 + rel: 'noreferrer',
2106 + target: '_blank'
2107 + }, (0, _i18n.__)('Learn More', 'elementor'))), !noticeData.is_viewed && /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_components.Notice, {
2108 + onRemove: function onRemove() {
2109 + (0, _api.markNoticeViewed)(noticeData.notice_id, noticeData.nonce);
2110 + setNoticeData(_objectSpread(_objectSpread({}, noticeData), {}, {
2111 + is_viewed: true
2112 + }));
2113 + },
2114 + status: "warning"
2115 + }, /*#__PURE__*/_react.default.createElement("strong", null, (0, _i18n.__)('Before you continue:', 'elementor')), " ", (0, _i18n.__)('Deactivating widgets here will remove them from both the Elementor Editor and your website, which can cause changes to your overall layout, design and what visitors see.', 'elementor'))), /*#__PURE__*/_react.default.createElement(_components.Panel, null, /*#__PURE__*/_react.default.createElement(_components.PanelBody, null, /*#__PURE__*/_react.default.createElement(_components.Flex, {
2116 + style: {
2117 + position: 'sticky',
2118 + top: '32px',
2119 + background: 'rgb(255, 255, 255)',
2120 + zIndex: 10,
2121 + padding: '20px 16px',
2122 + boxShadow: 'rgba(0, 0, 0, 0.15) 0 5px 10px 0',
2123 + margin: '-16px -16px 24px'
2124 + }
2125 + }, /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement(_components.Flex, {
2126 + align: 'center'
2127 + }, /*#__PURE__*/_react.default.createElement(_components.SearchControl, {
2128 + label: (0, _i18n.__)('Search widgets', 'elementor'),
2129 + value: searchKeyword,
2130 + size: 'compact',
2131 + style: {
2132 + height: '40px',
2133 + border: '1px solid rgba(30, 30, 30, 0.5)',
2134 + background: 'transparent'
2135 + },
2136 + __nextHasNoMarginBottom: true,
2137 + onChange: setSearchKeyword
2138 + }), /*#__PURE__*/_react.default.createElement(_components.FlexItem, {
2139 + style: {
2140 + maxWidth: '130px'
2141 + }
2142 + }, /*#__PURE__*/_react.default.createElement(_components.SelectControl, {
2143 + onChange: setFilterByPlugin,
2144 + size: '__unstable-large',
2145 + __nextHasNoMarginBottom: true,
2146 + options: plugins,
2147 + name: "elementor-element-manager-select-filter-by-plugin"
2148 + })), /*#__PURE__*/_react.default.createElement(_components.FlexItem, {
2149 + style: {
2150 + maxWidth: '130px'
2151 + }
2152 + }, /*#__PURE__*/_react.default.createElement(_components.SelectControl, {
2153 + onChange: setFilterByStatus,
2154 + size: '__unstable-large',
2155 + __nextHasNoMarginBottom: true,
2156 + name: "elementor-element-manager-select-filter-by-status",
2157 + options: [{
2158 + label: (0, _i18n.__)('All Statuses', 'elementor'),
2159 + value: 'all'
2160 + }, {
2161 + label: (0, _i18n.__)('Active', 'elementor'),
2162 + value: 'active'
2163 + }, {
2164 + label: (0, _i18n.__)('Inactive', 'elementor'),
2165 + value: 'inactive'
2166 + }]
2167 + })), /*#__PURE__*/_react.default.createElement("hr", {
2168 + style: {
2169 + height: '30px',
2170 + margin: '0 5px',
2171 + borderWidth: '0 1px 0 0',
2172 + borderStyle: 'solid',
2173 + borderColor: 'rgba(30, 30, 30, 0.5)'
2174 + }
2175 + }), /*#__PURE__*/_react.default.createElement(_components.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_components.Button, {
2176 + variant: 'secondary',
2177 + style: {
2178 + marginInlineEnd: '10px'
2179 + },
2180 + disabled: usageWidgets.isLoading,
2181 + isBusy: usageWidgets.isLoading,
2182 + onClick: onScanUsageElementsClicked,
2183 + className: "e-id-elementor-element-manager-button-scan-element-usage"
2184 + }, (0, _i18n.__)('Scan Element Usage', 'elementor')), /*#__PURE__*/_react.default.createElement(_components.Button, {
2185 + variant: 'secondary',
2186 + style: {
2187 + marginInlineEnd: '10px'
2188 + },
2189 + onClick: deactivateAllUnusedWidgets,
2190 + disabled: null === usageWidgets.data,
2191 + className: "e-id-elementor-element-manager-button-deactivate-unused-elements"
2192 + }, (0, _i18n.__)('Deactivate Unused Elements', 'elementor')), /*#__PURE__*/_react.default.createElement(_components.Button, {
2193 + variant: 'secondary',
2194 + disabled: !widgetsDisabled.length,
2195 + style: {
2196 + marginInlineEnd: '10px'
2197 + },
2198 + onClick: enableAllWidgets,
2199 + className: "e-id-elementor-element-manager-button-enable-all"
2200 + }, (0, _i18n.__)('Enable All', 'elementor'))))), /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement(_components.Button, {
2201 + variant: "primary",
2202 + disabled: changeProgress.isSaving || !changeProgress.isUnsavedChanges,
2203 + isBusy: changeProgress.isSaving,
2204 + onClick: function onClick() {
2205 + setIsConfirmDialogOpen(true);
2206 + },
2207 + className: "e-id-elementor-element-manager-button-save-changes"
2208 + }, (0, _i18n.__)('Save Changes', 'elementor')))), /*#__PURE__*/_react.default.createElement(_components.PanelRow, null, !sortedAndFilteredWidgets.length ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _i18n.__)('No elements found.', 'elementor')) : /*#__PURE__*/_react.default.createElement("table", {
2209 + className: 'wp-list-table widefat fixed striped table-view-list'
2210 + }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("th", {
2211 + className: "manage-column sortable ".concat(getSortingIndicatorClasses('widget'))
2212 + }, /*#__PURE__*/_react.default.createElement(_components.Button, {
2213 + href: '#',
2214 + onClick: function onClick(event) {
2215 + event.preventDefault();
2216 + onSortingClicked('widget');
2217 + },
2218 + className: "e-id-elementor-element-manager-button-sort-by-element"
2219 + }, /*#__PURE__*/_react.default.createElement("span", null, (0, _i18n.__)('Element', 'elementor')), /*#__PURE__*/_react.default.createElement("span", {
2220 + className: "sorting-indicators"
2221 + }, /*#__PURE__*/_react.default.createElement("span", {
2222 + className: "sorting-indicator asc",
2223 + "aria-hidden": "true"
2224 + }), /*#__PURE__*/_react.default.createElement("span", {
2225 + className: "sorting-indicator desc",
2226 + "aria-hidden": "true"
2227 + })))), /*#__PURE__*/_react.default.createElement("th", null, (0, _i18n.__)('Status', 'elementor')), /*#__PURE__*/_react.default.createElement("th", {
2228 + className: "manage-column sortable ".concat(getSortingIndicatorClasses('usage'))
2229 + }, /*#__PURE__*/_react.default.createElement(_components.Button, {
2230 + href: '#',
2231 + onClick: function onClick(event) {
2232 + event.preventDefault();
2233 + onSortingClicked('usage');
2234 + },
2235 + className: "e-id-elementor-element-manager-button-sort-by-usage"
2236 + }, /*#__PURE__*/_react.default.createElement("span", null, (0, _i18n.__)('Usage', 'elementor')), /*#__PURE__*/_react.default.createElement("span", {
2237 + className: "sorting-indicators"
2238 + }, /*#__PURE__*/_react.default.createElement("span", {
2239 + className: "sorting-indicator asc",
2240 + "aria-hidden": "true"
2241 + }), /*#__PURE__*/_react.default.createElement("span", {
2242 + className: "sorting-indicator desc",
2243 + "aria-hidden": "true"
2244 + })))), /*#__PURE__*/_react.default.createElement("th", null, (0, _i18n.__)('Plugin', 'elementor')), /*#__PURE__*/_react.default.createElement("th", null, /*#__PURE__*/_react.default.createElement(_components.Flex, {
2245 + justify: 'flex-start',
2246 + gap: 0
2247 + }, /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, (0, _i18n.__)('Permission', 'elementor')), /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement(_components.Tooltip, {
2248 + placement: 'top',
2249 + delay: 100,
2250 + text: (0, _i18n.__)('Choose which users will have access to each widget.', 'elementor')
2251 + }, /*#__PURE__*/_react.default.createElement(_components.Button, {
2252 + icon: 'info-outline',
2253 + iconSize: 16
2254 + }))), null === widgetsRoleRestrictions && /*#__PURE__*/_react.default.createElement(_components.FlexItem, {
2255 + style: {
2256 + marginInlineStart: '10px'
2257 + }
2258 + }, /*#__PURE__*/_react.default.createElement(_upgradeButton.UpgradeButton, {
2259 + href: promotionWidgets.length ? managerPermissions.pro.url : managerPermissions.advanced.url,
2260 + size: 'small',
2261 + text: promotionWidgets.length ? managerPermissions.pro.text : managerPermissions.advanced.text,
2262 + className: ['e-id-elementor-element-manager-button-upgrade-permissions', 'go-pro'].join(' ')
2263 + })))))), /*#__PURE__*/_react.default.createElement("tbody", null, sortedAndFilteredWidgets.map(function (widget) {
2264 + return /*#__PURE__*/_react.default.createElement("tr", {
2265 + key: widget.name,
2266 + "data-key-id": widget.name
2267 + }, /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("i", {
2268 + style: {
2269 + marginInlineEnd: '5px',
2270 + marginInlineStart: '0',
2271 + display: 'inline-block'
2272 + },
2273 + className: "".concat(widget.icon)
2274 + }), " ", widget.title), /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement(_components.ToggleControl, {
2275 + checked: !widgetsDisabled.includes(widget.name),
2276 + __nextHasNoMarginBottom: true,
2277 + onChange: function onChange() {
2278 + if (widgetsDisabled.includes(widget.name)) {
2279 + setWidgetsDisabled(widgetsDisabled.filter(function (item) {
2280 + return item !== widget.name;
2281 + }));
2282 + } else {
2283 + setWidgetsDisabled([].concat((0, _toConsumableArray2.default)(widgetsDisabled), [widget.name]));
2284 + }
2285 + },
2286 + className: "e-id-elementor-element-manager-toggle-".concat(widget.name)
2287 + })), /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement(UsageTimesColumn, {
2288 + widgetName: widget.name
2289 + })), /*#__PURE__*/_react.default.createElement("td", null, widget.plugin), /*#__PURE__*/_react.default.createElement("td", null, null !== widgetsRoleRestrictions && !widgetsDisabled.includes(widget.name) ? /*#__PURE__*/_react.default.createElement(_rolePermissions.RolePermissions, {
2290 + widgetName: widget.name,
2291 + roles: roles,
2292 + widgetsRoleRestrictions: widgetsRoleRestrictions,
2293 + setWidgetsRoleRestrictions: setWidgetsRoleRestrictions
2294 + }) : /*#__PURE__*/_react.default.createElement(_rolePermissions.EditButtonDisabled, null)));
2295 + })))), promotionWidgets.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.PanelRow, null, /*#__PURE__*/_react.default.createElement(_components.Flex, {
2296 + style: {
2297 + marginTop: '40px',
2298 + marginBottom: '20px'
2299 + }
2300 + }, /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement("h3", null, (0, _i18n.__)('Elementor Pro Elements', 'elementor')), /*#__PURE__*/_react.default.createElement("p", null, (0, _i18n.__)('Unleash the full power of Elementor\'s features and web creation tools.', 'elementor'))), /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement(_upgradeButton.UpgradeButton, {
2301 + href: elementManager.url,
2302 + text: elementManager.text,
2303 + className: "e-id-elementor-element-manager-button-upgrade-pro-elements"
2304 + })))), /*#__PURE__*/_react.default.createElement(_components.PanelRow, null, /*#__PURE__*/_react.default.createElement("table", {
2305 + className: 'wp-list-table widefat fixed striped table-view-list'
2306 + }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("th", {
2307 + className: "manage-column"
2308 + }, /*#__PURE__*/_react.default.createElement("span", null, (0, _i18n.__)('Element', 'elementor'))), /*#__PURE__*/_react.default.createElement("th", null, (0, _i18n.__)('Status', 'elementor')), /*#__PURE__*/_react.default.createElement("th", null, (0, _i18n.__)('Usage', 'elementor')), /*#__PURE__*/_react.default.createElement("th", null, (0, _i18n.__)('Plugin', 'elementor')), /*#__PURE__*/_react.default.createElement("th", null, /*#__PURE__*/_react.default.createElement(_components.Flex, {
2309 + justify: 'flex-start'
2310 + }, /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, (0, _i18n.__)('Permission', 'elementor')), /*#__PURE__*/_react.default.createElement(_components.FlexItem, null, /*#__PURE__*/_react.default.createElement(_components.Tooltip, {
2311 + placement: 'top',
2312 + delay: 100,
2313 + text: (0, _i18n.__)('Choose which role will have access to a specific widget.', 'elementor')
2314 + }, /*#__PURE__*/_react.default.createElement(_components.Button, {
2315 + icon: 'info-outline'
2316 + }))))))), /*#__PURE__*/_react.default.createElement("tbody", null, promotionWidgets.map(function (widget) {
2317 + return /*#__PURE__*/_react.default.createElement("tr", {
2318 + key: widget.name
2319 + }, /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("i", {
2320 + style: {
2321 + marginInlineEnd: '5px'
2322 + },
2323 + className: "".concat(widget.icon)
2324 + }), " ", widget.title), /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement(_components.ToggleControl, {
2325 + __nextHasNoMarginBottom: true,
2326 + checked: false,
2327 + disabled: true,
2328 + className: "e-id-elementor-element-manager-toggle-".concat(widget.name)
2329 + })), /*#__PURE__*/_react.default.createElement("td", null), /*#__PURE__*/_react.default.createElement("td", null, (0, _i18n.__)('Elementor Pro', 'elementor')), /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement(_rolePermissions.EditButtonDisabled, {
2330 + widgetName: widget.name
2331 + })));
2332 + }))))))), isConfirmDialogOpen && /*#__PURE__*/_react.default.createElement(_components.Modal, {
2333 + title: (0, _i18n.__)('Sure you want to save these changes?', 'elementor'),
2334 + size: 'small',
2335 + isDismissible: false,
2336 + onRequestClose: function onRequestClose() {
2337 + setIsConfirmDialogOpen(false);
2338 + }
2339 + }, /*#__PURE__*/_react.default.createElement("p", {
2340 + style: {
2341 + maxWidth: '400px',
2342 + marginBlockEnd: '30px',
2343 + marginBlockStart: '0'
2344 + }
2345 + }, (0, _i18n.__)('Turning widgets off will hide them from the editor panel, and can potentially affect your layout or front-end.', 'elementor'), /*#__PURE__*/_react.default.createElement("span", {
2346 + style: {
2347 + display: 'block',
2348 + marginTop: '20px'
2349 + }
2350 + }, (0, _i18n.__)('If you’re adding widgets back in, enjoy them!', 'elementor'))), /*#__PURE__*/_react.default.createElement(_components.ButtonGroup, {
2351 + style: {
2352 + display: 'flex',
2353 + justifyContent: 'flex-end',
2354 + gap: '30px'
2355 + }
2356 + }, /*#__PURE__*/_react.default.createElement(_components.Button, {
2357 + variant: 'link',
2358 + onClick: function onClick() {
2359 + setIsConfirmDialogOpen(false);
2360 + },
2361 + className: "e-id-elementor-element-manager-modal-button-cancel"
2362 + }, (0, _i18n.__)('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_components.Button, {
2363 + variant: 'primary',
2364 + onClick: onSaveClicked,
2365 + className: "e-id-elementor-element-manager-modal-button-save"
2366 + }, (0, _i18n.__)('Save', 'elementor')))), /*#__PURE__*/_react.default.createElement("div", {
2367 + style: {
2368 + position: 'fixed',
2369 + bottom: '40px',
2370 + left: '50%',
2371 + transform: 'translateX(-50%)',
2372 + display: isSnackbarOpen ? 'block' : 'none'
2373 + }
2374 + }, /*#__PURE__*/_react.default.createElement(_components.Snackbar, {
2375 + isDismissible: true,
2376 + status: 'success',
2377 + onRemove: function onRemove() {
2378 + return setIsSnackbarOpen(false);
2379 + }
2380 + }, (0, _i18n.__)('We saved your changes.', 'elementor'))));
2381 +};
2382 +
2383 +/***/ }),
2384 +
2385 +/***/ "../modules/element-manager/assets/js/role-permissions.js":
2386 +/*!****************************************************************!*\
2387 + !*** ../modules/element-manager/assets/js/role-permissions.js ***!
2388 + \****************************************************************/
2389 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2390 +
2391 +"use strict";
2392 +
2393 +
2394 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2395 +Object.defineProperty(exports, "__esModule", ({
2396 + value: true
2397 +}));
2398 +exports.RolePermissions = exports.EditButtonDisabled = void 0;
2399 +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2400 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2401 +var _components = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
2402 +var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2403 +function 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; }
2404 +function _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) { (0, _defineProperty2.default)(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; } /* eslint-disable react/prop-types */
2405 +var toggleRoleRestrictions = function toggleRoleRestrictions(widgetName, roleId, widgetsRoleRestrictions, setWidgetsRoleRestrictions) {
2406 + var widgetRoleRestrictions = widgetsRoleRestrictions[widgetName] || [];
2407 + if (widgetRoleRestrictions.includes(roleId)) {
2408 + widgetRoleRestrictions.splice(widgetRoleRestrictions.indexOf(roleId), 1);
2409 + } else {
2410 + widgetRoleRestrictions.push(roleId);
2411 + }
2412 +
2413 + // TODO: Remove the object from the state if it's empty
2414 + setWidgetsRoleRestrictions(_objectSpread(_objectSpread({}, widgetsRoleRestrictions), {}, (0, _defineProperty2.default)({}, widgetName, widgetRoleRestrictions)));
2415 +};
2416 +var RolesList = function RolesList(props) {
2417 + var roles = props.roles,
2418 + widgetRoleRestrictions = props.widgetRoleRestrictions;
2419 + var rolesEnables = roles.filter(function (role) {
2420 + return !widgetRoleRestrictions.includes(role.id);
2421 + });
2422 + if (!rolesEnables.length) {
2423 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "(", (0, _i18n.__)('Admin', 'elementor'), ")");
2424 + }
2425 + if (rolesEnables.length === roles.length) {
2426 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "(", (0, _i18n.__)('All Roles', 'elementor'), ")");
2427 + }
2428 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "(", rolesEnables.map(function (role) {
2429 + return role.name;
2430 + }).join(', '), ")");
2431 +};
2432 +var RolePermissions = exports.RolePermissions = function RolePermissions(props) {
2433 + var roles = props.roles,
2434 + widgetName = props.widgetName,
2435 + widgetsRoleRestrictions = props.widgetsRoleRestrictions,
2436 + setWidgetsRoleRestrictions = props.setWidgetsRoleRestrictions;
2437 + var widgetRoleRestrictions = widgetsRoleRestrictions[widgetName] || [];
2438 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.Dropdown, {
2439 + className: 'my-container-class-name',
2440 + contentClassName: 'my-dropdown-content-classname',
2441 + popoverProps: {
2442 + placement: 'bottom-start'
2443 + },
2444 + renderToggle: function renderToggle(_ref) {
2445 + var isOpen = _ref.isOpen,
2446 + onToggle = _ref.onToggle;
2447 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.Button, {
2448 + variant: 'link',
2449 + onClick: onToggle,
2450 + "aria-expanded": isOpen,
2451 + style: {
2452 + textDecoration: 'none'
2453 + },
2454 + className: "e-id-elementor-element-manager-button-edit-permissions-".concat(widgetName)
2455 + }, (0, _i18n.__)('Edit', 'elementor')), ' ', /*#__PURE__*/_react.default.createElement("span", {
2456 + style: {
2457 + color: 'var(--e-a-color-txt-muted)'
2458 + }
2459 + }, /*#__PURE__*/_react.default.createElement(RolesList, {
2460 + roles: roles,
2461 + widgetRoleRestrictions: widgetRoleRestrictions
2462 + })));
2463 + },
2464 + renderContent: function renderContent() {
2465 + var isAllChecked = roles.every(function (role) {
2466 + return !widgetRoleRestrictions.includes(role.id);
2467 + });
2468 + var isIndeterminate = !isAllChecked && roles.some(function (role) {
2469 + return !widgetRoleRestrictions.includes(role.id);
2470 + });
2471 + return /*#__PURE__*/_react.default.createElement("div", {
2472 + style: {
2473 + minWidth: '150px',
2474 + paddingInline: '10px',
2475 + paddingBlockStart: '10px'
2476 + }
2477 + }, /*#__PURE__*/_react.default.createElement(_components.CheckboxControl, {
2478 + checked: isAllChecked,
2479 + indeterminate: isIndeterminate,
2480 + label: 'All',
2481 + onChange: function onChange(value) {
2482 + if (value) {
2483 + setWidgetsRoleRestrictions(_objectSpread(_objectSpread({}, widgetsRoleRestrictions), {}, (0, _defineProperty2.default)({}, widgetName, [])));
2484 + } else {
2485 + setWidgetsRoleRestrictions(_objectSpread(_objectSpread({}, widgetsRoleRestrictions), {}, (0, _defineProperty2.default)({}, widgetName, roles.map(function (role) {
2486 + return role.id;
2487 + }))));
2488 + }
2489 + }
2490 + }), roles.map(function (role) {
2491 + return /*#__PURE__*/_react.default.createElement("div", {
2492 + key: role.id
2493 + }, /*#__PURE__*/_react.default.createElement(_components.CheckboxControl, {
2494 + checked: !widgetRoleRestrictions.includes(role.id),
2495 + label: role.name,
2496 + onChange: function onChange() {
2497 + toggleRoleRestrictions(widgetName, role.id, widgetsRoleRestrictions, setWidgetsRoleRestrictions);
2498 + }
2499 + }));
2500 + }));
2501 + }
2502 + }));
2503 +};
2504 +var EditButtonDisabled = exports.EditButtonDisabled = function EditButtonDisabled(props) {
2505 + var widgetName = props.widgetName || 'unknown';
2506 + return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.Button, {
2507 + variant: "link",
2508 + disabled: true,
2509 + style: {
2510 + textDecoration: 'none'
2511 + },
2512 + className: "e-id-elementor-element-manager-button-edit-permissions-".concat(widgetName)
2513 + }, (0, _i18n.__)('Edit', 'elementor')));
2514 +};
2515 +
2516 +/***/ }),
2517 +
1762 2518 /***/ "../modules/element-manager/assets/js/upgrade-button.js":
1763 2519 /*!**************************************************************!*\
1764 2520 !*** ../modules/element-manager/assets/js/upgrade-button.js ***!
1765 2521 \**************************************************************/
@@ -6061,15 +6817,22 @@
6061 6817 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
6062 6818 var _element = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/index.js");
6063 6819 var _domReady = _interopRequireDefault(__webpack_require__(/*! @wordpress/dom-ready */ "@wordpress/dom-ready"));
6064 6820 var _appEditorOne = __webpack_require__(/*! ./app-editor-one */ "../modules/element-manager/assets/js/app-editor-one/index.js");
6821 +var _app = __webpack_require__(/*! ./app */ "../modules/element-manager/assets/js/app.js");
6065 6822 (0, _domReady.default)(function () {
6823 + var _elementorCommon$conf;
6066 6824 var htmlOutput = document.getElementById('elementor-element-manager-wrap');
6067 6825 if (!htmlOutput) {
6068 6826 return;
6069 6827 }
6828 + var isEditorOneEnabled = typeof elementorCommon !== 'undefined' && true === ((_elementorCommon$conf = elementorCommon.config) === null || _elementorCommon$conf === void 0 || (_elementorCommon$conf = _elementorCommon$conf.experimentalFeatures) === null || _elementorCommon$conf === void 0 ? void 0 : _elementorCommon$conf.e_editor_one);
6070 6829 var root = (0, _element.createRoot)(htmlOutput);
6071 - root.render(/*#__PURE__*/_react.default.createElement(_appEditorOne.AppModern, null));
6830 + if (isEditorOneEnabled) {
6831 + root.render(/*#__PURE__*/_react.default.createElement(_appEditorOne.AppModern, null));
6832 + } else {
6833 + root.render(/*#__PURE__*/_react.default.createElement(_app.AppLegacy, null));
6834 + }
6072 6835 });
6073 6836 })();
6074 6837
6075 6838 /******/ })()