{"version":3,"sources":["webpack:///./js/matterhorn/ui/dialog.css","webpack:///./js/matterhorn/client-routes.js","webpack:///./js/matterhorn/util/ajax-error-handler.js","webpack:///./js/matterhorn/global-ajax-handlers.js","webpack:///./js/matterhorn/global-error-handler.js","webpack:///./js/matterhorn/namespace.js","webpack:///./js/matterhorn/ui/dialog.css?48bb","webpack:///./js/matterhorn/ui/dialog.js"],"names":[],"mappings":"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","file":"1978-1c2df51bd2afd8cdf872.min.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mh-dialog-wrapper {\\n position: absolute;\\n overflow: auto;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n top: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1000;\\n background-color: rgba(0, 0, 0, 0.3);\\n}\\n\\n.mh-dialog {\\n width: 600px;\\n height: 300px;\\n border: solid 2px #c5c5c5;\\n display: flex;\\n flex-direction: column;\\n background-color: #e5ecf6;\\n border-radius: 5px;\\n}\\n\\n.mh-dialog.resizable {\\n resize: both;\\n overflow: hidden;\\n}\\n\\n.mh-dialog-title-bar {\\n background-color: #e9e9e9;\\n text-align: center;\\n padding: 5px;\\n color: #333333;\\n font-weight: bold;\\n margin: 3px;\\n border-radius: 4px;\\n border: solid 1px #dddddd;\\n line-height: 25px;\\n}\\n\\n.mh-dialog-content {\\n padding: 10px;\\n overflow: auto;\\n flex: 1;\\n /* border: solid 1px;\\n margin: 10px;*/\\n}\\n\\n.mh-dialog-buttons-bar {\\n text-align: right;\\n padding: 10px;\\n}\\n\\n.mh-dialog-buttons-bar button,\\n.mh-dialog-close {\\n background: linear-gradient(to top, #d8d8d8, #eeeeee);\\n padding: 4px 10px;\\n color: #454545;\\n margin-right: 5px;\\n cursor: pointer;\\n outline: medium none;\\n border: solid 1px #c5c5c5;\\n border-left: 1px solid #dcdcdc;\\n border-right: 1px solid #adadad;\\n border-radius: 4px;\\n}\\n\\n.mh-dialog-close {\\n float: right;\\n background-color: #f9f9f9;\\n color: #454545;\\n font-weight: bold;\\n padding: 4px 8px;\\n}\\n\\n.mh-dialog-buttons-bar button:hover,\\n.mh-dialog-close:hover {\\n color: #2b2b2b;\\n}\\n\\n.mh-dialog-buttons-bar button:active,\\n.mh-dialog-close:active {\\n background: #d4d4d4;\\n color: black;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./js/matterhorn/ui/dialog.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;EAClB,cAAc;EACd,OAAO;EACP,QAAQ;EACR,SAAS;EACT,MAAM;EACN,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,aAAa;EACb,oCAAoC;AACtC;;AAEA;EACE,YAAY;EACZ,aAAa;EACb,yBAAyB;EACzB,aAAa;EACb,sBAAsB;EACtB,yBAAyB;EACzB,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,yBAAyB;EACzB,kBAAkB;EAClB,YAAY;EACZ,cAAc;EACd,iBAAiB;EACjB,WAAW;EACX,kBAAkB;EAClB,yBAAyB;EACzB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,cAAc;EACd,OAAO;EACP;gBACc;AAChB;;AAEA;EACE,iBAAiB;EACjB,aAAa;AACf;;AAEA;;EAEE,qDAAqD;EACrD,iBAAiB;EACjB,cAAc;EACd,iBAAiB;EACjB,eAAe;EACf,oBAAoB;EACpB,yBAAyB;EACzB,8BAA8B;EAC9B,+BAA+B;EAC/B,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,yBAAyB;EACzB,cAAc;EACd,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA;;EAEE,cAAc;AAChB;;AAEA;;EAEE,mBAAmB;EACnB,YAAY;AACd\",\"sourcesContent\":[\".mh-dialog-wrapper {\\n position: absolute;\\n overflow: auto;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n top: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1000;\\n background-color: rgba(0, 0, 0, 0.3);\\n}\\n\\n.mh-dialog {\\n width: 600px;\\n height: 300px;\\n border: solid 2px #c5c5c5;\\n display: flex;\\n flex-direction: column;\\n background-color: #e5ecf6;\\n border-radius: 5px;\\n}\\n\\n.mh-dialog.resizable {\\n resize: both;\\n overflow: hidden;\\n}\\n\\n.mh-dialog-title-bar {\\n background-color: #e9e9e9;\\n text-align: center;\\n padding: 5px;\\n color: #333333;\\n font-weight: bold;\\n margin: 3px;\\n border-radius: 4px;\\n border: solid 1px #dddddd;\\n line-height: 25px;\\n}\\n\\n.mh-dialog-content {\\n padding: 10px;\\n overflow: auto;\\n flex: 1;\\n /* border: solid 1px;\\n margin: 10px;*/\\n}\\n\\n.mh-dialog-buttons-bar {\\n text-align: right;\\n padding: 10px;\\n}\\n\\n.mh-dialog-buttons-bar button,\\n.mh-dialog-close {\\n background: linear-gradient(to top, #d8d8d8, #eeeeee);\\n padding: 4px 10px;\\n color: #454545;\\n margin-right: 5px;\\n cursor: pointer;\\n outline: medium none;\\n border: solid 1px #c5c5c5;\\n border-left: 1px solid #dcdcdc;\\n border-right: 1px solid #adadad;\\n border-radius: 4px;\\n}\\n\\n.mh-dialog-close {\\n float: right;\\n background-color: #f9f9f9;\\n color: #454545;\\n font-weight: bold;\\n padding: 4px 8px;\\n}\\n\\n.mh-dialog-buttons-bar button:hover,\\n.mh-dialog-close:hover {\\n color: #2b2b2b;\\n}\\n\\n.mh-dialog-buttons-bar button:active,\\n.mh-dialog-close:active {\\n background: #d4d4d4;\\n color: black;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default {\n root: '/',\n contactInfo: '/contact_info',\n transactionsList: (id) => `/transactions/all/${id}.json`,\n companyAutocomplete: '/transactions/company_autocomplete.json',\n // dealAutocomplete uses the transaction name to filter rather than the company name fields.\n // it also returns the ids besides the names\n dealsAutocomplete: '/transactions/deals_autocomplete.json',\n showTransaction: (id) => `/transactions/${id}`,\n showTransactionXhr: (id) => `/transactions/${id}.json`,\n watchedTransaction: (id) => `/watched_transaction/${id}.json`,\n watchTransaction: (id) => `/transactions/${id}/watch.json`,\n unwatchTransaction: (id) => `/transactions/${id}/unwatch`,\n renameWatchedTransaction: (id) => `/watched_transaction/${id}/rename.json`,\n searchDocument: (id) => `/transactions/${id}/search.json`,\n dismissNotification: (id) => `/notifications/${id}/dismiss.json`,\n dismissNotifications: '/notifications/dismiss_multiple',\n sessionExpired: '/sessions/expired',\n currentSessionId: '/sessions/current.json',\n reportAjaxError: '/errors/ajax',\n reportJsError: '/errors/js',\n saveSearch: '/saved_searches.json',\n removeSavedSearch: (id) => `/saved_searches/remove/${id}.json`,\n renameSavedSearch: (id) => `/saved_searches/rename/${id}.json`,\n duplicateSavedSearch: (id) => `/saved_searches/duplicate/${id}.json`,\n saveSearchAlert: (id) => `/alerts/search/${id}/save.json`,\n deleteSearchAlert: (id) => `/alerts/search/${id}/delete.json`,\n searchesAndWatchedTransactions: '/searches_and_watched_transactions.json',\n storeSearchResultsReferencesPreferences:\n '/search/store_references_preferences',\n storeSearchState: '/search/store_state',\n exportSearchWithReferences: '/search/export_with_references',\n exportSearchWithoutReferences: '/search/export_without_references',\n storeSearchResultsStatistics: '/search/store_statistics',\n logPerformance: '/logs/performance',\n updateLastSeenChangeLog: (id) => `/users/update_last_seen_change_log/${id}`,\n definitions: '/definitions',\n logEvent: '/logs',\n lastTermsAndConditions: '/terms_and_conditions/last.json',\n agreeWithTermsAndConditions: (id) => `/terms_and_conditions/agree/${id}`,\n exportTransactionToMsword: (id, options) =>\n `/transactions/${id}/export-to-doc${exportExtra(options)}`,\n exportTransactionToExcel: (id, options) =>\n `/transactions/${id}/export-to-excel${exportExtra(options)}`,\n printTransaction: (id, options) =>\n `/transactions/${id}/print${exportExtra(options)}`,\n documentsContent: (transactionId, docIds, format) =>\n `/transaction_documents/content?transaction_id=${transactionId}&doc_ids=` +\n `${docIds.join(',')}&format=${format}`,\n search: '/search/v1.json',\n printSearch: '/search/print',\n resetLastSearch: '/search/reset_last_search',\n fieldsTree: (id) => `/templates/${id}.json`,\n fieldValuesAutocomplete: (fieldId) =>\n `/field_values/autocomplete/${fieldId}.json`,\n relatedResources: (id) =>\n `/transactions/${id}/external_links_and_related_transactions.json`,\n agreeWithDisclaimer: '/auth/agree_with_disclaimer',\n exportSavedSearch: (id) => `/saved_searches/export/${id}`,\n importantNotice: '/main/important_notice',\n\n // on-demand routes, currently disabled:\n // searchSelectFieldAutocomplete: '/search/select_field_autocomplete.json',\n // ondemandSearch: '/search.json',\n};\n\nfunction exportExtra(options) {\n return options.fieldIds ? `?fieldIds=${options.fieldIds}` : '';\n}\n","// For jQuery.post:\nimport $ from 'jquery';\nimport '../settings';\nimport routes from '../client-routes';\nimport '../popup-message';\nimport CommonDialogs from '../../vendor/common-dialogs';\nimport Dialog from '../ui/dialog';\n\nconst { g, Main } = window;\n\nfunction NETWORK_ERROR_MESSAGE(timestamp) {\n return `\n
\n
\n

Sorry for the inconvenience.

\n

It seems like there was a temporary network problem with your request.\n Please try again. If the problem persists and your Internet network seems to be\n working fine, please report this problem and mention this number:\n

\n
\n
${timestamp}
\n
\n`;\n}\n\nfunction ERROR_REPORTED_MESSAGE(timestamp) {\n return `\n
\n
\n

Sorry for the inconvenience.

\n

This error has been automatically reported.

\n
\n
\n

Reference client timestamp: ${timestamp}

\n
\n
\n `;\n}\n\nconst MAINTENANCE_ERROR_MESSAGE = `\n
\n

Sorry for the inconvenience.

\n

The system is currently under maintenance, please try again later.

\n
\n`;\n\nconst TOO_BIG_REQUEST =\n 'Failed to submit request. Most likely you are uploading some file ' +\n \"bigger than our application's limits.\";\n\nconst NOT_FOUND_MESSAGE =\n 'Could not process request. ' +\n 'Please refresh your browser and try again. ' +\n 'Please contact us if the problem persists at support@dealpulse.law.';\n\nconst { confirmDialog } = CommonDialogs;\nconst { showMessage } = CommonDialogs;\n\nexport default class AjaxErrorHandler {\n constructor(event, jqXHR, ajaxSettings, error) {\n this.event = event;\n this.jqXHR = jqXHR;\n this.ajaxSettings = ajaxSettings;\n this.error = error;\n }\n\n run() {\n if (this._invalidInputError()) {\n const json = this.jqXHR.responseJSON;\n if (!json) return;\n const alert = json.alert || json.message || json.error;\n if (alert) g.showError(alert);\n return;\n }\n if (this.jqXHR.status === 409 /* conflict */) return;\n if (this.jqXHR.status === 404 /* Not found */) {\n this._reportError();\n g.showError(NOT_FOUND_MESSAGE);\n return;\n }\n if (this._cancelledPreviousRequest()) return;\n\n if (this._notAuthenticated()) {\n if (Main.main && Main.main.applicationMode !== 'lexis') redirectToLogin();\n else showSessionExpiredDialog();\n return;\n }\n\n if (this._inMaintenance()) {\n showDialog(MAINTENANCE_ERROR_MESSAGE, 'under-maintenance');\n return;\n }\n if (this._tooBigRequest()) {\n g.showError(TOO_BIG_REQUEST);\n return;\n }\n\n this._checkIfSessionChangedAndHandleProperly();\n }\n\n // a previous search request aborted due to new search params are not considered an error\n _cancelledPreviousRequest() {\n return this.error === 'abort';\n }\n\n _invalidInputError() {\n return (\n this.jqXHR.status === 400 || // bad request\n (this.jqXHR.status === 422 && // 422: unprocessable entity\n this.jqXHR.getResponseHeader('x-error-reason') !== 'unverified-token')\n );\n }\n\n _notAuthenticated() {\n return this.jqXHR.status === 401;\n }\n\n _inMaintenance() {\n return this.jqXHR.status === 503;\n }\n\n _tooBigRequest() {\n return this.jqXHR.status === 413;\n }\n\n _checkIfSessionChangedAndHandleProperly() {\n const xhr = $.getJSON(routes.currentSessionId, (session) => {\n if (Main.main && session.id !== Main.main.user.sessionId) {\n const errorMessage =\n 'Your session has changed and the page needs to be refreshed. ' +\n 'Can it be refreshed now?';\n if (Main.main.user.internal) {\n this._handleInternalSessionChange(errorMessage);\n return;\n }\n confirmDialog(errorMessage, () => {\n window.location.reload();\n });\n return;\n }\n if (this.ajaxSettings.url === routes.reportAjaxError)\n this._logOtherErrors();\n else this._reportError();\n });\n xhr.fail(() => {\n this._logOtherErrors();\n });\n }\n\n _handleInternalSessionChange(errorMessage) {\n if (this.jqXHR.getResponseHeader('x-error-reason') !== 'unverified-token') {\n confirmDialog(errorMessage, () => {\n window.location.reload();\n });\n return;\n }\n $.get(routes.authenticityToken, (newToken) => {\n $('meta[name=csrf-token]').attr('content', newToken);\n showMessage(\n 'Your session has changed and we just updated your security token. ' +\n 'If you are using the remember-me feature, you may now try again. If the problem ' +\n 'persist please refresh this page.',\n { title: 'Your session has changed' }\n );\n }).fail(() => {\n confirmDialog(errorMessage, () => {\n window.location.reload();\n });\n });\n }\n\n // To help understand unexpected errors in case it happens to us:\n _logOtherErrors() {\n if (!window.console) return;\n if (this.error || !this.jqXHR.responseText)\n // eslint-disable-next-line no-console\n console.log(\n (window.top.errors = [\n this.event,\n this.jqXHR,\n this.ajaxSettings,\n this.error,\n ])\n );\n }\n\n _reportError() {\n const timestamp = new Date().getTime();\n const params = this._storeErrorRequestParams(timestamp);\n if (!g.settings.logErrors) {\n this._showErrorDetailsDialog(params);\n return;\n }\n const xhr = $.post(routes.reportAjaxError, params);\n if (this._isNetworkIssue()) {\n showNetworkIssueMessage(timestamp);\n return;\n }\n xhr.done(() => {\n showDialog(ERROR_REPORTED_MESSAGE(timestamp));\n });\n xhr.fail(() => {\n this._showErrorInformationDialog(timestamp);\n });\n }\n\n _storeErrorRequestParams(timestamp) {\n return {\n type: this.ajaxSettings.type,\n url: this.ajaxSettings.url,\n error: this.error.message,\n status: this.jqXHR.status?.toString() || '',\n statusText: this.jqXHR.statusText,\n responseText: this.jqXHR.responseText,\n clientMsSinceEpoch: timestamp.toString(),\n params: dataToJSON(this.ajaxSettings.data),\n userAgent: navigator.userAgent,\n };\n }\n\n _showErrorDetailsDialog(params) {\n const content = this.jqXHR.responseText;\n let responseContent;\n let dialogContent;\n if (/^').on(\n 'load',\n () => {\n dialogContent?.contents().find('body').html(content);\n }\n );\n else responseContent = $('
').text(content);\n    dialogContent = $('
');\n dialogContent.append($('
').text(JSON.stringify(params)));\n dialogContent.append(responseContent);\n new Dialog($('
').html(dialogContent)[0], {\n width: 800,\n height: 500,\n }).open();\n }\n\n _isNetworkIssue() {\n // From the reports we get from Sensu, it seems there was some temporary network problem\n // whenever status is null or '0', or '12007'. IE will send status > 12000 with specific cause\n // for a network problem:\n // http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx\n let { status } = this.jqXHR;\n if (!status) return true;\n status = parseInt(status, 10);\n return status === 0 || status > 12000;\n }\n\n _showErrorInformationDialog(timestamp) {\n let errorMessage = `\n
\n
\n

Sorry for the inconvenience.

\n

Please report the following error details:

\n
\n
Error date: ${new Date()} [ ${timestamp} ]
\n `;\n\n if (this.ajaxSettings.url)\n errorMessage += `
${this.ajaxSettings.type || ''} ${\n this.ajaxSettings.url\n }
`;\n if (this.ajaxSettings.data)\n errorMessage += `
Params: ${dataToJSON(\n this.ajaxSettings.data\n )}
`;\n\n errorMessage += '
';\n showDialog(errorMessage);\n }\n}\n\nfunction redirectToLogin() {\n window.location = '/auth/login';\n}\n\nfunction showSessionExpiredDialog() {\n $.get(routes.sessionExpired, (s) => {\n const div = document.createElement('div');\n div.innerHTML = s;\n new Dialog(div.firstChild, {\n width: 630,\n height: 380,\n resizable: false,\n closable: false,\n }).open();\n });\n}\n\nfunction showDialog(errorMessage, id) {\n if (id && document.getElementById(id)) return;\n new Dialog($(errorMessage)[0]).open();\n}\n\nfunction showNetworkIssueMessage(timestamp) {\n showDialog(NETWORK_ERROR_MESSAGE(timestamp), 'network-error-dialog');\n}\n\nfunction dataToJSON(_d) {\n let d = _d;\n if (!d) return '';\n if (typeof d !== 'string')\n try {\n d = $.param(d);\n } catch (e) {\n return JSON.stringify({\n _unprocessable: d.toString(),\n _keys: Object.keys(d),\n });\n }\n try {\n const result = {};\n d.split('&').forEach((_pair) => {\n const pair = _pair.split('=');\n result[pair[0]] = decodeURIComponent(pair[1]);\n });\n\n return JSON.stringify(result);\n } catch (e) {\n return d.toString();\n }\n}\n","import $ from 'jquery';\nimport './popup-message';\nimport AjaxErrorHandler from './util/ajax-error-handler';\n\nconst { g } = window;\n\n// $.ajaxSetup({ cache: false, ifModified: true })\n$.ajaxSetup({ cache: true });\n\n// TODO: use localStorage API for persisting the cache of request results on refresh\n// var _mhAjaxCache = {}\n\n$.ajaxPrefilter((options, originalOptions, jqXHR) => {\n if (!options.crossDomain)\n jqXHR.setRequestHeader(\n 'X-CSRF-Token',\n $('meta[name=csrf-token]').attr('content')\n );\n // when importing filters with jQuery.fileupload plugin,\n // the success callback won't exist\n // IMPORTANT: one should not use xhr.done to handle success requests for cacheable\n // requests or this trick won't work. Trying to fix this would be hard if possible\n // while it's much simpler to always pass the callback to $.getJSON for instance.\n /*\n if (!originalOptions.success) return\n function deepClone(d) {\n // deep clone the object if it's an object to avoid for the original handler to change\n // the cached response. This could happen with other types, although less common\n return $.isPlainObject(d) ? $.extend(true, {}, d) : d\n }\n options.success = function(data, textStatus, xhr) {\n var cacheKey = originalOptions.url, d, args = Array.prototype.slice.call(arguments)\n if (d = originalOptions.data) cacheKey += '?' + $.param(d)\n if (xhr.status != 304) {\n if (xhr.getResponseHeader('Last-Modified') ||\n xhr.getResponseHeader('ETag'))\n _mhAjaxCache[cacheKey] = data\n args[0] = deepClone(data)\n return originalOptions.success.apply(this, args)\n }\n args[0] = deepClone(_mhAjaxCache[cacheKey])\n return originalOptions.success.apply(this, args)\n }\n */\n});\n\n$(document).ajaxError((event, jqXHR, ajaxSettings, error) => {\n const handler = new AjaxErrorHandler(event, jqXHR, ajaxSettings, error);\n handler.run();\n});\n\n$(document).ajaxSuccess((ev, xhr, _settings) => {\n const contentType = xhr.getResponseHeader('Content-Type');\n if (!contentType || contentType.indexOf('json') === -1) return;\n const returnMap = JSON.parse(xhr.responseText);\n if (returnMap.alert) {\n g.showError(returnMap.alert);\n return;\n }\n if (!returnMap.message) return;\n if (returnMap.success) g.showSuccess(returnMap.message);\n else g.showError(returnMap.message);\n});\n","import 'bugsnag-js';\nimport $ from 'jquery';\nimport './settings';\nimport routes from './client-routes';\nimport './popup-message';\n\nconst { Bugsnag, g } = window;\n\nif (window.Error?.stackTraceLimit) Error.stackTraceLimit = 100;\n\nBugsnag.apiKey = '00000000000000000000000000000000';\n\nBugsnag.beforeNotify = function beforeNotify(payload) {\n if (payload.lineNumber === 0 && /Script error\\.?/.test(payload.message)) {\n window.console?.log(\n 'Ignoring cross-domain script error. ' +\n 'See https://bugsnag.com/docs/notifiers/js/cors'\n );\n return false;\n }\n if (g.settings.logErrors) logErrorToServer(payload);\n else noticeErrorInDialog(payload);\n Bugsnag.refresh();\n return false;\n};\n\nfunction noticeErrorInDialog(payload) {\n window.console?.log(payload);\n $(() => {\n let { uncaughtErrors } = window.top;\n window.top.uncaughtErrors = [];\n if (!uncaughtErrors) uncaughtErrors = window.top.uncaughtErrors;\n uncaughtErrors.push(payload);\n g.showError(\n `Unexpected JS error (${payload.message}) - check your JS console for details`,\n { sticky: true }\n );\n });\n}\n\nfunction logErrorToServer(payload) {\n if (/MSIE 7/.test(payload.userAgent)) return;\n $.post(routes.reportJsError, paramsFromPayload(payload));\n}\n\nfunction paramsFromPayload(payload) {\n const params = { clientMsSinceEpoch: new Date().getTime() };\n for (const p of [\n 'name',\n 'message',\n 'file',\n 'lineNumber',\n 'columnNumber',\n 'context',\n 'language',\n 'stacktrace',\n 'url',\n 'userAgent',\n ])\n params[p] = payload[p];\n const s = payload.metaData.script;\n if (s) {\n params.scriptSrc = s.src;\n params.scriptContent = s.content;\n }\n return params;\n}\n","export default function namespace(name, block) {\n let target = window;\n for (const item of name.split('.'))\n target = target[item] || (target[item] = {});\n if (block) block(target);\n}\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!./dialog.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import './dialog.css';\n\nconst createElement = (element) => document.createElement(element);\nlet zIndex = 100;\n\nconst DEFAULT_OPTIONS = {\n closable: true,\n autoOpen: true,\n // destroyOnClose: autoOpen,\n // keepOriginal: destroyOnClose,\n width: '300px',\n title: '',\n maxHeight: '90vh',\n maxWidth: '90vw',\n minWidth: 150,\n minHeight: 150,\n resizable: true,\n};\n\n// ✕ could be an alternative to the close symbol\nconst template = (closable) => `\n
\n
\n ${closable ? '' : ''}\n
\n
\n
\n
\n`;\n\nconst OFFSET_HEIGHT = 92; // wrapper.getBoundingClientRect().height -\n// dialogContent.getBoundingClientRect().height\nconst OFFSET_HEIGHT_WITHOUT_BUTTONS = 47;\n\nfunction calculateHeight(_element, buttons, _width) {\n let width = _width;\n if (Number.isFinite(width)) width = `${width}px`;\n const element = _element.cloneNode(true);\n const { style } = element;\n style.visibility = 'hidden';\n element.hidden = false;\n style.boxSizing = 'border-box';\n style.width = width;\n element.classList.add('mh-dialog-content');\n document.body.append(element);\n const dialogHeight =\n element.clientHeight +\n (buttons ? OFFSET_HEIGHT : OFFSET_HEIGHT_WITHOUT_BUTTONS);\n element.remove();\n return dialogHeight;\n}\n\nexport default class Dialog {\n constructor(_element, options = {}) {\n let element = _element;\n const opts = { ...DEFAULT_OPTIONS, ...options };\n if (!opts.height)\n opts.height = calculateHeight(element, opts.buttons, opts.width);\n if (opts.destroyOnClose == null) opts.destroyOnClose = opts.autoOpen;\n this._options = opts;\n const keepOriginal =\n opts.keepOriginal == null ? opts.destroyOnClose : opts.keepOriginal;\n // this is tricky if the dialog uses the id property in elements as it would create multiple\n // elements with the same id, which should be unique across the DOM. This component doesn't\n // handle this, so the caller must be awere of this behavior.\n if (keepOriginal) element = element.cloneNode(true);\n this.element = element;\n this._eventHandlers = {\n onClose: opts.onClose,\n onOpen: opts.onOpen,\n onDestroy: opts.onDestroy,\n };\n const dialogWrapperElement = createElement('div');\n dialogWrapperElement.classList.add('mh-dialog-wrapper');\n dialogWrapperElement.style.display = 'none';\n dialogWrapperElement.innerHTML = template(opts.closable);\n const _ = (selector) => dialogWrapperElement.querySelector(selector);\n const title = opts.title || element.getAttribute('title') || '';\n\n _('.mh-dialog-title').append(title);\n const dialogElement = _('.mh-dialog');\n this._dialogElement = dialogElement;\n if (opts.resizable) dialogElement.classList.add('resizable');\n [\n 'width',\n 'height',\n 'minHeight',\n 'minWidth',\n 'maxHeight',\n 'maxWidth',\n ].forEach((p) => {\n if (Number.isFinite(opts[p])) opts[p] = `${opts[p]}px`;\n if (opts[p]) dialogElement.style[p] = opts[p];\n });\n if (opts.buttons)\n dialogElement.append(this._createButtonsBar(opts.buttons));\n _('.mh-dialog-close')?.addEventListener('click', this.close.bind(this));\n _('.mh-dialog-content').append(element);\n element.hidden = false;\n document.body.append(dialogWrapperElement);\n this._dialogWrapperElement = dialogWrapperElement;\n this._destroyOnClose = opts.destroyOnClose;\n if (opts.autoOpen) this.open();\n }\n\n wrapperElement() {\n return this._dialogWrapperElement;\n }\n\n open() {\n if (this._isOpen) return;\n if (this._wasCanceled('onOpen')) return;\n this._dialogWrapperElement.style.zIndex = zIndex;\n zIndex += 1;\n this._dialogWrapperElement.style.display = 'flex';\n this._isOpen = true;\n }\n\n setAutoHeight() {\n this._dialogElement.style.height = `${calculateHeight(\n this.element,\n this._options.buttons,\n this._options.width\n )}px`;\n }\n\n _wasCanceled(handlerName) {\n const handler = this._eventHandlers[handlerName];\n if (!handler) return false;\n let cancelled = false;\n handler({\n preventDefault: () => {\n cancelled = true;\n },\n });\n return cancelled;\n }\n\n close() {\n if (!this._isOpen) return;\n if (this._wasCanceled('onClose')) return;\n this._dialogWrapperElement.style.display = 'none';\n this._isOpen = false;\n zIndex -= 1;\n if (this._destroyOnClose) this.destroy();\n }\n\n destroy() {\n if (this._wasCanceled('onDestroy')) return;\n this._destroyed = true;\n this._dialogWrapperElement.remove();\n delete this._dialogWrapperElement;\n }\n\n _createButtonsBar(buttons) {\n const bar = createElement('div');\n bar.classList.add('mh-dialog-buttons-bar');\n for (const [label, handler] of Object.entries(buttons)) {\n const button = createElement('button');\n button.append(label);\n button.addEventListener('click', (ev) => {\n handler(ev, this);\n });\n bar.append(button);\n }\n this._buttonsBar = bar;\n return bar;\n }\n\n button(label) {\n return Array.from(this._buttonsBar.querySelectorAll('button')).find(\n (b) => b.innerText === label\n );\n }\n}\n"],"sourceRoot":""}