diff --git a/CHANGELOG.md b/CHANGELOG.md index b15dda42b..0f941ab28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v1.10.48 +## 10/28/2024 + +1. [](#improved) + * Treat AVIF as image when inserting / drag & dropping + * PHP 8.4 fixes - Implicitly nullable parameter declarations deprecate + # v1.10.47 ## 10/22/2024 diff --git a/blueprints.yaml b/blueprints.yaml index dc71cbbb2..921e11e3c 100644 --- a/blueprints.yaml +++ b/blueprints.yaml @@ -1,7 +1,7 @@ name: Admin Panel slug: admin type: plugin -version: 1.10.47 +version: 1.10.48 description: Adds an advanced administration panel to manage your site icon: empire author: diff --git a/classes/plugin/Admin.php b/classes/plugin/Admin.php index 33d72f21c..df1c73588 100644 --- a/classes/plugin/Admin.php +++ b/classes/plugin/Admin.php @@ -904,7 +904,7 @@ public function data($type, array $post = []) * @return object * @throws \RuntimeException */ - public function getConfigurationData($type, array $post = null) + public function getConfigurationData($type, ?array $post = null) { static $data = []; diff --git a/classes/plugin/AdminController.php b/classes/plugin/AdminController.php index cd56d3617..36b56c0ed 100644 --- a/classes/plugin/AdminController.php +++ b/classes/plugin/AdminController.php @@ -62,7 +62,7 @@ class AdminController extends AdminBaseController * @param array|null $post * @return void */ - public function initialize(Grav $grav = null, $view = null, $task = null, $route = null, $post = null) + public function initialize(?Grav $grav = null, $view = null, $task = null, $route = null, $post = null) { $this->grav = $grav; $this->admin = $this->grav['admin']; @@ -2717,7 +2717,7 @@ protected function getLevelListing($data) * @param PageInterface|null $page * @return Media|null */ - public function getMedia(PageInterface $page = null) + public function getMedia(?PageInterface $page = null) { $page = $page ?? $this->admin->page($this->route); if (!$page) { diff --git a/classes/plugin/Controllers/AbstractController.php b/classes/plugin/Controllers/AbstractController.php index 7b2324a6f..b8118e999 100644 --- a/classes/plugin/Controllers/AbstractController.php +++ b/classes/plugin/Controllers/AbstractController.php @@ -140,7 +140,7 @@ public function getRequest(): ServerRequestInterface * @param mixed $default * @return mixed */ - public function getPost(string $name = null, $default = null) + public function getPost(?string $name = null, $default = null) { $body = $this->request->getParsedBody(); @@ -167,7 +167,7 @@ public function isFormSubmit(): bool * @param string|null $type * @return FormInterface */ - public function getForm(string $type = null): FormInterface + public function getForm(?string $type = null): FormInterface { $object = $this->getObject(); if (!$object) { @@ -227,7 +227,7 @@ public function createDisplayResponse(): ResponseInterface * @param int $code * @return Response */ - public function createHtmlResponse(string $content, int $code = null): ResponseInterface + public function createHtmlResponse(string $content, ?int $code = null): ResponseInterface { return new Response($code ?: 200, [], $content); } @@ -255,7 +255,7 @@ public function createJsonResponse(array $content): ResponseInterface * @param int $code * @return Response */ - public function createRedirectResponse(string $url, int $code = null): ResponseInterface + public function createRedirectResponse(string $url, ?int $code = null): ResponseInterface { if (null === $code || $code < 301 || $code > 307) { $code = $this->grav['config']->get('system.pages.redirect_default_code', 302); diff --git a/classes/plugin/Controllers/AdminController.php b/classes/plugin/Controllers/AdminController.php index 9fd78abb6..9a6a1d8db 100644 --- a/classes/plugin/Controllers/AdminController.php +++ b/classes/plugin/Controllers/AdminController.php @@ -117,7 +117,7 @@ abstract protected function getFormSubmitMethod(string $name): callable; * @param string|null $lang * @return string */ - public function getAdminUrl(string $route, string $lang = null): string + public function getAdminUrl(string $route, ?string $lang = null): string { /** @var Pages $pages */ $pages = $this->grav['pages']; @@ -131,7 +131,7 @@ public function getAdminUrl(string $route, string $lang = null): string * @param string|null $lang * @return string */ - public function getAbsoluteAdminUrl(string $route, string $lang = null): string + public function getAbsoluteAdminUrl(string $route, ?string $lang = null): string { /** @var Pages $pages */ $pages = $this->grav['pages']; @@ -319,7 +319,7 @@ protected function createPage(string $template): PageInterface * @param int|null $code * @return ResponseInterface */ - protected function createRedirectResponse(string $url = null, int $code = null): ResponseInterface + protected function createRedirectResponse(?string $url = null, ?int $code = null): ResponseInterface { $request = $this->getRequest(); diff --git a/classes/plugin/Controllers/Login/LoginController.php b/classes/plugin/Controllers/Login/LoginController.php index 871162f41..2c7bc2f46 100644 --- a/classes/plugin/Controllers/Login/LoginController.php +++ b/classes/plugin/Controllers/Login/LoginController.php @@ -71,7 +71,7 @@ public function displayForgot(): ResponseInterface * @param string|null $token * @return ResponseInterface */ - public function displayReset(string $username = null, string $token = null): ResponseInterface + public function displayReset(?string $username = null, ?string $token = null): ResponseInterface { if ('' === (string)$username || '' === (string)$token) { $this->setMessage($this->translate('PLUGIN_ADMIN.RESET_INVALID_LINK'), 'error'); @@ -318,7 +318,7 @@ public function taskTwofa(): ResponseInterface * @param string|null $token * @return ResponseInterface */ - public function taskReset(string $username = null, string $token = null): ResponseInterface + public function taskReset(?string $username = null, ?string $token = null): ResponseInterface { $this->page = $this->createPage('reset'); $this->form = $this->getForm('admin-login-reset'); diff --git a/classes/plugin/Twig/AdminTwigExtension.php b/classes/plugin/Twig/AdminTwigExtension.php index 2dbfdefda..2b8ff9542 100644 --- a/classes/plugin/Twig/AdminTwigExtension.php +++ b/classes/plugin/Twig/AdminTwigExtension.php @@ -83,7 +83,7 @@ public function cloneFunc($obj) return clone $obj; } - public function adminRouteFunc(string $route = '', string $languageCode = null) + public function adminRouteFunc(string $route = '', ?string $languageCode = null) { /** @var Admin $admin */ $admin = Grav::instance()['admin']; diff --git a/themes/grav/app/forms/fields/filepicker.js b/themes/grav/app/forms/fields/filepicker.js index b012c1d42..89dfb100e 100644 --- a/themes/grav/app/forms/fields/filepicker.js +++ b/themes/grav/app/forms/fields/filepicker.js @@ -80,7 +80,7 @@ export default class FilePickerField { let renderOption = function renderOption(item, escape) { let image = ''; - if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i)) { + if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\.(jpg|jpeg|png|gif|webp|avif)$/i)) { // const fallback2x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@2x'); // const fallback3x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@3x'); const source = thumbs[item.name] || `${config.base_url_relative}/../${folder}/${item.name}`; diff --git a/themes/grav/app/forms/fields/files.js b/themes/grav/app/forms/fields/files.js index 1b8994951..2d56041fb 100644 --- a/themes/grav/app/forms/fields/files.js +++ b/themes/grav/app/forms/fields/files.js @@ -349,7 +349,7 @@ export function UriToMarkdown(uri) { const title = uri.split('.').slice(0, -1).join('.'); - return uri.match(/\.(jpe?g|png|gif|svg|webp|mp4|webm|ogv|mov)$/i) ? `![${title}](${uri} "${title}")` : `[${decodeURI(uri)}](${uri})`; + return uri.match(/\.(jpe?g|png|gif|svg|webp|avif|mp4|webm|ogv|mov)$/i) ? `![${title}](${uri} "${title}")` : `[${decodeURI(uri)}](${uri})`; } let instances = []; diff --git a/themes/grav/js/admin.min.js b/themes/grav/js/admin.min.js index 3da9f860e..56b2d1904 100644 --- a/themes/grav/js/admin.min.js +++ b/themes/grav/js/admin.min.js @@ -2,7 +2,7 @@ var Grav; /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 56299: +/***/ 64848: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -15,62 +15,63 @@ __webpack_require__.d(__webpack_exports__, { }); // EXTERNAL MODULE: ./node_modules/@babel/polyfill/lib/index.js -var lib = __webpack_require__(26981); +var lib = __webpack_require__(27461); // EXTERNAL MODULE: external "jQuery" -var external_jQuery_ = __webpack_require__(65311); +var external_jQuery_ = __webpack_require__(41669); var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery_); ;// CONCATENATED MODULE: ./app/utils/remodal.js /* Remodal from https://github.com/vodkabears/Remodal * With Stackable option from https://github.com/antstorm/Remodal patch */ + !function (root, factory) { return factory(root, (external_jQuery_default())); }(undefined, function (global, $) { 'use strict'; + /** * Name of the plugin * @private * @const * @type {String} */ - var PLUGIN_NAME = 'remodal'; + /** * Namespace for CSS and events * @private * @const * @type {String} */ - var NAMESPACE = window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME; + /** * Animationstart event with vendor prefixes * @private * @const * @type {String} */ - var ANIMATIONSTART_EVENTS = $.map(['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'], function (eventName) { return eventName + '.' + NAMESPACE; }).join(' '); + /** * Animationend event with vendor prefixes * @private * @const * @type {String} */ - var ANIMATIONEND_EVENTS = $.map(['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'], function (eventName) { return eventName + '.' + NAMESPACE; }).join(' '); + /** * Default settings * @private * @const * @type {Object} */ - var DEFAULTS = $.extend({ hashTracking: true, closeOnConfirm: true, @@ -81,76 +82,74 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery stack: false, appendTo: null }, window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.DEFAULTS); + /** * States of the Remodal * @private * @const * @enum {String} */ - var STATES = { CLOSING: 'closing', CLOSED: 'closed', OPENING: 'opening', OPENED: 'opened' }; + /** * Reasons of the state change. * @private * @const * @enum {String} */ - var STATE_CHANGE_REASONS = { CONFIRMATION: 'confirmation', CANCELLATION: 'cancellation' }; + /** * Is animation supported? * @private * @const * @type {Boolean} */ - var IS_ANIMATION = function () { var style = document.createElement('div').style; return style.animationName !== undefined || style.WebkitAnimationName !== undefined || style.MozAnimationName !== undefined || style.msAnimationName !== undefined || style.OAnimationName !== undefined; }(); + /** * Is iOS? * @private * @const * @type {Boolean} */ - - var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform); + /** * Current modal * @private * @type {Remodal} */ - var openModals = []; + /** * Scrollbar position * @private * @type {Number} */ - var scrollTop; + /** * Returns an animation duration * @private * @param {jQuery} $elem * @returns {Number} */ - function getAnimationDuration($elem) { if (IS_ANIMATION && $elem.css('animation-name') === 'none' && $elem.css('-webkit-animation-name') === 'none' && $elem.css('-moz-animation-name') === 'none' && $elem.css('-o-animation-name') === 'none' && $elem.css('-ms-animation-name') === 'none') { return 0; } - var duration = $elem.css('animation-duration') || $elem.css('-webkit-animation-duration') || $elem.css('-moz-animation-duration') || $elem.css('-o-animation-duration') || $elem.css('-ms-animation-duration') || '0s'; var delay = $elem.css('animation-delay') || $elem.css('-webkit-animation-delay') || $elem.css('-moz-animation-delay') || $elem.css('-o-animation-delay') || $elem.css('-ms-animation-delay') || '0s'; var iterationCount = $elem.css('animation-iteration-count') || $elem.css('-webkit-animation-iteration-count') || $elem.css('-moz-animation-iteration-count') || $elem.css('-o-animation-iteration-count') || $elem.css('-ms-animation-iteration-count') || '1'; @@ -160,30 +159,27 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery var i; duration = duration.split(', '); delay = delay.split(', '); - iterationCount = iterationCount.split(', '); // The 'duration' size is the same as the 'delay' size + iterationCount = iterationCount.split(', '); + // The 'duration' size is the same as the 'delay' size for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) { num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]); - if (num > max) { max = num; } } - return max; } + /** * Returns a scrollbar width * @private * @returns {Number} */ - - function getScrollbarWidth() { if ($(document).height() <= $(window).height()) { return 0; } - var outer = document.createElement('div'); var inner = document.createElement('div'); var widthNoScroll; @@ -191,65 +187,65 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery outer.style.visibility = 'hidden'; outer.style.width = '100px'; document.body.appendChild(outer); - widthNoScroll = outer.offsetWidth; // Force scrollbars + widthNoScroll = outer.offsetWidth; - outer.style.overflow = 'scroll'; // Add inner div + // Force scrollbars + outer.style.overflow = 'scroll'; + // Add inner div inner.style.width = '100%'; outer.appendChild(inner); - widthWithScroll = inner.offsetWidth; // Remove divs + widthWithScroll = inner.offsetWidth; + // Remove divs outer.parentNode.removeChild(outer); return widthNoScroll - widthWithScroll; } + /** * Locks the screen * @private */ - - function lockScreen() { if (IS_IOS) { return; } - var $html = $('html'); var lockedClass = namespacify('is-locked'); var paddingRight; var $body; - if (!$html.hasClass(lockedClass)) { - $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method + $body = $(document.body); + // Zepto does not support '-=', '+=' in the `css` method paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth(); $body.css('padding-right', paddingRight + 'px'); $html.addClass(lockedClass); } } + /** * Unlocks the screen * @private */ - - function unlockScreen() { if (IS_IOS) { return; } - var $html = $('html'); var lockedClass = namespacify('is-locked'); var paddingRight; var $body; - if ($html.hasClass(lockedClass)) { - $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method + $body = $(document.body); + // Zepto does not support '-=', '+=' in the `css` method paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth(); $body.css('padding-right', paddingRight + 'px'); $html.removeClass(lockedClass); } } + /** * Sets a state for an instance * @private @@ -258,8 +254,6 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery * @param {Boolean} isSilent If true, Remodal does not trigger events * @param {String} Reason of a state change. */ - - function setState(instance, state, isSilent, reason) { var newState = namespacify('is', state); var allStates = [namespacify('is', STATES.CLOSING), namespacify('is', STATES.OPENING), namespacify('is', STATES.CLOSED), namespacify('is', STATES.OPENED)].join(' '); @@ -275,30 +269,25 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery reason: reason }]); } + /** * Synchronizes with the animation * @param {Function} doBeforeAnimation * @param {Function} doAfterAnimation * @param {Remodal} instance */ - - function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) { var runningAnimationsCount = 0; - var handleAnimationStart = function handleAnimationStart(e) { if (e.target !== this) { return; } - runningAnimationsCount++; }; - var handleAnimationEnd = function handleAnimationEnd(e) { if (e.target !== this) { return; } - if (--runningAnimationsCount === 0) { // Remove event listeners $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) { @@ -307,12 +296,12 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery doAfterAnimation(); } }; - $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) { instance[elemName].on(ANIMATIONSTART_EVENTS, handleAnimationStart).on(ANIMATIONEND_EVENTS, handleAnimationEnd); }); - doBeforeAnimation(); // If the animation is not supported by a browser or its duration is 0 + doBeforeAnimation(); + // If the animation is not supported by a browser or its duration is 0 if (getAnimationDuration(instance.$bg) === 0 && getAnimationDuration(instance.$overlay) === 0 && getAnimationDuration(instance.$wrapper) === 0 && getAnimationDuration(instance.$modal) === 0) { // Remove event listeners $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) { @@ -321,18 +310,16 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery doAfterAnimation(); } } + /** * Closes immediately * @private * @param {Remodal} instance */ - - function halt(instance) { if (instance.state === STATES.CLOSED) { return; } - $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) { instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS); }); @@ -340,80 +327,72 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery instance.$bg.removeClass(instance.settings.modifier); instance.$overlay.removeClass(instance.settings.modifier).hide(); instance.$wrapper.hide(); - if (openModals.length === 0) { unlockScreen(); } - setState(instance, STATES.CLOSED, true); } + /** * Parses a string with options * @private * @param str * @returns {Object} */ - - function parseOptions(str) { var obj = {}; var arr; var len; var val; - var i; // Remove spaces before and after delimiters + var i; - str = str.replace(/\s*:\s*/g, ':').replace(/\s*,\s*/g, ','); // Parse a string + // Remove spaces before and after delimiters + str = str.replace(/\s*:\s*/g, ':').replace(/\s*,\s*/g, ','); + // Parse a string arr = str.split(','); - for (i = 0, len = arr.length; i < len; i++) { arr[i] = arr[i].split(':'); - val = arr[i][1]; // Convert a string value if it is like a boolean + val = arr[i][1]; + // Convert a string value if it is like a boolean if (typeof val === 'string' || val instanceof String) { val = val === 'true' || (val === 'false' ? false : val); - } // Convert a string value if it is like a number - + } + // Convert a string value if it is like a number if (typeof val === 'string' || val instanceof String) { val = !isNaN(val) ? +val : val; } - obj[arr[i][0]] = val; } - return obj; } + /** * Generates a string separated by dashes and prefixed with NAMESPACE * @private * @param {...String} * @returns {String} */ - - function namespacify() { var result = NAMESPACE; - for (var i = 0; i < arguments.length; ++i) { result += '-' + arguments[i]; } - return result; } + /** * Handles the hashchange event * @private * @listens hashchange */ - - function handleHashChangeEvent() { var id = location.hash.replace('#', ''); var instance; var $elem; var current = currentModal(); - if (!id) { // Check if we have currently opened modal and animation was completed if (current && current.state === STATES.OPENED && current.settings.hashTracking) { @@ -425,10 +404,8 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery try { $elem = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]'); } catch (err) {} - if ($elem && $elem.length) { instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)]; - if (instance && instance.settings.hashTracking) { instance.open(); } @@ -436,26 +413,22 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery } } } - function currentModal() { return openModals[openModals.length - 1]; } - function removeModal(remodal) { var index = openModals.indexOf(remodal); - if (index >= 0) { openModals.slice(index, 1); } } + /** * Remodal constructor * @constructor * @param {jQuery} $modal * @param {Object} options */ - - function Remodal($modal, options) { var $body = $(document.body); var $appendTo = $body; @@ -463,88 +436,86 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery remodal.id = $modal.attr('data-' + PLUGIN_NAME + '-id'); remodal.settings = $.extend({}, DEFAULTS, options); remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1; - remodal.state = STATES.CLOSED; // remodal.$overlay = $('.' + namespacify('overlay')); + remodal.state = STATES.CLOSED; + + // remodal.$overlay = $('.' + namespacify('overlay')); if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) { $appendTo = $(remodal.settings.appendTo); } - if (!remodal.$overlay) { remodal.$overlay = $('
').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide(); $appendTo.append(remodal.$overlay); } - remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED)); remodal.$modal = $modal.addClass(NAMESPACE + ' ' + namespacify('is-initialized') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).attr('tabindex', '-1'); remodal.$wrapper = $('
').addClass(namespacify('wrapper') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).hide().append(remodal.$modal); - $appendTo.append(remodal.$wrapper); // Add the event listener for the close button + $appendTo.append(remodal.$wrapper); + // Add the event listener for the close button remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="close"]', function (e) { e.preventDefault(); remodal.close(); - }); // Add the event listener for the cancel button + }); + // Add the event listener for the cancel button remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="cancel"]', function (e) { e.preventDefault(); remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION); - if (remodal.settings.closeOnCancel) { remodal.close(STATE_CHANGE_REASONS.CANCELLATION); } - }); // Add the event listener for the confirm button + }); + // Add the event listener for the confirm button remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action="confirm"]', function (e) { e.preventDefault(); remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION); - if (remodal.settings.closeOnConfirm) { remodal.close(STATE_CHANGE_REASONS.CONFIRMATION); } - }); // Add the event listener for the overlay + }); + // Add the event listener for the overlay remodal.$wrapper.on('click.' + NAMESPACE, function (e) { var $target = $(e.target); var isWrapper = $target.hasClass(namespacify('wrapper')); var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length; - if (!isWrapper && isWithin) { return; } - if (remodal.settings.closeOnOutsideClick) { remodal.close(); } }); } + /** * Opens a modal window * @public */ - - Remodal.prototype.open = function () { var remodal = this; var current; - var modalCount; // Check if the animation was completed + var modalCount; + // Check if the animation was completed if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) { return; - } // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id'); + } + // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id'); if (remodal.id && remodal.settings.hashTracking) { scrollTop = $(window).scrollTop(); location.hash = remodal.id; } - if (!remodal.settings.stack) { current = currentModal(); - if (current && current !== remodal) { halt(current); } } - modalCount = openModals.push(remodal); remodal.$overlay.css('z-index', function (_, value) { return parseInt(value, 10) + modalCount; @@ -563,26 +534,23 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery setState(remodal, STATES.OPENED); }, remodal); }; + /** * Closes a modal window * @public * @param {String} reason */ - - Remodal.prototype.close = function (reason) { var remodal = this; - var current; // Check if the animation was completed + var current; + // Check if the animation was completed if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) { return; } - removeModal(remodal); - if (remodal.settings.hashTracking && remodal.id === location.hash.substr(1)) { current = currentModal(); - if (current) { location.hash = current.id; } else { @@ -590,37 +558,32 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery $(window).scrollTop(scrollTop); } } - syncWithAnimation(function () { setState(remodal, STATES.CLOSING, false, reason); }, function () { remodal.$bg.removeClass(remodal.settings.modifier); remodal.$overlay.removeClass(remodal.settings.modifier).hide(); remodal.$wrapper.hide(); - if (openModals.length === 0) { unlockScreen(); } - setState(remodal, STATES.CLOSED, false, reason); }, remodal); }; + /** * Returns a current state of a modal * @public * @returns {STATES} */ - - Remodal.prototype.getState = function () { return this.state; }; + /** * Destroys a modal * @public */ - - Remodal.prototype.destroy = function () { var lookup = $[PLUGIN_NAME].lookup; var instanceCount; @@ -630,39 +593,35 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery instanceCount = $.grep(lookup, function (instance) { return !!instance; }).length; - if (instanceCount === 0) { this.$overlay.remove(); this.$bg.removeClass(namespacify('is', STATES.CLOSING) + ' ' + namespacify('is', STATES.OPENING) + ' ' + namespacify('is', STATES.CLOSED) + ' ' + namespacify('is', STATES.OPENED)); } }; + /** * Special plugin object for instances * @public * @type {Object} */ - - $[PLUGIN_NAME] = { lookup: [] }; + /** * Plugin constructor * @constructor * @param {Object} options * @returns {JQuery} */ - $.fn[PLUGIN_NAME] = function (opts) { var instance; var $elem; this.each(function (index, elem) { $elem = $(elem); - if ($elem.data(PLUGIN_NAME) == null) { instance = new Remodal($elem, opts); $elem.data(PLUGIN_NAME, instance.index); - if (instance.settings.hashTracking && instance.id === location.hash.substr(1)) { instance.open(); } @@ -672,7 +631,6 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery }); return instance; }; - $(document).ready(function () { // data-remodal-target opens a modal window with the special Id $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function (e) { @@ -681,41 +639,41 @@ var external_jQuery_default = /*#__PURE__*/__webpack_require__.n(external_jQuery var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target'); var $target = $('[data-' + PLUGIN_NAME + '-id="' + id + '"]'); $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open(); - }); // Auto initialization of modal windows + }); + + // Auto initialization of modal windows // They should have the 'remodal' class attribute // Also you can write the `data-remodal-options` attribute to pass params into the modal - $(document).find('.' + NAMESPACE).each(function (i, container) { var $container = $(container); var options = $container.data(PLUGIN_NAME + '-options'); - if (!options) { options = {}; } else if (typeof options === 'string' || options instanceof String) { options = parseOptions(options); } - $container[PLUGIN_NAME](options); - }); // Handles the keydown event + }); + // Handles the keydown event $(document).on('keydown.' + NAMESPACE, function (e) { var current = currentModal(); - if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) { current.close(); } - }); // Handles the hashchange event + }); + // Handles the hashchange event $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent); }); }); // EXTERNAL MODULE: ./node_modules/simplebar/dist/simplebar.min.js -var simplebar_min = __webpack_require__(85766); +var simplebar_min = __webpack_require__(88904); // EXTERNAL MODULE: ./node_modules/dropzone/dist/dropzone.js -var dist_dropzone = __webpack_require__(32025); +var dist_dropzone = __webpack_require__(62628); var dropzone_default = /*#__PURE__*/__webpack_require__.n(dist_dropzone); // EXTERNAL MODULE: ./node_modules/toastr/toastr.js -var toastr = __webpack_require__(8901); +var toastr = __webpack_require__(47959); var toastr_default = /*#__PURE__*/__webpack_require__.n(toastr); ;// CONCATENATED MODULE: ./app/utils/toastr.js @@ -736,13 +694,14 @@ external_jQuery_default()(document).ready(function () { if (!offline) { offlineElement.slideDown(); } -}); // assume online if can't check +}); +// assume online if can't check /* harmony default export */ const offline = (typeof __webpack_require__.g.navigator.onLine !== 'undefined' ? __webpack_require__.g.navigator.onLine : true); ;// CONCATENATED MODULE: external "GravAdmin" const external_GravAdmin_namespaceObject = GravAdmin; // EXTERNAL MODULE: ./node_modules/mout/string/trim.js -var trim = __webpack_require__(78579); +var trim = __webpack_require__(35814); var trim_default = /*#__PURE__*/__webpack_require__.n(trim); ;// CONCATENATED MODULE: ./app/utils/response.js @@ -751,15 +710,14 @@ var trim_default = /*#__PURE__*/__webpack_require__.n(trim); var UNLOADING = false; - var error = function error(response) { var error = new Error(response.statusText || response || ''); error.response = response; return error; }; - function parseStatus(response) { return response; + /* Whoops can handle JSON responses so we don't need this for now. if (response.status >= 200 && response.status < 300) { return response; @@ -771,7 +729,6 @@ function parseStatus(response) { function parseJSON(response) { return response.text().then(function (text) { var parsed = text; - try { parsed = JSON.parse(text); } catch (error) { @@ -781,7 +738,6 @@ function parseJSON(response) { the_error.stack = trim_default()(content.innerText); throw the_error; } - return parsed; }); } @@ -789,60 +745,49 @@ function userFeedback(response) { if (UNLOADING) { return true; } - var status = response.status || (response.error ? 'error' : ''); var message = response.message || (response.error ? response.error.message : null); var settings = response.toastr || null; var backup; - switch (status) { case 'unauthenticated': document.location.href = external_GravAdmin_namespaceObject.config.base_url_relative; throw error('Logged out'); - case 'unauthorized': status = 'error'; message = message || 'Unauthorized.'; break; - case 'error': status = 'error'; message = message || 'Unknown error.'; break; - case 'success': status = 'success'; message = message || ''; break; - default: status = 'error'; message = message || 'Invalid AJAX response.'; break; } - if (settings) { backup = Object.assign({}, utils_toastr.options); Object.keys(settings).forEach(function (key) { utils_toastr.options[key] = settings[key]; }); } - if (message && (offline || !offline && status !== 'error')) { utils_toastr[status === 'success' ? 'success' : 'error'](message); } - if (settings) { utils_toastr.options = backup; } - return response; } function userFeedbackError(error) { if (UNLOADING) { return true; } - var stack = error.stack ? "
".concat(error.stack, "
") : ''; utils_toastr.error("Fetch Failed:
".concat(error.message, " ").concat(stack)); console.error("".concat(error.message, " at ").concat(error.stack)); @@ -854,18 +799,15 @@ external_jQuery_default()(__webpack_require__.g).on('beforeunload._ajax', functi var raw; - var request = function request(url) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () { return true; }; - if (typeof options === 'function') { callback = options; options = {}; } - if (options.method && options.method === 'post') { var data = new FormData(); options.body = Object.assign({ @@ -876,7 +818,6 @@ var request = function request(url) { }); options.body = data; } - options = Object.assign({ credentials: 'same-origin', headers: { @@ -890,21 +831,21 @@ var request = function request(url) { return callback(response, raw); })["catch"](userFeedbackError); }; - /* harmony default export */ const utils_request = (request); ;// CONCATENATED MODULE: ./app/forms/fields/files.js -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _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); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _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); } - // import EXIF from 'exif-js'; +// import EXIF from 'exif-js'; - // translations +// translations var Dictionary = { dictCancelUpload: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD, dictCancelUploadConfirmation: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD_CONFIRMATION, @@ -919,32 +860,26 @@ var Dictionary = { }; (dropzone_default()).autoDiscover = false; (dropzone_default()).options.gravPageDropzone = {}; - (dropzone_default()).confirm = function (question, accepted, rejected) { var doc = external_jQuery_default()(document); var modalSelector = '[data-remodal-id="delete-media"]'; - var removeEvents = function removeEvents() { doc.off('confirmation', modalSelector, accept); doc.off('cancellation', modalSelector, reject); external_jQuery_default()(modalSelector).find('.remodal-confirm').removeClass('pointer-events-disabled'); }; - var accept = function accept() { accepted && accepted(); removeEvents(); }; - var reject = function reject() { rejected && rejected(); removeEvents(); }; - (external_jQuery_default()).remodal.lookup[external_jQuery_default()(modalSelector).data('remodal')].open(); doc.on('confirmation', modalSelector, accept); doc.on('cancellation', modalSelector, reject); }; - var DropzoneMediaConfig = { timeout: 0, thumbnailWidth: 200, @@ -953,7 +888,9 @@ var DropzoneMediaConfig = { dictDefaultMessage: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DROP_FILES_HERE_TO_UPLOAD.replace(/</g, '<').replace(/>/g, '>'), dictRemoveFileConfirmation: '[placeholder]', previewTemplate: "\n ").trim() -}; // global.EXIF = EXIF; +}; + +// global.EXIF = EXIF; var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) { var resolution = settings.resolution; @@ -962,24 +899,19 @@ var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) { var error = ''; var hasMin = resolution.min && (resolution.min.width || resolution.min.height); var hasMax = resolution.max && (resolution.max.width || resolution.max.height); - if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) { reader.onload = function (event) { if (!/image\//.test(file.type)) { done(); return; } - var image = new Image(); image.src = event.target.result; - image.onerror = function () { done(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD); }; - image.onload = function () { var _this = this; - if (resolution.min) { Object.keys(resolution.min).forEach(function (attr) { if (resolution.min[attr] && _this[attr] < resolution.min[attr]) { @@ -987,7 +919,6 @@ var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) { } }); } - if (!(settings.resizeWidth || settings.resizeHeight)) { if (resolution.max) { Object.keys(resolution.max).forEach(function (attr) { @@ -997,37 +928,28 @@ var ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) { }); } } - URL.revokeObjectURL(image.src); // release memory - return error ? done(error) : done(); }; }; - reader.readAsDataURL(file); } else { return error ? done(error) : done(); } }; - var FilesField = /*#__PURE__*/function () { function FilesField() { var _this2 = this; - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$container = _ref.container, - container = _ref$container === void 0 ? '.dropzone.files-upload' : _ref$container, - _ref$options = _ref.options, - options = _ref$options === void 0 ? {} : _ref$options; - + _ref$container = _ref.container, + container = _ref$container === void 0 ? '.dropzone.files-upload' : _ref$container, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options; _classCallCheck(this, FilesField); - this.container = external_jQuery_default()(container); - if (!this.container.length) { return; } - this.urls = {}; this.customPost = this.container.data('filePostAdd') || {}; this.options = Object.assign({}, Dictionary, DropzoneMediaConfig, { @@ -1059,19 +981,15 @@ var FilesField = /*#__PURE__*/function () { target.attr('href', "".concat(external_GravAdmin_namespaceObject.config.base_url_simple, "/").concat(URL)); }); } - - _createClass(FilesField, [{ + return _createClass(FilesField, [{ key: "initDropzone", value: function initDropzone() { var _this3 = this; - var files = this.options.klass.container.find('[data-file]'); var dropzone = this; - if (!files.length) { return; } - files.each(function (index, file) { file = external_jQuery_default()(file); var data = file.data('file'); @@ -1086,12 +1004,10 @@ var FilesField = /*#__PURE__*/function () { }; dropzone.files.push(mock); dropzone.options.addedfile.call(dropzone, mock); - if (mock.type.match(/^image\//)) { dropzone.options.thumbnail.call(dropzone, mock, data.path); dropzone.createThumbnailFromUrl(mock, data.path); } - file.remove(); }); } @@ -1104,7 +1020,6 @@ var FilesField = /*#__PURE__*/function () { key: "onDropzoneSending", value: function onDropzoneSending(file, xhr, formData) { var _this4 = this; - if (Object.keys(this.customPost).length) { Object.keys(this.customPost).forEach(function (key) { formData.append(key, _this4.customPost[key]); @@ -1114,28 +1029,26 @@ var FilesField = /*#__PURE__*/function () { formData.append('task', 'filesupload'); formData.append('uri', this.getURI()); } - formData.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce); } }, { key: "onDropzoneSuccess", value: function onDropzoneSuccess(file, response, xhr) { response = typeof response === 'string' ? JSON.parse(response) : response; - if (this.options.reloadPage) { __webpack_require__.g.location.reload(); - } // store params for removing file from session before it gets saved - + } + // store params for removing file from session before it gets saved if (response.session) { file.sessionParams = response.session; - file.removeUrl = this.options.url; // Touch field value to force a mutation detection + file.removeUrl = this.options.url; + // Touch field value to force a mutation detection var input = this.container.find('[name][type="hidden"]'); var value = input.val(); input.val(value + ' '); } - return this.handleError({ file: file, data: response, @@ -1158,7 +1071,6 @@ var FilesField = /*#__PURE__*/function () { msg: "

".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.FILE_ERROR_ADD, " {{fileName}}

\n
").concat(data.message, "
") }); } - if (this.options.reloadPage) { __webpack_require__.g.location.reload(); } @@ -1178,32 +1090,26 @@ var FilesField = /*#__PURE__*/function () { key: "onDropzoneRemovedFile", value: function onDropzoneRemovedFile(file) { var _this5 = this; - if (!file.accepted || file.rejected) { return; } - var url = file.removeUrl || this.urls["delete"] || this.options.url; var path = (url || '').match(/path:(.*)\//); var body = { filename: file.name, uri: this.getURI() }; - if (file.sessionParams) { body.task = 'filessessionremove'; body.session = file.sessionParams; } - var customPost = this.container.data('filePostRemove') || {}; - if (Object.keys(customPost).length) { body = {}; Object.keys(customPost).forEach(function (key) { body[key] = customPost[key]; }); } - body['filename'] = file.name; body['admin-nonce'] = external_GravAdmin_namespaceObject.config.admin_nonce; utils_request(url, { @@ -1213,11 +1119,8 @@ var FilesField = /*#__PURE__*/function () { if (!path) { return; } - path = _this5.b64_to_utf8(path[1]); - var input = _this5.container.find('[name][type="hidden"]'); - var data = JSON.parse(input.val() || '{}'); delete data[path]; input.val(JSON.stringify(data)); @@ -1240,14 +1143,12 @@ var FilesField = /*#__PURE__*/function () { key: "handleError", value: function handleError(options) { var file = options.file, - data = options.data, - mode = options.mode, - msg = options.msg; - + data = options.data, + mode = options.mode, + msg = options.msg; if (data.status !== 'error' && data.status !== 'unauthorized') { return; } - switch (mode) { case 'addBack': if (file instanceof File) { @@ -1257,9 +1158,7 @@ var FilesField = /*#__PURE__*/function () { this.dropzone.options.addedfile.call(this.dropzone, file); this.dropzone.options.thumbnail.call(this.dropzone, file, file.extras.url); } - break; - case 'removeFile': default: if (~this.dropzone.files.indexOf(file)) { @@ -1268,58 +1167,44 @@ var FilesField = /*#__PURE__*/function () { silent: true }); } - break; } - var modal = external_jQuery_default()('[data-remodal-id="generic"]'); var cleanName = file.name.replace('<', '<').replace('>', '>'); modal.find('.error-content').html(msg.replace('{{fileName}}', cleanName)); (external_jQuery_default()).remodal.lookup[modal.data('remodal')].open(); } }]); - - return FilesField; }(); - function UriToMarkdown(uri) { uri = uri.replace(/@3x|@2x|@1x/, ''); uri = uri.replace(/\(/g, '%28'); uri = uri.replace(/\)/g, '%29'); var title = uri.split('.').slice(0, -1).join('.'); - return uri.match(/\.(jpe?g|png|gif|svg|webp|mp4|webm|ogv|mov)$/i) ? "![".concat(title, "](").concat(uri, " \"").concat(title, "\")") : "[".concat(decodeURI(uri), "](").concat(uri, ")"); + return uri.match(/\.(jpe?g|png|gif|svg|webp|avif|mp4|webm|ogv|mov)$/i) ? "![".concat(title, "](").concat(uri, " \"").concat(title, "\")") : "[".concat(decodeURI(uri), "](").concat(uri, ")"); } var instances = []; var cache = external_jQuery_default()(); - -var onAddedNodes = function onAddedNodes(event, target -/* , record, instance */ -) { +var onAddedNodes = function onAddedNodes(event, target /* , record, instance */) { var files = external_jQuery_default()(target).find('.dropzone.files-upload'); - if (!files.length) { return; } - files.each(function (index, file) { file = external_jQuery_default()(file); - if (!~cache.index(file)) { addNode(file); } }); }; - var addNode = function addNode(container) { container = external_jQuery_default()(container); var input = container.find('input[type="file"]'); var settings = container.data('grav-file-settings') || {}; - if (settings.accept && ~settings.accept.indexOf('*')) { settings.accept = ['']; } - var options = { url: container.data('file-url-add') || (container.closest('form').attr('action') || external_GravAdmin_namespaceObject.config.current_url) + '.json', paramName: settings.paramName || 'file', @@ -1342,7 +1227,6 @@ var addNode = function addNode(container) { options: options })); }; - var Instance = function () { external_jQuery_default()('.dropzone.files-upload').each(function (i, container) { return addNode(container); @@ -1351,55 +1235,38 @@ var Instance = function () { return instances; }(); // EXTERNAL MODULE: ./node_modules/events/events.js -var events = __webpack_require__(17187); +var events = __webpack_require__(37007); var events_default = /*#__PURE__*/__webpack_require__.n(events); ;// CONCATENATED MODULE: ./app/utils/gpm.js -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -function gpm_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function gpm_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function gpm_createClass(Constructor, protoProps, staticProps) { if (protoProps) gpm_defineProperties(Constructor.prototype, protoProps); if (staticProps) gpm_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - - +function gpm_typeof(o) { "@babel/helpers - typeof"; return gpm_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; }, gpm_typeof(o); } +function gpm_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function gpm_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, gpm_toPropertyKey(o.key), o); } } +function gpm_createClass(e, r, t) { return r && gpm_defineProperties(e.prototype, r), t && gpm_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function gpm_toPropertyKey(t) { var i = gpm_toPrimitive(t, "string"); return "symbol" == gpm_typeof(i) ? i : i + ""; } +function gpm_toPrimitive(t, r) { if ("object" != gpm_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != gpm_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } +function _possibleConstructorReturn(t, e) { if (e && ("object" == gpm_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } +function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } +function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } +function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } var GPM = /*#__PURE__*/function (_EventEmitter) { - _inherits(GPM, _EventEmitter); - - var _super = _createSuper(GPM); - function GPM() { var _this; - var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates'; - gpm_classCallCheck(this, GPM); - - _this = _super.call(this); + _this = _callSuper(this, GPM); _this.payload = {}; _this.raw = {}; _this.action = action; return _this; } - - gpm_createClass(GPM, [{ + _inherits(GPM, _EventEmitter); + return gpm_createClass(GPM, [{ key: "setPayload", value: function setPayload() { var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; @@ -1421,26 +1288,21 @@ var GPM = /*#__PURE__*/function (_EventEmitter) { function fetch() { return _fetch.apply(this, arguments); } - fetch.toString = function () { return _fetch.toString(); }; - return fetch; }(function () { var _this2 = this; - var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () { return true; }; var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var data = new FormData(); data.append('admin-nonce', external_GravAdmin_namespaceObject.config.admin_nonce); - if (flush) { data.append('flush', true); } - this.emit('fetching', this); fetch("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/update.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getUpdates"), { credentials: 'same-origin', @@ -1464,35 +1326,28 @@ var GPM = /*#__PURE__*/function (_EventEmitter) { return _response; } }]); - - return GPM; }((events_default())); - var gpm_Instance = new GPM(); ;// CONCATENATED MODULE: ./app/utils/keepalive.js -function keepalive_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function keepalive_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function keepalive_createClass(Constructor, protoProps, staticProps) { if (protoProps) keepalive_defineProperties(Constructor.prototype, protoProps); if (staticProps) keepalive_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +function keepalive_typeof(o) { "@babel/helpers - typeof"; return keepalive_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; }, keepalive_typeof(o); } +function keepalive_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function keepalive_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, keepalive_toPropertyKey(o.key), o); } } +function keepalive_createClass(e, r, t) { return r && keepalive_defineProperties(e.prototype, r), t && keepalive_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function keepalive_toPropertyKey(t) { var i = keepalive_toPrimitive(t, "string"); return "symbol" == keepalive_typeof(i) ? i : i + ""; } +function keepalive_toPrimitive(t, r) { if ("object" != keepalive_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != keepalive_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var MAX_SAFE_DELAY = 2147483647; - var KeepAlive = /*#__PURE__*/function () { function KeepAlive() { keepalive_classCallCheck(this, KeepAlive); - this.active = false; } - - keepalive_createClass(KeepAlive, [{ + return keepalive_createClass(KeepAlive, [{ key: "start", value: function start() { var _this = this; - var timeout = external_GravAdmin_namespaceObject.config.admin_timeout / 1.5 * 1000; this.timer = setInterval(function () { return _this.fetch(); @@ -1511,11 +1366,9 @@ var KeepAlive = /*#__PURE__*/function () { function fetch() { return _fetch.apply(this, arguments); } - fetch.toString = function () { return _fetch.toString(); }; - return fetch; }(function () { var data = new FormData(); @@ -1527,52 +1380,44 @@ var KeepAlive = /*#__PURE__*/function () { })["catch"](userFeedbackError); }) }]); - - return KeepAlive; }(); - /* harmony default export */ const keepalive = (new KeepAlive()); // EXTERNAL MODULE: ./node_modules/mout/array/unique.js -var unique = __webpack_require__(79863); +var unique = __webpack_require__(45195); var unique_default = /*#__PURE__*/__webpack_require__.n(unique); ;// CONCATENATED MODULE: ./app/updates/notifications.js -function notifications_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function notifications_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function notifications_createClass(Constructor, protoProps, staticProps) { if (protoProps) notifications_defineProperties(Constructor.prototype, protoProps); if (staticProps) notifications_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - - +function notifications_typeof(o) { "@babel/helpers - typeof"; return notifications_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; }, notifications_typeof(o); } +function notifications_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function notifications_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, notifications_toPropertyKey(o.key), o); } } +function notifications_createClass(e, r, t) { return r && notifications_defineProperties(e.prototype, r), t && notifications_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function notifications_toPropertyKey(t) { var i = notifications_toPrimitive(t, "string"); return "symbol" == notifications_typeof(i) ? i : i + ""; } +function notifications_toPrimitive(t, r) { if ("object" != notifications_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != notifications_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var canFetchNotifications = function canFetchNotifications() { return external_GravAdmin_namespaceObject.config.notifications.enabled; }; - var notificationsFilters = function notificationsFilters() { return external_GravAdmin_namespaceObject.config.notifications.filters; }; - var Notifications = /*#__PURE__*/function () { function Notifications() { notifications_classCallCheck(this, Notifications); } - - notifications_createClass(Notifications, [{ + return notifications_createClass(Notifications, [{ key: "fetch", - value: // Grav.default.Notifications.fetch() + value: + // Grav.default.Notifications.fetch() function fetch() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$filter = _ref.filter, - filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter, - _ref$refresh = _ref.refresh, - refresh = _ref$refresh === void 0 ? false : _ref$refresh; - + _ref$filter = _ref.filter, + filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter, + _ref$refresh = _ref.refresh, + refresh = _ref$refresh === void 0 ? false : _ref$refresh; if (!canFetchNotifications()) { return false; } - var feed = external_jQuery_default()('#notifications'); var loader = feed.find('.widget-loader'); var content = feed.find('.widget-content > ul'); @@ -1580,18 +1425,15 @@ var Notifications = /*#__PURE__*/function () { loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin'); loader.show(); content.hide(); - var processNotifications = function processNotifications(response) { var notifications = response.notifications; external_jQuery_default()('#notifications').find('.widget-content > ul').empty(); - if (notifications) { Object.keys(notifications).forEach(function (location) { return Notifications.processLocation(location, notifications[location]); }); } }; - utils_request("".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getNotifications"), { method: 'post', body: { @@ -1664,49 +1506,37 @@ var Notifications = /*#__PURE__*/function () { case 'feed': Notifications.showNotificationInFeed(notification); break; - case 'top': if (!notification.read) { Notifications.showNotificationInTop(notification); } - break; - case 'dashboard': if (!notification.read) { Notifications.showNotificationInDashboard(notification); } - break; - case 'plugins': if (!notification.read) { Notifications.showNotificationInPlugins(notification); } - break; - case 'themes': if (!notification.read) { Notifications.showNotificationInThemes(notification); } - break; } } }]); - - return Notifications; }(); - var notifications = new Notifications(); /* harmony default export */ const updates_notifications = (notifications); - if (canFetchNotifications()) { notifications.fetch(); + /* Hide a notification and store it hidden */ // - external_jQuery_default()(document).on('click', '[data-notification-action="hide-notification"]', function (event) { var notification_id = external_jQuery_default()(event.target).parents('.hide-notification').data('notification-id'); var url = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/notifications.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "hideNotification/notification_id").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(notification_id); @@ -1735,29 +1565,25 @@ if (canFetchNotifications()) { }); } ;// CONCATENATED MODULE: ./app/updates/feed.js -function feed_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function feed_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function feed_createClass(Constructor, protoProps, staticProps) { if (protoProps) feed_defineProperties(Constructor.prototype, protoProps); if (staticProps) feed_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +function feed_typeof(o) { "@babel/helpers - typeof"; return feed_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; }, feed_typeof(o); } +function feed_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function feed_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, feed_toPropertyKey(o.key), o); } } +function feed_createClass(e, r, t) { return r && feed_defineProperties(e.prototype, r), t && feed_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function feed_toPropertyKey(t) { var i = feed_toPrimitive(t, "string"); return "symbol" == feed_typeof(i) ? i : i + ""; } +function feed_toPrimitive(t, r) { if ("object" != feed_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != feed_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/ajax.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getNewsFeed"); - var Feed = /*#__PURE__*/function () { function Feed() { feed_classCallCheck(this, Feed); - this.data = null; } - - feed_createClass(Feed, [{ + return feed_createClass(Feed, [{ key: "fetch", value: function fetch() { var _this = this; - var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; utils_request(URI, { @@ -1774,19 +1600,15 @@ var Feed = /*#__PURE__*/function () { key: "refresh", value: function refresh() { var _refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var feed = external_jQuery_default()('#news-feed .widget-content'); - if (!feed.length) { return; } - var loader = feed.find('.widget-loader'); loader.find('div').remove(); loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin'); loader.show(); feed.find('> ul').hide(); - if (!this.data || this.data.error || _refresh) { this.fetch(_refresh, this.updateContent.bind(this)); } else { @@ -1797,30 +1619,23 @@ var Feed = /*#__PURE__*/function () { key: "updateContent", value: function updateContent() { var feed = external_jQuery_default()('#news-feed .widget-content'); - if (!feed.length) { return; } - var loader = feed.find('.widget-loader').hide(); var content = feed.find('> ul').empty().show(); - if (this.data.error || this.data.status === 'error') { loader.show().find('div').remove(); loader.find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-warning'); loader.append("
".concat(this.data.error ? this.data.error.message : this.data.message || 'Unable to download news feed', "
")); return; } - if (this.data && this.data.feed_data) { content.append(this.data.feed_data); } } }]); - - return Feed; }(); - var feed = new Feed(); external_jQuery_default()(document).ready(function () { return feed.refresh(); @@ -1834,29 +1649,26 @@ external_jQuery_default()(document).on('click', '[data-refresh="feed"]', functio - // Check for updates trigger + +// Check for updates trigger external_jQuery_default()('[data-gpm-checkupdates]').on('click', function () { var element = external_jQuery_default()(this); element.find('i').addClass('fa-spin'); gpm_Instance.fetch(function (response) { element.find('i').removeClass('fa-spin'); var payload = response.payload; - if (!payload) { return; } - if (!payload.grav.isUpdatable && !payload.resources.total) { utils_toastr.success(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.EVERYTHING_UP_TO_DATE); } else { var grav = payload.grav.isUpdatable ? 'Grav v' + payload.grav.available : ''; var resources = payload.resources.total ? payload.resources.total + ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATES_ARE_AVAILABLE : ''; - if (!resources) { grav += ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_AVAILABLE_FOR_UPDATE; } - utils_toastr.info(grav + (grav && resources ? ' ' + external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.AND + ' ' : '') + resources); } }, true); @@ -1875,18 +1687,18 @@ function formatBytes(bytes, decimals) { - // Dashboard update and Grav update + +// Dashboard update and Grav update external_jQuery_default()(document).on('click.remodal', '[data-remodal-id="update-grav"] [data-remodal-action="confirm"]', function () { var element = external_jQuery_default()('#grav-update-button'); - element.html("".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT, " ").concat(formatBytes(updates_Instance.payload.grav.assets["grav-update"].size), "..")); + element.html("".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT, " ").concat(formatBytes(updates_Instance.payload.grav.assets['grav-update'].size), "..")); element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin'); utils_request(updates_Instance.updateURL, function (response) { if (response.type === 'updategrav') { external_jQuery_default()('[data-gpm-grav]').remove(); external_jQuery_default()('#footer .grav-version').html(response.version); } - element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin').addClass('fa-cloud-download'); }); }); @@ -1894,7 +1706,6 @@ external_jQuery_default()(document).on('click.remodal', '[data-remodal-id="updat var switcher = external_jQuery_default()('input[type="radio"][name="channel-switch"]'); - if (switcher) { switcher.on('change', function (event) { var radio = external_jQuery_default()(event.target); @@ -1913,13 +1724,12 @@ if (switcher) { }); } ;// CONCATENATED MODULE: ./app/updates/index.js -function updates_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function updates_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function updates_createClass(Constructor, protoProps, staticProps) { if (protoProps) updates_defineProperties(Constructor.prototype, protoProps); if (staticProps) updates_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - - +function updates_typeof(o) { "@babel/helpers - typeof"; return updates_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; }, updates_typeof(o); } +function updates_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function updates_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, updates_toPropertyKey(o.key), o); } } +function updates_createClass(e, r, t) { return r && updates_defineProperties(e.prototype, r), t && updates_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function updates_toPropertyKey(t) { var i = updates_toPrimitive(t, "string"); return "symbol" == updates_typeof(i) ? i : i + ""; } +function updates_toPrimitive(t, r) { if ("object" != updates_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != updates_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } @@ -1932,15 +1742,12 @@ function updates_createClass(Constructor, protoProps, staticProps) { if (protoPr var Updates = /*#__PURE__*/function () { function Updates() { var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - updates_classCallCheck(this, Updates); - this.setPayload(payload); this.task = "task".concat(external_GravAdmin_namespaceObject.config.param_sep); this.updateURL = ''; } - - updates_createClass(Updates, [{ + return updates_createClass(Updates, [{ key: "setPayload", value: function setPayload() { var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; @@ -1951,7 +1758,6 @@ var Updates = /*#__PURE__*/function () { key: "fetch", value: function fetch() { var _this = this; - var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; gpm_Instance.fetch(function (response) { return _this.setPayload(response); @@ -1964,36 +1770,29 @@ var Updates = /*#__PURE__*/function () { var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'hide'; var element = external_jQuery_default()('#updates [data-update-packages]'); element[mode === 'show' ? 'fadeIn' : 'fadeOut'](); - if (mode === 'hide') { external_jQuery_default()('.badges.with-updates').removeClass('with-updates').find('.badge.updates').remove(); } - return this; } }, { key: "grav", value: function grav() { var payload = this.payload.grav; - if (payload && payload.isUpdatable) { var task = this.task; var bar = ''; - if (!payload.isSymlink) { this.updateURL = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/update.json/").concat(task, "updategrav/admin-nonce").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(external_GravAdmin_namespaceObject.config.admin_nonce); bar += ""); } else { bar += ""); } - bar += "\n Grav v".concat(payload.available, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, "! (").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.CURRENT, " v").concat(payload.version, ")\n "); var element = external_jQuery_default()('[data-gpm-grav]').removeClass('hidden'); - if (element.is(':empty')) { element.hide(); } - element.addClass('grav').html("".concat(bar)).slideDown(150, function () { var c = 5; var x = setInterval(function () { @@ -2007,7 +1806,6 @@ var Updates = /*#__PURE__*/function () { }, 5000); }).parent('#messages').addClass('default-box-shadow'); } - return this; } }, { @@ -2016,45 +1814,40 @@ var Updates = /*#__PURE__*/function () { if (!this.payload || !this.payload.resources || !this.payload.resources.total) { return this.maintenance('hide'); } - var is_current_package_latest = true; var map = ['plugins', 'themes']; var singles = ['plugin', 'theme']; var _this$payload$resourc = this.payload.resources, - plugins = _this$payload$resourc.plugins, - themes = _this$payload$resourc.themes; - + plugins = _this$payload$resourc.plugins, + themes = _this$payload$resourc.themes; if (!this.payload.resources.total) { return this; } - [plugins, themes].forEach(function (resources, index) { if (!resources || Array.isArray(resources)) { return; } - var length = Object.keys(resources).length; - var type = map[index]; // sidebar + var type = map[index]; + // sidebar external_jQuery_default()("#admin-menu a[href$=\"/".concat(map[index], "\"]")).find('.badges').addClass('with-updates').find('.badge.updates').text(length); - var type_translation = ''; // update all + var type_translation = ''; + // update all if (type === 'plugins') { type_translation = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.PLUGINS; } else { type_translation = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.THEMES; } - var updateAll = external_jQuery_default()(".grav-update.".concat(type)); updateAll.css('display', 'block').html("\n

\n ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.ALL, " ").concat(type_translation, "\n \n ").concat(length, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.OF_YOUR, " ").concat(type_translation.toLowerCase(), " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE, "\n

\n ")); var existing_slugs = external_jQuery_default()('[data-update-packages]').attr('data-packages-slugs') || ''; - if (existing_slugs) { existing_slugs = existing_slugs.split(','); } else { existing_slugs = []; } - var slugs = unique_default()(existing_slugs.concat(Object.keys(resources))).join(); external_jQuery_default()('[data-update-packages]').attr('data-packages-slugs', "".concat(slugs)); Object.keys(resources).forEach(function (item) { @@ -2063,19 +1856,17 @@ var Updates = /*#__PURE__*/function () { var element = container.find('.gpm-name'); var url = element.find('a'); var content_wrapper = container.parents('.content-wrapper'); - if (type === 'plugins' && !element.find('.badge.update').length) { element.append("").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE_AVAILABLE, "!")); content_wrapper.addClass('has-updates'); } else if (type === 'themes') { element.append("")); content_wrapper.addClass('has-updates'); - } // details page - + } + // details page if (container.length) { var details = external_jQuery_default()(".grav-update.".concat(singles[index])); - if (details.length) { var releaseType = resources[item].type === 'testing' ? 'test release' : ''; details.html("\n

\n ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.UPDATE, " ").concat(singles[index].charAt(0).toUpperCase() + singles[index].substr(1).toLowerCase(), "\n \n v").concat(resources[item].available, " ").concat(releaseType, " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.OF_THIS, " ").concat(singles[index], " ").concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, "!\n

\n ")).css('display', 'block'); @@ -2086,63 +1877,50 @@ var Updates = /*#__PURE__*/function () { external_jQuery_default()('[data-update-packages]').removeClass('hidden'); }); external_jQuery_default()('.content-wrapper').addClass('updates-checked'); - if (!is_current_package_latest) { external_jQuery_default()('.warning-reinstall-not-latest-release').removeClass('hidden'); } } }]); - - return Updates; }(); - var updates_Instance = new Updates(); - // automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch + +// automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch gpm_Instance.on('fetched', function (response, raw) { updates_Instance.setPayload(response.payload || {}); updates_Instance.grav().resources(); }); - if (external_GravAdmin_namespaceObject.config.enable_auto_updates_check === '1') { gpm_Instance.fetch(); } // EXTERNAL MODULE: ./node_modules/chartist/dist/chartist.js -var chartist = __webpack_require__(69259); +var chartist = __webpack_require__(9592); var chartist_default = /*#__PURE__*/__webpack_require__.n(chartist); ;// CONCATENATED MODULE: ./app/dashboard/chart.js -function chart_typeof(obj) { "@babel/helpers - typeof"; return chart_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, chart_typeof(obj); } - -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = chart_getPrototypeOf(object); if (object === null) break; } return object; } - -function chart_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) chart_setPrototypeOf(subClass, superClass); } - -function chart_setPrototypeOf(o, p) { chart_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return chart_setPrototypeOf(o, p); } - -function chart_createSuper(Derived) { var hasNativeReflectConstruct = chart_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = chart_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = chart_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return chart_possibleConstructorReturn(this, result); }; } - -function chart_possibleConstructorReturn(self, call) { if (call && (chart_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return chart_assertThisInitialized(self); } - -function chart_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function chart_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function chart_getPrototypeOf(o) { chart_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return chart_getPrototypeOf(o); } - -function chart_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function chart_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +function chart_callSuper(t, o, e) { return o = chart_getPrototypeOf(o), chart_possibleConstructorReturn(t, chart_isNativeReflectConstruct() ? Reflect.construct(o, e || [], chart_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function chart_possibleConstructorReturn(t, e) { if (e && ("object" == chart_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return chart_assertThisInitialized(t); } +function chart_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function chart_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (chart_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } +function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = chart_getPrototypeOf(t));); return t; } +function chart_getPrototypeOf(t) { return chart_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, chart_getPrototypeOf(t); } +function chart_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && chart_setPrototypeOf(t, e); } +function chart_setPrototypeOf(t, e) { return chart_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, chart_setPrototypeOf(t, e); } +function chart_typeof(o) { "@babel/helpers - typeof"; return chart_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; }, chart_typeof(o); } +function chart_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function chart_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, chart_toPropertyKey(o.key), o); } } +function chart_createClass(e, r, t) { return r && chart_defineProperties(e.prototype, r), t && chart_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function chart_toPropertyKey(t) { var i = chart_toPrimitive(t, "string"); return "symbol" == chart_typeof(i) ? i : i + ""; } +function chart_toPrimitive(t, r) { if ("object" != chart_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != chart_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function chart_createClass(Constructor, protoProps, staticProps) { if (protoProps) chart_defineProperties(Constructor.prototype, protoProps); if (staticProps) chart_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - // let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; +// let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; var defaults = { data: { @@ -2163,6 +1941,7 @@ var defaults = { height: 164, chartPadding: 20, // workaround for older versions of firefox + axisX: { showGrid: false, labelOffset: { @@ -2183,22 +1962,16 @@ var defaults = { } } }; - var Chart = /*#__PURE__*/function () { function Chart(element) { var _this = this; - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - chart_classCallCheck(this, Chart); - this.element = external_jQuery_default()(element) || []; - if (!this.element[0]) { return; } - var type = (this.element.data('chart-type') || 'pie').toLowerCase(); this.type = type.charAt(0).toUpperCase() + type.substr(1).toLowerCase(); options = Object.assign({}, defaults.options[this.type], options); @@ -2209,10 +1982,10 @@ var Chart = /*#__PURE__*/function () { }); this.chart = (chartist_default())[this.type](this.element.find('.ct-chart').empty()[0], this.data, this.options); this.chart.on('created', function () { - _this.element.find('.hidden').removeClass('hidden'); // FIX: workaround for chartist issue not allowing HTML in labels anymore - // https://github.com/gionkunz/chartist-js/issues/937 - + _this.element.find('.hidden').removeClass('hidden'); + // FIX: workaround for chartist issue not allowing HTML in labels anymore + // https://github.com/gionkunz/chartist-js/issues/937 _this.element.find('.ct-label').each(function (index, label) { label = external_jQuery_default()(label); var text = label.html().replace('<', '<').replace('>', '>'); @@ -2220,66 +1993,49 @@ var Chart = /*#__PURE__*/function () { }); }); } - - chart_createClass(Chart, [{ + return chart_createClass(Chart, [{ key: "updateData", value: function updateData(data) { Object.assign(this.data, data); this.chart.update(this.data); } }]); - - return Chart; }(); - ; var UpdatesChart = /*#__PURE__*/function (_Chart) { - chart_inherits(UpdatesChart, _Chart); - - var _super = chart_createSuper(UpdatesChart); - function UpdatesChart(element) { var _this2; - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - chart_classCallCheck(this, UpdatesChart); - - _this2 = _super.call(this, element, options, data); - + _this2 = chart_callSuper(this, UpdatesChart, [element, options, data]); _this2.chart.on('draw', function (data) { return _this2.draw(data); }); - gpm_Instance.on('fetched', function (response) { if (!response.payload) { return; } - var payload = response.payload.grav; var missing = (response.payload.resources.total + (payload.isUpdatable ? 1 : 0)) * 100 / (response.payload.installed + (payload.isUpdatable ? 1 : 0)); var updated = 100 - missing; - _this2.updateData({ series: [updated, missing] }); - if (response.payload.resources.total) { updates_Instance.maintenance('show'); } }); return _this2; } - - chart_createClass(UpdatesChart, [{ + chart_inherits(UpdatesChart, _Chart); + return chart_createClass(UpdatesChart, [{ key: "draw", value: function draw(data) { if (data.index) { return; } - var notice = external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN[data.value === 100 ? 'FULLY_UPDATED' : 'UPDATES_AVAILABLE']; this.element.find('.numeric span').text("".concat(Math.round(data.value), "%")); this.element.find('.js__updates-available-description').html(notice); @@ -2288,16 +2044,14 @@ var UpdatesChart = /*#__PURE__*/function (_Chart) { }, { key: "updateData", value: function updateData(data) { - _get(chart_getPrototypeOf(UpdatesChart.prototype), "updateData", this).call(this, data); // missing updates - + _get(chart_getPrototypeOf(UpdatesChart.prototype), "updateData", this).call(this, data); + // missing updates if (this.data.series[0] < 100) { this.element.closest('#updates').find('[data-update-packages]').fadeIn(); } } }]); - - return UpdatesChart; }(Chart); var charts = {}; external_jQuery_default()('[data-chart-name]').each(function () { @@ -2305,7 +2059,6 @@ external_jQuery_default()('[data-chart-name]').each(function () { var name = element.data('chart-name') || ''; var options = element.data('chart-options') || {}; var data = element.data('chart-data') || {}; - if (name === 'updates') { charts[name] = new UpdatesChart(element, options, data); } else { @@ -2314,53 +2067,42 @@ external_jQuery_default()('[data-chart-name]').each(function () { }); var Instances = charts; ;// CONCATENATED MODULE: ./app/dashboard/cache.js -function cache_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function cache_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function cache_createClass(Constructor, protoProps, staticProps) { if (protoProps) cache_defineProperties(Constructor.prototype, protoProps); if (staticProps) cache_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - - +function cache_typeof(o) { "@babel/helpers - typeof"; return cache_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; }, cache_typeof(o); } +function cache_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function cache_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, cache_toPropertyKey(o.key), o); } } +function cache_createClass(e, r, t) { return r && cache_defineProperties(e.prototype, r), t && cache_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function cache_toPropertyKey(t) { var i = cache_toPrimitive(t, "string"); return "symbol" == cache_typeof(i) ? i : i + ""; } +function cache_toPrimitive(t, r) { if ("object" != cache_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != cache_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var getUrl = function getUrl() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - if (type) { type = "cleartype:".concat(type, "/"); } - return "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/cache.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "clearCache/").concat(type, "admin-nonce").concat(external_GravAdmin_namespaceObject.config.param_sep).concat(external_GravAdmin_namespaceObject.config.admin_nonce); }; - var Cache = /*#__PURE__*/function () { function Cache() { var _this = this; - cache_classCallCheck(this, Cache); - this.element = external_jQuery_default()('[data-clear-cache]'); external_jQuery_default()('body').on('click', '[data-clear-cache]', function (event) { return _this.clear(event, event.target); }); } - - cache_createClass(Cache, [{ + return cache_createClass(Cache, [{ key: "clear", value: function clear(event, element) { var _this2 = this; - var type = ''; - if (event && event.preventDefault) { event.preventDefault(); } - if (typeof event === 'string') { type = event; } - element = element ? external_jQuery_default()(element) : external_jQuery_default()("[data-clear-cache-type=\"".concat(type, "\"]")); type = type || external_jQuery_default()(element).data('clear-cache-type') || ''; var url = element.data('clearCache') || getUrl(type); @@ -2380,11 +2122,8 @@ var Cache = /*#__PURE__*/function () { this.element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-retweet').addClass('fa-refresh fa-spin'); } }]); - - return Cache; }(); - var cache_Instance = new Cache(); ;// CONCATENATED MODULE: ./app/dashboard/backup.js @@ -2397,8 +2136,7 @@ external_jQuery_default()('[data-backup][data-ajax*="backup/"]').on('click', fun var url = element.data('ajax'); var inDropdown = element.closest('.dropdown-menu'); (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').attr('disabled', 'disabled').find('> .fa').removeClass('fa-life-ring').addClass('fa-spin fa-refresh'); - utils_request(url, function - /* response */ + utils_request(url, function /* response */ () { if (Instances && Instances.backups) { Instances.backups.updateData({ @@ -2406,7 +2144,6 @@ external_jQuery_default()('[data-backup][data-ajax*="backup/"]').on('click', fun }); Instances.backups.element.find('.numeric').html("0 ".concat(external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.DAYS.toLowerCase(), "")); } - (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').removeAttr('disabled').find('> .fa').removeClass('fa-spin fa-refresh').addClass('fa-life-ring'); }); }); @@ -2436,43 +2173,36 @@ external_jQuery_default()('[data-backup][data-ajax*="backupDelete"]').on('click' Cache: cache_Instance }); // EXTERNAL MODULE: ./node_modules/sortablejs/modular/sortable.esm.js -var sortable_esm = __webpack_require__(51474); +var sortable_esm = __webpack_require__(10246); // EXTERNAL MODULE: ./node_modules/debounce/index.js -var debounce = __webpack_require__(20296); +var debounce = __webpack_require__(17334); var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce); // EXTERNAL MODULE: ./app/utils/storage.js -var storage = __webpack_require__(31619); +var storage = __webpack_require__(95851); ;// CONCATENATED MODULE: ./app/pages/tree.js -function tree_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function tree_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function tree_createClass(Constructor, protoProps, staticProps) { if (protoProps) tree_defineProperties(Constructor.prototype, protoProps); if (staticProps) tree_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +function tree_typeof(o) { "@babel/helpers - typeof"; return tree_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; }, tree_typeof(o); } +function tree_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function tree_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, tree_toPropertyKey(o.key), o); } } +function tree_createClass(e, r, t) { return r && tree_defineProperties(e.prototype, r), t && tree_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function tree_toPropertyKey(t) { var i = tree_toPrimitive(t, "string"); return "symbol" == tree_typeof(i) ? i : i + ""; } +function tree_toPrimitive(t, r) { if ("object" != tree_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != tree_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var sessionKey = 'grav:admin:pages'; - if (!sessionStorage.getItem(sessionKey)) { sessionStorage.setItem(sessionKey, '{}'); } - var PagesTree = /*#__PURE__*/function () { function PagesTree(query) { var _this = this; - var elements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; - tree_classCallCheck(this, PagesTree); - this.query = query; this.elements = external_jQuery_default()(elements !== undefined ? elements : this.query); this.session = JSON.parse(sessionStorage.getItem(sessionKey) || '{}'); - if (!this.elements.length) { return; } - this.restore(); this.elements.find('.page-icon').on('click', function (event) { return _this.toggle(event.target); @@ -2481,41 +2211,32 @@ var PagesTree = /*#__PURE__*/function () { external_jQuery_default()('[data-page-toggleall]').on('click', function (event) { var element = external_jQuery_default()(event.target).closest('[data-page-toggleall]'); var action = element.data('page-toggleall'); - _this[action](); }); } - - tree_createClass(PagesTree, [{ + return tree_createClass(PagesTree, [{ key: "reload", value: function reload() { var elements = external_jQuery_default()(this.query).filter(function (index, element) { return !external_jQuery_default()(element).data('tree_init'); }); - if (!elements.length) { return; } - this.constructor(this.query, elements); } }, { key: "toggle", value: function toggle(elements) { var _this2 = this; - var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof elements === 'string') { elements = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]")).find('[data-toggle="children"]'); } - elements = external_jQuery_default()(elements || this.elements); elements.each(function (index, element) { element = external_jQuery_default()(element); - var state = _this2.getState(element.closest('[data-toggle="children"]')); - _this2[state.isOpen ? 'collapse' : 'expand'](state.id, dontStore); }); } @@ -2523,29 +2244,22 @@ var PagesTree = /*#__PURE__*/function () { key: "collapse", value: function collapse(elements) { var _this3 = this; - var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof elements === 'string') { elements = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]")).find('[data-toggle="children"]'); } - elements = external_jQuery_default()(elements || this.elements); elements.each(function (index, element) { element = external_jQuery_default()(element); - var state = _this3.getState(element); - if (state.isOpen) { state.children.hide(); state.icon.removeClass('children-open').addClass('children-closed'); - if (!dontStore) { delete _this3.session[state.id]; } } }); - if (!dontStore) { this.save(); } @@ -2554,38 +2268,31 @@ var PagesTree = /*#__PURE__*/function () { key: "expand", value: function expand(elements) { var _this4 = this; - var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof elements === 'string') { var element = external_jQuery_default()("[data-nav-id=\"".concat(elements, "\"]")); - var parents = element.parents('[data-nav-id]'); // loop back through parents, we don't want to expand an hidden child + var parents = element.parents('[data-nav-id]'); + // loop back through parents, we don't want to expand an hidden child if (parents.length) { parents = parents.find('[data-toggle="children"]:first'); parents = parents.add(element.find('[data-toggle="children"]:first')); return this.expand(parents, dontStore); } - elements = element.find('[data-toggle="children"]:first'); } - elements = external_jQuery_default()(elements || this.elements); elements.each(function (index, element) { element = external_jQuery_default()(element); - var state = _this4.getState(element); - if (!state.isOpen) { state.children.show(); state.icon.removeClass('children-closed').addClass('children-open'); - if (!dontStore) { _this4.session[state.id] = 1; } } }); - if (!dontStore) { this.save(); } @@ -2594,7 +2301,6 @@ var PagesTree = /*#__PURE__*/function () { key: "restore", value: function restore() { var _this5 = this; - this.collapse(null, true); Object.keys(this.session).forEach(function (key) { _this5.expand(key, 'no-store'); @@ -2613,23 +2319,18 @@ var PagesTree = /*#__PURE__*/function () { id: element.closest('[data-nav-id]').data('nav-id'), children: element.closest('li.page-item').find('ul:first'), icon: element.find('.page-icon'), - get isOpen() { return this.icon.hasClass('children-open'); } - }; } }]); - - return PagesTree; }(); - var tree_Instance = new PagesTree('[data-toggle="children"]'); // EXTERNAL MODULE: ./node_modules/selectize/dist/js/selectize.js -var selectize = __webpack_require__(25703); +var selectize = __webpack_require__(72890); var selectize_default = /*#__PURE__*/__webpack_require__.n(selectize); ;// CONCATENATED MODULE: ./app/utils/selectize-required-fix.js /** @@ -2642,33 +2343,29 @@ var selectize_default = /*#__PURE__*/__webpack_require__.n(selectize); * and a new version of Selectize gets released. */ + selectize_default().define('required-fix', function (options) { var _this = this; - this.refreshValidityState = function () { if (!_this.isRequired) return false; var invalid = !_this.items.length; _this.isInvalid = invalid; - if (invalid) { _this.$control_input.attr('required', ''); - _this.$input.removeAttr('required'); } else { _this.$control_input.removeAttr('required'); - _this.$input.attr('required'); } }; }); ;// CONCATENATED MODULE: ./app/pages/filter.js -function filter_typeof(obj) { "@babel/helpers - typeof"; return filter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, filter_typeof(obj); } - -function filter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function filter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function filter_createClass(Constructor, protoProps, staticProps) { if (protoProps) filter_defineProperties(Constructor.prototype, protoProps); if (staticProps) filter_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function filter_typeof(o) { "@babel/helpers - typeof"; return filter_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; }, filter_typeof(o); } +function filter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function filter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, filter_toPropertyKey(o.key), o); } } +function filter_createClass(e, r, t) { return r && filter_defineProperties(e.prototype, r), t && filter_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function filter_toPropertyKey(t) { var i = filter_toPrimitive(t, "string"); return "symbol" == filter_typeof(i) ? i : i + ""; } +function filter_toPrimitive(t, r) { if ("object" != filter_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != filter_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } @@ -2679,9 +2376,7 @@ function filter_createClass(Constructor, protoProps, staticProps) { if (protoPro /* @formatter:off */ - /* eslint-disable */ - var options = [{ flag: external_GravAdmin_namespaceObject.translations.PLUGIN_ADMIN.MODULE, key: 'Module', @@ -2716,71 +2411,58 @@ var options = [{ cat: 'mode' }]; /* @formatter:on */ - /* eslint-enable */ - var PagesFilter = /*#__PURE__*/function () { function PagesFilter(filters, search) { var _this = this; - filter_classCallCheck(this, PagesFilter); - this.filters = external_jQuery_default()(filters); this.search = external_jQuery_default()(search); this.options = options; this.tree = tree_Instance; var storage = JSON.parse(localStorage.getItem('grav:admin:pages:filter') || '{}'); - if (!this.filters.length || !this.search.length) { return; } - this.labels = this.filters.data('filter-labels'); this.search.on('input', debounce_default()(function () { return _this.filter(); }, 250)); this.filters.on('change', function () { return _this.filter(); - }); // restore state + }); + // restore state if (storage.flags || storage.query) { this.setValues(storage); this.filter(); } - this._initSelectize(); } - - filter_createClass(PagesFilter, [{ + return filter_createClass(PagesFilter, [{ key: "filter", value: function filter(value) { var _this2 = this; - var data = { flags: '', query: '' }; - if (filter_typeof(value) === 'object') { Object.assign(data, value); } - if (typeof value === 'string') { data.query = value; } - if (typeof value === 'undefined') { data.flags = this.filters.val(); data.query = this.search.val(); } - if (!Object.keys(data).filter(function (key) { return data[key] !== ''; }).length) { this.resetValues(); return; } - data.flags = data.flags.replace(/(\s{1,})?,(\s{1,})?/g, ','); this.setValues({ flags: data.flags, @@ -2797,20 +2479,16 @@ var PagesFilter = /*#__PURE__*/function () { key: "refreshDOM", value: function refreshDOM(response) { var _this3 = this; - var items = external_jQuery_default()('[data-nav-id]'); - if (!response) { items.removeClass('search-match').show(); this.tree.restore(); return; } - items.removeClass('search-match').hide(); response.results.forEach(function (page) { var match = items.filter("[data-nav-id=\"".concat(page, "\"]")).addClass('search-match').show(); match.parents('[data-nav-id]').addClass('search-match').show(); - _this3.tree.expand(page, 'no-store'); }); } @@ -2818,20 +2496,17 @@ var PagesFilter = /*#__PURE__*/function () { key: "setValues", value: function setValues(_ref, silent) { var _ref$flags = _ref.flags, - flags = _ref$flags === void 0 ? '' : _ref$flags, - _ref$query = _ref.query, - query = _ref$query === void 0 ? '' : _ref$query; + flags = _ref$flags === void 0 ? '' : _ref$flags, + _ref$query = _ref.query, + query = _ref$query === void 0 ? '' : _ref$query; var flagsArray = flags.replace(/(\s{1,})?,(\s{1,})?/g, ',').split(','); - if (this.filters.val() !== flags) { var selectize = this.filters.data('selectize'); this.filters[selectize ? 'setValue' : 'val'](flagsArray, silent); } - if (this.search.val() !== query) { this.search.val(query); } - localStorage.setItem('grav:admin:pages:filter', JSON.stringify({ flags: flags, query: query @@ -2847,7 +2522,6 @@ var PagesFilter = /*#__PURE__*/function () { key: "_initSelectize", value: function _initSelectize() { var _this4 = this; - var extras = { type: this.filters.data('filter-types') || {}, access: this.filters.data('filter-access-levels') || {} @@ -2878,29 +2552,27 @@ var PagesFilter = /*#__PURE__*/function () { }); } }]); - - return PagesFilter; }(); - var filter_Instance = new PagesFilter('input[name="page-filter"]', 'input[name="page-search"]'); // EXTERNAL MODULE: ./node_modules/speakingurl/index.js -var speakingurl = __webpack_require__(989); +var speakingurl = __webpack_require__(91264); var speakingurl_default = /*#__PURE__*/__webpack_require__.n(speakingurl); ;// CONCATENATED MODULE: ./app/utils/jquery-utils.js var _this = undefined; - // jQuery no parents filter -(external_jQuery_default()).expr[":"].noparents = external_jQuery_default().expr.createPseudo(function (text) { +// jQuery no parents filter +(external_jQuery_default()).expr[':']['noparents'] = external_jQuery_default().expr.createPseudo(function (text) { return function (element) { return external_jQuery_default()(element).parents(text).length < 1; }; -}); // Slugify -// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify +}); +// Slugify +// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify (external_jQuery_default()).fn.slugify = function (source, options) { return _this.each(function (element) { var target = external_jQuery_default()(element); @@ -2912,32 +2584,27 @@ var _this = undefined; if (target.data('locked') === true) { return true; } - var isInput = target.is('input') || target.is('textarea'); target[isInput ? 'val' : 'text'](external_jQuery_default().slugify(source.val(), options)); }); }); -}; // Static method. - +}; +// Static method. (external_jQuery_default()).slugify = function (sourceString, options) { options = external_jQuery_default().extend({}, (external_jQuery_default()).slugify.options, options); options.lang = options.lang || external_jQuery_default()('html').prop('lang'); - if (typeof options.preSlug === 'function') { sourceString = options.preSlug(sourceString); } - sourceString = options.slugFunc(sourceString, options); - if (typeof options.postSlug === 'function') { sourceString = options.postSlug(sourceString); } - return sourceString; -}; // Default plugin options - +}; +// Default plugin options (external_jQuery_default()).slugify.options = { preSlug: null, postSlug: null, @@ -2953,7 +2620,6 @@ var _this = undefined; var custom = false; var folder = external_jQuery_default()('[data-remodal-id="modal"] input[name="data[folder]"], [data-remodal-id="module"] input[name="data[folder]"], [data-remodal-id="modal-page-copy"] input[name="data[folder]"]'); var title = external_jQuery_default()('[data-remodal-id="modal"] input[name="data[title]"], [data-remodal-id="module"] input[name="data[title]"], [data-remodal-id="modal-page-copy"] input[name="data[title]"]'); - var getFields = function getFields(type, target) { target = external_jQuery_default()(target); var query = "[data-remodal-id=\"".concat(target.closest('[data-remodal-id]').data('remodal-id'), "\"]"); @@ -2962,12 +2628,10 @@ var getFields = function getFields(type, target) { folder: type === 'folder' ? external_jQuery_default()(target) : external_jQuery_default()("".concat(query, " input[name=\"data[folder]\"]")) }; }; - title.on('input focus blur', function (event) { if (custom) { return true; } - var elements = getFields('title', event.currentTarget); var slug = external_jQuery_default().slugify(elements.title.val(), { custom: { @@ -2988,8 +2652,9 @@ folder.on('input', function (event) { }; value = value.toLowerCase().replace(/\s/g, '-').replace(/[^a-z0-9_\-]/g, ''); elements.folder.val(value); - custom = !!value; // restore cursor position + custom = !!value; + // restore cursor position input.setSelectionRange(selection.start, selection.end); }); folder.on('focus blur', function (event) { @@ -2999,11 +2664,9 @@ external_jQuery_default()(document).on('change', '[name="data[route]"]', functio var rawroute = external_jQuery_default()(event.currentTarget).val(); var pageTemplate = external_jQuery_default()('[name="data[name]"]'); var URI = "".concat(external_GravAdmin_namespaceObject.config.base_url_relative, "/ajax.json/task").concat(external_GravAdmin_namespaceObject.config.param_sep, "getChildTypes"); - if (pageTemplate.length === 0) { return; } - utils_request(URI, { method: 'post', body: { @@ -3011,7 +2674,6 @@ external_jQuery_default()(document).on('change', '[name="data[route]"]', functio } }, function (response) { var type = response.child_type; - if (type !== '' && type !== 'default') { pageTemplate.val(type); pageTemplate.data('selectize').setValue(type); @@ -3028,14 +2690,13 @@ external_jQuery_default()(document).on('click', '[data-page-move] button[name="t route.val(moveTo); if (selectize) selectize.setValue(moveTo); }*/ + var modal = external_jQuery_default()(event.currentTarget).closest('[data-remodal-id]'); var parents = modal.data('parents') || {}; var finder = parents.finder; - if (!parents || !finder) { return true; } - var field = parents.field; var parentLabel = parents.parentLabel; var parentName = parents.parentName; @@ -3056,6 +2717,7 @@ external_jQuery_default()(document).on('click', '[data-page-move] button[name="t zIndex: 15000 }).appendTo(external_jQuery_default()('body')); }); + /* $(document).on('click', '[data-remodal-id="parents"] [data-parents-select]', (event) => { const modal = $(event.currentTarget).closest('[data-remodal-id]'); @@ -3110,8 +2772,7 @@ external_jQuery_default()('.disable-after-click').on('click', function () { external_jQuery_default()(this).addClass('pointer-events-disabled'); }); ;// CONCATENATED MODULE: ./app/utils/cookies.js -function cookies_typeof(obj) { "@babel/helpers - typeof"; return cookies_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, cookies_typeof(obj); } - +function cookies_typeof(o) { "@babel/helpers - typeof"; return cookies_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; }, cookies_typeof(o); } /* * Cookies.js - 1.2.3-grav * https://github.com/ScottHamper/Cookies @@ -3120,21 +2781,21 @@ function cookies_typeof(obj) { "@babel/helpers - typeof"; return cookies_typeof * * This is free and unencumbered software released into the public domain. */ + var factory = function factory(window) { var _arguments = arguments; - if (cookies_typeof(window.document) !== 'object') { throw new Error('Cookies.js requires a `window` with a `document` object'); } - var Cookies = function Cookies(key, value, options) { return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options); - }; // Allows for setter injection in unit tests + }; + // Allows for setter injection in unit tests + Cookies._document = window.document; - Cookies._document = window.document; // Used to ensure cookie keys do not collide with + // Used to ensure cookie keys do not collide with // built-in `Object` properties - Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :) Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC'); @@ -3143,27 +2804,22 @@ var factory = function factory(window) { secure: false, sameSite: 'Lax' }; - Cookies.get = function (key) { if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) { Cookies._renewCache(); } - var value = Cookies._cache[Cookies._cacheKeyPrefix + key]; return value === undefined ? undefined : decodeURIComponent(value); }; - Cookies.set = function (key, value, options) { options = Cookies._getExtendedOptions(options); options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires); Cookies._document.cookie = Cookies._generateCookieString(key, value, options); return Cookies; }; - Cookies.expire = function (key, options) { return Cookies.set(key, undefined, options); }; - Cookies._getExtendedOptions = function (options) { return { path: options && options.path || Cookies.defaults.path, @@ -3173,27 +2829,21 @@ var factory = function factory(window) { sameSite: options && options.sameSite || Cookies.defaults.sameSite }; }; - Cookies._isValidDate = function (date) { return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime()); }; - Cookies._getExpiresDate = function (expires, now) { now = now || new Date(); - if (typeof expires === 'number') { expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000); } else if (typeof expires === 'string') { expires = new Date(expires); } - if (expires && !Cookies._isValidDate(expires)) { throw new Error('`expires` parameter cannot be converted to a valid Date instance'); } - return expires; }; - Cookies._generateCookieString = function (key, value, options) { key = key.replace(/[^#$&+\^`|]/g, encodeURIComponent); key = key.replace(/\(/g, '%28').replace(/\)/g, '%29'); @@ -3207,30 +2857,25 @@ var factory = function factory(window) { cookieString += options.sameSite ? ';SameSite=' + options.sameSite : ''; return cookieString; }; - Cookies._getCacheFromString = function (documentCookie) { var cookieCache = {}; var cookiesArray = documentCookie ? documentCookie.split('; ') : []; - for (var i = 0; i < cookiesArray.length; i++) { var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]); - if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) { cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value; } } - return cookieCache; }; - Cookies._getKeyValuePairFromCookieString = function (cookieString) { // "=" is a valid character in a cookie value according to RFC6265, so cannot `split('=')` - var separatorIndex = cookieString.indexOf('='); // IE omits the "=" when the cookie value is an empty string + var separatorIndex = cookieString.indexOf('='); + // IE omits the "=" when the cookie value is an empty string separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex; var key = cookieString.substr(0, separatorIndex); var decodedKey; - try { decodedKey = decodeURIComponent(key); } catch (e) { @@ -3238,45 +2883,38 @@ var factory = function factory(window) { console.error('Could not decode cookie with key "' + key + '"', e); } } - return { key: decodedKey, value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed - }; }; - Cookies._renewCache = function () { Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie); Cookies._cachedDocumentCookie = Cookies._document.cookie; }; - Cookies._areEnabled = function () { var testKey = 'cookies.js'; var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1'; Cookies.expire(testKey); return areEnabled; }; - Cookies.enabled = Cookies._areEnabled(); return Cookies; }; - __webpack_require__.g.Cookies = __webpack_require__.g && cookies_typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory; /* harmony default export */ const cookies = (__webpack_require__.g.Cookies); ;// CONCATENATED MODULE: ./app/forms/fields/editor/buttons.js - var replacer = function replacer(_ref) { var name = _ref.name, - replace = _ref.replace, - codemirror = _ref.codemirror, - button = _ref.button, - _ref$mode = _ref.mode, - mode = _ref$mode === void 0 ? 'replaceSelections' : _ref$mode, - runner = _ref.runner; + replace = _ref.replace, + codemirror = _ref.codemirror, + button = _ref.button, + _ref$mode = _ref.mode, + mode = _ref$mode === void 0 ? 'replaceSelections' : _ref$mode, + runner = _ref.runner; button.on("click.editor.".concat(name), function () { strategies[mode]({ token: '$1', @@ -3286,13 +2924,12 @@ var replacer = function replacer(_ref) { }); }); }; - var strategies = { replaceSelections: function replaceSelections(_ref2) { var template = _ref2.template, - token = _ref2.token, - codemirror = _ref2.codemirror, - runner = _ref2.runner; + token = _ref2.token, + codemirror = _ref2.codemirror, + runner = _ref2.runner; var replacements = []; var ranges = []; var selections = codemirror.getSelections(); @@ -3302,16 +2939,14 @@ var strategies = { var markup = template.replace(token, selection); var cursor = markup.indexOf('$cur'); var _list$index$anchor = list[index].anchor, - line = _list$index$anchor.line, - ch = _list$index$anchor.ch; + line = _list$index$anchor.line, + ch = _list$index$anchor.ch; markup = markup.replace('$cur', ''); markup = runner ? runner(selection, markup, list) : markup; replacements.push(markup); - if (!accumulator[line]) { accumulator[line] = 0; } - ch += accumulator[line] + (cursor === -1 ? markup.length : cursor); var range = { ch: ch, @@ -3329,9 +2964,9 @@ var strategies = { }, replaceLine: function replaceLine(_ref3) { var template = _ref3.template, - token = _ref3.token, - codemirror = _ref3.codemirror, - runner = _ref3.runner; + token = _ref3.token, + codemirror = _ref3.codemirror, + runner = _ref3.runner; var list = codemirror.listSelections(); var range; list.forEach(function (selection) { @@ -3361,12 +2996,10 @@ var strategies = { }, replaceRange: function replaceRange() {} }; - var flipDisabled = function flipDisabled(codemirror, button, type) { var hasHistory = codemirror.historySize()[type]; var element = button.find('a'); button[hasHistory ? 'removeClass' : 'addClass']('button-disabled'); - if (!hasHistory) { element.attr('title-disabled', element.attr('title')); element.attr('data-hint-disabled', element.attr('data-hint')); @@ -3377,7 +3010,6 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { element.removeAttr('title-disabled').removeAttr('data-hint-disabled'); } }; - /* harmony default export */ const buttons = ({ navigation: [{ undo: { @@ -3387,8 +3019,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: [], action: function action(_ref4) { var codemirror = _ref4.codemirror, - button = _ref4.button, - textarea = _ref4.textarea; + button = _ref4.button, + textarea = _ref4.textarea; button.addClass('button-disabled'); codemirror.on('change', function () { return flipDisabled(codemirror, button, 'undo'); @@ -3406,8 +3038,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: [], action: function action(_ref5) { var codemirror = _ref5.codemirror, - button = _ref5.button, - textarea = _ref5.textarea; + button = _ref5.button, + textarea = _ref5.textarea; button.addClass('button-disabled'); codemirror.on('change', function () { return flipDisabled(codemirror, button, 'redo'); @@ -3430,8 +3062,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref6) { var codemirror = _ref6.codemirror, - button = _ref6.button, - textarea = _ref6.textarea; + button = _ref6.button, + textarea = _ref6.textarea; replacer({ name: 'h1', replace: '# $1', @@ -3448,8 +3080,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref7) { var codemirror = _ref7.codemirror, - button = _ref7.button, - textarea = _ref7.textarea; + button = _ref7.button, + textarea = _ref7.textarea; replacer({ name: 'h2', replace: '## $1', @@ -3466,8 +3098,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref8) { var codemirror = _ref8.codemirror, - button = _ref8.button, - textarea = _ref8.textarea; + button = _ref8.button, + textarea = _ref8.textarea; replacer({ name: 'h3', replace: '### $1', @@ -3484,8 +3116,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref9) { var codemirror = _ref9.codemirror, - button = _ref9.button, - textarea = _ref9.textarea; + button = _ref9.button, + textarea = _ref9.textarea; replacer({ name: 'h4', replace: '#### $1', @@ -3502,8 +3134,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref10) { var codemirror = _ref10.codemirror, - button = _ref10.button, - textarea = _ref10.textarea; + button = _ref10.button, + textarea = _ref10.textarea; replacer({ name: 'h5', replace: '##### $1', @@ -3520,8 +3152,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref11) { var codemirror = _ref11.codemirror, - button = _ref11.button, - textarea = _ref11.textarea; + button = _ref11.button, + textarea = _ref11.textarea; replacer({ name: 'h6', replace: '###### $1', @@ -3542,8 +3174,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { shortcut: ['Ctrl-B', 'Cmd-B'], action: function action(_ref12) { var codemirror = _ref12.codemirror, - button = _ref12.button, - textarea = _ref12.textarea; + button = _ref12.button, + textarea = _ref12.textarea; replacer({ name: 'bold', replace: '**$1$cur**', @@ -3561,8 +3193,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { shortcut: ['Ctrl-I', 'Cmd-I'], action: function action(_ref13) { var codemirror = _ref13.codemirror, - button = _ref13.button, - textarea = _ref13.textarea; + button = _ref13.button, + textarea = _ref13.textarea; replacer({ name: 'italic', replace: '_$1$cur_', @@ -3579,8 +3211,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref14) { var codemirror = _ref14.codemirror, - button = _ref14.button, - textarea = _ref14.textarea; + button = _ref14.button, + textarea = _ref14.textarea; replacer({ name: 'strike', replace: '~~$1$cur~~', @@ -3597,8 +3229,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref15) { var codemirror = _ref15.codemirror, - button = _ref15.button, - textarea = _ref15.textarea; + button = _ref15.button, + textarea = _ref15.textarea; replacer({ name: 'delimiter', replace: "".concat(external_GravAdmin_namespaceObject.config.site.delimiter, "$1"), @@ -3617,8 +3249,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { shortcut: ['Ctrl-K', 'Cmd-K'], action: function action(_ref16) { var codemirror = _ref16.codemirror, - button = _ref16.button, - textarea = _ref16.textarea; + button = _ref16.button, + textarea = _ref16.textarea; replacer({ name: 'link', replace: '[$1]($cur)', @@ -3635,8 +3267,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref17) { var codemirror = _ref17.codemirror, - button = _ref17.button, - textarea = _ref17.textarea; + button = _ref17.button, + textarea = _ref17.textarea; replacer({ name: 'image', replace: '![$1]($cur)', @@ -3653,8 +3285,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref18) { var codemirror = _ref18.codemirror, - button = _ref18.button, - textarea = _ref18.textarea; + button = _ref18.button, + textarea = _ref18.textarea; replacer({ name: 'blockquote', replace: '> $1', @@ -3672,8 +3304,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref19) { var codemirror = _ref19.codemirror, - button = _ref19.button, - textarea = _ref19.textarea; + button = _ref19.button, + textarea = _ref19.textarea; replacer({ name: 'listUl', replace: '* $1', @@ -3691,8 +3323,8 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref20) { var codemirror = _ref20.codemirror, - button = _ref20.button, - textarea = _ref20.textarea; + button = _ref20.button, + textarea = _ref20.textarea; replacer({ name: 'listOl', replace: '. $1', @@ -3717,14 +3349,12 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { label: '', action: function action(_ref21) { var codemirror = _ref21.codemirror, - button = _ref21.button, - textarea = _ref21.textarea, - ui = _ref21.ui; - + button = _ref21.button, + textarea = _ref21.textarea, + ui = _ref21.ui; if (textarea.data('grav-editor-mode') === 'editor') { button.addClass('editor-active'); } - button.on('click.states.editor', function () { button.siblings().removeClass('editor-active'); button.addClass('editor-active'); @@ -3733,7 +3363,6 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { var content = textarea.parent('.grav-editor-content'); content.addClass('is-active'); ui.navigation.find('.grav-editor-actions').css('visibility', 'visible'); - if (previewContainer) { previewContainer.removeClass('is-active'); } @@ -3748,27 +3377,23 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { modes: ['gfm', 'markdown'], action: function action(_ref22) { var codemirror = _ref22.codemirror, - button = _ref22.button, - textarea = _ref22.textarea, - ui = _ref22.ui; - + button = _ref22.button, + textarea = _ref22.textarea, + ui = _ref22.ui; if (textarea.data('grav-editor-mode') === 'preview') { button.addClass('editor-active'); } - button.on('click.states.preview', function () { var previewContainer = textarea.data('grav-editor-preview-container'); var content = textarea.parent('.grav-editor-content'); button.siblings().removeClass('editor-active'); button.addClass('editor-active'); textarea.data('grav-editor-mode', 'preview'); - if (!previewContainer) { previewContainer = external_jQuery_default()('
'); content.after(previewContainer); textarea.data('grav-editor-preview-container', previewContainer); } - previewContainer.css({ height: content.height() }); @@ -3797,13 +3422,12 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { label: '', action: function action(_ref23) { var codemirror = _ref23.codemirror, - button = _ref23.button, - textarea = _ref23.textarea; + button = _ref23.button, + textarea = _ref23.textarea; button.on('click.editor.fullscreen', function () { var container = textarea.closest('.grav-editor'); var wrapper = codemirror.getWrapperElement(); var contentWrapper = external_jQuery_default()('.content-wrapper'); - if (!container.hasClass('grav-editor-fullscreen')) { textarea.data('fullScreenRestore', { scrollTop: __webpack_require__.g.pageYOffset, @@ -3815,12 +3439,10 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { wrapper.style.height = textarea.parent('.grav-editor-content').height() + 'px'; __webpack_require__.g.document.documentElement.style.overflow = 'hidden'; var hints = container.find('.grav-editor-toolbar .hint--top'); - if (hints) { hints.removeClass('hint--top').addClass('hint--bottom'); external_jQuery_default()(hints[hints.length - 1]).addClass('hint--bottom-left'); } - if (contentWrapper) { contentWrapper.css('overflow', 'visible'); } @@ -3830,24 +3452,19 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { wrapper.style.width = state.width; wrapper.style.height = state.height; __webpack_require__.g.scrollTo(state.scrollLeft, state.scrollTop); - var _hints = container.find('.grav-editor-toolbar .hint--bottom'); - if (_hints) { _hints.removeClass('hint--bottom').addClass('hint--top'); - external_jQuery_default()(_hints[_hints.length - 1]).removeClass('hint--bottom-left'); } - if (contentWrapper) { contentWrapper.css('overflow', 'auto'); } } - container.toggleClass('grav-editor-fullscreen'); setTimeout(function () { - codemirror.refresh(); // this.preview.parent().css('height', this.code.height()); - + codemirror.refresh(); + // this.preview.parent().css('height', this.code.height()); external_jQuery_default()(__webpack_require__.g).trigger('resize'); }, 5); }); @@ -3856,63 +3473,66 @@ var flipDisabled = function flipDisabled(codemirror, button, type) { }] }); // EXTERNAL MODULE: ./node_modules/codemirror/lib/codemirror.js -var codemirror = __webpack_require__(4631); +var codemirror = __webpack_require__(15237); var codemirror_default = /*#__PURE__*/__webpack_require__.n(codemirror); // EXTERNAL MODULE: ./node_modules/watchjs/src/watch.js -var watch = __webpack_require__(29950); +var watch = __webpack_require__(72797); // EXTERNAL MODULE: ./node_modules/js-yaml/dist/js-yaml.mjs -var js_yaml = __webpack_require__(1272); +var js_yaml = __webpack_require__(20382); // EXTERNAL MODULE: ./node_modules/codemirror/mode/css/css.js -var css = __webpack_require__(36629); +var css = __webpack_require__(68656); // EXTERNAL MODULE: ./node_modules/codemirror/mode/gfm/gfm.js -var gfm = __webpack_require__(42425); +var gfm = __webpack_require__(21764); // EXTERNAL MODULE: ./node_modules/codemirror/mode/htmlmixed/htmlmixed.js -var htmlmixed = __webpack_require__(16531); +var htmlmixed = __webpack_require__(12520); // EXTERNAL MODULE: ./node_modules/codemirror/mode/javascript/javascript.js -var javascript = __webpack_require__(96876); +var javascript = __webpack_require__(16792); // EXTERNAL MODULE: ./node_modules/codemirror/mode/markdown/markdown.js -var markdown = __webpack_require__(49047); +var markdown = __webpack_require__(47216); // EXTERNAL MODULE: ./node_modules/codemirror/mode/php/php.js -var php = __webpack_require__(36702); +var php = __webpack_require__(98000); // EXTERNAL MODULE: ./node_modules/codemirror/mode/sass/sass.js -var sass = __webpack_require__(81201); +var sass = __webpack_require__(17246); // EXTERNAL MODULE: ./node_modules/codemirror/mode/twig/twig.js -var twig = __webpack_require__(54702); +var twig = __webpack_require__(11956); // EXTERNAL MODULE: ./node_modules/codemirror/mode/xml/xml.js -var xml = __webpack_require__(29589); +var xml = __webpack_require__(40576); // EXTERNAL MODULE: ./node_modules/codemirror/mode/yaml/yaml.js -var yaml = __webpack_require__(53631); +var yaml = __webpack_require__(20496); // EXTERNAL MODULE: ./node_modules/codemirror/addon/edit/continuelist.js -var continuelist = __webpack_require__(23350); +var continuelist = __webpack_require__(97382); // EXTERNAL MODULE: ./node_modules/codemirror/addon/mode/overlay.js -var overlay = __webpack_require__(14146); +var overlay = __webpack_require__(32580); // EXTERNAL MODULE: ./node_modules/codemirror/addon/selection/active-line.js -var active_line = __webpack_require__(20017); +var active_line = __webpack_require__(50436); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/lint.js -var lint = __webpack_require__(3256); +var lint = __webpack_require__(71561); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/lint.css -var lint_lint = __webpack_require__(46226); +var lint_lint = __webpack_require__(3419); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/css-lint.js -var css_lint = __webpack_require__(41423); +var css_lint = __webpack_require__(9279); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/javascript-lint.js -var javascript_lint = __webpack_require__(96477); +var javascript_lint = __webpack_require__(12089); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/json-lint.js -var json_lint = __webpack_require__(62193); +var json_lint = __webpack_require__(92154); // EXTERNAL MODULE: ./node_modules/codemirror/addon/lint/yaml-lint.js -var yaml_lint = __webpack_require__(82783); +var yaml_lint = __webpack_require__(23857); ;// CONCATENATED MODULE: ./app/forms/fields/editor.js -function editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +function editor_typeof(o) { "@babel/helpers - typeof"; return editor_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; }, editor_typeof(o); } +function editor_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function editor_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, editor_toPropertyKey(o.key), o); } } +function editor_createClass(e, r, t) { return r && editor_defineProperties(e.prototype, r), t && editor_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function editor_toPropertyKey(t) { var i = editor_toPrimitive(t, "string"); return "symbol" == editor_typeof(i) ? i : i + ""; } +function editor_toPrimitive(t, r) { if ("object" != editor_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != editor_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) editor_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +__webpack_require__.g.jsyaml = js_yaml/* default */.Ay; +// Modes -__webpack_require__.g.jsyaml = js_yaml/* default */.ZP; // Modes @@ -3923,8 +3543,7 @@ __webpack_require__.g.jsyaml = js_yaml/* default */.ZP; // Modes - // Add-ons - +// Add-ons @@ -3957,20 +3576,16 @@ var Defaults = { } } }; - var EditorField = /*#__PURE__*/function () { function EditorField(options) { var _this = this; - editor_classCallCheck(this, EditorField); - var body = external_jQuery_default()('body'); this.editors = external_jQuery_default()(); this.options = Object.assign({}, Defaults, options); this.buttons = buttons; this.buttonStrategies = strategies; - (0,watch.watch)(buttons, function - /* key, modifier, prev, next */ + (0,watch.watch)(buttons, function /* key, modifier, prev, next */ () { _this.editors.each(function (index, editor) { return external_jQuery_default()(editor).data('toolbar').renderButtons(); @@ -3987,7 +3602,6 @@ var EditorField = /*#__PURE__*/function () { if (!IS_MOUSEDOWN) { return true; } - body.unbind('mousemove._grav'); IS_MOUSEDOWN = false; }); @@ -4004,8 +3618,7 @@ var EditorField = /*#__PURE__*/function () { }); }); } - - editor_createClass(EditorField, [{ + return editor_createClass(EditorField, [{ key: "addButton", value: function addButton(button, options) { if (options && (options.before || options.after)) { @@ -4013,18 +3626,15 @@ var EditorField = /*#__PURE__*/function () { var key = Object.keys(obj).shift(); return obj[key].identifier === (options.before || options.after); }); - if (!~index) { options = 'end'; } else { this.buttons.navigation.splice(options.before ? index : index + 1, 0, button); } } - if (options === 'start') { this.buttons.navigation.splice(0, 0, button); } - if (!options || options === 'end') { this.buttons.navigation.push(button); } @@ -4036,12 +3646,11 @@ var EditorField = /*#__PURE__*/function () { var options = Object.assign({}, this.options.codemirror, textarea.data('grav-editor').codemirror); var theme = options.theme || 'paper'; this.editors = this.editors.add(textarea); - if (theme && !~ThemesMap.indexOf(theme)) { - ThemesMap.push(theme); // let themeCSS = `https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/theme/${theme}.min.css`; + ThemesMap.push(theme); + // let themeCSS = `https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/theme/${theme}.min.css`; // $('head').append($('').attr('href', themeCSS)); } - if (options.mode === 'yaml') { Object.assign(options.extraKeys, { Tab: function Tab(cm) { @@ -4049,51 +3658,38 @@ var EditorField = /*#__PURE__*/function () { } }); } - var editor = codemirror_default().fromTextArea(textarea.get(0), options); textarea.data('codemirror', editor); textarea.data('toolbar', new Toolbar(textarea)); textarea.addClass('code-mirrored'); - if (options.toolbar === false) { textarea.data('toolbar').ui.navigation.addClass('grav-editor-hide-toolbar'); } - editor.on('change', function () { return editor.save(); }); } }, { key: "_onAddedNodes", - value: function _onAddedNodes(event, target - /* , record, instance */ - ) { + value: function _onAddedNodes(event, target /* , record, instance */) { var _this2 = this; - var editors = external_jQuery_default()(target).find('[data-grav-editor]'); - if (!editors.length) { return; } - editors.each(function (index, editor) { editor = external_jQuery_default()(editor); - if (!~_this2.editors.index(editor)) { _this2.addEditor(editor); } }); } }]); - - return EditorField; }(); - var Toolbar = /*#__PURE__*/function () { function Toolbar(editor) { editor_classCallCheck(this, Toolbar); - this.editor = external_jQuery_default()(editor); this.codemirror = this.editor.data('codemirror'); this.buttons = buttons.navigation; @@ -4103,19 +3699,16 @@ var Toolbar = /*#__PURE__*/function () { this.editor.parent('.grav-editor-content').before(this.ui.navigation).after(this.ui.states); this.renderButtons(); } - - editor_createClass(Toolbar, [{ + return editor_createClass(Toolbar, [{ key: "renderButtons", value: function renderButtons() { var _this3 = this; - var map = { 'actions': 'navigation', 'modes': 'states' }; ['actions', 'modes'].forEach(function (type) { _this3.ui.navigation.find(".grav-editor-".concat(type)).empty().append('