{"version":3,"sources":["webpack:///./src/services/LinkServices.js","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///./src/services/PredictionServices.js","webpack:///./src/views/coatings/Results.vue?c88d","webpack:///../../../src/mixins/returnable/index.ts","webpack:///./src/views/coatings/Results.vue?cd9d","webpack:///./src/services/ExportServices.js","webpack:///src/views/coatings/Results.vue","webpack:///./src/views/coatings/Results.vue?0bc4","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///./src/views/coatings/Results.vue?5127"],"names":["getContactLink","userInfo","fields","name","value","givenName","surname","mail","organization","jobTitle","mobilePhone","country","urlParams","forEach","field","push","encodeURI","join","props","hideOverlay","overlayColor","overlayOpacity","Number","String","data","animationFrame","overlay","watch","this","genOverlay","beforeDestroy","methods","createOverlay","VOverlay","propsData","absolute","color","opacity","parent","$el","document","requestAnimationFrame","removeOverlay","showScroll","cancelAnimationFrame","scrollListener","e","includes","up","down","checkPath","hasScrollbar","el","Node","style","window","shouldScroll","alreadyAtTop","alreadyAtBottom","scrollingUp","delta","scrollingDown","isInside","path","composedPath","dialog","$refs","selected","index","hideScroll","$vuetify","breakpoint","passive","baseMixins","mixins","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","type","default","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","isActive","stackMinZIndex","previousActiveElement","computed","classes","contentClasses","hasActivator","Boolean","$slots","$scopedSlots","created","$attrs","hasOwnProperty","beforeMount","unbind","animateClick","closeConditional","target","_isDestroyed","content","contains","activeZIndex","show","bind","onClickOutside","onKeydown","getOpenDependents","activator","onFocusin","getOpenDependentElements","some","focusable","querySelectorAll","genContent","showLazyContent","root","class","attrs","role","tabindex","on","keydown","zIndex","ref","genTransition","$createElement","appear","genInnerContent","handler","include","transformOrigin","undefined","render","h","staticClass","attach","isDark","node","intersect","button","indeterminate","rotate","size","radius","isVisible","calculatedSize","circumference","Math","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","styles","height","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","offset","genSvg","children","xmlns","viewBox","genInfo","onObserve","setTextColor","$listeners","activeClass","btnToggle","block","depressed","fab","icon","loading","outlined","plain","retainFocusOnClick","rounded","tag","text","tile","proxyClass","sizeableClasses","computedElevation","computedRipple","defaultRipple","circle","hasBg","isElevated","elevation","isRound","measurableStyles","breakingProps","original","replacement","click","genLoader","loader","setColor","JSON","__scrim","setBackgroundColor","computedOpacity","themeClasses","OUTBOUND_PENALTY","getRecommendations","aSquared","bSquared","expC","flex","recs","fullSet","urlBase","process","key","targets","url","axios","post","crossDomain","response","getPrediction","CE","CE_perc","Coating_perc","returnValue","originalValue","save","setTimeout","_vm","_h","_c","_self","currentFormulation","staticStyle","_v","_s","$t","params","floor","editDialogWidth","scopedSlots","_u","fn","_g","_b","model","callback","$$v","editDialog","expression","$event","numRecs","onEditComplete","_e","selectedRec","warningCode","warning","heading","body","linkTo","linkText","contactLink","copyShareUrl","onExportClick","openEsterUrl","esterDescriptions","openCAPUrl","graph","pred","ci_upper","ci_lower","helpClass","helpDismissed","error","errorMessage","staticRenderFns","getTextExport","inputs","formulations","curDate","Date","dateText","getMonth","getDate","getFullYear","exportText","rec","i","timestamp","getHours","getMinutes","getSeconds","filename","getCSVExportUrl","Name","gen","required","a","b","c","components","CoatingsChart","PredictionForm","LoadingOverlay","ErrorDialog","esterUrls","CAPUrl","fauxProgress","interval","helpInterval","helpTotal","showHelp","HELP_DELAY_SECONDS","widthNum","mounted","open","refreshRecGraph","recNum","genRecommendation","dlLink","createElement","dl","href","download","startFauxLoad","clearInterval","increment","setInterval","mode","border","validator","closeLabel","coloredBorder","dense","dismissible","closeIcon","val","prominent","__cachedBorder","__cachedDismissible","VBtn","small","lang","t","VIcon","__cachedIcon","iconColor","VSheet","computedColor","computedIcon","hasColoredIcon","hasText","genWrapper","prepend","close","toggle","genAlert","inset","vertical","orientation","component","VAlert","VCard","VCardTitle","VCol","VDialog","VDivider","VRow","VSpacer"],"mappings":"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","file":"js/chunk-102164ba.d8439168.js","sourcesContent":["export default {\n getContactLink: function(userInfo) {\n if (!userInfo) return '/contact'\n\n const fields = [\n {name: 'fname', value: userInfo.givenName},\n {name: 'lname', value: userInfo.surname},\n {name: 'mailto', value: userInfo.mail},\n {name: 'company', value: userInfo.organization},\n {name: 'title', value: userInfo.jobTitle},\n {name: 'phone', value: userInfo.mobilePhone},\n {name: 'country', value: userInfo.country},\n ]\n\n var urlParams = []\n\n fields.forEach(field => {\n urlParams.push(`${field.name}=${field.value}`)\n })\n\n return encodeURI(`/contact?${urlParams.join('&')}`)\n },\n}","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['auto', 'scroll'].includes(style.overflowY!) && el.scrollHeight > el.clientHeight\n },\n shouldScroll (el: Element, delta: number): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const alreadyAtTop = el.scrollTop === 0\n const alreadyAtBottom = el.scrollTop + el.clientHeight === el.scrollHeight\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtTop && scrollingUp) return true\n if (!alreadyAtBottom && scrollingDown) return true\n if ((alreadyAtTop || alreadyAtBottom)) {\n return this.shouldScroll(el.parentNode as Element, delta)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = e.path || this.composedPath(e)\n const delta = e.deltaY\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, delta)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, delta)\n }\n\n return true\n },\n /**\n * Polyfill for Event.prototype.composedPath\n */\n composedPath (e: WheelEvent): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none',\n },\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.focus()\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","import axios from 'axios'\nconst OUTBOUND_PENALTY = 0.0316\n\nexport default {\n getRecommendations: async function (aSquared, bSquared, expC, flex, recs, fullSet) {\n const urlBase = process.env.VUE_APP_PREDICTION_API_BASE\n const key = process.env.VUE_APP_PREDICTION_API_KEY\n \n const targets = { 'a_squared': aSquared, 'b_squared': bSquared * 60, 'exp_c': expC }\n const data = { 'targets': targets, 'flex': flex, 'n_recs': recs, 'full_result_set': fullSet, 'out_bound_penalty': OUTBOUND_PENALTY}\n const url = `${urlBase}/recommend?code=${key}`\n const response = await axios.post(url, data, { crossDomain: true })\n return response\n },\n getPrediction: async function (CE, CE_perc, Coating_perc) {\n const urlBase = process.env.VUE_APP_PREDICTION_API_BASE\n const key = process.env.VUE_APP_PREDICTION_API_KEY\n\n const data = { 'CE': CE, 'CE_perc': CE_perc, 'Coating_perc': Coating_perc}\n const url = `${urlBase}/prediction?code=${key}`\n const response = await axios.post(url, data, { crossDomain: true })\n return response\n },\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Results.vue?vue&type=style&index=0&lang=css&\"","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'returnable',\n\n props: {\n returnValue: null as any,\n },\n\n data: () => ({\n isActive: false,\n originalValue: null as any,\n }),\n\n watch: {\n isActive (val) {\n if (val) {\n this.originalValue = this.returnValue\n } else {\n this.$emit('update:return-value', this.originalValue)\n }\n },\n },\n\n methods: {\n save (value: any) {\n this.originalValue = value\n setTimeout(() => {\n this.isActive = false\n })\n },\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(this.currentFormulation.params)?_c('div',{staticClass:\"input-container\"},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"px-12 input-vert-center\",attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"auto\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\"}},[_c('span',{staticClass:\"text-h4\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsInputTitle'))+\" \")])])]),_c('v-col',{staticClass:\"px-12\",attrs:{\"cols\":\"auto\"}},[_c('p',{staticClass:\"input-param text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsInputMax'))+\" \")]),_c('p',{staticClass:\"input-param text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(((this.currentFormulation.params.aSquared) + \"%\"))+\" \")])]),_c('v-col',{staticClass:\"px-12 input-separated\",attrs:{\"cols\":\"auto\"}},[_c('p',{staticClass:\"input-param text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsInputMid'))+\" \")]),_c('p',{staticClass:\"input-param text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(((this.currentFormulation.params.bSquared) + \" \" + (this.$t('ResultsInputHour'))))+\" \")])]),_c('v-col',{staticClass:\"px-12 input-separated\",attrs:{\"cols\":\"auto\"}},[_c('p',{staticClass:\"input-param text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsInputSteepness'))+\" \")]),_c('p',{staticClass:\"input-param text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(((Math.floor((this.currentFormulation.params.expC * 50) * 100) / 100) + \"%\"))+\" \")])]),_c('v-col',{staticClass:\"pt-6 px-12\",attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"auto\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"max-width\":_vm.editDialogWidth,\"max-height\":\"80vh\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-6\",staticStyle:{\"font-size\":\"16px\"},attrs:{\"dark\":\"\",\"large\":\"\",\"color\":\"var(--eastman-azure)\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('ResultsEdit'))+\" \")])]}}],null,false,1954327485),model:{value:(_vm.editDialog),callback:function ($$v) {_vm.editDialog=$$v},expression:\"editDialog\"}},[_c('v-card',{staticClass:\"pa-8 py-10\"},[_c('v-card-title',{staticClass:\"text-h5 title-break\"},[_vm._v(\" \"+_vm._s(this.$t('PredictionParameterTitle'))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"icon\":\"\",\"color\":\"black\"},on:{\"click\":function($event){_vm.editDialog=false}}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1),_c('div',{staticClass:\"px-4\",staticStyle:{\"padding-top\":\"50px\"}},[_c('PredictionForm',{attrs:{\"defaultA\":this.currentFormulation.params.aSquared,\"defaultB\":this.currentFormulation.params.bSquared,\"defaultC\":this.currentFormulation.params.expC,\"defaultFlex\":this.currentFormulation.params.flex,\"defaultFullSet\":this.currentFormulation.params.fullSet,\"defaultNumRecs\":this.currentFormulation.params.numRecs,\"dialogDisplay\":true},on:{\"predictComplete\":_vm.onEditComplete,\"predictClose\":function($event){_vm.editDialog=false}}})],1)],1)],1)],1)],1)],1)],1):_vm._e(),_c('div',{staticClass:\"results-container\"},[(this.currentFormulation.recs[this.selectedRec].warningCode === 0)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{staticClass:\"my-4\",attrs:{\"border\":\"left\",\"colored-border\":\"\",\"color\":\"var(--eastman-gold)\",\"elevation\":\"2\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"row\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"center\",\"margin-right\":\"1em\"}},[_c('v-icon',{attrs:{\"color\":\"var(--eastman-gold)\",\"x-large\":\"\"}},[_vm._v(\" mdi-alert-circle \")])],1),_c('div',[_c('div',{staticClass:\"font-weight-bold text-h6\"},[_vm._v(_vm._s(this.warning.heading))]),_c('div',[_vm._v(_vm._s(this.warning.body)+\" \"),_c('a',{attrs:{\"href\":this.warning.linkTo,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(this.warning.linkText)+\" \")]),_vm._v(\" | \"),_c('router-link',{attrs:{\"to\":this.contactLink}},[_vm._v(\" Contact us \")])],1)])])])],1)],1):_vm._e(),_c('v-row',{staticClass:\"mb-3\",attrs:{\"justify\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticStyle:{\"font-size\":\"16px\"},attrs:{\"outlined\":\"\",\"large\":\"\",\"color\":\"var(--eastman-azure)\"},on:{\"click\":_vm.copyShareUrl}},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsShare'))+\" \"),_c('v-icon',{staticClass:\"ml-1\"},[_vm._v(\" mdi-share \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticStyle:{\"font-size\":\"16px\"},attrs:{\"outlined\":\"\",\"large\":\"\",\"color\":\"var(--eastman-azure)\"},on:{\"click\":_vm.onExportClick}},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsExport'))+\" \"),_c('v-icon',{staticClass:\"ml-1\"},[_vm._v(\" mdi-download \")])],1)],1)],1),_c('v-row',[_c('v-col',{staticStyle:{},attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"5\",\"xl\":\"4\"}},[_c('v-card',{staticClass:\"pa-8 mb-8\"},[_c('v-card-title',[_c('span',{staticClass:\"text-h4 font-weight-light title-break\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsTitle'))+\" \")])]),_c('div',{staticClass:\"px-4\"},[_c('v-divider'),_c('div',{staticClass:\"recommendation-container mt-6\"},[_c('span',{staticClass:\"text-h5 font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsBlendTitle'))+\" \")]),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"flex-end\"}},[_c('span',{staticClass:\"text-body-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('ResultsBlendRatioLabel'))+\" \")])])]),_c('div',{staticClass:\"recommendation-container\"},[_c('div',{staticClass:\"ester-clickable\",on:{\"click\":_vm.openEsterUrl}},[_c('span',{staticClass:\"text-h5 font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.currentFormulation.recs[this.selectedRec].CE)+\" \")]),_c('v-icon',{staticClass:\"mb-2\",attrs:{\"color\":\"var(--eastman-azure)\"}},[_vm._v(\"mdi-launch\")])],1),_c('span',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(((Math.floor(_vm.currentFormulation.recs[this.selectedRec].CE_perc * 100) / 100) + \"%\"))+\" \")])]),_c('div',{staticClass:\"recommendation-description\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.esterDescriptions[this.currentFormulation.recs[this.selectedRec].CE])+\" \")])]),_c('v-divider'),_c('div',{staticClass:\"recommendation-container\"},[_c('div',{staticClass:\"ester-clickable\",on:{\"click\":_vm.openCAPUrl}},[_c('span',{staticClass:\"text-h5 font-weight-medium\"},[_vm._v(\" C-A-P \")]),_c('v-icon',{staticClass:\"mb-2\",attrs:{\"color\":\"var(--eastman-azure)\"}},[_vm._v(\"mdi-launch\")])],1),_c('span',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(((Math.floor((100 - _vm.currentFormulation.recs[this.selectedRec].CE_perc) * 100) / 100) + \"%\"))+\" \")])]),_c('div',{staticClass:\"recommendation-description\"},[_c('span',[_vm._v(\" Cellulose Acetate Phthalate \")])]),_c('v-divider'),_c('div',{staticClass:\"recommendation-container\",staticStyle:{\"margin-top\":\"1.5em\",\"margin-bottom\":\"1.5em\"}},[_c('div',[_c('span',{staticClass:\"text-h5 font-weight-medium title-break\"},[_vm._v(_vm._s(_vm.$t('ResultsCoating'))+\" \")])]),_c('span',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(((Math.floor(_vm.currentFormulation.recs[this.selectedRec].Coating_perc * 100) / 100) + \"%\"))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"7\",\"xl\":\"8\"}},[_c('v-card',{staticClass:\"pa-10\"},[(_vm.currentFormulation && _vm.currentFormulation.recs[_vm.selectedRec] && _vm.currentFormulation.recs[_vm.selectedRec].graph)?_c('coatings-chart',{attrs:{\"mainCurve\":this.currentFormulation.recs[this.selectedRec].graph.pred,\"secondaryCurve\":this.currentFormulation.params,\"upperCI\":this.currentFormulation.recs[this.selectedRec].graph.ci_upper,\"lowerCI\":this.currentFormulation.recs[this.selectedRec].graph.ci_lower,\"isResults\":true,\"hideToolbar\":_vm.loading,\"showCI\":false}}):_vm._e()],1)],1)],1)],1),_c('v-card',{class:'help-popup ' + _vm.helpClass},[_c('v-btn',{staticClass:\"help-close\",attrs:{\"icon\":\"\",\"text\":\"\",\"color\":\"black\"},on:{\"click\":function($event){_vm.helpDismissed = true}}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1),_c('div',{staticClass:\"mb-5\"},[_c('span',{staticClass:\"text-h4\"},[_vm._v(\"Can we help you with anything?\")])]),_c('v-btn',{staticStyle:{\"font-size\":\"16px\"},attrs:{\"dark\":\"\",\"large\":\"\",\"color\":\"var(--eastman-azure)\",\"to\":this.contactLink}},[_vm._v(\" Contact Us \")])],1),_c('LoadingOverlay',{attrs:{\"showOverlay\":_vm.loading}}),_c('ErrorDialog',{attrs:{\"dialog\":_vm.error,\"title\":\"Error getting results\",\"message\":_vm.errorMessage},on:{\"update:dialog\":function($event){_vm.error = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n getTextExport (inputs, formulations) {\n const curDate = new Date()\n const dateText = `${curDate.getMonth() + 1}-${curDate.getDate()}-${curDate.getFullYear()}`\n var exportText = `${process.env.VUE_APP_NAME} Prediction results - ${dateText}\\n\\n--Input Parameters\\n`\n + `\\tMaximum Dissolution:\\t ${inputs.aSquared} %\\n`\n + `\\tApproximate Midopint:\\t ${inputs.bSquared} Hrs\\n`\n + `\\tDissolution Rate:\\t ${Math.floor((inputs.expC * 50) * 100) / 100} %\\n`\n // + `\\tFlexibility:\\t\\t ${inputs.flex} %\\n`\n // + `\\tExhaustive Search:\\t ${inputs.fullSet ? 'YES' : 'NO'}\\n`\n + '\\n--Coating Formulations for Extended release\\n'\n formulations.forEach((rec, i) => {\n exportText += `${i + 1}.\\n\\tCoating polymer\\t\\t Blend ratio (by wt.)\\n`\n exportText += `\\t${rec.CE}\\t\\t ${Math.floor(rec.CE_perc * 100) / 100} %\\n`\n exportText += `\\tC-A-P\\t\\t\\t ${Math.floor((100 - rec.CE_perc) * 100) / 100} %\\n\\n`\n exportText += `\\tCoating weight gain:\\t ${rec.Coating_perc} %\\n\\n`\n })\n \n const timestamp = `${curDate.getHours()}_${curDate.getMinutes()}_${curDate.getSeconds()}`\n\n return {\n url: `data:text/plain,${encodeURI(exportText)}`,\n filename: `${process.env.VUE_APP_NAME}-Export ${dateText} ${timestamp}`\n }\n },\n getCSVExportUrl (inputs, formulations) {\n var exportText = 'Maximum Dissolution (%),(input) Approximate Midpoint (hrs),(input) Dissolution Rate (%),(input) Flexibility (%),(input) Exhaustive Search'\n + ',Ester,Ester Blend ratio (by wt.)(%),C-A-P Blend Ratio (by wt.)(%),Coating weight gain (%)\\n'\n \n formulations.forEach(rec => {\n exportText += `${inputs.aSquared},${inputs.bSquared},${inputs.expC},${inputs.flex},${inputs.fullSet ? 'YES' : 'NO'},`\n + `${rec.CE},${rec.CE_perc},${100 - rec.CE_perc},${rec.Coating_perc}\\n`\n })\n\n return `data:text/csv,${encodeURI(exportText)}` \n },\n}","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Results.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Results.vue?vue&type=script&lang=js&\"","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","import { render, staticRenderFns } from \"./Results.vue?vue&type=template&id=1d3f80f4&\"\nimport script from \"./Results.vue?vue&type=script&lang=js&\"\nexport * from \"./Results.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Results.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardTitle,VCol,VDialog,VDivider,VIcon,VRow,VSpacer})\n"],"sourceRoot":""}