[ Avaa Bypassed ]




Upload:

Command:

www-data@3.138.141.138: ~ $
import Vue from 'vue'
import { __, _x, _n, _nx, sprintf, setLocaleData, EventManager } from './utils'
import SweetModal from 'sweet-modal-vue/src/plugin.js'
import Swal from 'sweetalert2'
import "@sweetalert2/theme-wordpress-admin/wordpress-admin.scss";
import { mapGetters } from 'vuex'

// Set up the locale data for the translations to be used globally.
Vue.mixin({
	computed: {
		...mapGetters({
			current: 'slideshows/getCurrent'
		})
	},
	created() {
		this.__ = __
		this._x = _x
		this._n = _n
		this._nx = _nx
		this.sprintf = sprintf
		setLocaleData(window.metaslider_api.locale, 'ml-slider')

		// Consider using WP defaults too. Caveat: large filesize
		// setLocaleData(window.metaslider_api.default_locale, 'default')
		this.siteId = window.metaslider_api.site_id
		this.proUser = window.metaslider_api.proUser
		this.hoplink = window.metaslider_api.hoplink
		this.privacyLink = window.metaslider_api.privacy_link
		this.themeEditorLink = window.metaslider_api.theme_editor_link
		this.metasliderPage = window.metaslider_api.metaslider_page
		this.production = process.env.NODE_ENV === 'production'

		this.isIE11 = !!window.MSInputMethodContext && !!document.documentMode

		this.notify = Swal.mixin({
			toast: true,
			position: 'bottom-start',
			showConfirmButton: false,
			timer: 6000,
			onOpen: (toast) => {
				toast.addEventListener('mouseenter', Swal.stopTimer)
				toast.addEventListener('mouseleave', Swal.resumeTimer)
			},
			onClose: (toast) => {
				toast.removeEventListener('mouseenter', Swal.stopTimer)
				toast.removeEventListener('mouseleave', Swal.resumeTimer)
			},
			onBeforeOpen: (toast) => {

				// Offset the toast message based on the admin menu size
				let dir = 'rtl' === document.dir ? 'right' : 'left'
				toast.parentElement.style[dir] = document.getElementById('adminmenu').offsetWidth + 'px'
			}
		})

		// Intercept to flash error message to user
		window.onerror = (message, source, lineNumber, columnNumber, error) => {
			console.log('message', message);
			let filename = ''
			try {

				// This might help users identify errors that are coming from other plugins
				filename = source.split('/').pop().split('#')[0].split('?')[0]
			} catch (error) {}
			this.notifyError(
				'window/global-js-error',
					(message.length > 100 ? message.substring(0, 100) + '...' : message) +
					(filename.length ? ` (${filename})` : ''),
				false)
		}
		Vue.config.errorHandler = function (error, vm, info) {
			vm.notifyError(`vue/${info}-error`, error, false)
		}
	},
	methods: {

		asset(file = '') {
			return window.metaslider_api.metaslider_admin_assets + file.replace(/^\/+/, '')
		},

		// These are mainly meant for logging and not ideal for hooking into events
		notifyInfo(id, message, toast = false) {
			console.log('MetaSlider:', message)
			EventManager.$emit(id, message)
			toast && this.notify.fire({
				icon: 'info',
				iconHtml: '<div class="dashicons dashicons-megaphone" style="transform: scale(2.5);"></div>',
				title: 'string' === typeof message ? message : this.__('Doing something...', 'ml-slider')
			})
		},
		notifyWarning(id, message, toast = false) {
			console.warn('MetaSlider:', message)
			EventManager.$emit(id, message)
			toast && this.notify.fire({
				icon: 'warning',
				title: 'string' === typeof message ? message : this.__('No error message provided.', 'ml-slider'),
				iconHtml: '<div class="dashicons dashicons-warning" style="transform: scale(2);"></div>',
			})
		},
		notifySuccess(id, message, toast = false) {
			console.log('MetaSlider:', message)
			EventManager.$emit(id, message)
			toast && this.notify.fire({
				icon: 'success',
				title: 'string' === typeof message ? message : this.__('Success', 'ml-slider'),
				iconHtml: '<div class="dashicons dashicons-yes" style="transform: scale(3);"></div>',
			})
		},
		notifyError(id, error, toast = false) {
			console.error(`MetaSlider (${id.replace('metaslider/', '')}):`, error)

			if (!error) {
				error = this.__('Undefined error occurred', 'ml-slider')
			}
			// If it comes from the page itself
			if (!error.hasOwnProperty('response') && error.hasOwnProperty('message')) {
				error = error.message
			}

			if ('string' === typeof error && toast) {
				this.notify.fire({
					showConfirmButton: true,
					timer: null,
					icon: 'error',
					iconHtml: '<div class="dashicons dashicons-no" style="transform: scale(3);"></div>',
					title: error
				})
			}

			// It could come from jQuery
			if (error.hasOwnProperty('responseJSON')) {
				error.response = error.responseJSON
			}

			// Sometimes the response is returned
			if (error.hasOwnProperty('status')) {
				error.response = error
			}

			// If the error is abnormal
			if (!error.hasOwnProperty('response')) return

			// Make others aware an error happened
			EventManager.$emit(id, error.response)

			// Display the error in the console and optionally a toast message
			// TODO: Count the error message length and show a modal if needed
			console.error('MetaSlider:', this.getErrorMessage(error.response))
			toast && this.notify.fire({
				showConfirmButton: true,
				timer: null,
				icon: 'error',
				iconHtml: '<div class="dashicons dashicons-no" style="transform: scale(3);"></div>',
				title: this.getErrorMessage(error.response)
			})
		},
		getErrorMessage(error) {
			try {
				if ('string' === typeof error) return error
				if (error.hasOwnProperty('message')) return error.message
				if (!error.hasOwnProperty('data')) return error.statusText + ' (' + error.status + ')'
				if (error.data.hasOwnProperty('message')) return error.data.message
				if (!error.data.hasOwnProperty('data')) return error.statusText + ' (' + error.status + ')'
				if (error.data.data.hasOwnProperty('message')) return error.data.data.message
				if (error.statusText) return error.statusText + ' (' + error.status + ')'
			} catch(exception) {
				console.error('Error handling failed:', error, exception)
			}
			return this.__('No error message reported.', 'ml-slider')
		},
		triggerEvent(id, payload) {
			EventManager.$emit(id, payload)
		},
		currentSlideshowId() {
			return this.current.id
		}
	}
})

// Override the SweetModal style computed property to allow it to resize to slider dimensions
Vue.use(SweetModal)
let computedOverride = {
	computed: {
		modal_style() {
			// TODO: Perhaps change this to modal.width in parent components
			let width = this.$parent.slideshow ? this.$parent.slideshow.width : '90%'
			let height = this.$parent.slideshow ? this.$parent.slideshow.height : '90%'
			return {
				'max-width': width,
				'max-height': height
			}
		}
	}
}
let defaultOptions = Vue.options.components['SweetModal'].options
Vue.options.components['SweetModal'].options = Vue.util.mergeOptions(defaultOptions, computedOverride)

Filemanager

Name Type Size Permission Actions
api Folder 0777
assets Folder 0777
extra Folder 0777
notices Folder 0777
previews Folder 0777
settings Folder 0777
slides Folder 0777
slideshows Folder 0777
store Folder 0777
themes Folder 0777
tour Folder 0777
utils Folder 0777
app.js File 586 B 0644
components.js File 1.91 KB 0644
globals.js File 6.63 KB 0644