{"version":3,"file":"4280.39c2e5576959351cf584.js","mappings":"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","sources":["webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/cw.pages.brokeraccountsummary.js","webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/lib/cw.dtTools.js","webpack://shipley-du-lib/./common/js/du/appEnum/AlertSeverity.ts","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?be2d","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?f028","webpack://shipley-du-lib/./common/js/du/interfaces/utility/IClickableAlertMessage.ts","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?8475","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?5e44","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?5d6e","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?9576","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue"],"sourcesContent":["import * as BootstrapDialog from \"bootstrap3-dialog\";\r\nimport \"../cw/lib/cw.dtTools\";\r\n\r\nimport { createNonRoutedApp } from \"@du/AppStartup\";\r\nimport pdfViewer from \"@components/utility/pdfViewer\";\r\n\r\n(function (cw, $) {\r\n  \"use strict\";\r\n  $.extend(true, cw, {\r\n    pages: {\r\n      brokeraccountsummary: {\r\n        args: null,\r\n        url: \"/broker-usage/\",\r\n        quoteTable: null,\r\n        contractTable: null,\r\n        init: function (args) {\r\n          this.args = args;\r\n          this.bindInteractions(args);\r\n        },\r\n        bindInteractions: function (args) {\r\n          $('[data-toggle=\"dropdown\"]').dropdown();\r\n          var self = this;\r\n\r\n          var tableOptions = {\r\n            data: args.customerAccount,\r\n            row: \"CustomerAccountName\",\r\n            autoWidth: true,\r\n            draw: true,\r\n            adjust: true,\r\n            responsive: true,\r\n            bSort: false,\r\n            dom: \"t\",\r\n            columns: [\r\n              { title: \"Customer Number\", data: \"CustomerAccountNo\" },\r\n              { title: \"Customer Account Name\", data: \"CustomerAccountName\", className: \"text-left\" },\r\n              { title: \"Service Address\", data: \"ServiceAddress\", className: \"text-left\" },\r\n              { title: \"LDC Account Number\", data: \"LdcAccountNo\" },\r\n              { title: \"Utility\", data: \"Utility\", className: \"text-center\" },\r\n            ],\r\n          };\r\n\r\n          var table2Options = {\r\n            data: args.customerUsage,\r\n            lengthMenu: [\r\n              [10, 25, 50, -1],\r\n              [10, 25, 50, \"All\"],\r\n            ],\r\n            autoWidth: true,\r\n            iDisplayLength: 25,\r\n            tableTools: [],\r\n            ordering: true,\r\n            draw: true,\r\n            adjust: true,\r\n            responsive: true,\r\n            order: [[0, \"desc\"]],\r\n            deferRender: true,\r\n            buttons: [\"copy\", \"csv\", \"print\"],\r\n            dom: 'lT<\"dt-head-right\"f<\"export-btn-wrap\"B>>rtip',\r\n            language: {\r\n              search: \"Search:\",\r\n            },\r\n            columns: [\r\n              {\r\n                title: \"From Date\",\r\n                data: function (row, type, val, meta) {\r\n                  return cw.utility.tableSortByDate(row.FromDate, type, \"L\");\r\n                },\r\n              },\r\n              {\r\n                title: \"To Date\",\r\n                data: function (row, type, val, meta) {\r\n                  return cw.utility.tableSortByDate(row.ToDate, type, \"L\");\r\n                },\r\n              },\r\n              { title: \"Usage\", data: \"ActualUsage\" },\r\n              { title: \"Commodity Sales\", data: \"TransAmtFormatted\" },\r\n              { title: \"Budget Charge\", data: \"BudgetBillChargerFormatted\" },\r\n              {\r\n                title: \"Invoice Date\",\r\n                data: function (row, type, val, meta) {\r\n                  return cw.utility.tableSortByDate(row.InvoiceDate, type, \"L\");\r\n                },\r\n              },\r\n              {\r\n                title: \"\",\r\n                data: function (row, type, val, meta) {\r\n                  if (!row.DocumentId) {\r\n                    return '<span><i class=\"fa fa-ban\"></i> No Invoice Preview</span>';\r\n                  } else {\r\n                    return (\r\n                      '<a href=\"#\" data-id=\"' +\r\n                      row.DocumentId +\r\n                      '\" class=\"btn btn-sm btn-secondary btn-invoice-preview\" data-invoice-id=\"' +\r\n                      row.InvoiceID +\r\n                      '\"><i class=\"fa fa-regular fa-file-pdf\"></i>   Invoice</a>'\r\n                    );\r\n                  }\r\n                },\r\n              },\r\n            ],\r\n          };\r\n\r\n          self.dataTable = $(\"table.broker-account-wrapper\").DataTable(tableOptions);\r\n          self.dataTable2 = $(\"table.broker-account-invoice-wrapper\").DataTable(table2Options);\r\n          self.drawQuoteTable(args.allAccountQuotes);\r\n\r\n          var custNameFunction = tableOptions.data[\"0\"].CustomerAccountName;\r\n          $(\".broker-summary\").text(\"Account Summary for \" + custNameFunction);\r\n\r\n          $(\".user-menu\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            var $this = $(this);\r\n            var userId = $this.data(userId);\r\n            cw.pages.passwordReset.passwordResetModal.init(userId);\r\n          });\r\n\r\n          $(\".quote-guid-select\").on(\"click\", function (e) {\r\n            var $this = $(this);\r\n            var tr = $this.closest(\"tr\");\r\n            var row = self.quoteTable.row(tr);\r\n\r\n            $this.find(\"i\").toggleClass(\"fa-angle-down fa-angle-up\");\r\n\r\n            if (row.child.isShown()) {\r\n              // This row is already open - close it\r\n              row.child.hide();\r\n              tr.removeClass(\"shown\");\r\n            } else {\r\n              // Open this row\r\n              row.child(self.formatChild(row.data(), self.url)).show();\r\n              tr.addClass(\"shown\");\r\n            }\r\n          });\r\n\r\n          $(\"table.broker-account-invoice-wrapper\").on(\"click\", \".btn-invoice-preview\", function (e) {\r\n            e.preventDefault();\r\n            var $this = $(this);\r\n            var invId = $this.data(\"invoice-id\");\r\n            var docId = $this.data(\"id\");\r\n\r\n            if (docId) {\r\n              cw.loadingIndicator.start();\r\n              var row = cw.utility.getDataTableRowData(self.dataTable2, docId, \"DocumentId\");\r\n              if (row) {\r\n                cw.modal.Open({\r\n                  data: { docId: docId, invId: invId },\r\n                  title: \"Invoice # \" + invId,\r\n                  modalBody: $('<div id=\"pdf-target\"></div>'),\r\n                  size: BootstrapDialog.SIZE_WIDE,\r\n                  successCallback: function (modalRef) {\r\n                    modalRef.close();\r\n                  },\r\n                  onShownCallback: function (modalRef) {\r\n                    var doc = modalRef.getData(\"docId\");\r\n\r\n                    self.vueApp = createNonRoutedApp(pdfViewer, {\r\n                      pdfUrl: \"/gen-asset/document-viewer/\" + doc,\r\n                      allowDownload: true,\r\n                      onPdfLoaded() {\r\n                        cw.loadingIndicator.stop();\r\n                      },\r\n                    });\r\n\r\n                    self.vueAppVm = self.vueApp.mount(\"#pdf-target\");\r\n\r\n                    window.onclick = function (event) {\r\n                      if (event.target === $this) {\r\n                        modal.style.display = \"none\";\r\n                      }\r\n                    };\r\n                  },\r\n                });\r\n              }\r\n            }\r\n          });\r\n        },\r\n        formatChild: function (d, url) {\r\n          var html =\r\n            ' <div class=\"info-quote-contract-wrapper\"> ' +\r\n            '<div class=\"row well ml10 mr10\">' +\r\n            '<div class=\"col-md-12 clearfix pl20 mt0\">' +\r\n            '<div class=\"pull-left form-group\">' +\r\n            '<h4 style=\"font-size: 17px;\"><strong> Quote Information:</strong>' +\r\n            \"</div>\" +\r\n            \"</div>\";\r\n\r\n          if (url === \"/broker\") {\r\n            html +=\r\n              '<div class=\"col-md-4 mb20\">' +\r\n              '<div class=\"col-md-12 clearfix\">' +\r\n              '<div class=\"form-group\"><label><strong>Customer Name: </strong></label><br /><span>' +\r\n              d.CustomerName +\r\n              \"</span></div>\" +\r\n              \"</div>\" +\r\n              \"</div>\";\r\n          }\r\n\r\n          html +=\r\n            '<div class=\"col-md-4 mb20\">' +\r\n            '<div class=\"col-md-12 clearfix\">' +\r\n            '<div class=\"form-group\"><label><strong>Quote Status: </strong></label><br /> ' +\r\n            \"<div>\" +\r\n            \"<span>\" +\r\n            \" \" +\r\n            d.QuoteStatusDescription +\r\n            \"</span></div>\" +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            '<div class=\"col-md-4 mb20\">' +\r\n            '<div class=\"col-md-12 clearfix\">' +\r\n            '<div class=\"form-group\"><label><strong>Requested Date: </strong></label><br /><span>' +\r\n            d.DateRequestedFormatted +\r\n            \"</span></div>\" +\r\n            \"</div>\" +\r\n            \"</div>\";\r\n\r\n          if (d.TermLength && typeof d.TermLength !== \"undefined\") {\r\n            var term = !d.TermStart2 ? \"<strong>Term Start: </strong>\" : \"<strong>Term 1 Start: </strong>\";\r\n            html +=\r\n              '<div class=\"col-md-4 mb20\">' +\r\n              '<div class=\"col-md-12 clearfix\">' +\r\n              '<div class=\"form-group\"><label>' +\r\n              term +\r\n              \"</label><br /> <span>\" +\r\n              d.Term1Formatted +\r\n              \"</span></div>\" +\r\n              \"</div>\" +\r\n              \"</div>\";\r\n\r\n            if (d.TermStart2) {\r\n              html +=\r\n                '<div class=\"col-md-4 mb20\">' +\r\n                '<div class=\"col-md-12 clearfix\">' +\r\n                '<div class=\"form-group\"><label><strong>Term 2 Start: </strong></label><br /> <span>' +\r\n                d.Term2Formatted +\r\n                \"</span></div>\" +\r\n                \"</div>\" +\r\n                \"</div>\";\r\n            }\r\n\r\n            html +=\r\n              '<div class=\"col-md-4 mb20\">' +\r\n              '<div class=\"col-md-12 clearfix\">' +\r\n              '<div class=\"form-group\"><label><strong>Term (Months): </strong></label><br /> <span>' +\r\n              d.TermLengthFormatted +\r\n              \"</span></div>\" +\r\n              \"</div>\" +\r\n              \"</div>\";\r\n          }\r\n\r\n          html +=\r\n            '<div class=\"col-md-4 mb20\">' +\r\n            '<div class=\"col-md-12 clearfix\">' +\r\n            '<div class=\"form-group\"><label><strong>End Date: </strong></label><br /> <span>' +\r\n            d.DueDateFormatted +\r\n            \"</span></div>\" +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            '<div class=\"col-md-4 mb20\">' +\r\n            '<div class=\"col-md-12 clearfix\">' +\r\n            '<div class=\"form-group\"><label><strong>Price: </strong></label><br /> <span>' +\r\n            d.ExpectedGrossProfitFormatted +\r\n            \"</span></div>\" +\r\n            \"</div>\" +\r\n            \"</div>\";\r\n          if (d.BrokerMargin && d.BrokerMargin > 0) {\r\n            html +=\r\n              '<div class=\"col-md-4 mb20\">' +\r\n              '<div class=\"col-md-12 clearfix\">' +\r\n              '<div class=\"form-group\"><label><strong>Broker Margin: </strong></label><br /> <span>' +\r\n              d.BrokerMarginFormatted +\r\n              \"</span></div>\" +\r\n              \"</div>\" +\r\n              \"</div>\";\r\n          }\r\n\r\n          html +=\r\n            '<div class=\"col-md-4 mb20\">' +\r\n            '<div class=\"col-md-12 clearfix\">' +\r\n            '<div class=\"form-group\"><label><strong>Quote Unique Identifier: </strong></label><br /> <span>' +\r\n            d.QuoteGuid +\r\n            \"</span></div>\" +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            '<div class=\"ldc-account-table-target\">' +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            \"</div>\" +\r\n            \"</div>\";\r\n\r\n          var tableOptions = {\r\n            data: d,\r\n            iDisplayLength: 10,\r\n            autoWidth: true,\r\n            responsive: true,\r\n            bSort: true,\r\n            dom: \"t\",\r\n            columns: [\r\n              {\r\n                title: \"Location\",\r\n                data: function (data, type, row, value) {\r\n                  var d = data.AccountDetails;\r\n                  return (\r\n                    \"<span>\" +\r\n                    d.ServiceAddress +\r\n                    \" \" +\r\n                    d.ServiceAddress2 +\r\n                    \"<br />\" +\r\n                    d.ServiceCity +\r\n                    \", \" +\r\n                    d.ServiceState +\r\n                    \" \" +\r\n                    d.ServiceZip +\r\n                    \"</span>\"\r\n                  );\r\n                },\r\n              },\r\n            ],\r\n          };\r\n          $(\"table.ldc-account-table-target\").DataTable(tableOptions);\r\n\r\n          return (\r\n            '<table style=\"width:50%;\" class=\"table table-striped table-bordered table-hover\">' +\r\n            html +\r\n            \"</table>\"\r\n          );\r\n        },\r\n        drawQuoteTable: function (args) {\r\n          var self = this;\r\n          var tableOptions = {\r\n            data: args,\r\n            lengthMenu: [\r\n              [10, 25, 50, -1],\r\n              [10, 25, 50, \"All\"],\r\n            ],\r\n            iDisplayLength: 10,\r\n            autoWidth: true,\r\n            responsive: true,\r\n            bSort: true,\r\n            dom: \"t\",\r\n            columns: [\r\n              { title: \"Customer Name\", data: \"CustomerName\", className: \"text-left\" },\r\n              {\r\n                title: \"Quote Details\",\r\n                data: function (data, type, row, value) {\r\n                  return '<a href=\"#\" style=\"background-color: #337ab7; white-space: nowrap;\" class=\"btn btn-sm pr5 pl5 quote-guid-select pt5 pb5 pr15 pl10\" style=\"text-decoration: none;\"><i class=\"pl5 pr5 fa fa-angle-down\"></i> Quote Details</a>';\r\n                },\r\n                className: \"text-left\",\r\n              },\r\n              { title: \"Quote Status\", data: \"QuoteStatusDescription\", className: \"text-left\" },\r\n              { title: \"Quote Requested Date\", data: \"DateRequestedFormatted\" },\r\n              { title: \"Quote Due Date\", data: \"DueDateFormatted\" },\r\n              { title: \"12 Month UOM\", data: \"TwelveMonthUnitOfMeasure\" },\r\n              { title: \"Average Monthly UOM\", data: \"AverageMonthlyUnitOfMeasure\" },\r\n            ],\r\n          };\r\n          self.quoteTable = $(\"table.broker-customer-quotes-table\").DataTable(tableOptions);\r\n        },\r\n        drawContractTable: function (args) {\r\n          //TODO\r\n        },\r\n      },\r\n    },\r\n  });\r\n})((window.cw = window.cw || {}), jQuery);\r\n","import * as dt from \"datatables.net-bs\";\r\nimport * as dtResponsive from \"datatables.net-responsive-bs\";\r\nimport * as dtBtnBs from \"datatables.net-buttons-bs\";\r\nimport * as dtBtnHtml5 from \"datatables.net-buttons/js/buttons.html5\";\r\nimport * as dtBtnHtmlPrnt from \"datatables.net-buttons/js/buttons.print\";\r\n\r\n//some overrides to customize datatables\r\n$.fn.dataTable.Buttons.defaults.dom.button.className = \"btn btn-sm btn-white\";\r\n$.fn.dataTable.ext.buttons.copyHtml5.text = function () {\r\n  return '<i class=\"fa fa-clipboard\" title=\"Copy\"></i>';\r\n};\r\n$.fn.dataTable.ext.buttons.csvHtml5.text = function () {\r\n  return '<i class=\"fa fa-regular fa-file-excel\" title=\"Export\"></i>';\r\n};\r\n$.fn.dataTable.ext.buttons.print.text = function () {\r\n  return '<i class=\"fa fa-print\" title=\"Print\"></i>';\r\n};\r\n\r\n(function (cw, $, undefined) {\r\n  cw.dtTools = {\r\n    /**\r\n     * Creates html table markup\r\n     *\r\n     * @param {[string] | [any]} columns Table columns, can be a datatables.net.columns array\r\n     *\r\n     * @return {string}\r\n     */\r\n    getTableMarkup: function (columns, tableClasses) {\r\n      return cw.utility.getTableMarkup(columns, tableClasses);\r\n    },\r\n    /**\r\n     * Handles sorting a date column and display\r\n     *\r\n     * @return {any} expected by datatables.net column.data\r\n     */\r\n    tableSortByDate: function (date, sortType, displayFormat) {\r\n      return cw.utility.tableSortByDate(date, sortType, displayFormat);\r\n    },\r\n    /**\r\n     * Update's referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    addUpdateDataTableListing: function (dataTable, newObject, matchingColumnName, redrawTable) {\r\n      return cw.utility.addUpdateDataTableListing(dataTable, newObject, matchingColumnName, redrawTable);\r\n    },\r\n    /**\r\n     * Delete referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    deleteDataTableListing: function (dataTable, matchingKeyValue, matchingColumnName, redrawTable) {\r\n      return cw.utility.deleteDataTableListing(dataTable, matchingKeyValue, matchingColumnName, redrawTable);\r\n    },\r\n    /**\r\n     * Get's referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    getDataTableRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTableRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n    /**\r\n     * Get all rows from referenced datatable\r\n     *\r\n     * @return {void}\r\n     */\r\n    getDataTableAllRowData: function (dataTable) {\r\n      return cw.utility.getDataTableAllRowData(dataTable);\r\n    },\r\n    /**\r\n     * Returns the next row after the one passed in (based on the current sort of the table)\r\n     *\r\n     * @return {any}\r\n     */\r\n    getDataTableNextRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTableNextRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n    /**\r\n     * Returns the previous row after the one passed in (based on the current sort of the table)\r\n     *\r\n     * @return {any}\r\n     */\r\n    getDataTablePreviousRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTablePreviousRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n  };\r\n})((window.cw = window.cw || {}), jQuery);\r\n","export enum AlertSeverity {\r\n  Info = \"alert-info\",\r\n  Warning = \"alert-warning\",\r\n  Error = \"alert-error\",\r\n  Success = \"alert-success\",\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = [\"id\", \"checked\", \"readonly\", \"disabled\"]\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = {\n  key: 0,\n  class: \"pl5\"\n}\nconst _hoisted_5 = [\"innerHTML\"]\n\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'checkbox',\n  props: {\n    checked: { type: [Boolean, String], default: false },\n    disabled: { type: [Boolean, String], default: false },\n    readonly: { type: [Boolean, String], default: false },\n    label: { default: \"&nbsp;\" },\n    hover: { type: [Boolean, String] },\n    variant: { default: \"normal\" },\n    inputClass: { default: \"\" },\n    alignLabel: { default: \"start\" },\n    loading: { type: [Boolean, String], default: false },\n    loadingText: {},\n    labelClass: { default: undefined },\n    labelStyle: { type: [Boolean, null, String, Object, Array], default: undefined }\n  },\n  emits: [\"checked\", \"unchecked\", \"updated\", \"input\"],\n  setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass(['s1-cbx', props.variant !== 'normal' ? props.variant : ''])\n  }, [\n    _createElementVNode(\"label\", {\n      class: _normalizeClass(lblClasses.value),\n      for: _unref(componentId),\n      style: _normalizeStyle(props.labelStyle)\n    }, [\n      _createElementVNode(\"input\", {\n        type: \"checkbox\",\n        id: _unref(componentId),\n        checked: isChecked.value,\n        readonly: _ctx.readonly,\n        disabled: _unref(boxBool)(props.disabled),\n        class: _normalizeClass(_ctx.inputClass),\n        onChange: checkVal\n      }, null, 42, _hoisted_2),\n      _renderSlot(_ctx.$slots, \"default\", {}, () => [\n        _createElementVNode(\"span\", {\n          class: _normalizeClass(`s1-cbx-lbl-${props.alignLabel}`),\n          innerHTML: _ctx.label\n        }, null, 10, _hoisted_3)\n      ])\n    ], 14, _hoisted_1),\n    (_ctx.loading)\n      ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n          _createVNode(Icon, {\n            animate: \"spin\",\n            icon: \"fa-spinner\"\n          }),\n          _cache[0] || (_cache[0] = _createTextVNode(\" \")),\n          _createElementVNode(\"small\", null, [\n            _createElementVNode(\"span\", { innerHTML: _ctx.loadingText }, null, 8, _hoisted_5)\n          ])\n        ]))\n      : _createCommentVNode(\"\", true)\n  ], 2))\n}\n}\n\n})","<template>\r\n  <div :class=\"['s1-cbx', props.variant !== 'normal' ? props.variant : '']\">\r\n    <label\r\n      :class=\"lblClasses\"\r\n      :for=\"componentId\"\r\n      :style=\"props.labelStyle\"\r\n    >\r\n      <input\r\n        type=\"checkbox\"\r\n        :id=\"componentId\"\r\n        :checked=\"isChecked\"\r\n        :readonly=\"readonly\"\r\n        :disabled=\"boxBool(props.disabled)\"\r\n        :class=\"inputClass\"\r\n        @change=\"checkVal\"\r\n      />\r\n      <slot\r\n        ><span\r\n          :class=\"`s1-cbx-lbl-${props.alignLabel}`\"\r\n          v-html=\"label\"\r\n      /></slot>\r\n    </label>\r\n    <span\r\n      v-if=\"loading\"\r\n      class=\"pl5\"\r\n      ><Icon\r\n        animate=\"spin\"\r\n        icon=\"fa-spinner\" />&nbsp;<small><span v-html=\"loadingText\"> </span></small\r\n    ></span>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  checked: false,\r\n  disabled: false,\r\n  readonly: false,\r\n  label: \"&nbsp;\",\r\n  variant: \"normal\",\r\n  inputClass: \"\",\r\n  alignLabel: \"start\",\r\n  loading: false,\r\n  labelClass: undefined,\r\n  labelStyle: undefined,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n  (e: \"checked\"): void;\r\n  (e: \"unchecked\"): void;\r\n  (e: \"updated\", val: boolean): void;\r\n  (e: \"input\", val: boolean): void;\r\n}>();\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n</script>\r\n<style lang=\"less\" scoped>\r\n@import \"@css/constants.less\";\r\n.s1-cbx-label {\r\n  font-size: 2rem;\r\n  display: grid;\r\n  grid-template-columns: 1em auto;\r\n  gap: 0.5em;\r\n}\r\n\r\n.lbl-no-txt {\r\n  gap: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n.s1-cbx-label span {\r\n  font-size: 1.33rem;\r\n}\r\n\r\n.s1-cbx-label + .s1-cbx-label {\r\n  margin-top: 1em;\r\n}\r\n\r\n.s1-cbx-label-disabled {\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n.s1-cbx input {\r\n  /* Remove most all native input styles */\r\n  appearance: none;\r\n  /* For iOS < 15 */\r\n  background-color: @white;\r\n  /* Not removed via appearance */\r\n  margin: 0;\r\n\r\n  font: inherit;\r\n  color: var(--form-control-border);\r\n  width: 1.15em;\r\n  height: 1.15em;\r\n  border: 0.075em solid var(--form-control-border);\r\n  border-radius: 0;\r\n  transform: translateY(-0.075em);\r\n  padding-right: 0 !important;\r\n  display: grid !important;\r\n  place-content: center;\r\n}\r\n\r\n.s1-cbx input::before {\r\n  content: \"\";\r\n  width: 0.65em;\r\n  height: 0.65em;\r\n  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); //this looks like a checkmark\r\n  transform: scale(0);\r\n  transform-origin: bottom left;\r\n  transition: 120ms transform ease-in-out;\r\n  box-shadow: inset 1em 1em var(--form-control-color);\r\n  background-color: @white;\r\n}\r\n\r\n.s1-cbx input:checked {\r\n  background-color: var(--secondary-cta-color);\r\n}\r\n\r\n.s1-cbx-label-disabled input:checked {\r\n  background-color: var(--form-control-disabled);\r\n  color: @white;\r\n}\r\n\r\n.s1-cbx-label-disabled input::before {\r\n  box-shadow: inset 1em 1em @white;\r\n}\r\n\r\n.s1-cbx input:checked::before {\r\n  transform: scale(1);\r\n}\r\n\r\n.s1-cbx input:focus {\r\n  outline: ~\"max(2px, 0.15em) solid currentColor\";\r\n  outline-offset: ~\"max(2px, 0.15em)\";\r\n}\r\n\r\n.s1-cbx input:disabled {\r\n  --form-control-color: var(--form-control-disabled);\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n/* Variant overrides */\r\n.s1-cbx.small .s1-cbx-label {\r\n  font-size: 1.75rem;\r\n  gap: 0.25em;\r\n  grid-template-columns: 0.75em auto;\r\n}\r\n\r\n.s1-cbx.small input {\r\n  width: 0.75em !important;\r\n  height: 0.75em !important;\r\n}\r\n\r\n.s1-cbx.small input::before {\r\n  width: 0.45em;\r\n  height: 0.45em;\r\n}\r\n\r\n.s1-cbx.small .s1-cbx-label span {\r\n  font-size: 0.9rem;\r\n  line-height: 1.2em;\r\n}\r\n/* End Variants */\r\n\r\n.s1-cbx-lbl-start {\r\n  align-self: flex-start;\r\n}\r\n.s1-cbx-lbl-center {\r\n  align-self: center;\r\n}\r\n.s1-cbx-lbl-end {\r\n  align-self: flex-end;\r\n}\r\n</style>\r\n","import script from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=61d0d658&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-61d0d658\"]])\n\nexport default __exports__","export default interface IClickableAlertMessage {\r\n  text: string;\r\n  clickCallback?: (string) => void;\r\n}\r\n\r\nexport const isIClickableAlertMessage = (\r\n  msg?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[]\r\n): msg is IClickableAlertMessage => msg !== undefined && msg !== null && msg.hasOwnProperty(\"text\");\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withModifiers as _withModifiers, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, renderSlot as _renderSlot } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = { key: 2 }\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = [\"innerHTML\"]\nconst _hoisted_6 = { key: 3 }\nconst _hoisted_7 = [\"innerHTML\", \"onClick\"]\nconst _hoisted_8 = [\"innerHTML\"]\n\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'alert',\n  props: {\n    message: { default: undefined },\n    alertIcon: { default: \"fa-exclamation-triangle\" },\n    alertSeverity: { default: AlertSeverity.Warning },\n    dismissible: { type: [Boolean, String], default: false },\n    dismissAfter: { default: 0 },\n    iconClass: { default: \"\" },\n    iconWrapperClass: { default: \"\" },\n    cssAlerting: { type: [Boolean, String], default: false },\n    AlertCss: {},\n    scrollOnError: { type: [Boolean, String], default: false },\n    scrollLocation: { default: \"top\" },\n    dismissIcon: { default: \"fa-times\" }\n  },\n  setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (showAlert.value)\n    ? (_openBlock(), _createElementBlock(\"div\", {\n        key: 0,\n        class: _normalizeClass([\"err-pnl error-wrapper alert flex align-items-center\", _ctx.alertSeverity]),\n        id: _unref(alertTarget)\n      }, [\n        (dismissible.value)\n          ? (_openBlock(), _createElementBlock(\"button\", {\n              key: 0,\n              \"aria-hidden\": \"true\",\n              \"data-dismiss\": \"alert\",\n              class: _normalizeClass([\"close\", () => (props.dismissAfter > 0 ? 'hidden' : '')]),\n              id: `${_unref(alertTarget)}-alert-close`,\n              type: \"button\",\n              onClick: _cache[0] || (_cache[0] = ($event: any) => {\r\n        _ctx.$emit('dismissed');\r\n        dismissed.value = true;\r\n      })\n            }, [\n              _createVNode(Icon, {\n                icon: props.dismissIcon\n              }, null, 8, [\"icon\"])\n            ], 10, _hoisted_2))\n          : _createCommentVNode(\"\", true),\n        (_ctx.alertIcon)\n          ? (_openBlock(), _createBlock(Icon, {\n              key: 1,\n              class: _normalizeClass([\"pr10 pl10 fs-xs-32\", _ctx.iconClass]),\n              icon: _ctx.alertIcon,\n              \"icon-wrapper-class\": _ctx.iconWrapperClass\n            }, null, 8, [\"class\", \"icon\", \"icon-wrapper-class\"]))\n          : _createCommentVNode(\"\", true),\n        (isSingleMessage.value)\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n              (!_unref(isIClickableAlertMessage)(singleMessage.value) || singleMessage.value.clickCallback === undefined)\n                ? (_openBlock(), _createElementBlock(\"span\", {\n                    key: 0,\n                    innerHTML: \r\n          singleMessage.value !== undefined && _unref(isIClickableAlertMessage)(singleMessage.value)\r\n            ? singleMessage.value.text\r\n            : singleMessage.value ?? ''\r\n        \n                  }, null, 8, _hoisted_4))\n                : (_unref(isIClickableAlertMessage)(singleMessage.value) && singleMessage.value.clickCallback)\n                  ? (_openBlock(), _createElementBlock(\"a\", {\n                      key: 1,\n                      href: \"#\",\n                      innerHTML: singleMessage.value.text,\n                      onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (singleMessage.value.clickCallback(singleMessage.value.text)), [\"prevent\"]))\n                    }, null, 8, _hoisted_5))\n                  : _createCommentVNode(\"\", true)\n            ]))\n          : (Array.isArray(_ctx.message) && _ctx.message.length > 1)\n            ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n                _createElementVNode(\"ul\", null, [\n                  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.message, (m) => {\n                    return (_openBlock(), _createElementBlock(\"li\", {\n                      key: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                    }, [\n                      (_unref(isIClickableAlertMessage)(m) && m.clickCallback)\n                        ? (_openBlock(), _createElementBlock(\"a\", {\n                            key: 0,\n                            href: \"#\",\n                            innerHTML: m.text,\n                            onClick: _withModifiers(($event: any) => (m.clickCallback(m.text)), [\"prevent\"])\n                          }, null, 8, _hoisted_7))\n                        : (_openBlock(), _createElementBlock(\"span\", {\n                            key: 1,\n                            innerHTML: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                          }, null, 8, _hoisted_8))\n                    ]))\n                  }), 128))\n                ])\n              ]))\n            : _createCommentVNode(\"\", true),\n        _renderSlot(_ctx.$slots, \"message\")\n      ], 10, _hoisted_1))\n    : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./alert.vue?vue&type=style&index=0&id=45150bfd&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div\r\n    v-if=\"showAlert\"\r\n    class=\"err-pnl error-wrapper alert flex align-items-center\"\r\n    :class=\"alertSeverity\"\r\n    :id=\"alertTarget\"\r\n  >\r\n    <button\r\n      v-if=\"dismissible\"\r\n      aria-hidden=\"true\"\r\n      data-dismiss=\"alert\"\r\n      class=\"close\"\r\n      :class=\"() => (props.dismissAfter > 0 ? 'hidden' : '')\"\r\n      :id=\"`${alertTarget}-alert-close`\"\r\n      type=\"button\"\r\n      @click=\"\r\n        $emit('dismissed');\r\n        dismissed = true;\r\n      \"\r\n    >\r\n      <Icon :icon=\"props.dismissIcon\" />\r\n    </button>\r\n    <Icon\r\n      v-if=\"alertIcon\"\r\n      class=\"pr10 pl10 fs-xs-32\"\r\n      :class=\"iconClass\"\r\n      :icon=\"alertIcon\"\r\n      :icon-wrapper-class=\"iconWrapperClass\"\r\n    />\r\n    <div v-if=\"isSingleMessage\">\r\n      <span\r\n        v-if=\"!isIClickableAlertMessage(singleMessage) || singleMessage.clickCallback === undefined\"\r\n        v-html=\"\r\n          singleMessage !== undefined && isIClickableAlertMessage(singleMessage)\r\n            ? singleMessage.text\r\n            : singleMessage ?? ''\r\n        \"\r\n      />\r\n      <a\r\n        v-else-if=\"isIClickableAlertMessage(singleMessage) && singleMessage.clickCallback\"\r\n        href=\"#\"\r\n        v-html=\"singleMessage.text\"\r\n        @click.prevent=\"singleMessage.clickCallback(singleMessage.text)\"\r\n      />\r\n    </div>\r\n    <div v-else-if=\"Array.isArray(message) && message.length > 1\">\r\n      <ul>\r\n        <li\r\n          v-for=\"m in message\"\r\n          :key=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n        >\r\n          <a\r\n            v-if=\"isIClickableAlertMessage(m) && m.clickCallback\"\r\n            href=\"#\"\r\n            v-html=\"m.text\"\r\n            @click.prevent=\"m.clickCallback(m.text)\"\r\n          />\r\n          <span\r\n            v-else\r\n            v-html=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n          />\r\n        </li>\r\n      </ul>\r\n    </div>\r\n    <slot name=\"message\"></slot>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  message: undefined,\r\n  alertIcon: \"fa-exclamation-triangle\",\r\n  alertSeverity: AlertSeverity.Warning,\r\n  dismissible: false,\r\n  dismissAfter: 0,\r\n  iconClass: \"\",\r\n  iconWrapperClass: \"\",\r\n  cssAlerting: false,\r\n  scrollOnError: false,\r\n  scrollLocation: \"top\",\r\n  dismissIcon: \"fa-times\",\r\n});\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/fontUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"pdf-viewer-root\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"flex full-width align-items-center page-tools-wrapper\",\n  style: {\"justify-content\":\"space-between\"}\n}\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = {\n  key: 0,\n  class: \"ml10\"\n}\nconst _hoisted_5 = {\n  key: 1,\n  class: \"ml10\"\n}\nconst _hoisted_6 = [\"href\"]\nconst _hoisted_7 = { class: \"flex align-items-center\" }\nconst _hoisted_8 = { class: \"btn-group ml10\" }\nconst _hoisted_9 = { class: \"ml10\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { class: \"pr10 pl10\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"row mt10\" }\nconst _hoisted_14 = {\n  key: 0,\n  class: \"col-xs-12 text-center\"\n}\nconst _hoisted_15 = [\"width\", \"height\"]\nconst _hoisted_16 = {\n  key: 1,\n  class: \"col-xs-12\"\n}\n\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'pdfViewer',\n  props: {\n    pdfUrl: { default: \"\" },\n    allowDownload: { type: Boolean, default: false },\n    startPageNumber: { default: 1 },\n    showSelectCheckbox: { type: Boolean, default: false },\n    selected: { type: Boolean, default: false },\n    selectCheckboxText: { default: \"\" }\n  },\n  emits: [\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n],\n  setup(__props: any, { emit: __emit }) {\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (showPageTools())\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n          _createElementVNode(\"div\", _hoisted_3, [\n            (_ctx.showSelectCheckbox)\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n                  _createVNode(checkbox, {\n                    checked: _ctx.selected,\n                    label: _ctx.selectCheckboxText,\n                    onUpdated: pdfSelectionChange\n                  }, null, 8, [\"checked\", \"label\"])\n                ]))\n              : _createCommentVNode(\"\", true),\n            (_ctx.allowDownload && downloadUrl() !== '')\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n                  _createElementVNode(\"a\", {\n                    href: downloadUrl(),\n                    title: \"Download document\",\n                    onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('pdf-doc-downloaded'))),\n                    target: \"_blank\"\n                  }, [\n                    _createVNode(icon, { icon: \"fa-download\" }),\n                    _cache[5] || (_cache[5] = _createTextVNode(\"Download \"))\n                  ], 8, _hoisted_6)\n                ]))\n              : _createCommentVNode(\"\", true)\n          ]),\n          _createElementVNode(\"div\", _hoisted_7, [\n            _createElementVNode(\"div\", _hoisted_8, [\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (zoom(0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-plus\" })\n              ]),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (zoom(-0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-minus\" })\n              ])\n            ]),\n            _createElementVNode(\"div\", _hoisted_9, [\n              _cache[6] || (_cache[6] = _createTextVNode(\" Page: \")),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-prev\",\n                onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (movePage(-1)), [\"prevent\"])),\n                disabled: currentPage.value === 1 ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-backward\" })\n              ], 8, _hoisted_10),\n              _createElementVNode(\"span\", _hoisted_11, _toDisplayString(pageDisplay()), 1),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-next\",\n                onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (movePage(1)), [\"prevent\"])),\n                disabled: currentPage.value === totalPages.value ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-forward\" })\n              ], 8, _hoisted_12)\n            ])\n          ])\n        ]))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_13, [\n      (!loadFailed.value)\n        ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n            _createElementVNode(\"canvas\", {\n              class: \"pdf-preview-canvas\",\n              id: componentId,\n              width: canvasWidth.value,\n              height: canvasHeight.value,\n              style: {\"background\":\"#fff\"}\n            }, null, 8, _hoisted_15)\n          ]))\n        : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n            _createVNode(alert, { message: \"Could not get document.\" })\n          ]))\n    ])\n  ]))\n}\n}\n\n})","import script from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./pdfViewer.vue?vue&type=style&index=0&id=43db1d9e&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div class=\"pdf-viewer-root\">\r\n    <div\r\n      v-if=\"showPageTools()\"\r\n      class=\"flex full-width align-items-center page-tools-wrapper\"\r\n      style=\"justify-content: space-between\"\r\n    >\r\n      <div class=\"flex\">\r\n        <div\r\n          v-if=\"showSelectCheckbox\"\r\n          class=\"ml10\"\r\n        >\r\n          <checkbox\r\n            :checked=\"selected\"\r\n            :label=\"selectCheckboxText\"\r\n            @updated=\"pdfSelectionChange\"\r\n          />\r\n        </div>\r\n        <div\r\n          v-if=\"allowDownload && downloadUrl() !== ''\"\r\n          class=\"ml10\"\r\n        >\r\n          <a\r\n            :href=\"downloadUrl()\"\r\n            title=\"Download document\"\r\n            v-on:click=\"emit('pdf-doc-downloaded')\"\r\n            target=\"_blank\"\r\n          >\r\n            <icon icon=\"fa-download\" />Download\r\n          </a>\r\n        </div>\r\n      </div>\r\n      <div class=\"flex align-items-center\">\r\n        <div class=\"btn-group ml10\">\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-plus\" />\r\n          </a>\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(-0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-minus\" />\r\n          </a>\r\n        </div>\r\n        <div class=\"ml10\">\r\n          Page:\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-prev\"\r\n            v-on:click.prevent=\"movePage(-1)\"\r\n            :disabled=\"currentPage === 1 ? true : null\"\r\n          >\r\n            <icon icon=\"fa-backward\" />\r\n          </a>\r\n          <span class=\"pr10 pl10\">{{ pageDisplay() }}</span>\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-next\"\r\n            v-on:click.prevent=\"movePage(1)\"\r\n            :disabled=\"currentPage === totalPages ? true : null\"\r\n          >\r\n            <icon icon=\"fa-forward\" />\r\n          </a>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"row mt10\">\r\n      <div\r\n        v-if=\"!loadFailed\"\r\n        class=\"col-xs-12 text-center\"\r\n      >\r\n        <canvas\r\n          class=\"pdf-preview-canvas\"\r\n          :id=\"componentId\"\r\n          :width=\"canvasWidth\"\r\n          :height=\"canvasHeight\"\r\n          style=\"background: #fff\"\r\n        ></canvas>\r\n      </div>\r\n      <div\r\n        v-else\r\n        class=\"col-xs-12\"\r\n      >\r\n        <alert message=\"Could not get document.\" />\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  pdfUrl: \"\",\r\n  allowDownload: false,\r\n  startPageNumber: 1,\r\n  showSelectCheckbox: false,\r\n  selected: false,\r\n  selectCheckboxText: \"\",\r\n});\r\n\r\nconst emit = defineEmits([\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n]);\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n"],"names":["cw","$","window","jQuery","extend","pages","brokeraccountsummary","args","url","quoteTable","contractTable","init","this","bindInteractions","dropdown","self","tableOptions","data","customerAccount","row","autoWidth","draw","adjust","responsive","bSort","dom","columns","title","className","table2Options","customerUsage","lengthMenu","iDisplayLength","tableTools","ordering","order","deferRender","buttons","language","search","type","val","meta","utility","tableSortByDate","FromDate","ToDate","InvoiceDate","DocumentId","InvoiceID","dataTable","DataTable","dataTable2","drawQuoteTable","allAccountQuotes","custNameFunction","CustomerAccountName","text","on","e","preventDefault","userId","passwordReset","passwordResetModal","$this","tr","closest","find","toggleClass","child","isShown","hide","removeClass","formatChild","show","addClass","invId","docId","loadingIndicator","start","getDataTableRowData","modal","Open","modalBody","size","successCallback","modalRef","close","onShownCallback","doc","getData","vueApp","pdfUrl","allowDownload","onPdfLoaded","stop","vueAppVm","mount","onclick","event","target","style","display","d","html","CustomerName","QuoteStatusDescription","DateRequestedFormatted","TermLength","TermStart2","Term1Formatted","Term2Formatted","TermLengthFormatted","DueDateFormatted","ExpectedGrossProfitFormatted","BrokerMargin","BrokerMarginFormatted","QuoteGuid","value","AccountDetails","ServiceAddress","ServiceAddress2","ServiceCity","ServiceState","ServiceZip","drawContractTable","fn","Buttons","defaults","button","ext","copyHtml5","csvHtml5","print","dtTools","getTableMarkup","tableClasses","date","sortType","displayFormat","addUpdateDataTableListing","newObject","matchingColumnName","redrawTable","deleteDataTableListing","matchingKeyValue","getDataTableAllRowData","getDataTableNextRowData","getDataTablePreviousRowData","AlertSeverity","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","key","class","_hoisted_5","__name","props","checked","Boolean","String","default","disabled","readonly","label","hover","variant","inputClass","alignLabel","loading","loadingText","labelClass","undefined","labelStyle","Object","Array","emits","setup","__props","emit","__emit","componentId","isChecked","lblClasses","labels","push","indexOf","trim","checkVal","newVal","HTMLInputElement","_ctx","_cache","for","id","onChange","$slots","innerHTML","animate","icon","isIClickableAlertMessage","msg","hasOwnProperty","_hoisted_6","_hoisted_7","_hoisted_8","message","alertIcon","alertSeverity","Warning","dismissible","dismissAfter","iconClass","iconWrapperClass","cssAlerting","AlertCss","scrollOnError","scrollLocation","dismissIcon","dismissed","alertTarget","isSingleMessage","isArray","length","singleMessage","showAlert","setTimeout","alert","document","getElementById","click","nv","onClick","$event","$emit","clickCallback","href","m","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","startPageNumber","showSelectCheckbox","selected","selectCheckboxText","pdf","workerSrc","URL","toString","downloadUrl","forceDownload","totalPages","currentPage","canvasHeight","canvasWidth","pdfDoc","loadFailed","pageRendering","scale","pageNumPending","canvasEl","height","width","promise","then","numPages","renderPage","catch","loadPdf","pdfSelectionChange","pageNum","getPage","page","viewport","getViewport","canvasCtx","getContext","render","canvasContext","movePage","currentPageOffset","zoom","zoomPercent","onUpdated"],"sourceRoot":""}