UNPKG

@kademi/keditor

Version:

KEditor is a jQuery plugin which provides a content editor with drag n drop, configurable contents

51 lines (43 loc) 1.96 kB
import CSS_CLASS from '../constants/cssClass'; import SETTING_CATEGORY from '../constants/settingCategory'; import closeSidebar from './closeSidebar'; import initSettingForm from './initSettingForm'; export default function (target, settingType, settingCategory, settingTitle, initFunction, showFunction, functionContext) { let self = this; let sidebar = self.sidebar; let sidebarTitle = self.sidebarTitle; let sidebarBody = self.sidebarBody; let {settingForm, isExisting} = initSettingForm.call(self, target, settingType, settingCategory, initFunction, functionContext, () => { if (typeof showFunction === 'function') { showFunction.call(functionContext, settingForm, target, self); } }); let shouldCloseSidebar = settingForm.hasClass(CSS_CLASS.STATE_ACTIVE) && (target.is(self.settingContainer) || target.is(self.settingComponent) || target.is('[data-extra-setting]')); self.settingComponent = null; self.settingContainer = null; switch (settingCategory) { case SETTING_CATEGORY.COMPONENT: self.settingComponent = target; break; case SETTING_CATEGORY.CONTAINER: self.settingContainer = target; break; default: // Do nothing } if (isExisting) { if (shouldCloseSidebar) { closeSidebar.call(self); return; } else { if (typeof showFunction === 'function') { showFunction.call(functionContext, settingForm, target, self); } } } sidebarTitle.html(settingTitle); sidebarBody.children(`.${CSS_CLASS.STATE_ACTIVE}`).removeClass(CSS_CLASS.STATE_ACTIVE); settingForm.addClass(CSS_CLASS.STATE_ACTIVE); sidebar.addClass(CSS_CLASS.STATE_OPENED); self.iframeBody.addClass(CSS_CLASS.STATE_SIDEBAR_SHOWED); }