{"version":3,"file":"dialogs.bundle.js","sources":["../src/messageboxbuttons.js","../src/messagebox.js"],"sourcesContent":["/**\n * @namespace BX.UI.Dialogs\n */\nexport default class MessageBoxButtons {\n\tstatic NONE = \"none\";\n\n\tstatic OK = \"ok\";\n\tstatic CANCEL = \"cancel\";\n\tstatic YES = \"yes\";\n\tstatic NO = \"no\";\n\n\tstatic OK_CANCEL = \"ok_cancel\";\n\tstatic YES_NO = \"yes_no\";\n\tstatic YES_CANCEL = \"yes_cancel\";\n\tstatic YES_NO_CANCEL = \"yes_no_cancel\";\n}","import { Type, Loc, Cache } from 'main.core';\nimport { Popup } from 'main.popup';\nimport MessageBoxButtons from './messageboxbuttons';\nimport 'ui.buttons';\n\n/**\n * @namespace {BX.UI.Dialogs}\n */\nexport default class MessageBox\n{\n\t/** @var {Popup} */\n\tpopupWindow = null;\n\ttitle = null;\n\tmessage = null;\n\tmodal = true;\n\tpopupOptions = {};\n\tminWidth = 300;\n\tminHeight = 130;\n\tmaxWidth = 400;\n\tbuttons = [];\n\tmediumButtonSize: false;\n\tcacheable: false;\n\n\tokCallback = null;\n\tcancelCallback = null;\n\tyesCallback = null;\n\tnoCallback = null;\n\n\tconstructor(options = {})\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\tthis.popupOptions = Type.isPlainObject(options.popupOptions) ? options.popupOptions : {};\n\n\t\tthis.cache = new Cache.MemoryCache();\n\t\tthis.handleButtonClick = this.handleButtonClick.bind(this);\n\n\t\tthis.modal = options.modal !== false;\n\t\tthis.cacheable = options.cacheable === true;\n\n\t\tthis.setTitle(options.title);\n\t\tthis.setMessage(options.message);\n\n\t\tthis.setOkCallback(options.onOk);\n\t\tthis.setCancelCallback(options.onCancel);\n\t\tthis.setYesCallback(options.onYes);\n\t\tthis.setNoCallback(options.onNo);\n\n\t\tif (Type.isBoolean(options.mediumButtonSize))\n\t\t{\n\t\t\tthis.mediumButtonSize = options.mediumButtonSize;\n\t\t}\n\t\telse if (this.getTitle() !== null)\n\t\t{\n\t\t\tthis.mediumButtonSize = true;\n\t\t}\n\n\t\tif (this.getTitle() !== null)\n\t\t{\n\t\t\tthis.popupOptions.closeIcon = true;\n\t\t}\n\n\t\tif (this.isMediumButtonSize())\n\t\t{\n\t\t\tthis.minWidth = 400;\n\t\t\tthis.minHeight = 200;\n\t\t\tthis.maxWidth = 420;\n\t\t}\n\n\t\tthis.minWidth = Type.isNumber(options.minWidth) ? options.minWidth : this.minWidth;\n\t\tthis.minHeight = Type.isNumber(options.minHeight) ? options.minHeight : this.minHeight;\n\t\tthis.maxWidth = Type.isNumber(options.maxWidth) ? options.maxWidth : this.maxWidth;\n\n\t\tthis.setOkCaption(options.okCaption);\n\t\tthis.setCancelCaption(options.cancelCaption);\n\t\tthis.setYesCaption(options.yesCaption);\n\t\tthis.setNoCaption(options.noCaption);\n\n\t\tthis.setButtons(options.buttons);\n\t}\n\n\t/**\n\t * @param {string} message\n\t * @param args\n\t * @example\n\t * BX.UI.Dialogs.{MessageBox.alert('Message');\n\t * BX.UI.Dialogs.MessageBox.alert('Message', (messageBox, button, event) => {});\n\t * BX.UI.Dialogs.MessageBox.alert('Message', (messageBox, button, event) => {}, 'Proceed');\n\t * BX.UI.Dialogs.MessageBox.alert('Message', 'Title');\n\t * BX.UI.Dialogs.MessageBox.alert('Message', 'Title', (messageBox, button, event) => {});\n\t * BX.UI.Dialogs.MessageBox.alert('Message', 'Title', (messageBox, button, event) => {}, 'Proceed');\n\t */\n\tstatic alert(message: string, ...args): MessageBox\n\t{\n\t\tlet title = null;\n\t\tlet okCallback = null;\n\t\tlet okCaption = null;\n\n\t\tif (args.length > 0)\n\t\t{\n\t\t\tif (Type.isString(args[0]))\n\t\t\t{\n\t\t\t\t[title, okCallback, okCaption] = args;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t[okCallback, okCaption] = args;\n\t\t\t}\n\t\t}\n\n\t\tconst messageBox = this.create({\n\t\t\tmessage,\n\t\t\ttitle,\n\t\t\tokCaption,\n\t\t\tonOk: okCallback,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK,\n\t\t});\n\t\tmessageBox.show();\n\n\t\treturn messageBox;\n\t}\n\n\t/**\n\t *\n\t * @param {string} message\n\t * @param args\n\t *\n\t * @example\n\t * BX.UI.Dialogs.MessageBox.confirm('Message');\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', () => {});\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', () => {}, 'Proceed');\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', () => {}, 'Proceed', () => {});\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', () => {}, 'Proceed', () => {}, 'Cancel');\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', 'Title');\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', 'Title', () => {});\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', 'Title', () => {}, 'Proceed', () => {});\n\t * BX.UI.Dialogs.MessageBox.confirm('Message', 'Title', () => {}, 'Proceed', () => {}, 'Cancel');\n\t */\n\tstatic confirm(message: string, ...args): MessageBox\n\t{\n\t\tlet title = null;\n\t\tlet okCallback = null;\n\t\tlet okCaption = null;\n\t\tlet cancelCallback = null;\n\t\tlet cancelCaption = null;\n\n\t\tif (args.length > 0)\n\t\t{\n\t\t\tif (Type.isString(args[0]))\n\t\t\t{\n\t\t\t\t[title, okCallback, okCaption, cancelCallback, cancelCaption] = args;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t[okCallback, okCaption, cancelCallback, cancelCaption] = args;\n\t\t\t}\n\t\t}\n\n\t\tconst messageBox = this.create({\n\t\t\tmessage,\n\t\t\ttitle,\n\t\t\tokCaption,\n\t\t\tcancelCaption,\n\t\t\tonOk: okCallback,\n\t\t\tonCancel: cancelCallback,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t});\n\t\tmessageBox.show();\n\n\t\treturn messageBox;\n\t}\n\n\tstatic show(options = {})\n\t{\n\t\tconst messageBox = this.create(options);\n\t\tmessageBox.show();\n\t}\n\n\tstatic create(options = {})\n\t{\n\t\treturn new this(options);\n\t}\n\n\tshow()\n\t{\n\t\tif (this.getPopupWindow().isDestroyed())\n\t\t{\n\t\t\tthis.popupWindow = null;\n\t\t}\n\n\t\tthis.getPopupWindow().show();\n\t}\n\n\tclose()\n\t{\n\t\tthis.getPopupWindow().close();\n\t}\n\n\t/**\n\t *\n\t * @returns {PopupWindow}\n\t */\n\tgetPopupWindow()\n\t{\n\t\tif (this.popupWindow === null)\n\t\t{\n\t\t\tthis.popupWindow = new Popup({\n\t\t\t\tbindElement: null,\n\t\t\t\tclassName: this.isMediumButtonSize() ? 'ui-message-box ui-message-box-medium-buttons' : 'ui-message-box',\n\t\t\t\tcontent: this.getMessage(),\n\t\t\t\ttitleBar: this.getTitle(),\n\t\t\t\tminWidth: this.minWidth,\n\t\t\t\tminHeight: this.minHeight,\n\t\t\t\tmaxWidth: this.maxWidth,\n\t\t\t\toverlay: this.modal ? { opacity: 20 } : null,\n\t\t\t\tcacheable: this.cacheable,\n\t\t\t\tcloseIcon: false,\n\t\t\t\tcontentBackground: 'transparent',\n\t\t\t\tpadding: 0,\n\t\t\t\tbuttons: this.getButtons(),\n\t\t\t\t...this.popupOptions\n\t\t\t});\n\t\t}\n\n\t\treturn this.popupWindow;\n\t}\n\n\tsetMessage(message: string | Element | Node)\n\t{\n\t\tif (Type.isString(message) || Type.isDomNode(message))\n\t\t{\n\t\t\tthis.message = message;\n\n\t\t\tif (this.popupWindow !== null)\n\t\t\t{\n\t\t\t\tthis.popupWindow.setContent(message);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @returns {?string|Element|Node}\n\t */\n\tgetMessage(): string | Element | Node\n\t{\n\t\treturn this.message;\n\t}\n\n\tsetTitle(title: string)\n\t{\n\t\tif (Type.isString(title))\n\t\t{\n\t\t\tthis.title = title;\n\n\t\t\tif (this.popupWindow !== null)\n\t\t\t{\n\t\t\t\tthis.popupWindow.setTitleBar(title);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @returns {?string}\n\t */\n\tgetTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\t/**\n\t *\n\t * @param {string|BX.UI.Button[]} buttons\n\t */\n\tsetButtons(buttons)\n\t{\n\t\tif (Type.isArray(buttons))\n\t\t{\n\t\t\tthis.buttons = buttons;\n\t\t}\n\t\telse if (Type.isString(buttons))\n\t\t{\n\t\t\tthis.buttons = this.getButtonsLayout(buttons);\n\t\t}\n\n\t\tif (this.popupWindow !== null)\n\t\t{\n\t\t\tthis.popupWindow.setButtons(this.buttons);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @returns {BX.UI.Button[]}\n\t */\n\tgetButtons()\n\t{\n\t\treturn this.buttons;\n\t}\n\n\tsetOkCaption(caption: string)\n\t{\n\t\tif (Type.isString(caption))\n\t\t{\n\t\t\tthis.getOkButton().setText(caption);\n\t\t}\n\t}\n\n\tsetCancelCaption(caption: string)\n\t{\n\t\tif (Type.isString(caption))\n\t\t{\n\t\t\tthis.getCancelButton().setText(caption);\n\t\t}\n\t}\n\n\tsetYesCaption(caption: string)\n\t{\n\t\tif (Type.isString(caption))\n\t\t{\n\t\t\tthis.getYesButton().setText(caption);\n\t\t}\n\t}\n\n\tsetNoCaption(caption: string)\n\t{\n\t\tif (Type.isString(caption))\n\t\t{\n\t\t\tthis.getNoButton().setText(caption);\n\t\t}\n\t}\n\n\tsetOkCallback(fn: Function)\n\t{\n\t\tif (Type.isFunction(fn))\n\t\t{\n\t\t\tthis.okCallback = fn;\n\t\t}\n\t}\n\n\tsetCancelCallback(fn: Function)\n\t{\n\t\tif (Type.isFunction(fn))\n\t\t{\n\t\t\tthis.cancelCallback = fn;\n\t\t}\n\t}\n\n\tsetYesCallback(fn: Function)\n\t{\n\t\tif (Type.isFunction(fn))\n\t\t{\n\t\t\tthis.yesCallback = fn;\n\t\t}\n\t}\n\n\tsetNoCallback(fn: Function)\n\t{\n\t\tif (Type.isFunction(fn))\n\t\t{\n\t\t\tthis.noCallback = fn;\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @returns {boolean}\n\t */\n\tisMediumButtonSize()\n\t{\n\t\treturn this.mediumButtonSize;\n\t}\n\n\t/**\n\t *\n\t * @returns {BX.UI.Button}\n\t */\n\tgetOkButton()\n\t{\n\t\treturn this.cache.remember('okBtn', () => {\n\t\t\treturn new BX.UI.Button({\n\t\t\t\tid: MessageBoxButtons.OK,\n\t\t\t\tsize: this.isMediumButtonSize() ? BX.UI.Button.Size.MEDIUM : BX.UI.Button.Size.SMALL,\n\t\t\t\tcolor: BX.UI.Button.Color.PRIMARY,\n\t\t\t\ttext: Loc.getMessage('UI_MESSAGE_BOX_OK_CAPTION'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.handleButtonClick\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @returns {BX.UI.Button}\n\t */\n\tgetCancelButton()\n\t{\n\t\treturn this.cache.remember('cancelBtn', () => {\n\t\t\treturn new BX.UI.CancelButton({\n\t\t\t\tid: MessageBoxButtons.CANCEL,\n\t\t\t\tsize: this.isMediumButtonSize() ? BX.UI.Button.Size.MEDIUM : BX.UI.Button.Size.SMALL,\n\t\t\t\ttext: Loc.getMessage('UI_MESSAGE_BOX_CANCEL_CAPTION'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.handleButtonClick\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @returns {BX.UI.Button}\n\t */\n\tgetYesButton()\n\t{\n\t\treturn this.cache.remember('yesBtn', () => {\n\t\t\treturn new BX.UI.Button({\n\t\t\t\tid: MessageBoxButtons.YES,\n\t\t\t\tsize: this.isMediumButtonSize() ? BX.UI.Button.Size.MEDIUM : BX.UI.Button.Size.SMALL,\n\t\t\t\tcolor: BX.UI.Button.Color.PRIMARY,\n\t\t\t\ttext: Loc.getMessage('UI_MESSAGE_BOX_YES_CAPTION'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.handleButtonClick\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @returns {BX.UI.Button}\n\t */\n\tgetNoButton()\n\t{\n\t\treturn this.cache.remember('noBtn', () => {\n\t\t\treturn new BX.UI.Button({\n\t\t\t\tid: MessageBoxButtons.NO,\n\t\t\t\tsize: this.isMediumButtonSize() ? BX.UI.Button.Size.MEDIUM : BX.UI.Button.Size.SMALL,\n\t\t\t\tcolor: BX.UI.Button.Color.LIGHT_BORDER,\n\t\t\t\ttext: Loc.getMessage('UI_MESSAGE_BOX_NO_CAPTION'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.handleButtonClick\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @param buttons\n\t * @returns {BX.UI.Button[]}\n\t */\n\tgetButtonsLayout(buttons)\n\t{\n\t\tswitch (buttons)\n\t\t{\n\t\t\tcase MessageBoxButtons.OK:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getOkButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.CANCEL:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getCancelButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.YES:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getYesButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.NO:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getNoButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.OK_CANCEL:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getOkButton(),\n\t\t\t\t\tthis.getCancelButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.YES_NO:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getYesButton(),\n\t\t\t\t\tthis.getNoButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.YES_CANCEL:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getYesButton(),\n\t\t\t\t\tthis.getCancelButton()\n\t\t\t\t];\n\t\t\tcase MessageBoxButtons.YES_NO_CANCEL:\n\t\t\t\treturn [\n\t\t\t\t\tthis.getYesButton(),\n\t\t\t\t\tthis.getNoButton(),\n\t\t\t\t\tthis.getCancelButton()\n\t\t\t\t];\n\t\t\tdefault:\n\t\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {BX.UI.Button} button\n\t * @param event\n\t */\n\thandleButtonClick(button, event)\n\t{\n\t\tif (button.isDisabled())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tbutton.setDisabled(); // prevent a double click\n\n\t\tconst fn = this[`${button.getId()}Callback`];\n\t\tif (!fn)\n\t\t{\n\t\t\tbutton.setDisabled(false);\n\t\t\tthis.close();\n\t\t\treturn;\n\t\t}\n\n\t\tconst result = fn(this, button, event);\n\n\t\tif (result === true)\n\t\t{\n\t\t\tbutton.setDisabled(false);\n\t\t\tthis.close();\n\t\t}\n\t\telse if (result === false)\n\t\t{\n\t\t\tbutton.setDisabled(false);\n\t\t}\n\t\telse if (\n\t\t\tresult &&\n\t\t\t(\n\t\t\t\tObject.prototype.toString.call(result) === '[object Promise]' ||\n\t\t\t\tresult.toString() === '[object BX.Promise]'\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\tbutton.setWaiting();\n\t\t\tresult.then(result => {\n\t\t\t\t\tbutton.setWaiting(false);\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t\treason => {\n\t\t\t\t\tbutton.setWaiting(false);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n}\n"],"names":["MessageBoxButtons","NONE","OK","CANCEL","YES","NO","OK_CANCEL","YES_NO","YES_CANCEL","YES_NO_CANCEL","MessageBox","constructor","options","popupWindow","title","message","modal","popupOptions","minWidth","minHeight","maxWidth","buttons","okCallback","cancelCallback","yesCallback","noCallback","Type","isPlainObject","cache","Cache","MemoryCache","handleButtonClick","bind","cacheable","setTitle","setMessage","setOkCallback","onOk","setCancelCallback","onCancel","setYesCallback","onYes","setNoCallback","onNo","isBoolean","mediumButtonSize","getTitle","closeIcon","isMediumButtonSize","isNumber","setOkCaption","okCaption","setCancelCaption","cancelCaption","setYesCaption","yesCaption","setNoCaption","noCaption","setButtons","alert","args","length","isString","messageBox","create","BX","UI","Dialogs","show","confirm","getPopupWindow","isDestroyed","close","Popup","bindElement","className","content","getMessage","titleBar","overlay","opacity","contentBackground","padding","getButtons","isDomNode","setContent","setTitleBar","isArray","getButtonsLayout","caption","getOkButton","setText","getCancelButton","getYesButton","getNoButton","fn","isFunction","remember","Button","id","size","Size","MEDIUM","SMALL","color","Color","PRIMARY","text","Loc","events","click","CancelButton","LIGHT_BORDER","button","event","isDisabled","setDisabled","getId","result","Object","prototype","toString","call","setWaiting","then","reason"],"mappings":"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"}