[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
v1
/
lib
/
pkp
/
js
/
classes
/
[
Home
]
File: VueRegistry.js
/** * @file js/classes/VueRegistry.js * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class VueRegistry * @ingroup js_classes * * @brief Registry and initialization class for Vue.js handlers */ export default { /** * Registry of all active vue instances */ _instances: {}, /** * Initialize a Vue controller * * This method is often called directly from a <script> tag in a template * file to spin up a Vue controller on-demand. This allows the Vue component * lifecycle to be compatible with the legacy JS framework. * * @param string id Element ID to attach this controller to * @param string type The type of controller to initialize * @param object The data object to pass to the controller. Can include * configuration parameters, translatable strings and initial data. */ init: function (id, type, data) { if (pkp.controllers[type] === undefined) { return; } var baseData = {}; if (typeof pkp.controllers[type].data === 'function') { baseData = pkp.controllers[type].data(); } var args = $.extend(true, {}, pkp.controllers[type], { el: '#' + id, data: $.extend(true, {}, baseData, data, {id: id}), }); pkp.registry._instances[id] = new pkp.Vue(args); pkp.eventBus.$emit('root:mounted', id, pkp.registry._instances[id]); // Register with a parent handler from the legacy JS framework, so that // those componments can destroy a Vue instance when removing HTML code var $parents = $(pkp.registry._instances[id].$el).parents(); $parents.each(function (i) { if ($.pkp.classes.Handler.hasHandler($($parents[i]))) { $.pkp.classes.Handler.getHandler($($parents[i])).handlerChildren_.push( pkp.registry._instances[id] ); return false; // only attach to the closest parent handler } }); }, };