/** * IBM Confidential OCO Source Materials IBM Business Platform: Dashboards * (C) Copyright IBM Corp. 2016, 2020 * * The source code for this program is not published or otherwise divested of * its trade secrets, irrespective of what has been deposited with the U.S. * Copyright Office */ function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _extends=Object.assign||function(e){for(var t=1;t=i.length)break;a=i[A++]}else{if((A=i.next()).done)break;a=A.value}var s=a;if(!this._hasValidTags(s))return!1;if(n.intersection([s.type],["exploration","page_asset"]).length<1)return!1;var l=["read","execute"];if(n.intersection(s.permissions,l).length1&&void 0!==arguments[1]?arguments[1]:{},n=this.getContentView(e);return n.setSavedInstance(t.savedSpec),this._getContentService(e).then((function(e){return e.onSaveAsSuccess({url:t.url})})).done(function(o){var i=this._getDashboardApi(e);o&&(o.id&&n.boardModel.set({id:o.id},{silent:!0}),o.permissions&&n.setPermissions(o.permissions)),n.boardModel.set({name:t.name},{silent:!0});var r=i.getFeature("segment"),A={type:"Updated Object"};r.track("savedAs",(function(){return A})),i.getFeature("DashboardState").setDirty(!1),n.boardController.undoRedoController.registerSaveAction(),e.glassContext.appController.updateCurrentCachedAppView();var a=this._getAppConfig(e);a&&a.saveThumbnail&&this._saveThumbnail(e,o&&o.id);var s=this.getStringResourcesService(e);return e.glassContext.appController.showToast(s.get("dashboard_save_success")),this._invokeSaveServiceHandlers(e,{saveAs:!0,stringResources:s,context:e,spec:i.getFeature("Serializer").toJSON()})}.bind(this))},_getContentService:function(e){return e.glassContext.getSvc(".DashboardContent")},save:function(e,t,o){var A=this,a=this.getDashboardView(e),s=a.getDashboardApi(),l=a.getBoardId(),c=a.boardModel,d=s.getFeature("Serializer").toJSON(),u=null;return i.cleanUnusedCustomColors(s,d,c),this._getSaveFeature(e).save(r).then((function(t){var n=t.savedSpec;return n&&(u=n),A._invokeLifeCycleHandlers("save.after",e)})).then((function(){var n=A.getStringResourcesService(e),i=s.getFeature("segment"),r={type:"Updated Object"};i.track("saved",(function(){return r})),s.getFeature("DashboardState").setDirty(!1),a.boardController.undoRedoController.registerSaveAction(),a.setSavedInstance(u);var c=A._getAppConfig(e);c&&c.saveThumbnail&&A._saveThumbnail(e,l),o&&e.glassContext.appController.showToast(n.get("dashboard_save_success")),t&&A._invokeSaveServiceHandlers(e,{saveAs:!1,stringResources:n,context:e,spec:d})})).catch((function(t){"cmEmptySelection"===n.showError(e.glassContext,t)&&A.saveAs(e)}))},_invokeLifeCycleHandlers:function(e,t){var n=this.getDashboardView(t).getDashboardApi();return n.getFeature("LifeCycle").invokeHandlers(e).catch((function(e){n.getGlassCoreSvc(".Logger").error("[SaveActionHandler] Life cycle handlers error",e)}))},_invokeSaveServiceHandlers:function(e,t){var n=this._getDashboardApi(e);return this._getSaveServiceExtensionCollection(e.glassContext,n).then(function(o){var i=[];return o&&(t.resaveDashboardSpecCallback=this.save.bind(this,e,!1,!1),o.forEach((function(e){var o=n.getFeature(e.name);o&&o.onDashboardSave&&i.push(o.onDashboardSave(t))}))),Promise.all(i)}.bind(this))},_getSaveServiceExtensionCollection:function(e,t){var n=t.getCollectionConfig("saveServices");return n?Promise.all([e.appController.findCollection(n.id)]).then((function(e){return e[0]})):Promise.resolve()},_getAppConfig:function(e){var t=this._getContextContent(e);return t&&t.options&&t.options.config},_saveThumbnail:function(e,t){var n=this;return this._createThumbnail(e).then((function(o){return n._getContentService(e).then((function(e){return e.saveThumbnail({thumbnailDataUri:o,id:t})}))}))},_createThumbnail:function(e){var t=this.getDashboardView(e),n=t.getDashboardApi().getFeature(".Thumbnail");return n&&n.generateImage(t.el)},_getSaveFeature:function(e){return this._getDashboardApi(e).getFeature("Save")}})})),define("dashboard-core/js/dashboard/glass/controllers/SaveAsTemplateActionHandler",["./SaveActionHandler","../../../dashboard/glass/util/SaveActionUtil","../../../app/util/ErrorUtils","../../../app/util/GlassUtil"],(function(e,t,n,o){return e.extend({onSelectItem:function(e){var t=this.getContentView(e).getBoardId();this.saveAsTemplate(e,t)},isItemVisible:function(e){return!e.glassContext.getCoreSvc(".FeatureChecker").checkValue("dashboard","dashboardTemplates","disabled")&&this._isBoardTypeSupported(e)&&n.hasCapability(e.glassContext,"canAuthorDashboard")},_isBoardTypeSupported:function(e){return"dashboard"===this.getContentView(e).getDashboardApi().getType()},saveAsTemplate:function(e,t){var n=this,o=this.getDashboardView(e);return this._getAncestors(e,t).then((function(t){return e.glassContext.getSvc(".ContentDialogFactory").then((function(i){var r=n.getStringResourcesService(e);n._saveAsTemplateDialog=i.createSaveAsDialog({glassContext:e.glassContext,defaultFileName:r.get("dashboard_template_prefix",{name:o.boardModel.name}),service:{context:e,save:n.onSaveAsTemplate.bind(n)},ancestors:t}),n._saveAsTemplateDialog.open()}))}))},onSaveAsTemplate:function(e,t,n,o){return this._executeSaveAsTemplateRequest(e.context,t.url,n,o).then(this._onSaveAsTemplateSuccess.bind(this),this._onSaveAsError.bind(this,e.context)).finally(this._saveAsTemplateDialog.hide.bind(this._saveAsTemplateDialog))},_onSaveAsTemplateSuccess:function(e){var t=this,n=e.context,o=n.glassContext;return o.appController.openAppView("dashboardTemplate",{perspective:"dashboardTemplate",content:{perspective:"dashboardTemplate",objectUrl:e.saveRequest.getResponseHeader("location"),isAuthoringMode:o.appController.getCurrentContentView().isAuthoringMode}}).then((function(){var e=t.getStringResourcesService(n),i=t.getContentView(n),r=i.getBoardId(),A=i.getDashboardApi().getCanvas(),a=A.findContent({type:"widget"}).filter((function(e){return"widget.filter"===e.getType()}));a.length&&(a.forEach((function(e){A.removeContent(e.getId())})),o.appController.showToast(e.get("dashboard_template_filters_removed"),{type:"warning"}),t.save(n,!0,!1));var s=A.getContent(i.boardModel.getSelectedLayout()).findContent({type:"widget"}).map((function(e){var t=e.getFeature("state");return t.whenStatusChanges(t.STATUS.RENDERED)}));return Promise.all(s).then((function(){return t._saveThumbnail(n,r).catch((function(e){o.getCoreSvc(".Logger").error(e)}))})).then((function(){o.appController.showToast(e.get("dashboard_template_save_success"))}))}))},_executeSaveAsTemplateRequest:function(e,n,i,r){var A=this,a=e.glassContext,s=o.getAjaxService(a),l=this.getDashboardView(e),c=l.getDashboardApi(),d=c.getFeature("ConvertToTemplate"),u=c.getFeature("Serializer").toJSON();return t.cleanUnusedCustomColors(c,u,l.boardModel),i&&(u.name=i),new Promise((function(t,o){d.convertToTemplate(u).then((function(i){var l=A._getCMSpec(i,e);n+=r?"?updateAction=replace&ignoreInvalidObjectReference=true":"?ignoreInvalidObjectReference=true",s.post(n,{contentType:"application/json",processData:!1,dataType:"text",data:JSON.stringify(l)}).done((function(n,o,i){t({saveRequest:i,context:e})})).fail((function(e,t){o({saveRequest:t,cmSpec:u,glassContext:a})}))}))}))},_getCMSpec:function(e,n){var o=Object.assign(e,{dataSources:{}}),i=this.getContentView(n).getDashboardApi();return{defaultName:o.name,type:t.getAssetType(i),specification:JSON.stringify(o),tags:["dashboard_template"]}}})})),define("dashboard-core/js/dashboard/glass/controllers/ShareActionHandler",["../../../lib/@waca/core-client/js/core-client/ui/core/Class","../../../app/nls/StringResources"],(function(e,t){return e.extend({init:function(e){this.vidaMapAnimTimeout=e&&e.vidaMapAnimTimeout||1e4},execute:function(e){if(e.urlMap.objRef){var t={perspective:e&&e.target&&e.target.activeObject&&e.target.activeObject.aSelectedContext&&e.target.activeObject.aSelectedContext[0].tags&&-1!==e.target.activeObject.aSelectedContext[0].tags.indexOf("story")?"story":"dashboard",objRef:e.urlMap.objRef,action:"view",mode:e.urlMap.mode?e.urlMap.mode:"dashboard"},n=e.glassContext.appController.getCurrentContentView();return"dashboard"===n.perspective&&"function"==typeof n.boardController.layoutController.getCurrentSubViewId&&(t.subView=n.boardController.layoutController.getCurrentSubViewId()),t}throw new Error("Unable to resolve share context. Missing objRef.")},getShareableItems:function(e){var n=[],o=e.glassContext.appController.getCurrentContentView();if("dashboard"===o.perspective){var i={};i.el=o.el,"function"==typeof o.boardController.layoutController.getCurrentSubViewTitle?i.label=t.get("screenshot_label_tab",{title:o.getTitle(),tabName:o.boardController.layoutController.getCurrentSubViewTitle()}):i.label=t.get("screenshot_label",{title:o.getTitle()}),n.push(i)}return this.reRenderMaps(o).then((function(){return n}))},isEnabled:function(e){var t=e.context;if(t){var n=1===t.length&&t[0]&&t[0].tags;return n&&(-1!==n.indexOf("dashboard")||-1!==n.indexOf("story"))}return!0},_triggerDataPlayerEvent:function(e,t){var n=t.dashboardApi;n&&n.triggerDashboardEvent(e)},enterShareState:function(e){var t=this;return Promise.resolve().then((function(){var n=e.glassContext.appController.getCurrentContentView();t._triggerDataPlayerEvent("open:sharePanel",n)}))},leaveShareState:function(e){var t=this;return Promise.resolve().then((function(){var n=e.glassContext.appController.getCurrentContentView();t._triggerDataPlayerEvent("close:sharePanel",n)}))},reRenderMaps:function(e){var t=e.boardController.layoutController,n=e.boardModel.getSelectedLayout(),o=e.dashboardApi.getCanvas().getContent(n).findContent({type:"widget"}).filter((function(e){var t=e.getFeature("Visualization");return!(!t||"Tiledmap"!==t.getType())})).map((function(e){return e.getId()}));return o.length>0?Promise.map(o,(function(e){return t.widgetLoader.getWidget(e).mapVizRenderForPrint()})).delay(this.vidaMapAnimTimeout):Promise.resolve()},canExportToPDF:function(){return!0},getInstrumentation:function(e){return e.glassContext.appController.getCurrentContentView().getDashboardApi().getFeature("segment").getInfo({type:"Shared Object"})},exportToPDF:function(e,t,n){var o=e.glassContext.appController.getCurrentContentView().getDashboardApi(),i=o.getFeature("Print"),r={pageSize:t,printFilters:n},A=o.getCanvas().getContent().getId();return i.print(A,e.glassContext.appController,r)}})})),define("dashboard-core/js/dashboard/glass/controllers/UndoActionHandler",["../UndoRedoButton"],(function(e){return e.extend({onPress:function(e){var t=e.glassContext.appController.getCurrentContentView().getDashboardApi();t&&t.undo()},canEnable:function(e){return e.canUndo()}})})),define("dashboard-core/js/dashboard/glass/controllers/DisabledActionHandler",["../../../lib/@waca/baglass/js/baglass/app/plugins/Button"],(function(e){return function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,e.apply(this,arguments))}return _inherits(t,e),t.prototype.onRender=function(e){e.target.plugin.disable()},t}(e)})),define("dashboard-core/js/dashboard/glass/controllers/CustomWidgetButton",["../../../lib/@waca/baglass/js/baglass/app/plugins/Button"],(function(e){var t=e.extend({init:function(e){t.inherited("init",this,arguments);var n=e.glassContext.appController;this._determineVisibility(n)},_determineVisibility:function(e){var t=this;e.findCollection("com.ibm.bi.dashboard.widgets").then((function(t){return t.filter((function(e){return!e.builtin})).length>0||e.findCollection("com.ibm.bi.dashboard.contentTypes").then((function(e){return(e||[]).some((function(e){return e.expose}))}))})).then((function(e){e?t.show():(t.hideForever=!0,t.hide())}))}});return t})),define("dashboard-core/js/dashboard/UndoRedoController",["underscore","chronology","./util/EventConstants","../lib/@waca/dashboard-common/dist/core/APIContext"],(function(e,t,n,o){return function(){function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck(this,i),this.canvas=t.canvas,this._registerCanvasEvents(),this.undoRedoExclusionList={"change:name":1,"change:id":1,"change:_meta":1},this.canvasModel=e,this.transactionApi=t.transaction,this.listeners={},this.canvasModel.on("all",this.addToUndoRedoStack.bind(this),this.canvasModel),this.logger=t.logger,this.currentMode=t.mode||"canvasMode",this.isStateDirty=t.isStateDirty||!1,this.undoRedoStacks={},this.changeModeName=n.changeModeAction,this._getUndoRedoStack(),this.getPublicProperties()}return i.prototype._registerCanvasEvents=function(){var e=this;this.canvas&&this.canvas.on("all",(function(t){t.info&&t.info.supportsUndoRedo&&e._addCanvasActionToUndoRedo(t)}))},i.prototype._addCanvasActionToUndoRedo=function(e){e.tracking&&e.tracking.undoActions&&this.addToUndoRedoStack(this._convertCanvasEventToUndoAction(e))},i.prototype._convertCanvasEventToUndoAction=function(e){return{value:"redo",prevValue:"undo",data:{undoRedoTransactionId:e&&e.transactionToken&&e.transactionToken.transactionId,transactionToken:e.transactionToken,transactionParamIndex:e.info.transactionParamIndex},sender:e.context&&e.context.undoRedo?"UndoRedoController":"canvas",senderContext:{applyFn:this._canvasEventApplyFn.bind(this,e)}}},i.prototype._canvasEventApplyFn=function(e,t,n,i,r){var A=this,a=void 0,s=r&&r.transactionToken,l=new o({undoRedo:!0,transactionToken:s}),c=this._executeTrace(e.tracking.callStack,[this.canvas]);if("undo"===t){var d=e.tracking.undoActions,u=[];d.forEach((function(e){u.push({fn:A._executeAction.bind(A),args:[e,c,l]})})),a=this._executeActions(u)}else{var h=e.tracking.action;a=this._executeAction(h,c,l)}return a instanceof Promise&&(a=a.catch((function(e){throw A.logger.error("An error occured while executing an API undo trace",e),e}))),a},i.prototype._executeTrace=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[].concat(t);return e&&e.forEach((function(e){var t=n[n.length-1];e&&".."===e.name?n.pop():e&&t&&"function"==typeof t[e.name]&&n.push(t[e.name].apply(t,e.params))})),n},i.prototype._executeAction=function(e,t,n){var o=this,i=void 0,r=this._executeTrace(e.callStack,t),A=r[r.length-1];if(e&&A&&"function"==typeof A[e.name]){var a=JSON.parse(JSON.stringify(e.params||[]));if(a.unshift(n),i=A[e.name].apply(A,a),e.resultActions)(Array.isArray(i)?i:[i]).forEach((function(t,i){var r=e.resultActions[i];r&&r.forEach((function(e){o._executeAction(e,t,n)}))}))}else this.logger.warn("undo/redo: missing action in event or action does not exist in API ",e,A);return i},i.prototype.getPublicProperties=function(){return{addToUndoRedoStack:this.addToUndoRedoStack.bind(this),clearStack:this.clearStack.bind(this),addListener:this.addListener.bind(this),removeListener:this.removeListener.bind(this),canUndo:this.canUndo.bind(this),canRedo:this.canRedo.bind(this),undo:this.undo.bind(this),redo:this.redo.bind(this),setMode:this.setMode.bind(this),setDirty:this.setDirty.bind(this),registerSaveAction:this.registerSaveAction.bind(this),isDirty:this.isDirty.bind(this)}},i.prototype._validateUndoRedoAction=function(e){return!!(e&&e.senderContext&&e.senderContext.applyFn)&&("UndoRedoController"!==e.sender&&((!e.data||!e.data.undoRedoTransactionId||0!==e.data.undoRedoTransactionId.indexOf("undoRedoTransaction"))&&(!e.data||!e.data.transactionToken||!(e.data.transactionToken||{}).eventGenerated)))},i.prototype.addToUndoRedoStack=function(e){if(this._validateUndoRedoAction(e)){var t=this._checkTransaction(e);if(t){var n={up:function(){this.call||t.up(e.upValue?e.upValue:e.value,"UndoRedoController",e.name)},down:function(){t.down(e.prevValue,"UndoRedoController",e.name)},call:!1,name:e.name,prevDirtyState:this.isStateDirty};this.logger.debug("UndoRedoController:addToUndoRedoStack",e.data?e.data.undoRedoTransactionId:e.data,e.name,e.value,e.prevValue),this._getUndoRedoStack().add(n)}}},i.prototype.setDirty=function(e){this.isStateDirty=e},i.prototype.clearStack=function(){var t=this,n=this._getUndoRedoStack();n&&n.clear(),e.each(this.listeners,(function(e){e.onStateChange(t)}))},i.prototype._checkTransaction=function(e){if(e.data&&(e.data.saveOnly||e.data.skipUndoRedo||e.data.runtimeOnly))return null;var t={up:e.senderContext.applyFn,down:e.senderContext.applyFn},n=e.data?e.data.undoRedoTransactionId:null;if(n){var o=this._getTransactionsMap(),i=o[n];if(i)return i.push(e),null;i=[e],o[n]=i,t.up=function(){this._redoTransaction(i)}.bind(this),t.down=function(){delete o[n],this._undoTransaction(i)}.bind(this)}return t},i.prototype._createTransation=function(){var t=e.uniqueId("undoRedoTransaction");return this.transactionApi.startTransactionById(t)},i.prototype._redoTransaction=function(e){for(var t=this,n=this._createTransation(),o=void 0,i=void 0,r=[],A=0;A=0;A--)(i=(o=e[A]).senderContext.applyFn)&&(o.data.transactionToken=n,o.data.undoRedoTransactionId=n.transactionId,o.data.undoRedoTransactionType="undo",r.push({fn:i,args:[o.prevValue,"UndoRedoController",o.name,o.data]}));var a=this._executeActions(r);a instanceof Promise?this.lastUndoRedoOpPromise=a.catch((function(e){throw t.logger.error("An error occured while executing the undo stack",e),e})).finally((function(){t.transactionApi.endTransaction(n)})):this.transactionApi.endTransaction(n)},i.prototype._executeActions=function(e){for(var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=void 0;n0},i.prototype.canRedo=function(){return this._getUndoRedoStack().redos.length>0},i.prototype._trackDirtyState=function(e){if(e&&e[0]){var t=e[0].prevDirtyState;e[0].prevDirtyState=this.isStateDirty,e[0].name!==this.changeModeName&&this.setDirty(t)}},i.prototype.undo=function(){var e=this._getUndoRedoStack();this._trackDirtyState(e.undos),e.undo();var t=this.lastUndoRedoOpPromise||Promise.resolve();return this.lastUndoRedoOpPromise&&(this.lastUndoRedoOpPromise=null),t},i.prototype.redo=function(){var e=this._getUndoRedoStack();this._trackDirtyState(e.redos),e.redo();var t=this.lastUndoRedoOpPromise||Promise.resolve();return this.lastUndoRedoOpPromise&&(this.lastUndoRedoOpPromise=null),t},i.prototype.onAdd=function(){this.enableState("undo",!0),this.enableState("redo",!1)},i.prototype.enableState=function(t,n){this.canvasModel.trigger("undo:state",{senderContext:this,stack:t,enabled:n}),e.each(this.listeners,function(e){e.onStateChange(this)}.bind(this))},i.prototype.setMode=function(e){var t=void 0;"canvasMode"!==this.currentMode&&(t=this.undoRedoStacks[this.currentMode].transactions,delete this.undoRedoStacks[this.currentMode]),this.currentMode=e||"canvasMode",this._mergeUndoStacks(t);var n=this._getUndoRedoStack();this.enableState("undo",n.undos.length>0),this.enableState("redo",n.redos.length>0)},i.prototype.registerSaveAction=function(){var t=this._getUndoRedoStack();e.forEach(t.undos,(function(e){e.prevDirtyState=!0}))},i.prototype.isDirty=function(){return this.isStateDirty},i.prototype._getUndoRedoStack=function(){return this.undoRedoStacks[this.currentMode]||(this.undoRedoStacks[this.currentMode]=new t({limit:150,onAdd:this.onAdd.bind(this),onRedo:this.enableState.bind(this,"undo",!0),onUndo:this.enableState.bind(this,"redo",!0),onBegin:this.enableState.bind(this,"undo",!1),onEnd:this.enableState.bind(this,"redo",!1)}),this.undoRedoStacks[this.currentMode].transactions={}),this.undoRedoStacks[this.currentMode]},i.prototype._getTransactionsMap=function(){return this.undoRedoStacks[this.currentMode].transactions},i.prototype._mergeUndoStacks=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.each(n,(function(e){e.forEach((function(e){t.addToUndoRedoStack(e)}))}))},i}()})),define("dashboard-core/js/dashboard/CopyPasteController",["underscore","./util/DashboardSpecHelper","../app/nls/StringResources"],(function(e,t,n){return function(){function o(e){_classCallCheck(this,o),this.layoutController=e.layoutController,this.dashboardApi=e.dashboardApi,this.logger=e.logger,this.model=e.model,this.api=e.api,this.specType=e.type||"DASHBOARD",this.clipboard=this.dashboardApi.getGlassCoreSvc(".Clipboard")}return o.prototype.destroy=function(){this.layoutController=null,this.dashboardApi=null,this.logger=null,this.model=null,this.api=null,this.clipboard=null},o.prototype.getSpecHelper=function(){var e=this;return this.specHelper?Promise.resolve(this.specHelper):this.layoutController.getInteractionController().then((function(n){return e.specHelper=new t(n),e.specHelper}))},o.prototype.doCopy=function(e){var t=this;return this.getSpecHelper().then((function(n){var o,i=(new Date).getTime(),r=void 0;return(o=e)&&"DASHBOARD"!==o.type&&o.count?r=e:(r=t.selectFromSpecForCopyPaste(n)).type=t.specType,r.timestamp=i,t.clipboard.set(r).then((function(){return r.errMsg&&t._showToast(r.errMsg),r.count>0?t._showToast("copy",{count:r.count}):null}))})).catch((function(e){return t._showError("specCopyErr",e)}))},o.prototype.doPaste=function(e){var t=this;return e?this.getConvertedSpec(e).then((function(e){return e})).catch((function(e){return t._showError("specConvertErr",e)})):this.getConvertedSpec(this.specType).then((function(e){if(e)return t.getSpecHelper().then((function(t){return t.validateDashboardSpec(e)}))})).then((function(e){if(e)return t.layoutController.interactionController.selectionHandler.deselectAll(),t._performPaste(e)})).catch((function(e){return t._showError("specConvertErr",e)}))},o.prototype.getConvertedSpec=function(e){var t=this;return this.clipboard.get().then((function(n){return t._doConvert(n,e)}))},o.prototype._doConvert=function(e,t){var o=e.type,i=e.spec;return"REPORT"==o?(this._showError("pasteNotSupportedErr",{name:n.get("reportParam")}),null):o!==t&&i?this.dashboardApi.getGlassSvc(".ConversionService").then((function(e){return e.convert(o,t,i)})):Promise.resolve(i)},o.prototype.selectFromSpecForCopyPaste=function(e){var t={spec:null,count:0};return this.dashboardApi.getCanvas().getSelectedContentList().length&&(t=e.getContentsToJSONSpec()),t},o.prototype._performPaste=function(t){var n=this;t.nonMergedWidgets&&(t.widgets=t.nonMergedWidgets,delete t.nonMergedWidgets);function o(n,o,i){var r=function(t,n){return e.find(t,(function(e){return n===e.id}))}(t.widgets,n);r&&(!function(n,o){n.data&&n.data.dataViews&&e.each(n.data.dataViews,(function(n){var i=e.find(t.dataSources.sources,(function(e){return e.id===n.modelRef}));o[n.modelRef]=i}))}(r,i),o.push(r))}var i=function(i){var r={},A=null;if(n._isTypeRegistered(i.type))A=i;else{if(r.layout=i,t.widgets&&t.widgets.length){var a=[],s={};if(i.items?function t(n,i,r){e.each(n,(function(e){return e.items?t(e.items,i,r):o(e.id,i,r)}))}(i.items,a,s):o(i.id,a,s),a.length)if(r.widgets=a,r.dataSources={version:t.dataSources.version,sources:e.values(s)},i.content&&i.content.properties)-1!==Object.keys(i.content.properties).indexOf("explicitScale")&&delete i.content.properties.explicitScale}t.drillThrough&&t.drillThrough.length&&(r.drillThrough=t.drillThrough),t.properties&&(r.properties=t.properties),t.fredIsRed&&(r.fredIsRed=t.fredIsRed),t.episodes&&(r.episodes=t.episodes)}return{content:A,model:r}},r=function(e,o){var r=function(e){return e0&&void 0!==arguments[0]?arguments[0]:{};if(t.info){var n=[t.info],o=t.info.events;if(o){var i={};o.forEach((function(e){e.info&&e.info.contentId&&(i[e.info.contentId]=e.info)})),n=Object.values(i)}n.forEach((function(t){var n=t.contentId,o=n&&e.canvas.getContent(n);if(o&&"widget.live"!==o.getType()){var i=t.options||{};e.getCurrentChild()?e.refreshChildProperty(_extends({content:e.canvas.getContent(n)},i)):e.refreshApplicationPropertiesPane(_extends({},i))}}))}},onDashboardPropertyChange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(e.info&&e.info.supportsUndoRedo){var t=e.info.options||{};this.refreshApplicationPropertiesPane(_extends({},t))}},show:function(e){var t=this,n=e&&e.context;this._hideChild();var o=this._layoutController.getSelectedNodes(),i=this._getSelectedLayouts(o);return this._selectedTab="",this._expandedSections={},this._handleButtonState(!0),this.getProperties(i).then((function(o){var i=o&&o[0]&&"Banner"===o[0].type?o[0].value:"";return t.createAndShowSlideout({enableTabLooping:!0,width:"320px",position:"right",pinning:{isPinned:!0,float:!1,display:!1},content:{module:"dashboard-core/js/dashboard/contentpane/PropertyUIControlView",glassContext:t.glassContext,renderCallback:t._renderCallback.bind(t),items:o,onSetFocus:e?e.onSetFocus:null},label:i},n)}))},getPropertiesView:function(e){var t=this,n=this.dashboard.getCanvas().getContent(e),o=void 0;if(e)o=this.getPropertyLayoutList([n]);else{var i=this._getSelectedLayouts([]);o=this.getProperties(i)}return o.then((function(e){var n=new a({node:document.createElement("div"),items:e,glassContext:t.glassContext,renderCallback:t._renderCallback.bind(t)});return t.contentView=n,n.render()}))},_renderCallback:function(){this._eventRouter&&this._eventRouter.trigger("properties:hasRendered",{})},hide:function(){this._hideChild(),this._handleButtonState(!1),this._closeSlideout(),this._clearSelectedNodeIds()},_handleButtonState:function(e){var t=this.glassContext.appController.findPlugin("com.ibm.bi.dashboard.propertyBtn");t&&(!0===e?t.setPressed():!1===e&&t.setUnpressed())},getProperties:function(e){var t=this.dashboard.getCanvas(),n=e&&e.length&&!e[0].parentLayout?[t]:o.map(e,(function(e){return t.getContent(e.id)}));return this.getPropertyLayoutList(n)},getPropertyLayoutList:function(e){var t=this,n=[],r=0,A=void 0;return o.each(e,(function(e){var a=e&&e.getPropertyLayoutList&&e.getPropertyLayoutList();if(!o.isEmpty(a)){if(!A){var s=o.find(a,(function(e){return"Banner"===e.type}));A=t._getCoreClientLayout(s)}var l=o.chain(a).filter((function(e){return"Group"===e.type})).sortBy((function(e){if(void 0!==e.position)return e.position;var n=t._defaultTabOrder.indexOf(e.label);return n>=0?n:10})).map(t._getCoreClientLayout.bind(t)).value();e.getType&&"group"===e.getType()?(r++,n.push(i.processProperties(l,e,t.dashboard).then((function(){return l})))):n.unshift(i.processProperties(l,e,t.dashboard).then((function(){return l})))}})),Promise.all(n).then((function(e){for(;e.length>1+r;)e[0]=t._mergePropertySpecs(e[1],e[0],!0),e.splice(1,1);var n=e[0],o=void 0;if(r>0){for(e.splice(0,1);e.length>1;)e[0]=t._mergePropertySpecs(e[1],e[0],!0),e.splice(1,1);o=e[0]}n&&(e[0]=t._mergeGroupPropertySpecs(n,o));var i=[];if(e.length<1)return i;if(i.push(A),e[0].length>1){var a={type:"TabControl",name:"tabControl",items:e[0],onTabChange:function(e,t){this._selectedTab=t.name}.bind(t)};i.push(a)}return 1===e[0].length&&i.push.apply(i,e[0][0].items),i}))},_getCoreClientLayout:function(e,t){var n=this,i=o.extend({},e);if(e)switch(e.items&&e.items.length&&o.extend(i,{items:o.chain(e.items).map((function(e,t){return n._getCoreClientLayout(e,t)})).flatten().value()}),i.type){case"Group":return this._processCoreClientTabControl(i);case"Section":return this._processCoreClientSectionControl(i,t);case"DropDown":return this._processCoreClientDropDownControl(i)}return i},_processCoreClientTabControl:function(e){return o.extend(e,{name:e.label,selected:this._selectedTab===e.label,module:"dashboard-core/js/dashboard/contentpane/PropertyUIControlView"})},_getSectionExpandState:function(e,t){if(void 0===this._expandedSections[e.id]){var n=e.open;void 0===n&&(n=0===t),this._expandedSections[e.id]=n}return this._expandedSections[e.id]},_processCoreClientSectionControl:function(e,t){var n=o.extend(e,{name:e.id,styleAsSimpleRow:!0,type:!1===e.collapsible?"SectionLabel":"CollapsibleSection",open:this._getSectionExpandState(e,t),onOpenChange:function(e,t){this._expandedSections[e]=t}.bind(this)}),i=t>0&&!e.noSeparator?[{type:"Separator"},n]:[n];return"SectionLabel"===n.type&&(i.push.apply(i,n.items),delete n.items),i},_processCoreClientDropDownControl:function(e){return e.name=e.id,!e.options&&e.getOptions&&(e.options=e.getOptions()),e},_hideChild:function(){var e=this.getCurrentChild();e&&e.hide({force:!0})},closeChild:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.getCurrentChild();t&&(e&&"function"==typeof e?e():t.node&&t.node.parentNode&&t.node.parentNode.contains(t.node)?(t.node.nextElementSibling.style.display="block",t.node.parentNode.removeChild(t.node)):t.$el&&t.parentNode&&t.parentNode.contains(t.$el[0])&&(t.$el.next().show(),t.parentNode.removeChild(t.$el[0])),this._children.pop(),t.remove&&t.remove())},closeAllChild:function(){for(var e=this._children.length;e>0;)this.closeChild(),--e},getChildPropertiesView:function(e){var t=this;e.glassContext=this.glassContext,e.onCloseCb=this.closeChild.bind(this,e.onCloseCb);var n=e.module.split("/").pop();return new Promise((function(o,i){switch(n){case"PropertyUIControlView":o(t._createChildPropertyUIControlView(e.items));break;case"changePaletteView":require(["authoring-common"],(function(t){o(new t.ChangePaletteView(e))}),(function(e){i(e)}));break;case"ConditionalFormatting":require([e.module],(function(t){o(new t.CurrentConditionalPalette(e))}),(function(e){i(e)}));break;default:o()}})).then((function(n){return n?(n.options=e,t._children.push(n),n.render()):Promise.resolve()}))},getCurrentChild:function(){return this._children.length>0?this._children[this._children.length-1]:null},addChild:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.childPropertyDisplayed=!0,e.content=e.content||{},e.content.isChild=!0,e.content.childPanelId=o.uniqueId("childPanelId_"),e.pageChildId&&(this.pageChildId=e.pageChildId),this.slideoutDOMFeature.render(e.content),!0},_removeNonPublicProperties:function(e){for(var t=0;t=0?n:10})),o.each(r.items,(function(e){if(e.items){e.items=o.sortBy(e.items,"sectionPosition");for(var n=!0,i=0;i(e.displayPos||-1)){t.items.splice(o,0,e),n=!0;break}n||t.items.push(e)},_genTabUIControlSpec:function(e){var t=e.tabModule?e.tabModule:"dashboard-core/js/dashboard/contentpane/PropertyUIControlView",n={name:e.tabName,module:t,items:[]};return e.tabName===this._selectedTab&&(n.selected=!0),void 0!==e.tabPosition&&(n.tabPosition=e.tabPosition),n},_genSectionUIControlSpec:function(e){var t=this,n=e.tabName+"|"+e.sectionName,o={label:e.sectionName,name:n,type:"CollapsibleSection",items:[],styleAsSimpleRow:!0,onOpenChange:function(e,n){t._expandedSections[e]=n}};return null!=this._expandedSections[n]&&(o.open=this._expandedSections[n],o.expansionRuleExists=!0),o},_mergeGroupPropertySpecs:function(e,t){var n=this;if(!t)return e;var o=[];return e.forEach((function(e){if(e.name){for(var i=null,r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=t.refreshChild&&t.content?this.getPropertyLayoutList([t.content]):Promise.resolve();return n.then((function(n){n&&(t.items=n);var o=e.getCurrentChild();return o&&o.options&&o.options.childPanelId===t.childPanelId&&(o instanceof a?(o.getPropertyUIControl()&&o.getPropertyUIControl().remove(),e._children.pop(),t.module=t.module||"dashboard-core/js/dashboard/contentpane/PropertyUIControlView"):t.onCloseCb()),t.onCloseCb=t.originalOnCloseCb,e.getChildPropertiesView(t)}))},_createChildPropertyUIControlView:function(e){return new a({node:document.createElement("div"),items:e,glassContext:this.glassContext,onCloseCb:this.closeChild,closeCallback:this.closeChild.bind(this),renderCallback:this._renderCallback.bind(this)})},refreshChild:function(e){var t=this;return Promise.resolve().then((function(){if(t.isSlideoutOpen()){var n=e&&e.content,o=t.getCurrentChild();return n&&o&&o.pageChildId===n.getId()?t.getPropertyLayoutList([n]).then((function(n){var i={module:"dashboard/contentpane/PropertyUIControlView",items:n};return i.onCloseCb=t._hideChild.bind(t),i.closeCallback=t._hideChild.bind(t),!!o.contentView&&o.setContent(i).then((function(){e.focusSelector&&o.$el.find(e.focusSelector).focus()}))})):void 0}}))},setPropertyValue:function(e){if(!e||void 0===e.value)return!1;var t=this.getPropertyControl(e.propertyName);return!(!t||!t.setValue)&&(t.propertiesManagerChange=!0,e.subPropertyName?t.setValue(e.subPropertyName,e.value):t.setValue(e.value),t._lastChangedValue="undefined",t.propertiesManagerChange=!1,!0)},getPropertyControl:function(e,t){if(!this._isPropertiesPaneOpen())return null;t||(t=this._slideout);var n=(t||this.contentView).getPropertyUIControl();return this._getPropertyControlFromUIControl(e,n)},_getPropertyControlFromUIControl:function(e,t){if(!t)return null;var n,o=e;"string"!=typeof e&&e.length&&(o=(n=e.slice()).shift());var i=t.getProperty(o);return!i&&t.propertyUIControlLeft&&!(i=t.propertyUIControlLeft.getProperty(o))&&t.propertyUIControlRight&&(i=t.propertyUIControlRight.getProperty(o)),i?n&&n.length?this._getPropertyControlFromUIControl(n,i):i:null},_isPropertiesPaneOpen:function(){if(!this.slideoutFeature.isOpen())return!1;var e=this.slideoutFeature.getCurrent();return!(!e||"PropertiesPane"!==e.id)},refreshApplicationPropertiesPane:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._isPropertiesPaneOpen()){var t=this._layoutController.getSelectedNodes(),n=t&&this._getSelectedLayouts(t);if(n){e.selectedTab&&(this._selectedTab=e.selectedTab);var o=this.slideoutFeature.getCurrent().id,i=this.slideoutDOMFeature.getView(o).instance.getRenderNode();e.currentScrollTop=i.scrollTop,this.updatePropertiesPanel(n,e)}}},refreshPropertiesPane:function(e){if(this.isSlideoutOpen()){this._dashboardPropertiesPane=this._slideout.el.querySelector(".pane-content"),e&&e.selectedTab&&(this._selectedTab=e.selectedTab);var t=this._layoutController.getSelectedNodes();e?e.currentScrollTop=this._dashboardPropertiesPane.scrollTop:e={currentScrollTop:this._dashboardPropertiesPane.scrollTop};var n=this._getSelectedLayouts(t);this._updatePropertiesPane(n,e)}},onPropertiesSelectionReady:function(e){if(this._isPropertiesPaneOpen()){var t=e.selectedNodes.map((function(e){return e.id})).sort().join();if(t!==this._lastSelectedNodeIds){e.selectedNodes&&1===e.selectedNodes.length&&(this._selectedTab="",this._expandedSections={});var n=this._getSelectedLayouts(e.selectedNodes);this.closeAllChild(),this.updatePropertiesPanel(n,e),this._lastSelectedNodeIds=t}}},onSelectionReady:function(e){if(this.isSlideoutOpen()){var t=e.selectedNodes.map((function(e){return e.id})).sort().join();if(t!==this._lastSelectedNodeIds){e.selectedNodes&&1===e.selectedNodes.length&&(this._selectedTab="",this._expandedSections={});var n=this._getSelectedLayouts(e.selectedNodes);this._hideChild(),this._updatePropertiesPane(n),this._lastSelectedNodeIds=t}}},updatePropertiesPanel:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.uniqueId("eventQueue_");this._lastEventId=i,setTimeout((function(){t._isPropertiesPaneOpen()&&t.getProperties(e).then((function(e){i===t._lastEventId&&(t.contentView.setPropertySpec(e),t.contentView.render(!0).then((function(e){n.currentScrollTop&&(e.el.parentNode.scrollTop=n.currentScrollTop),n.focusSelector&&e.$el.find(n.focusSelector).focus(),t._updateChildPropertiesSelection()})))}))}),0)},getMostRecentChildOptions:function(e){if(!e||e.childPanelId)return e;var t=this.getCurrentChild();return t&&t.options&&t.options.childPanelId?o.clone(t.options):e},_updatePropertiesPane:function(e,t){var n=this,i=o.uniqueId("eventQueue_");this._lastEventId=i,setTimeout((function(){n.isSlideoutOpen()&&n.getProperties(e).then((function(e){i===n._lastEventId&&(n._slideout.contentView.setPropertySpec(e),n._slideout.contentView.render(!0).then((function(){t&&t.focusSelector&&n._slideout.$el.find(t.focusSelector).focus(),t&&t.currentScrollTop&&(n._dashboardPropertiesPane.scrollTop=t.currentScrollTop)})),n._updateChildSelection())}))}),0)},_getSelectedLayouts:function(e){var t=this,o=[];if(e.forEach((function(e){if(e._layout){if(e._layout.model&&"group"===e._layout.model.type)for(var i=A.getContentWithoutDecoration(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n={parentId:this.id,layoutProperties:t},o=this.dashboardApi.getFeature("CanvasDnD");return o.onDrop(e).then((function(e){return e&&(n.model=e),n}))},addPin:function(e,t){var n=this.getDeprecatedCanvas().addFragment(e);this.getDeprecatedCanvas().selectWidget(n,{isTouch:t})},onWidgetRemoveDone:function(e){this.widgetLoader.isLoaded(e.id)&&this.widgetLoader.unLoadWidget(e.id,void 0,e)},changeToAuthorMode:function(){return this.layoutController.pageReady.then(this._prepareAsyncCallback(this.layoutController.changeToAuthorMode.bind(this.layoutController,{canvasNotifier:this.addRemoveNotifier})))},changeToConsumeMode:function(){return this.layoutController.changeToConsumeMode()},changeToEventGroupMode:function(){return this.layoutController.pageReady.then(this._prepareAsyncCallback(this.layoutController.changeToEventGroupMode.bind(this.layoutController)))},addProviderForExtension:function(e,t){var n=this.getExtension(e);n?n.addProvider?n.addProvider(t):this.logger.debug("Extension with id "+e+' does not have a "addProvider" method'):(this._extensionProviders||(this._extensionProviders={}),this._extensionProviders[e]||(this._extensionProviders[e]=[]),this._extensionProviders[e].push(t))},registerExtension:function(e,t){this._extensions[e]=t,this._extensionProviders&&this._extensionProviders[e]&&(t.addProvider?this._extensionProviders[e].forEach((function(e){t.addProvider(e)})):this.logger.debug("Extension with id "+e+' does not have a "addProvider" method'))},getExtension:function(e){return this._extensions[e]||null},_onDocumentKeyDown:function(e){if(e&&8===e.keyCode&&!e.metaKey&&!e.shiftKey){var t=e.srcElement||e.target;t.tagName.toLowerCase().match(/input|textarea|select/gim)||"true"===t.getAttribute("contentEditable")||e.preventDefault()}},onPageRenderComplete:function(){return this.layoutController.onPageRenderComplete},onPageReady:function(){return this.layoutController.pageReady},getFeature:function(e){var t=this;return new Promise((function(n,o){t._features[e]?n(t._features[e]):o("Feature not found")}))},registerFeature:function(e,t){return this._features[e]=t,Promise.resolve()}})})),define("dashboard-core/js/api/LayoutAPI",[],(function(){return function(){function e(){_classCallCheck(this,e)}return e.prototype.getChildrenList=function(){},e.prototype.getParentLayout=function(){},e.prototype.getWidget=function(){},e.prototype.render=function(){},e}()})),define("dashboard-core/js/api/deprecated/LayoutAPI",[],(function(){return function(){function e(){_classCallCheck(this,e)}return e.prototype.getChildren=function(){},e.prototype.getId=function(){},e.prototype.getSelfRatio=function(){},e.prototype.getWidgetAPI=function(){},e}()})),define("dashboard-core/js/api/impl/Layout",["../../lib/@waca/core-client/js/core-client/ui/core/Class","underscore","../../lib/@waca/dashboard-common/dist/core/APIFactory","../LayoutAPI","../deprecated/LayoutAPI"],(function(e,t,n,o,i){return e.extend({model:null,controller:null,init:function(e){this.model=e.model,this.controller=e,this.layoutController=e.layoutController},destroy:function(){this.model=null,this.controller=null,this.layoutController=null},getId:function(){return this.model.id},getChildren:function(){var e=this;return this.model.items.map((function(t){var n=t.id,o=e.layoutController.getView(n);if(o&&o.view&&o.view.getAPI)return o.view.getAPI()})).filter((function(e){return!!e}))},render:function(e){this.controller.render(e)},getSelfRatio:function(){return this.controller.getSelfRatio()},getParentLayout:function(){return this.controller.getParentLayout()},getWidgetAPI:function(){return this.controller.widgetAPI},getAPI:function(){return n.createAPI(this,[o,i])},getChildrenList:function(){return this.getChildren()},getWidget:function(){return this.getWidgetAPI()}})})),define("dashboard-core/js/app/util/UnderscoreExt",["underscore"],(function(e){e.objDifference=function(e,t,n){return e.filter((function(e){return 0===t.filter((function(t){return e[n]===t[n]})).length}))},e.doubleDebounce=function(e,t){var n=null,o=0,i=function(t){n=null,o=Date.now(),e(t)},r=function(r){Date.now()-o>t&&!n?(o=Date.now(),e(r)):(clearTimeout(n),n=setTimeout(i,t,r))};return r.cancel=function(){return clearTimeout(n)},r}})),define("dashboard-core/js/dashboard/layout/views/LayoutBaseView",["../../../lib/@waca/core-client/js/core-client/ui/core/Class","../../../view/features/content/contentViewDom/api/impl/ContentViewDomImpl","../../../lib/@waca/baglass/js/baglass/utils/Utils","jquery","underscore","../../../lib/@waca/core-client/js/core-client/utils/ClassFactory","../../../app/nls/StringResources","../../widgets/PropertiesUtil","react-dom","../../../lib/@waca/dashboard-common/dist/ui/CenterLoadingSpinner","../../../api/impl/Layout","../LayoutHelper","../../../lib/@waca/core-client/js/core-client/ui/dialogs/ConfirmationDialog","../../widgets/PropertyListUtil","../../util/ContentRegistryUtil","../../../app/util/UnderscoreExt"],(function(e,t,n,o,i,r,A,a,s,l,c,d,u,h,g){var f={width:320,height:200},p={"16:9":{width:1280,height:720},"4:3":{width:1280,height:960},letter:{width:612,height:792},legal:{width:612,height:1008},a4:{width:595,height:842},tabloid:{width:792,height:1224},infographic:{width:512,height:1024}},m=e.extend({init:function(e){m.inherited("init",this,arguments),this.layoutController=e.layoutController,this.isAuthoringMode=this.layoutController.isAuthoring,this.model=e.model,this.id=this.model.id,this.parentLayout=e.parentLayout,this.glassContext=e.services.biGlass.glassContext,this.appSettings=e.appSettings,this.dashboardApi=e.dashboardApi,this.additionalWidgetData=e.additionalWidgetData,this.contentFeatureLoader=e.contentFeatureLoader,this.content=e.content,this.dashboardApi&&(this.colorsService=this.dashboardApi.getFeature("Colors"),this.translationService=this.dashboardApi.getDashboardCoreSvc("TranslationService"),this.contentTypeRegistry=this.dashboardApi.getFeature("ContentTypeRegistry"));var t=this.layoutController.modelIdToNodeId(this.id),n=!1;this.parentLayout?(this.domNode=o(this.parentLayout.domNode).find("#"+t)[0],this.domNode||(this.domNode=document.getElementById(t),this.domNode&&(n=!0))):this.domNode=document.getElementById(t),this._attachedHandles=[],this._isTopLevelPage()&&this._attachedHandles.push(this.model.on("change:pageSize",this.onPageSizeChange.bind(this),this));var r=e.services.getSvcSync("htmlTemplates");if(this.domNode){if(n){var A=o(this.domNode),a=A.children(),s=A;this.domNode=o(r.getHtml(this.model,this.model.boardModel.widgetInstances))[0];var l=o(this.domNode);a.appendTo(l),s.remove(),this.layoutController.layoutReady(this.model.id).then(this.onResize.bind(this))}}else this.domNode=o(r.getHtml(this.model,this.model.boardModel.widgetInstances))[0];this.domNode._layout=this,this.authorHelper=e.authorHelper,this.widgetChromeEventRouter=e.widgetChromeEventRouter,this.widgetChromeEventRouter_disposeEvents=[],this.$el=o(this.domNode),this.logger=this.glassContext.getCoreSvc(".Logger"),this.services=e.services,this.api=new c(this),this.eventRouter||(this.eventRouter=this.layoutController.eventRouter,this.eventRouter&&(this.eventRouter.on("properties:hasRendered",this.setInitialEnabledState,this),this._enableToggleEvents(),this.eventRouter.on("layout:resize",this._onResize,this))),this._debouncedOnResize=i.doubleDebounce(this._onResize.bind(this),200),this._subLayoutViews=[]},setInitialEnabledState:function(){"relative"!==this.model.getValueFromSelfOrParent("layoutPositioning")&&this.eventRouter.trigger("properties:updateEnabled",{propertyName:"fitPage",enabled:!1})},_enableToggleEvents:function(){this.model.on("change:fitPage",this._updatePropertiesPaneToggle,this),this.model.on("change:showGrid",this._updatePropertiesPaneToggle,this),this.model.on("change:snapGrid",this._updatePropertiesPaneToggle,this),this.model.on("change:snapObjects",this._updatePropertiesPaneToggle,this)},_disableToggleEvents:function(){this.model.off("change:fitPage",this._updatePropertiesPaneToggle.bind(this),this),this.model.off("change:showGrid",this._updatePropertiesPaneToggle.bind(this),this),this.model.off("change:snapGrid",this._updatePropertiesPaneToggle.bind(this),this),this.model.off("change:snapObjects",this._updatePropertiesPaneToggle.bind(this),this)},_updatePropertiesPaneToggle:function(e){var t=e.value||!1;this.eventRouter.trigger("properties:setValue",{propertyName:e.name,value:t})},getNodeId:function(e){return this.layoutController.modelIdToNodeId(e)},_destroyAuthoringHelper:function(){this.authorHelper&&(this.authorHelper.destroy(),this.authorHelper=null)},destroy:function(e){if(this._subLayoutViews=null,this.widgetChromeEventRouter_disposeEvents.forEach((function(e){return e.remove()})),this.widgetChromeEventRouter_disposeEvents=[],this._debouncedOnResize&&this._debouncedOnResize.cancel(),this._destroyAuthoringHelper(),this.eventRouter&&(this.eventRouter.off("properties:hasRendered",this.setInitialEnabledState,this),this._disableToggleEvents(),this.eventRouter.off("layout:resize",this._onResize,this)),this._attachedHandles.forEach((function(e){return e.remove()})),this._attachedHandles=[],this.domNode){var t=o(this.domNode);t.off("contextmenu.baselayout"),o(".page,.widget",t).each((function(){this._layout&&this._layout.destroy&&this._layout.destroy(e)})),t.remove(),this.domNode._layout=null}this._contentTitle&&(this._contentTitle=null),this.layoutController&&this.layoutController.removeView(this),this.api&&(this.api.destroy(),this.api=null),this.layoutController=null,this.model=null,this.id=null,this.parentLayout=null,this.glassContext=null,this.appSettings=null,this.dashboardApi=null,this.colorsService=null,this.translationService=null,this.additionalWidgetData=null,this.contentFeatureLoader=null,this.content=null,this.widgetChromeEventRouter=null,this.logger=null,this.services=null,this.authorHelper=null,this.domNode=null,this.layoutController=null,this._debouncedOnResize=null,m.inherited("destroy",this,arguments)},_renderContentTitle:function(){var e=g.getCapabilities(this.content);if(!!e&&e.getCapabilities().title)return this._contentTitle=this.content.getFeature("ContentTitle.internal"),this.$el.addClass("titleSupported"),this._contentTitle.render({id:this.domNode.id,model:this.model,widgetChromeEventRouter:this.widgetChromeEventRouter,eventRouter:this.eventRouter})},renderContent:function(){var e=this,n=this.content.getFeature("state.internal");if(n.setStatus(n.STATUS.RENDERING),this._isRendered){var o=this._subLayoutViews.map((function(e){return e.renderContent()}));return Promise.all(o).then((function(){n.setStatus(n.STATUS.RENDERED)}))}var i=[],r=this.content.getFeature("renderer");if(r){var A=this.domNode;A.className="widget content "+this.content.getType(),this.content.getPropertyValue("canRotate")||(A.className+=" noRotate");var a=r.render({parent:A}).then((function(){var n=e._renderContentTitle();n&&A.prepend(n),e.contentFeatureLoader.registerFeature(e.content.getId(),"ContentViewDOM",new t(A))}));i.push(a)}return(this.model.items||[]).forEach((function(t){var n=t.id;i.push(e.layoutController.createLayoutModule(n,e,e.additionalWidgetData).then((function(t){if(t)return e._subLayoutViews.push(t),t.renderContent()})))})),Promise.all(i).then((function(){return e.registerViewFeatures()})).then((function(){n.setStatus(n.STATUS.RENDERED),e.layoutController.markViewAsReady(e),e._isRendered=!0}))},registerViewFeatures:function(){var e=this;return this._viewFeatureRegistered?Promise.resolve():(this._viewFeatureRegistered=!0,this.contentFeatureLoader.registerFeature(this.id,"ContentViewDOM",new t(this.domNode)).then((function(){return e.contentFeatureLoader.registerFeatureCollection(e.id,"com.ibm.bi.dashboard.content-view-features")})))},onResize:function(e){this._debouncedOnResize(e)},_onResize:function(e){var t=this;this.model.items&&i.each(this.model.items,(function(n){var o=t.layoutController.getLayoutView(n.id);o&&o.onResize&&(o.$el.is(":hidden")?o.resizeOnShow():o.onResize(e))}))},onSelect:function(e){this.contentTypeRegistry.isTypeRegistered(this.content.getType())&&this.widgetChromeEventRouter&&this.isAuthoringMode&&!e&&this.widgetChromeEventRouter.trigger("title:chromeSelected")},onDeselect:function(){this.contentTypeRegistry.isTypeRegistered(this.content.getType())&&this.widgetChromeEventRouter&&this.isAuthoringMode&&this.widgetChromeEventRouter.trigger("title:chromeDeselected")},onShow:function(){this._callChildrenFunction("onShow"),this.isResizeOnShow&&(this.isResizeOnShow=!1,this.onResize())},onHide:function(){this._callChildrenFunction("onHide")},onTransition:function(e){return this._callChildrenFunctionAsync("onTransition",e)},afterTransition:function(e){return this._callChildrenFunctionAsync("afterTransition",e)},resizeOnShow:function(){this.isResizeOnShow=!0},_callChildrenFunctionAsync:function(e,t){var n=this,o=[];return i.each(this.model.items,(function(i){var r=n.layoutController.getLayoutView(i.id);r&&r[e]&&o.push(r[e](t))})),Promise.all(o)},_callChildrenFunction:function(e){var t=this;i.each(this.model.items,(function(n){var o=t.layoutController.getLayoutView(n.id);o&&o[e]&&o[e]()}))},getProperties:function(){var e,t=this,n=[];return n.push(this.getBannerProperty()),this._isTopLevelPage()?((e=n).push.apply(e,this._getCanvasProperties()),this._fetchThemes().then((function(e){return n.push({type:"DropDown",label:A.get("propTheme"),name:"theme",id:"theme",defaultValue:t.layoutController.boardModel.get("theme"),options:e,tabName:A.get("tabName_general"),sectionName:A.get("sectionName_colorsAndThemes"),sectionPosition:2,showLabels:!0,onChange:function(e,n){t.layoutController.boardModel.set({theme:n})}}),Promise.all([t._getDashboardColorSetPropertySpec(),t._getBackgroundColorPropertySpec()]).then((function(e){return(n=n.concat(e)).push(t._getFredIsRedSpec()),n.push(t._getDataCacheSpec()),"Default"===t.translationService.getDefaultLanguage()?t._addLanguageSpecWhenNoLocaleSet(n):t._addMultilingualProperties(n),n}))})).catch((function(e){throw t.logger.error(e,t),e}))):this._getBackgroundColorPropertySpec().then((function(e){return n.push(e),n}))},_getDashboardColorSetPropertySpec:function(){var e=this,t={id:"dashboardColorSet",name:"dashboardColorSet",type:"NewPalette",sectionLabel:A.get("propDashboardColorPalette"),newPaletteLabel:A.get("propNewDashboardPaletteLabel"),linkLabel:A.get("propDashboardChangePaletteLink"),ariaLabel:A.get("propDashboardColorPalette"),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_colorsAndThemes"),paletteType:"ColorPalette",defaultValue:"userPaletteColor",includeUserColorPalette:!0};return a.handleNewPaletteProperty(t,this.layoutController.boardModel.get("properties"),this.dashboardApi,(function(t,n){e.layoutController.boardModel.get("properties").set({dashboardColorSet:n.id}),e.eventRouter.trigger("properties:refreshPane",{sender:e.layoutController.boardModel.get("properties").id})}))},_getBackgroundColorPropertySpec:function(){var e=this,t={name:"fillColor",id:"fillColor",type:"ColorPicker",label:A.get("propDashboardBackgroundColor"),open:!1,ariaLabel:A.get("propDashboardBackgroundColor"),paletteType:"DashboardColorSet",showHexValue:!0,addButton:!0,tabName:A.get("tabName_general"),sectionName:A.get("sectionName_colorsAndThemes"),defaultValue:"transparent"};return a.handleColorPickerProperty(t,this,this.dashboardApi).then((function(t){return t.onChange=function(t,n){var o=e.model,r={undoRedoTransactionId:i.uniqueId("layout_fillColorChange_")},A={fillColor:n.name};o.get("css")==="fill-"+o.get("fillColor")&&(A.css=void 0),e.colorsService.prepareForColorModelChange(A,"fillColor"),o.set(A,{sender:e.senderId,payloadData:r})},t}))},_getFredIsRedSpec:function(){var e=this;return{type:"ToggleButton",label:A.get("propFredIsRed"),name:"fredIsRed",id:"fredIsRed",checked:this.model.boardModel&&this.model.boardModel.properties&&this.model.boardModel.properties.fredIsRed,tabName:A.get("tabName_general"),sectionName:A.get("sectionName_advanced"),onChange:function(t,n){e.layoutController.boardModel.properties.set({fredIsRed:n})}}},_getDataCacheSpec:function(){var e=this;return{type:"DropDown",label:A.get("dataCache"),name:"dataCache",id:"dataCache",defaultValue:this.model.boardModel&&this.model.boardModel.properties&&this.model.boardModel.properties.localCache||"automatic",options:[{label:A.get("dataCache_auto"),value:"automatic"},{label:A.get("dataCache_on"),value:"yes"},{label:A.get("dataCache_off"),value:"no"}],sectionPosition:99,tabName:A.get("tabName_general"),sectionName:A.get("sectionName_advanced"),onChange:function(t,n){"automatic"===n?e.model.boardModel.properties.set({localCache:void 0}):e.model.boardModel.properties.set({localCache:n})}}},_addMultilingualProperties:function(e){var t=this,n=this.translationService.getDefaultLanguage(),o=A.get("tabName_general");return e.push({type:"SingleLineLinks",tabName:o,name:"Languages",sectionName:A.get("sectionName_advanced"),disabled:this.translationService.translationModeOn,items:[{align:"left",items:[{type:"text",value:A.get("multilingualDashboardsLabel")}]}]}),e.push(this._createLanguageRow(n,o,!0)),this.translationService.getSelectedLanguages().sort((function(e,n){return t.translationService.getLanguageName(e)>t.translationService.getLanguageName(n)?1:-1})).forEach((function(i){i!==n&&"Default"!==i&&e.push(t._createLanguageRow(i,o,!1))})),e.push({type:"SingleLineLinks",tabName:o,name:"addLanguage",sectionName:A.get("sectionName_advanced"),disabled:this.translationService.translationModeOn,items:[{align:"right",items:[{type:"text",value:A.get("multilingualDashboardsAddLinkText"),clickCallback:function(){t.launchLanguageSelectSlideout(null,!0)}}]}]}),e},_addLanguageSpecWhenNoLocaleSet:function(e){var t=this,n=A.get("tabName_general"),o=this.translationService.getDefaultLanguage();e.push({type:"SingleLineLinks",tabName:n,name:"language_"+o,sectionName:A.get("sectionName_advanced"),items:[{align:"left",items:[{type:"text",id:"text"+o,value:A.get("multilingualDashboardsLabel")}]},{align:"right",items:[{type:"text",value:A.get("multilingualDashboardsSetDefault"),clickCallback:function(){t.launchLanguageSelectSlideout(o,!1)}}]}]})},_createLanguageRow:function(e,t,n){var o=this,i=[],r=this.translationService.getLanguageName(e);return i.push({type:"text",id:"text"+e,value:n?A.get("multilingualDashboardsDefault",{defaultLanguage:r}):r}),i.push({type:"icon",svgIcon:"common-menuoverflow",iconTooltip:A.get("multilingualDashboardIconMore",{currentLanguage:r}),clickCallback:function(t){o.launchLanguageMenu(t,e)}}),{type:"SingleLineLinks",tabName:t,id:"language_"+e,sectionName:A.get("sectionName_advanced"),indent:2,disabled:this.translationService.translationModeOn,items:[{align:"left",items:[]},{align:"right",items:i}]}},launchLanguageSelectSlideout:function(e,t){var n=this,o=this.layoutController.canvasController.getExtension("propertiesManager");o.addChild({overlay:!0,label:A.get("multilingualSelectLanguage"),content:{module:"dashboard-core/js/dashboard/contentpane/PropertyUIControlView",items:[{value:A.get("multilingualSelectLanguage"),centerLabel:!0,type:"Banner",backButton:!0,ariaLabel:A.get("multilingualSelectLanguage")},{type:"RadioButtonGroup",name:"language",separator:!0,ariaLabel:A.get("multilingualSelectLanguage"),value:e,selectOnNavigation:!1,items:this.translationService.getLanguageRadioItems(),onChange:function(i,r){o.closeChild(),"Default"===e?n.translationService.changeDefaultLanguage(r):t?n.translationService.startTranslationMode(r):n.translationService.switchLanguage({from:e,to:r})}}]}})},launchLanguageMenu:function(e,t){var n={};void 0===e.pageX||e.gesture&&(void 0===e.gesture.center||void 0===e.gesture.center.pageX)?n=o(e.target).offset():(n.left=e.pageX||e.gesture.center.pageX,n.top=e.pageY||e.gesture.center.pageY),this.glassContext.appController.showContextMenu({position:{pageX:n.left,pageY:n.top},menuId:"com.ibm.bi.dashboard.languageMenu",activeObject:{selectedLocale:t,translationService:this.translationService,layoutBaseView:this}})},_isTopLevelPage:function(){return this.model&&this.layoutController.boardModel&&this.model===this.layoutController.boardModel.layout},getBannerProperty:function(){return{value:this._isTopLevelPage()?A.get("dashboardProperties"):A.get("settings"),name:"banner",type:"Banner",editable:!1}},_getCanvasProperties:function(){var e=[this._getLayoutPositioningSpec()];return e=(e=e.concat(this._getPageSizeSpec())).concat(this._getGridOptionsSpec())},_getLayoutPositioningSpec:function(){var e=this._getLayoutPositioning(),t=this._getLayoutPositioningSpecOptions(e),o=this;return{type:"DropDown",label:A.get("propLayoutPositioning"),name:"layoutPositioning",id:"layoutPositioning",defaultValue:e,options:t,tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),sectionPosition:1,coachMark:{render:function(e){n.addCoachmark({id:"com.ibm.bi.dashboard.dashboardCoreProperties.layoutPositioning",title:A.get("propLayoutPositioningCoachmarkTitle"),contents:A.get("propLayoutPositioningCoachmarkContent"),placement:"bottom",glassContext:e.glassContext,$el:e.$el})}},onChange:function(e,t){o._onChangeLayoutPosition(this,t)}}},_getLayoutPositioningSpecOptions:function(e){var t=[];return e||t.push({label:"",value:"undefined"}),t.push({label:A.get("propLayoutRelative"),value:"relative"},{label:A.get("propLayoutAbsolute"),value:"absolute"}),t},_getLayoutPositioning:function(){return this.model.getValueFromSelfOrParent("layoutPositioning")},_setLayoutPositioning:function(e){var t={undoRedoTransactionId:i.uniqueId("layout_layoutPositioningChange_")};this.model.set({layoutPositioning:e},{payloadData:t,sender:this.senderId}),this.onResize()},_setFitPageLayoutPositioning:function(e,t){var n={undoRedoTransactionId:i.uniqueId("layout_layoutPositioningChange_")};this.model.set({layoutPositioning:e,fitPage:t},{payloadData:n,sender:this.senderId}),this.onResize()},_onChangeLayoutPosition:function(e,t){var n=this;if(this._getLayoutPositioning())if("absolute"===t)this.eventRouter.trigger("properties:updateEnabled",{propertyName:"fitPage",enabled:!1}),this.eventRouter.trigger("properties:setValue",{propertyName:"fitPage",value:!1}),this._setFitPageLayoutPositioning(t,!1);else{this.eventRouter.trigger("properties:updateEnabled",{propertyName:"fitPage",enabled:!0});var o=this.model.get("pageSize"),i=this._getPageSizePreset(o.width,o.height);"16:9"===i||"4:3"===i?(this.eventRouter.trigger("properties:setValue",{propertyName:"fitPage",value:!0}),this._setFitPageLayoutPositioning(t,!0)):(this.eventRouter.trigger("properties:setValue",{propertyName:"fitPage",value:!1}),this._setFitPageLayoutPositioning(t,!1))}else{new u("warning",A.get("confirmLayoutStyleUpgradeTitle"),A.get("confirmLayoutStyleUpgrade")).confirm((function(){n._setLayoutPositioning(t),n.eventRouter.trigger("properties:refreshPane")}),(function(){e._lastChangedValue="undefined",e.setValue("undefined")}))}},_getGridOptionsSpec:function(){var e=this;return[{type:"SectionLabel",label:A.get("gridLabel"),id:"gridLabel",name:"gridLabel",tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas")},{type:"ToggleButton",label:A.get("gridText"),name:"showGrid",id:"showGrid",checked:void 0!==this.model.get("showGrid")&&this.model.get("showGrid"),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),onChange:function(t,n){e.model.set({showGrid:n})}},{type:"ToggleButton",label:A.get("snapText"),name:"snapGrid",id:"snapGrid",checked:void 0!==this.model.get("snapGrid")&&this.model.get("snapGrid"),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),onChange:function(t,n){e.model.set({snapGrid:n})}},{type:"ToggleButton",label:A.get("snapObjectsText"),name:"snapObjects",id:"snapObjects",checked:void 0===this.model.get("snapObjects")||this.model.get("snapObjects"),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),onChange:function(t,n){e.model.set({snapObjects:n})}}]},_getPageSizePreset:function(e,t){var n="custom",o=parseInt(e,10),i=parseInt(t,10);for(var r in p)if(p.hasOwnProperty(r)){var A=p[r];if(A.width===o&&A.height===i){n=r;break}}return n},_wrapPageSizeTextProperty:function(){var e=this;return function(){var t=[e].concat(Array.prototype.slice.call(arguments));e._pageSizeTextOnChange.apply(this,t)}},_pageSizeTextOnChange:function(e,t,n){if(this.propertiesManagerChange)this.onChangeValueHold=n;else{var o=parseInt(n,10),r=e.model,a="pageSizeWidth"===t?"width":"height",s={};r.pageSize&&(s=i.extend(s,r.pageSize)),isNaN(o)||s[a]===o||(s[a]=o,o=(s=e._setPageSize(s))[a]);var l=["pageSizeSplit",t];isNaN(o)?e.eventRouter.trigger("properties:setValue",{propertyName:l,value:this.onChangeValueHold}):n!==this.onChangeValueHold&&(this.onChangeValueHold=h.getPropertyDisplayString(o,A.get("pixelUnit"),!0),e.eventRouter.trigger("properties:setValue",{propertyName:l,value:this.onChangeValueHold}))}},_setPageSize:function(e,t){var n=this.model,o=!1,i=d.getBoundingPageSize(n,f);return i&&((isNaN(e.width)||i.width>e.width)&&(e.width=i.width,o=!0),(isNaN(e.height)||i.height>e.height)&&(e.height=i.height,o=!0),o&&this.layoutController.glassContext.appController.showToast(A.get("propPageSizeAdjustedMessage"),{type:"info"})),n.set({pageSize:e},{payloadData:{undoRedoTransactionId:t}}),this.onResize(),e},_getPageSizeDisplayValues:function(){var e=this.model,t=e.pageSize&&e.pageSize.width?h.getPropertyDisplayString(e.pageSize.width,A.get("pixelUnit"),!0):"",n=e.pageSize&&e.pageSize.height?h.getPropertyDisplayString(e.pageSize.height,A.get("pixelUnit"),!0):"";return{width:t,height:n,preset:this._getPageSizePreset(t,n)}},onPageSizeChange:function(){var e=this._getPageSizeDisplayValues();this.eventRouter.trigger("properties:setValue",{propertyName:["pageSizeSplit","pageSizeWidth"],value:e.width}),this.eventRouter.trigger("properties:setValue",{propertyName:["pageSizeSplit","pageSizeHeight"],value:e.height}),this.eventRouter.trigger("properties:setValue",{propertyName:"pageSizePreset",value:e.preset})},_getPageSizeSpec:function(){var e=this,t=this._getPageSizeDisplayValues();return[{type:"SectionLabel",id:"pageSizeLabel",name:"pageSizeLabel",label:A.get("propPageSizeLabel"),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas")},{type:"DropDown",label:A.get("propPageSizePreset"),ariaLabel:A.get("propPageSizePresetAriaLabel"),name:"pageSizePreset",id:"pageSizePreset",readOnly:!1,defaultValue:t.preset,options:[{label:A.get("propPageSizePresetCustom"),value:"custom"},{label:A.get("propPageSizePreset16x9"),value:"16:9"},{label:A.get("propPageSizePreset4x3"),value:"4:3"},{label:A.get("letter"),value:"letter"},{label:A.get("legal"),value:"legal"},{label:A.get("a4"),value:"a4"},{label:A.get("tabloid"),value:"tabloid"},{label:A.get("propPageSizePresetInfographic"),value:"infographic"}],onChange:this._onChangePageSizePreset.bind(this),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),sectionPosition:1},{type:"ToggleButton",label:A.get("fitPageText"),name:"fitPage",id:"fitPage",checked:this.getFitPage(),tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),onChange:function(t,n){e.model.set({fitPage:n})}},{type:"Split",name:"pageSizeSplit",id:"pageSizeSplit",tabName:A.get("tabName_general"),sectionName:A.get("sectionName_canvas"),items:[{align:"left",items:[{type:"InputLabel",label:A.get("propPageSizeWidth"),ariaLabel:A.get("propPageSizeWidthAriaLabel"),name:"pageSizeWidth",id:"pageSizeWidth",readOnly:!1,value:t.width,onChangeValueHold:t.width,multiline:!0,handleReturnKey:!0,onChange:this._wrapPageSizeTextProperty()}]},{align:"right",items:[{type:"InputLabel",label:A.get("propPageSizeHeight"),ariaLabel:A.get("propPageSizeHeightAriaLabel"),name:"pageSizeHeight",id:"pageSizeHeight",readOnly:!1,value:t.height,onChangeValueHold:t.height,multiline:!0,handleReturnKey:!0,onChange:this._wrapPageSizeTextProperty()}]}]}]},_onChangePageSizePreset:function(e,t){var n=p[t];if(n){var o={undoRedoTransactionId:i.uniqueId("layout_layoutPageSizeChange_")},r=this.model;if("absolute"!==r.get("layoutPositioning")){var A="16:9"===t||"4:3"===t;r.set({fitPage:A},{payloadData:o}),this.eventRouter.trigger("properties:setValue",{propertyName:"fitPage",value:A})}r.pageSize&&r.pageSize.width===n.width&&r.pageSize.height===n.height||this._setPageSize({width:n.width,height:n.height},o.undoRedoTransactionId)}},getFitPage:function(){var e=!1;return"absolute"!==this.model.getValueFromSelfOrParent("layoutPositioning")&&(e=this.model.getValueFromSelfOrParent("fitPage")||!1),e},_fetchThemes:function(){var e=this;return this._themeListing?Promise.resolve(this._themeListing):(this._themeListing=[],r.loadModule("text!dashboard-core/js/lib/@waca/dashboard-common/dist/themes/themeListing.json").then((function(t){var n=JSON.parse(t);return i.each(n.themes,(function(t){e._themeListing.push({label:A.get(t.name+"Label"),value:t.name})})),e._themeListing}),(function(){return e._themeListing=[],e._themeListing})))},reduce:function(e,t){return t=e(this,t),this.model.items&&this.model.items.forEach((function(n){var o=this.layoutController.getLayoutView(n.id);o&&o.reduce&&(t=o.reduce(e,t))}),this),t},setLoading:function(e){return this._$loadingIndicatorBlocker||e?(this._$loadingIndicatorBlocker||(this._$loadingIndicatorBlocker=o("
")),e?(this.$el.append(this._$loadingIndicatorBlocker),s.render(l({size:"normal",variant:"circle"}),this._$loadingIndicatorBlocker[0])):(s.unmountComponentAtNode(this._$loadingIndicatorBlocker[0]),this._$loadingIndicatorBlocker.remove(),this._$loadingIndicatorBlocker=null),Promise.resolve(null)):Promise.resolve(null)},getSelectedSubViewId:function(){return this.id},getSelectedSubViewTitle:function(){return null},getSelfRatio:function(){return{width:1/(this.parentLayout.model.getVisualizations().length||1),height:1}},getParentLayout:function(){return this.parentLayout.getAPI()},getAPI:function(){return this.api.getAPI()},render:function(e){this.onShow(e)}});return m})),define("dashboard-core/js/dashboard/layout/views/PageCollectionView",["./LayoutBaseView","../../../lib/@waca/core-client/js/core-client/utils/EventHelper"],(function(e){var t=null;return t=e.extend({init:function(){t.inherited("init",this,arguments),this._started=!0}})})),define("dashboard-core/js/dashboard/util/ColorUtils",[],(function(){return new function(){return{invertColor:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:180,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this._convertRGBToYUV(e);i.y=this._validateColor(i.y+(i.y>n?-t:t));var r=this._convertYUVToRGB(i);return o?r:this.contrastRatio(e,r)<4.5?this.contrastRatio(e,"#FFFFFF")<4.5?"#000000":"#FFFFFF":r},_convertRGBToYUV:function(e){var t=parseInt(e.substring(1,3),16),n=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5),16);return{y:this._validateColor(.299*t+.587*n+.114*o),u:this._validateColor(-.16874*t+-.33126*n+.5*o+128),v:this._validateColor(.5*t+-.41869*n+-.08131*o+128)}},_convertYUVToRGB:function(e){var t=this._validateColor(e.y+1.402*(e.v-128)),n=this._validateColor(e.y+-.34414*(e.u-128)+-.71414*(e.v-128)),o=this._validateColor(e.y+1.772*(e.u-128));return"#"+(t<16?"0"+t.toString(16):t.toString(16))+(n<16?"0"+n.toString(16):n.toString(16))+(o<16?"0"+o.toString(16):o.toString(16))},_validateColor:function(e){return e<0?0:e>255?255:Math.floor(e)},luminance:function(e){var t=parseInt(e.substring(1,3),16),n=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5),16);return n/=255,o/=255,.2126*(t=(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(o=o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))},contrastRatio:function(e,t){var n=this.luminance(e),o=this.luminance(t);return n>o?(n+.05)/(o+.05):(o+.05)/(n+.05)}}}})),define("dashboard-core/js/app/ui/dialogs/ConfirmationDialog",["../../../lib/@waca/dashboard-common/dist/ui/dialogs/MessageBox"],(function(e){var t=null;return t=e.extend({_buttons:["ok","cancel"],_confirmCallback:null,_cancelCallback:null,confirm:function(e,n){this._confirmCallback=e,this._cancelCallback=n,t.inherited("open",this)},ok:function(){t.inherited("ok",this,arguments),this._confirmCallback&&this._confirmCallback()},cancel:function(){t.inherited("cancel",this,arguments),this._cancelCallback&&this._cancelCallback()}})})),define("dashboard-core/js/dashboard/layout/views/Tab",["./PageCollectionView","jquery","underscore","react","react-dom","corsair_ship/ba-react-html5-dnd","ca-ui-toolkit","../../util/ColorUtils","../../../app/nls/StringResources","../../widgets/PropertiesUtil","../../../app/ui/dialogs/ConfirmationDialog","../../../app/util/EventChainLocal","../../../lib/@waca/core-client/js/core-client/utils/BidiUtil"],(function(e,t,n,o,i,r,A,a,s,l,c,d,u){var h={top:"bottom",left:"right",bottom:"top",right:"left"},g=[{modelPropertyName:"tabTextColor",toolkitPropertyName:"textColor"},{modelPropertyName:"tabSelectedLineColor",toolkitPropertyName:"lineColor"},{modelPropertyName:"tabBackgroundColor",toolkitPropertyName:"backgroundColor"},{modelPropertyName:"tabIconColor",toolkitPropertyName:"iconColor"}],f=null;return f=e.extend({init:function(e){f.inherited("init",this,arguments),this.eventRouter=e.eventRouter,this.canvas=e.canvas,this.colorsService=this.dashboardApi.getFeature("Colors"),this._icons=this.dashboardApi.getFeature("Icons"),this._dashboardState=this.dashboardApi.getFeature("DashboardState"),this._registerEvents(),this.initialTab=this.model.items[0],e.appSettings&&e.appSettings.subView&&n.each(this.model.items,function(t){t.id===e.appSettings.subView&&(this.initialTab=t)}.bind(this)),this._setTabsVisibility(),this._TabsWidget=null,Object.defineProperty(this,"tabWidget",{get:function(){return this._TabsWidget}})},renderContent:function(){var e=this;return this.rendered?Promise.resolve(!1):f.inherited("renderContent",this,arguments).then((function(){e._renderTabs(e.initialTab.id),e.showView(e.initialTab),e.canvas.selectContent([e.initialTab.id]),e.rendered=!0}))},destroy:function(){this._unregisterEvents(),i.unmountComponentAtNode(this.$el.find(".tabCntr")[0]),t(".tabLabel",this.$el).remove(),f.inherited("destroy",this,arguments)},_registerEvents:function(){this.colorsService&&(this.colorsService.on("theme:changed",this.applyTheme,this),this.colorsService.on("colorSet:changed",this.applyTheme,this)),this.model&&(this.model.on("change:tabTextColor",this.applyTheme,this),this.model.on("change:tabSelectedLineColor",this.applyTheme,this),this.model.on("change:tabBackgroundColor",this.applyTheme,this),this.content.on("add:child",this.onTabAdded,this),this.content.on("remove:child",this.onTabRemoved,this),this.model.on("change:hideTab",this.updateHideTabState,this),this.model.on("change:fillColor",this.applyTheme,this),this.model.on("change:tabPosition",this.updateTabPosition,this),this.model.on("change:tabIconPosition",this.updateTabIconPosition,this)),this.eventRouter&&this.eventRouter.on("properties:hasRendered",this.setInitialEnabledState,this),this.canvas.on("change:selections:select",this.onSelection,this),this._boundSetTabsVisibility=this._setTabsVisibility.bind(this),this._dashboardState.onUiStateChange(this._boundSetTabsVisibility)},_unregisterEvents:function(){this.colorsService&&(this.colorsService.off("theme:changed",this.applyTheme,this),this.colorsService.off("colorSet:changed",this.applyTheme,this)),this.model&&(this.model.off("change:tabTextColor",this.applyTheme,this),this.model.off("change:tabSelectedLineColor",this.applyTheme,this),this.model.off("change:tabBackgroundColor",this.applyTheme,this),this.content.off("add:child",this.onTabAdded,this),this.content.off("remove:child",this.onTabRemoved,this),this.model.off("change:hideTab",this.updateHideTabState,this),this.model.off("change:fillColor",this.applyTheme,this),this.model.off("change:tabPosition",this.updateTabPosition,this),this.model.off("change:tabIconPosition",this.updateTabIconPosition,this)),this.eventRouter&&this.eventRouter.off("properties:hasRendered",this.setInitialEnabledState,this),this.canvas.off("change:selections:select",this.onSelection,this),this._dashboardState.offUiStateChange(this._boundSetTabsVisibility)},_getPanelId:function(e){return e+"_tabpanel"},_getModelIdFromPanel:function(e){return e.slice(0,-9)},_getDefaultLinePostion:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"top";return h[e]},_getDashboardColorProperties:function(){var e=this,t={};return g.forEach((function(o){n.extend(t,e._getColorProperty(e.model,o))})),t},_getColorProperty:function(e,t){var o=t.modelPropertyName,i={},r=e.get("tabBackgroundColor")||e.get("fillColor"),A=this.colorsService.getForegroundColorPropertiesForUIElement(r,"tabs"),a=null;if(t&&e.get(o)&&(a=this.colorsService.getHexColorFromDashboardColorSet(e.get(o))),a||"tabBackgroundColor"!==t.modelPropertyName||(a=this.colorsService.getHexColorFromDashboardColorSet(r)),t&&a)i[t.toolkitPropertyName]=a;else if(t){var s=n.find(A,(function(e){return e.id===o}));s&&(i[t.toolkitPropertyName]=s.value)}return i},_getColorProperties:function(e){var t=this,o=this._getDashboardColorProperties();if(e){var i=this._getChangedPageColorPropertyList(e);if(i.length>0){i.find((function(e){return"tabBackgroundColor"===e.modelPropertyName}))&&(i=g),i.forEach((function(i){var r=t._getColorProperty(e,i);n.extend(o,r)}))}e.get("tabIconColor")||(o.iconColor=o.textColor)}return this._setDeleteColors(o),o},_setDeleteColors:function(e){var t=e.backgroundColor;"transparent"===t&&(t=this.colorsService.getValueForPropertyOfUIElement("board","backgroundColor")),t&&(e.hoverColor=a.invertColor(t,20,100,!0),e.deleteBackgroundColor=a.invertColor(t,40,100,!0),e.deleteIconColor=e.textColor)},_createTabPanel:function(e,i,r){var a=this,s=A.TabPanel,l=e.get("tabIcon"),c=l&&"transparent"!==l?this._icons.getIcon(l).id:null,d={id:this._getPanelId(e.id),label:e.get("title"),icon:c,keepTabContent:!0,tooltipOrient:"top"};return n.extend(d,r),o.createElement(s,d,[o.createElement("div",{ref:function(e){e?t(e).append(i):a.$el.find(".tabPageHolder").append(i)}})])},_renderTabs:function(e){var a=this,s=A.Tabs,l=[],c=[];this.model.items.forEach((function(e){var t=a._getColorProperties(e),n=a.$el.find("#"+e.id+"_tab"),o=a._createTabPanel(e,n,t);l.push(o),c.push(o)}));var d=this.model.get("tabPosition"),h=this.model.get("tabIconPosition"),g=this,f=function(i){function r(t){_classCallCheck(this,r);var n=_possibleConstructorReturn(this,i.call(this,t));return n.state={selectedTab:g._getPanelId(e),tabs:l,editable:!1,vertical:!0,draggable:!1,addable:!1,deleteable:!1,placement:d||"top",linePosition:g._getDefaultLinePostion(d),tabIconPosition:h},n._tabsMirror=c,n._icons=g._icons,n.tabListNode=null,n.toolBarElementsList=[],n}return _inherits(r,i),r.prototype.componentDidUpdate=function(e,t){this._updatedTabs&&(this._updatedTabs=!1,this.state.tabs.length-1)return this._TabsWidget.state.tabs[t]}return null},_getEventModelInfo:function(e){var n=this,o=void 0,i=t(e.target),r=i.closest("[role=tab]")[0],A=i.is("svg.is-clickable")&&i.closest("span").hasClass("close");if(r&&!A){var a=this._getPanelFromNode(r);if(a){var s=a.props.id;o={selected:this._TabsWidget.state.selectedTab===s,node:r,model:this.model.findModel(this._getModelIdFromPanel(s)),editing:function(){return n._TabsWidget.state.editable}}}}return o},_tabClick:function(e){var n=this;new d(e).setProperty("preventDefaultContextBar",!0);var o=this._getEventModelInfo(e);o&&o.selected&&!o.editing()&&setTimeout((function(){t(o.node).closest(".ba-common-tabList").length&&!o.editing()&&n.showToolbar(o.model,o.node)}),10)},_tabKeydown:function(e){var t=this._getEventModelInfo(e);t&&t.selected&&this._handleKeydown(t.model,e,t.node)},_tabDoubleClick:function(e){var n=this,o=this._getEventModelInfo(e);o&&o.selected&&!o.editing()&&setTimeout((function(){t(o.node).closest(".ba-common-tabList").length&&n.editViewTitle(o.model)}),50)},_attachView:function(){},onAddClick:function(){},onReorder:function(){},onDeletePrompt:function(e){var t=new c("none",s.get("tabDeleteDialogTitle"),s.get("tabDeleteDialogMessage"));t.setDialogOptions({buttons:[{text:s.get("tabDeleteDialogNoButton"),handler:t.cancel,type:"primary",defaultId:"no_button"},{text:s.get("tabDeleteDialogYesButton"),handler:t.ok,type:"secondary",defaultId:"yes_button"}]}),t.confirm(e)},deleteView:function(){},updateViewLabel:function(){},getSelectedSubViewId:function(){return this.selectedModel.id},onSelection:function(e){var t=this;e.info.value.forEach((function(e){var n=t.canvas,o=n.getContent(e);o&&"page"===o.getType()&&(t.selectedModel&&t.selectedModel.id!==e&&n.deselectContent([t.selectedModel.id]),t._TabsWidget.setState({selectedTab:t._getPanelId(e)}))}))},getSelectedSubViewTitle:function(){return this.selectedModel.get("title")},showView:function(e){var n=this._getViewId(e);if(this._currentViewId!==n){if(this.selectedModel){var o=this.layoutController.getLayoutView(this.selectedModel.id);o&&o.onHide()}return this.$el.find(".pageTabContent.selected").removeClass("selected"),t("#"+n,this.$el).addClass("selected"),this._currentViewId=n,this.selectedModel=e,this._TabsWidget.setState({selectedTab:this._getPanelId(this.selectedModel.id)}),this.eventRouter.trigger("tab:tabChanged",{modelId:this.selectedModel.id}),this.layoutController.getLayoutViewWhenReady(this.selectedModel.id).then(function(t){return t.onShow(),this._invokeLifeCycleHandlers("tabs.onShow",{$el:this.$el,model:e}).then(function(){}.bind(this))}.bind(this))}},_getLabelId:function(e){return e.id+"_tablabel"},_handleKeydown:function(){},showToolbar:function(){},editViewTitle:function(){},_showView:function(e){this.showView(e)},_getViewId:function(e){return e.id+"_tab"},_invokeLifeCycleHandlers:function(e,t){return this.dashboardApi.getDashboardSvc(".LifeCycleManager").then((function(n){return n.invokeLifeCycleHandlers(e,t)}))},applyTheme:function(){this._TabsWidget.updateTheme()},onTabAdded:function(e){var t=this;this._updateHideTabProperty();var n=this.canvas.getContent(e.info.newContentId).getFeature("state");return n.whenStatusChanges(n.STATUS.RENDERED).then((function(){t._TabsWidget.updateTheme(),t.eventRouter.trigger("properties:refreshPane")}))},onTabRemoved:function(){this._updateHideTabProperty(),this.eventRouter.trigger("properties:refreshPane")},_updateHideTabProperty:function(){if(!this.content.getPropertyValue("allowHidingMultipleTabs")){var e=this.model.items.length>1;this.eventRouter.trigger("properties:updateEnabled",{propertyName:"showTabsInPreview",enabled:!e}),e&&this.content.setPropertyValue("showTabsInPreview",!0)}},updateHideTabState:function(){var e=!this.model.get("hideTab");this.eventRouter.trigger("properties:setValue",{propertyName:"showTabsInPreview",value:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabPosition",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabIconPosition",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabTextColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabSelectedLineColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabBackgroundColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabRestoreDefaults",enabled:e}),this._setTabsVisibility()},updateTabPosition:function(e){if(this._TabsWidget&&e){var t=e.value||"top";this._TabsWidget.setState({placement:t,linePosition:this._getDefaultLinePostion(t)});var n={propertyName:"tabPosition",value:t};this.eventRouter.trigger("properties:setValue",n)}},updateTabIconPosition:function(e){if(this._TabsWidget&&e&&e.value){var t=e.value;this._TabsWidget.setState({tabIconPosition:t})}},setInitialEnabledState:function(){var e=!this.model.get("hideTab");this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabPosition",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabIconPosition",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabTextColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabSelectedLineColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabBackgroundColor",enabled:e}),this.eventRouter.trigger("properties:updateEnabled",{propertyName:"tabRestoreDefaults",enabled:e})},updateState:function(e){this._TabsWidget.hasUnmounted||this._TabsWidget.setState(e)},_onTabColorChange:function(e,t){var o=this.model,i={undoRedoTransactionId:n.uniqueId("layout_"+e+"Changed_")},r={};r[e]="transparent"==t.name?null:t.name,this.colorsService.prepareForColorModelChange(r,e),o.set(r,{sender:this.senderId,payloadData:i})},_getChangedPageColorPropertyList:function(e){return g.filter((function(t){return e.get(t.modelPropertyName)}))},_setTabsVisibility:function(){var e=!this.content.getPropertyValue("showTabsInPreview")&&!this._dashboardState.getUiState().authoring;this.$el.toggleClass("tabsHidden",e)}})})),define("dashboard-core/js/dashboard/layout/views/GenericPage",["./LayoutBaseView","jquery"],(function(e,t){var n=e.extend({aspectRatio:0,init:function(){n.inherited("init",this,arguments),this.layoutController.topLayoutModel.on("change:pageSize",this._onChangePageSize,this),this.layoutController.topLayoutModel.on("change:fitPage",this._onFitPage,this),this.layoutController.topLayoutModel.on("change:layoutPositioning",this._onChangeLayoutPositioning,this),this._setPageLayoutStyling()},destroy:function(){this.layoutController.topLayoutModel.off("change:pageSize",this._onChangePageSize,this),this.layoutController.topLayoutModel.off("change:fitPage",this._onFitPage,this),this.layoutController.topLayoutModel.off("change:layoutPositioning",this._onChangeLayoutPositioning,this);var e=this.layoutController.topLayoutModel.findDescendantsWithType("genericPage");0===e.length&&this._clearPageSize(),n.inherited("destroy",this,arguments)},onShow:function(){n.inherited("onShow",this,arguments),this.$el.is(":visible")&&(this._setPageFitStyling(),this._applyPageSize(),this._setPageLayoutStyling())},_applyPageSize:function(){var e=this._getLayoutPositioning();if("absolute"===e){var t=this.model.getValueFromSelfOrParent("pageSize");this._setAbsolutePageSize(t)}else if("relative"===e){var n=this.model.getValueFromSelfOrParent("pageSize");this._setRelativeAspectRatio(n)}},_clearPageSize:function(e){var t=e||this._getLayoutPositioning();"absolute"===t?this.$el.css({width:"",height:""}):"relative"===t&&this._removeDynamicStyles("dashboardRelativeAspectRatio")},_getLayoutPositioning:function(){return this.model.getLayoutPositioning(!1)},_onChangePageSize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.$el.is(":visible")&&(this._clearPageSize(e.prevValue),this._applyPageSize())},_onFitPage:function(){this.$el.is(":visible")&&(this._setPageFitStyling(),this._onChangePageSize()),this.onResize()},_onChangeLayoutPositioning:function(e){this._clearPageSize(e.prevValue),this.$el.is(":visible")&&(this._setPageLayoutStyling(),this._setPageFitStyling(),this._applyPageSize()),this.onResize()},_setPageFitStyling:function(){var e="relative"===this._getLayoutPositioning()&&this.getFitPage();this.$el.toggleClass("fitToPage",e)},_setPageLayoutStyling:function(){var e="relative"===this._getLayoutPositioning();this.$el.toggleClass("templateBox",e)},_setAbsolutePageSize:function(e){this.$el.width(e.width),this.$el.height(e.height)},_setRelativeAspectRatio:function(e){this.aspectRatio=e.height/e.width,this.getFitPage()?this._addAspectRatioForFitToPage():this._createStyleNode(".aspectRatio_default:before { padding-top:"+100*this.aspectRatio+"%; }","dashboardRelativeAspectRatio")},onResize:function(){if(this.$el.is(":visible")){var e=this.getFitPage();e&&this._addAspectRatioForFitToPage()}n.inherited("onResize",this,arguments)},_addAspectRatioForFitToPage:function(){var e=this.$el.parent().height(),t=this.$el.parent().width(),n=".page.pagecontainer .pagegenericPage { width: "+t+"px; height:"+this.aspectRatio*t+"px; max-height: "+e+"px; max-width:"+1/this.aspectRatio*e+"px;}";this._createStyleNode(n,"dashboardRelativeAspectRatio")},_createStyleNode:function(e,n){if(t("#"+n).html()!==e){this._removeDynamicStyles(n);var o=t('');o.html(e),o.appendTo("head")}},_removeDynamicStyles:function(e){t("#"+e).remove()}});return n})),define("dashboard-core/js/dashboard/layout/views/SinglePage",["./LayoutBaseView"],(function(e){var t=null;return t=e.extend({init:function(){t.inherited("init",this,arguments),this.layoutController.layoutReady(this.model.id).done(function(){this.layoutController.getLayoutView(this.model.id).onShow()}.bind(this))},getSelectedLayout:function(){return this.model.items[0]}})})),define("dashboard-core/js/dashboard/layout/views/all",["./LayoutBaseView","./Tab","./GenericPage","./SinglePage"],(function(){})),function(e){"function"==typeof define&&define.amd?define("dashboard-core/js/lib/@waca/textwidget/dist/summernote",["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}((function($){"use strict";var func=(idCounter=0,{eq:function(e){return function(t){return e===t}},eq2:function(e,t){return e===t},peq2:function(e){return function(t,n){return t[e]===n[e]}},ok:function(){return!0},fail:function(){return!1},self:function(e){return e},not:function(e){return function(){return!e.apply(e,arguments)}},and:function(e,t){return function(n){return e(n)&&t(n)}},invoke:function(e,t){return function(){return e[t].apply(e,arguments)}},uniqueId:function(e){var t=++idCounter+"";return e?e+t:t},rect2bnd:function(e){var t=$(document);return{top:e.top+t.scrollTop(),left:e.left+t.scrollLeft(),width:e.right-e.left,height:e.bottom-e.top}},invertObject:function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t},namespaceToCamel:function(e,t){return(t=t||"")+e.split(".").map((function(e){return e.substring(0,1).toUpperCase()+e.substring(1)})).join("")},debounce:function(e,t,n){var o;return function(){var i=this,r=arguments,A=function(){o=null,n||e.apply(i,r)},a=n&&!o;clearTimeout(o),o=setTimeout(A,t),a&&e.apply(i,r)}}}),idCounter,list=(head=function(e){return e[0]},last=function(e){return e[e.length-1]},tail=function(e){return e.slice(1)},indexOf=function(e,t){return $.inArray(t,e)},contains=function(e,t){return-1!==indexOf(e,t)},{head:head,last:last,initial:function(e){return e.slice(0,e.length-1)},tail:tail,prev:function(e,t){var n=indexOf(e,t);return-1===n?null:e[n-1]},next:function(e,t){var n=indexOf(e,t);return-1===n?null:e[n+1]},find:function(e,t){for(var n=0,o=e.length;n").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body),o=n.css("fontFamily",t).width(),i=n.css("fontFamily",e+","+t).width();return n.remove(),o!==i},userAgent=navigator.userAgent,isMSIE=/MSIE|Trident/i.test(userAgent),browserVersion;if(isMSIE){var matches=/MSIE (\d+[.]\d+)/.exec(userAgent);matches&&(browserVersion=parseFloat(matches[1])),matches=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(userAgent),matches&&(browserVersion=parseFloat(matches[1]))}var isEdge=/Edge\/\d+/.test(userAgent),hasCodeMirror=!!window.CodeMirror;if(!hasCodeMirror&&isSupportAmd&&"undefined"!=typeof require)if(void 0!==require.resolve)try{require.resolve("codemirror"),hasCodeMirror=!0}catch(e){}else void 0!==eval("require").specified&&(hasCodeMirror=eval("require").specified("codemirror"));var agent={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:isMSIE,isEdge:isEdge,isFF:!isEdge&&/firefox/i.test(userAgent),isPhantom:/PhantomJS/i.test(userAgent),isWebkit:!isEdge&&/webkit/i.test(userAgent),isChrome:!isEdge&&/chrome/i.test(userAgent),isSafari:!isEdge&&/safari/i.test(userAgent),browserVersion:browserVersion,jqueryVersion:parseFloat($.fn.jquery),isSupportAmd:isSupportAmd,hasCodeMirror:hasCodeMirror,isFontInstalled:isFontInstalled,isW3CRangeSupport:!!document.createRange},NBSP_CHAR=String.fromCharCode(160),ZERO_WIDTH_NBSP_CHAR="\ufeff",dom=(isEditable=function(e){return e&&$(e).hasClass("note-editable")},makePredByNodeName=function(e){return e=e.toUpperCase(),function(t){return t&&t.nodeName.toUpperCase()===e&&!((n=t.className)&&-1!==n.toUpperCase().indexOf("TEXTFITTED"));var n}},isText=function(e){return e&&3===e.nodeType},isVoid=function(e){return e&&/^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(e.nodeName.toUpperCase())},isPara=function(e){return!isEditable(e)&&e&&/^DIV|^P|^LI|^H[1-7]/.test(e.nodeName.toUpperCase())},isPre=makePredByNodeName("PRE"),isLi=makePredByNodeName("LI"),isTable=makePredByNodeName("TABLE"),isData=makePredByNodeName("DATA"),isInline=function(e){return!(isBodyContainer(e)||isList(e)||isHr(e)||isPara(e)||isTable(e)||isBlockquote(e)||isData(e))},isList=function(e){return e&&/^UL|^OL/.test(e.nodeName.toUpperCase())},isHr=makePredByNodeName("HR"),isCell=function(e){return e&&/^TD|^TH/.test(e.nodeName.toUpperCase())},isBlockquote=makePredByNodeName("BLOCKQUOTE"),isBodyContainer=function(e){return isCell(e)||isBlockquote(e)||isEditable(e)},isAnchor=makePredByNodeName("A"),isBody=makePredByNodeName("BODY"),blankHTML=agent.isMSIE&&agent.browserVersion<11?" ":"
",nodeLength=function(e){return isText(e)?e.nodeValue.length:e?e.childNodes.length:0},isEmpty=function(e){var t=nodeLength(e);return 0===t||!(isText(e)||1!==t||e.innerHTML!==blankHTML&&e.firstChild.innerHTML!==blankHTML)||!(!list.all(e.childNodes,isText)||""!==e.innerHTML)},paddingBlankHTML=function(e){isVoid(e)||nodeLength(e)||(e.innerHTML=blankHTML)},ancestor=function(e,t){for(;e;){if(t(e))return e;if(isEditable(e))break;e=e.parentNode}return null},listAncestor=function(e,t){t=t||func.fail;var n=[];return ancestor(e,(function(e){return isEditable(e)||n.push(e),t(e)})),n},listNext=function(e,t){t=t||func.fail;for(var n=[];e&&!t(e);)n.push(e),e=e.nextSibling;return n},insertAfter=function(e,t){var n=t.nextSibling,o=t.parentNode;return n?o.insertBefore(e,n):o.appendChild(e),e},appendChildNodes=function(e,t){return $.each(t,(function(t,n){e.appendChild(n)})),e},isLeftEdgePoint=function(e){return 0===e.offset},isRightEdgePoint=function(e){return e.offset===nodeLength(e.node)},isEdgePoint=function(e){return isLeftEdgePoint(e)||isRightEdgePoint(e)},isLeftEdgeOf=function(e,t){for(;e&&e!==t;){if(0!==position(e))return!1;e=e.parentNode}return!0},isRightEdgeOf=function(e,t){if(!t)return!1;for(;e&&e!==t;){if(position(e)!==nodeLength(e.parentNode)-1)return!1;e=e.parentNode}return!0},position=function(e){for(var t=0;e=e.previousSibling;)t+=1;return t},hasChildren=function(e){return!!(e&&e.childNodes&&e.childNodes.length)},prevPoint=function(e,t){var n,o;if(0===e.offset){if(isEditable(e.node))return null;n=e.node.parentNode,o=position(e.node)}else hasChildren(e.node)?(n=e.node.childNodes[e.offset-1],o=nodeLength(n)):(n=e.node,o=t?0:e.offset-1);return{node:n,offset:o}},nextPoint=function(e,t){var n,o;if(nodeLength(e.node)===e.offset){if(isEditable(e.node))return null;n=e.node.parentNode,o=position(e.node)+1}else hasChildren(e.node)?(n=e.node.childNodes[e.offset],o=0):(n=e.node,o=t?nodeLength(e.node):e.offset+1);return{node:n,offset:o}},isSamePoint=function(e,t){return e.node===t.node&&e.offset===t.offset},splitNode=function(e,t){var n=t&&t.isSkipPaddingBlankHTML,o=t&&t.isNotSplitEdgePoint;if(isEdgePoint(e)&&(isText(e.node)||o)){if(isLeftEdgePoint(e))return e.node;if(isRightEdgePoint(e))return e.node.nextSibling}if(isText(e.node))return e.node.splitText(e.offset);var i=e.node.childNodes[e.offset],r=insertAfter(e.node.cloneNode(!1),e.node);return appendChildNodes(r,listNext(i)),n||(paddingBlankHTML(e.node),paddingBlankHTML(r)),r},splitTree=function(e,t,n){var o=listAncestor(t.node,func.eq(e));return o.length?1===o.length?splitNode(t,n):o.reduce((function(e,o){return e===t.node&&(e=splitNode(t,n)),splitNode({node:o,offset:e?dom.position(e):nodeLength(o)},n)})):null},create=function(e){return document.createElement(e)},remove=function(e,t){if(e&&e.parentNode){if(e.removeNode)return e.removeNode(t);var n=e.parentNode;if(!t){var o,i,r=[];for(o=0,i=e.childNodes.length;o"+blankHTML+"

",makePredByNodeName:makePredByNodeName,isEditable:isEditable,isControlSizing:function(e){return e&&$(e).hasClass("note-control-sizing")},isText:isText,isElement:function(e){return e&&1===e.nodeType},isVoid:isVoid,isPara:isPara,isPurePara:function(e){return isPara(e)&&!isLi(e)},isHeading:function(e){return e&&/^H[1-7]/.test(e.nodeName.toUpperCase())},isInline:isInline,isBlock:func.not(isInline),isBodyInline:function(e){return isInline(e)&&!ancestor(e,isPara)},isBody:isBody,isParaInline:function(e){return isInline(e)&&!!ancestor(e,isPara)},isPre:isPre,isList:isList,isTable:isTable,isData:isData,isCell:isCell,isBlockquote:isBlockquote,isBodyContainer:isBodyContainer,isAnchor:isAnchor,isDiv:makePredByNodeName("DIV"),isLi:isLi,isBR:makePredByNodeName("BR"),isSpan:makePredByNodeName("SPAN"),isB:makePredByNodeName("B"),isU:makePredByNodeName("U"),isS:makePredByNodeName("S"),isI:makePredByNodeName("I"),isImg:makePredByNodeName("IMG"),isTextarea:isTextarea,isEmpty:isEmpty,isEmptyAnchor:func.and(isAnchor,isEmpty),isClosestSibling:function(e,t){return e.nextSibling===t||e.previousSibling===t},withClosestSiblings:function(e,t){t=t||func.ok;var n=[];return e.previousSibling&&t(e.previousSibling)&&n.push(e.previousSibling),n.push(e),e.nextSibling&&t(e.nextSibling)&&n.push(e.nextSibling),n},nodeLength:nodeLength,isLeftEdgePoint:isLeftEdgePoint,isRightEdgePoint:isRightEdgePoint,isEdgePoint:isEdgePoint,isLeftEdgeOf:isLeftEdgeOf,isRightEdgeOf:isRightEdgeOf,isLeftEdgePointOf:function(e,t){return isLeftEdgePoint(e)&&isLeftEdgeOf(e.node,t)},isRightEdgePointOf:function(e,t){return isRightEdgePoint(e)&&isRightEdgeOf(e.node,t)},prevPoint:prevPoint,nextPoint:nextPoint,isSamePoint:isSamePoint,isVisiblePoint:function(e){if(isText(e.node)||!hasChildren(e.node)||isEmpty(e.node))return!0;var t=e.node.childNodes[e.offset-1],n=e.node.childNodes[e.offset];return!(t&&!isVoid(t)||n&&!isVoid(n))},prevPointUntil:function(e,t){for(;e;){if(t(e))return e;e=prevPoint(e)}return null},nextPointUntil:function(e,t){for(;e;){if(t(e))return e;e=nextPoint(e)}return null},isCharPoint:function(e){if(!isText(e.node))return!1;var t=e.node.nodeValue.charAt(e.offset-1);return t&&" "!==t&&t!==NBSP_CHAR},walkPoint:function(e,t,n,o){for(var i=e;i&&(n(i),!isSamePoint(i,t));){var r=o&&e.node!==i.node&&t.node!==i.node;i=nextPoint(i,r)}},ancestor:ancestor,singleChildAncestor:function(e,t){for(e=e.parentNode;e&&1===nodeLength(e);){if(t(e))return e;if(isEditable(e))break;e=e.parentNode}return null},listAncestor:listAncestor,lastAncestor:function(e,t){var n=listAncestor(e);return list.last(n.filter(t))},listNext:listNext,listPrev:function(e,t){t=t||func.fail;for(var n=[];e&&!t(e);)n.push(e),e=e.previousSibling;return n},listDescendant:function(e,t){var n=[];return t=t||func.ok,function o(i){e!==i&&t(i)&&n.push(i);for(var r=0,A=i.childNodes.length;r-1)return o;return null},wrap:function(e,t){var n=e.parentNode,o=$("<"+t+">")[0];return n.insertBefore(o,e),o.appendChild(e),o},insertAfter:insertAfter,appendChildNodes:appendChildNodes,position:position,hasChildren:hasChildren,makeOffsetPath:function(e,t){return listAncestor(t,func.eq(e)).map(position).reverse()},fromOffsetPath:function(e,t){for(var n=e,o=0,i=t.length;o\s]*)(.*?)(\s*\/?>)/g,(function(e,t,n){n=n.toUpperCase();var o=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(n)&&!!t,i=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(n);return e+(o||i?"\n":"")})),n=$.trim(n)),n},value:value,posFromPlaceholder:function(e){var t=$(e),n=t.offset(),o=t.outerHeight(!0);return{left:n.left,top:n.top+o}},attachEvents:function(e,t){Object.keys(t).forEach((function(n){e.on(n,t[n])}))},detachEvents:function(e,t){Object.keys(t).forEach((function(n){e.off(n,t[n])}))}}),isEditable,makePredByNodeName,isText,isVoid,isPara,isPre,isLi,isTable,isData,isInline,isList,isHr,isCell,isBlockquote,isBodyContainer,isAnchor,isBody,blankHTML,nodeLength,isEmpty,paddingBlankHTML,ancestor,listAncestor,listNext,insertAfter,appendChildNodes,isLeftEdgePoint,isRightEdgePoint,isEdgePoint,isLeftEdgeOf,isRightEdgeOf,position,hasChildren,prevPoint,nextPoint,isSamePoint,splitNode,splitTree,create,remove,isTextarea,value,Context=function(e,t){var n=this,o=$.summernote.ui;return this.memos={},this.modules={},this.layoutInfo={},this.options=t,this.initialize=function(){return this.layoutInfo=o.createLayout(e,t),this._initialize(),e.hide(),this},this.destroy=function(){this._destroy(),e.removeData("summernote"),o.removeLayout(e,this.layoutInfo)},this.reset=function(){var e=n.isDisabled();this.code(dom.emptyPara),this._destroy(),this._initialize(),e&&n.disable()},this._initialize=function(){var e=$.extend({},this.options.buttons);Object.keys(e).forEach((function(t){n.memo("button."+t,e[t])}));var t=$.extend({},this.options.modules,$.summernote.plugins||{});Object.keys(t).forEach((function(e){n.module(e,t[e],!0)})),Object.keys(this.modules).forEach((function(e){n.initializeModule(e)}))},this._destroy=function(){Object.keys(this.modules).reverse().forEach((function(e){n.removeModule(e)})),Object.keys(this.memos).forEach((function(e){n.removeMemo(e)})),this.triggerEvent("destroy",this)},this.code=function(t){var n=this.invoke("codeview.isActivated");if(void 0===t)return this.invoke("codeview.sync"),n?this.layoutInfo.codable.val():this.layoutInfo.editable.html();n?this.layoutInfo.codable.val(t):this.layoutInfo.editable.html(t),e.val(t),this.triggerEvent("change",t)},this.isDisabled=function(){return"false"===this.layoutInfo.editable.attr("contenteditable")},this.enable=function(){this.layoutInfo.editable.attr("contenteditable",!0),this.invoke("toolbar.activate",!0)},this.disable=function(){this.invoke("codeview.isActivated")&&this.invoke("codeview.deactivate"),this.layoutInfo.editable.attr("contenteditable",!1),this.invoke("toolbar.deactivate",!0)},this.triggerEvent=function(){var t=list.head(arguments),n=list.tail(list.from(arguments)),o=this.options.callbacks[func.namespaceToCamel(t,"on")];o&&o.apply(e[0],n),e.trigger("summernote."+t,n)},this.initializeModule=function(t){var n=this.modules[t];n.shouldInitialize=n.shouldInitialize||func.ok,n.shouldInitialize()&&(n.initialize&&n.initialize(),n.events&&dom.attachEvents(e,n.events))},this.module=function(e,t,n){if(1===arguments.length)return this.modules[e];this.modules[e]=new t(this),n||this.initializeModule(e)},this.removeModule=function(t){var n=this.modules[t];n.shouldInitialize()&&(n.events&&dom.detachEvents(e,n.events),n.destroy&&n.destroy()),delete this.modules[t]},this.memo=function(e,t){if(1===arguments.length)return this.memos[e];this.memos[e]=t},this.removeMemo=function(e){this.memos[e]&&this.memos[e].destroy&&this.memos[e].destroy(),delete this.memos[e]},this.createInvokeHandler=function(e,t){return function(o){o.preventDefault(),n.invoke(e,t||$(o.target).closest("[data-value]").data("value"))}},this.invoke=function(){var e=list.head(arguments),t=list.tail(list.from(arguments)),n=e.split("."),o=n.length>1,i=o&&list.head(n),r=o?list.last(n):list.head(n),A=this.modules[i||"editor"];return!i&&this[r]?this[r].apply(this,t):A&&A[r]&&A.shouldInitialize()?A[r].apply(A,t):void 0},this.initialize()};$.fn.extend({summernote:function(){var e=$.type(list.head(arguments)),t="string"===e,n="object"===e,o=n?list.head(arguments):{};(o=$.extend({},$.summernote.options,o)).langInfo=$.extend(!0,{},$.summernote.lang["en-US"],$.summernote.lang[o.lang]),o.icons=$.extend(!0,{},$.summernote.options.icons,o.icons),this.each((function(e,t){var n=$(t);if(!n.data("summernote")){var i=new Context(n,o);n.data("summernote",i),n.data("summernote").triggerEvent("init",i.layoutInfo)}}));var i=this.first();if(i.length){var r=i.data("summernote");if(t)return r.invoke.apply(r,list.from(arguments));o.focus&&r.invoke("editor.focus")}return this}});var Renderer=function(e,t,n,o){this.render=function(i){var r=$(e);if(n&&n.contents&&r.html(n.contents),n&&n.className&&r.addClass(n.className),n&&n.data&&$.each(n.data,(function(e,t){r.attr("data-"+e,t)})),n&&n.click&&r.on("click",n.click),t){var A=r.find(".note-children-container");t.forEach((function(e){e.render(A.length?A:r)}))}return o&&o(r,n),n&&n.callback&&n.callback(r),i&&i.append(r),r}},renderer={create:function(e,t){return function(){var n=$.isArray(arguments[0])?arguments[0]:[],o="object"==typeof arguments[1]?arguments[1]:arguments[0];return o&&o.children&&(n=o.children),new Renderer(e,n,o,t)}}},editor=renderer.create('
'),toolbar=renderer.create('
'),editingArea=renderer.create('
'),codable=renderer.create('