{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./physician/constants.js","webpack:///./physician/physician.order.js","webpack:///./physician/categoryPage.js","webpack:///./physician/commercialTest.js","webpack:///./order.js","webpack:///../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///../node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///../node_modules/@babel/runtime/helpers/toConsumableArray.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","Physician","window","_isIOSDevice","navigator","userAgent","match","cart","init","$sidebar","$","length","this","onScroll","proxy","onResize","$container","closest","on","resize","scroll","$parent","parent","outerWidth","width","hasClass","css","offset","left","e","winWidth","$cart","releaseCart","$cartParent","absolute","fixed","top","height","scrollTop","limits","absCart","fixCart","removeClass","position","addClass","customize","prepareOrder","$orderGroups","selectOrderGroup","groupCode","cookie","click","data","id","order","toggleCart","genes","each","index","find","getRealGenesList","getAllSelectedGenes","Common","Amplitude","trackTestPanelAddedToOrder","testName","text","trim","siteLocation","genesCount","customPanel","primaryExcluded","isPgx","open","children","size","$this","orderGroupCode","obj","isDiagnosticRNA","resetTest","oneOfGroups","className","tests","not","test","forEach","group","uncheckTest","updateGeneCounts","show","hide","checkTest","defaultTest","customTest","optionalDefaultTests","optionalTest","tempObj","nipsOptionalCustomTests","nipsOptionalTest","optionalCustomTests","$gene","isLocked","lockedGenesContainer","isPreventive","isStatTat","isExomeSlice","lockedGenesLength","allGenesLength","toggleClass","modal","testData","getRealGenesListCount","excludedGenesCount","getExcludedRealGenesListCount","$panel","getRealGenesCountBySelector","getRealGenesBySelector","selector","map","item","innerHTML","toArray","reduce","acc","gene","split","concat","getFakeOptInData","fakeOptInCode","isFakeOptInSelected","isFakeOptInExcluded","testCode","eq","indexOf","fakePanel","hasFakeOptIn","data_codes","optionalIncluded","primary","isPrimarySelected","slice","shouldPushOnlyGenes","testIndex","$test","defaultPanelChecked","push","geneKey","toString","alphabetNavigation","$letterIndex","$letterIndexContainer","windowScroll","windowResize","li","filter","expandSubCategories","$firstPanel","hash","location","$tabsList","$targetEl","$tabsLinks","$tabPane","paneId","$targetTab","parseInt","dataset","siblings","scrollY","$link","prev","scrollTo","behavior","animate","history","scrollRestoration","scrollToHash","scrollToPanel","panel","collapse","event","pushState","replaceState","target","preventDefault","commercialTest","arr","len","arr2","Array","arrayLikeToArray","minLen","constructor","from","isArray","iter","iterator","TypeError","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread"],"mappings":"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","file":"portal-order.a9269b174462b620560a.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/portal_compiled/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1314);\n","module.exports = jQuery;","export const PGX_TEST_REQUISITION_FORM = 'https://view.publitas.com/invitae/trf899_pgx_order_form/page/1'\n","import $ from 'jquery'\nimport {scrollToHash} from './categoryPage'\nimport {PGX_TEST_REQUISITION_FORM} from './constants'\n\nconst Physician = window.Physician || {}\n\n// -------------------------------------\n// order cart sidebar on physician pages\n// -------------------------------------\n\nfunction _isIOSDevice() {\n // query strings for iOS Safari device\n return navigator.userAgent.match(/iPad/i) != null || navigator.userAgent.match(/iPhone/i) != null\n}\n\nPhysician.cart = {\n init: function() {\n // initial display of order count in cart\n var $sidebar = $('.catalog-sidebar')\n if (!_isIOSDevice() && $sidebar.length) {\n // scrolling cart for non-iOS browsers\n this.$sidebar = $sidebar\n this.onScroll = $.proxy(this.onScroll, this)\n this.onResize = $.proxy(this.onResize, this)\n var $container = this.$sidebar.closest('.container')\n $container.on('shown.bs.collapse', this.onScroll)\n $container.on('hidden.bs.collapse', this.onScroll)\n $(window).resize(this.onResize)\n $(window).scroll(this.onScroll)\n this.onResize()\n }\n },\n onResize: function() {\n var $parent = this.$sidebar.parent()\n this.$sidebar.outerWidth($parent.width())\n if (this.$sidebar.hasClass('fixed')) {\n var parentPadding = 15\n this.$sidebar.css('left', $parent.offset().left + parentPadding)\n }\n this.onScroll()\n },\n onScroll: function(e) {\n var winWidth = $(window).width()\n var $cart = this.$sidebar\n if (winWidth < 768) {\n return this.releaseCart($cart)\n }\n\n var $cartParent = $cart.closest('.row')\n\n var absolute = $cart.hasClass('absolute')\n var fixed = $cart.hasClass('fixed')\n\n var parent = {\n top: $cartParent.offset().top,\n height: $cartParent.height()\n }\n var scrollTop = $(window).scrollTop()\n var cartHeight = $cart.height()\n var limits = {\n top: parent.top - 115,\n bottom: parent.top + parent.height - cartHeight - 115\n }\n\n if (scrollTop > limits.bottom && !absolute) {\n if (fixed) {\n this.releaseCart($cart)\n }\n this.absCart($cart)\n } else if (scrollTop < limits.top && (fixed || absolute)) {\n this.releaseCart($cart)\n } else if (scrollTop > limits.top && scrollTop < limits.bottom && !fixed) {\n if (absolute) {\n this.releaseCart($cart)\n }\n this.fixCart($cart)\n }\n },\n releaseCart: function($cart) {\n $cart.removeClass('absolute')\n $cart.removeClass('fixed')\n $cart.css('left', 'auto')\n $cart.parent().css('height', 'auto')\n },\n absCart: function($cart) {\n $cart.css('left', $cart.position().left)\n $cart.parent().css('height', $cart.closest('.row').height())\n $cart.addClass('absolute')\n },\n fixCart: function($cart) {\n $cart.css('left', $cart.offset().left)\n $cart.addClass('fixed')\n }\n}\n\nfunction getAllSelectedGenes() {\n var checkedClass = 'icon-check-square'\n var genes = []\n $('.test-selection').each(function(index) {\n var $checkbox = $(this).find('.icon')\n if ($checkbox.hasClass(checkedClass)) {\n genes = [...genes, ...Physician.customize.getRealGenesList($(this))]\n }\n })\n return genes\n}\n\nPhysician.customize = {\n init: function() {\n Physician.customize.prepareOrder()\n var $orderGroups = $('.order-groups-list')\n var checkedClass = 'icon-check-square'\n var uncheckedClass = 'icon-square'\n\n $('#add-to-order').click(function() {\n var data = $(this).data()\n if (data.id) {\n Physician.order.toggleCart(this)\n }\n const genes = getAllSelectedGenes()\n window.Common.Amplitude.trackTestPanelAddedToOrder({\n testName: $('#concept-name')\n .text()\n .trim(),\n siteLocation: 'Tests Panel',\n genesCount: genes.length,\n genes: genes,\n customPanel: data.primaryExcluded\n })\n })\n\n $('.package-item .add-to-order-button').click(function() {\n var data = $(this).data()\n if (data.id) {\n Physician.order.toggleCart(this)\n }\n })\n\n $('#order-now').on('click', function() {\n const data = $(this).data()\n if (data.isPgx) {\n window.open(PGX_TEST_REQUISITION_FORM, '_blank')\n }\n })\n\n if ($orderGroups.children().size() > 1) {\n selectOrderGroup($.cookie('selectedOrderGroup'))\n }\n $orderGroups.on('click', '.order-group-checkbox', function() {\n var $this = $(this)\n var $checkbox = $this.find('.icon')\n if ($checkbox.hasClass(checkedClass)) {\n deselectOrderGroup($this.data().orderGroupCode)\n } else {\n $orderGroups\n .find('.icon')\n .removeClass(checkedClass)\n .addClass(uncheckedClass)\n selectOrderGroup($this.data().orderGroupCode)\n }\n })\n\n function deselectOrderGroup(groupCode) {\n $('.gene-add-button').addClass('disabled-order-group-gene')\n $('.order-group-' + groupCode + ' .icon')\n .addClass(uncheckedClass)\n .removeClass(checkedClass)\n }\n\n function selectOrderGroup(groupCode) {\n $('.gene-add-button').addClass('disabled-order-group-gene')\n if (groupCode) {\n $('.group-code-' + groupCode + ' .gene-add-button').removeClass('disabled-order-group-gene')\n $('.order-group-' + groupCode + ' .icon')\n .addClass(checkedClass)\n .removeClass(uncheckedClass)\n $.cookie('selectedOrderGroup', groupCode)\n }\n }\n\n // if a test is clicked\n $('.toggle-default, .toggle-custom').on('click', function() {\n const obj = $(this).closest('.test-selection')\n const isDiagnosticRNA = !!$(this).closest('[data-product-type=Diagnostic+RNA]').length\n\n // if the clicked test is already selected\n if ($(this).hasClass('checked')) {\n // We should prevent unselecting panels or add-ons for RNA orders because they are required - WT-16265\n if (!isDiagnosticRNA) {\n Physician.customize.resetTest($(this))\n }\n } else {\n // reset already selected tests that are not available for co-adding\n const oneOfGroups = this.className.match(/one_of_\\d+/g)\n if (oneOfGroups) {\n var tests = $('.toggle-default, .toggle-custom').not(this)\n $.each(tests, function(key, value) {\n var test = $(this)\n oneOfGroups.forEach(function(group) {\n if (test.hasClass('checked') && test.hasClass(group)) {\n Physician.customize.resetTest(test)\n }\n })\n })\n }\n\n // reset the tests\n Physician.customize.uncheckTest(obj.find('.toggle-default, .toggle-custom'))\n obj.find('.gene').removeClass('excluded')\n Physician.customize.updateGeneCounts(obj)\n obj.find('.toggle-default').show()\n obj.find('.toggle-custom').hide()\n\n // select the test\n Physician.customize.checkTest($(this))\n obj.addClass('selected')\n if ($(this).hasClass('toggle-custom')) {\n obj.find('.toggle-default').hide()\n }\n }\n\n // EDGE CASE HACK FOR TEST\n var defaultTest = $('.primary-test.toggle-default')\n var customTest = $('.primary-test.toggle-custom')\n if (\n $(this).hasClass('optional-test') &&\n $(this).hasClass('toggle-default') &&\n $(this).hasClass('checked') &&\n !defaultTest.hasClass('checked') &&\n !customTest.hasClass('checked')\n ) {\n // if this is an optional default test AND the primary default test or primary custom test IS NOT selected, also select the primary default test\n defaultTest.closest('.test-selection').addClass('selected')\n Physician.customize.checkTest(defaultTest)\n } else if (\n $(this).hasClass('optional-test') &&\n $(this).hasClass('toggle-default') &&\n $(this).hasClass('checked') &&\n !defaultTest.hasClass('checked') &&\n customTest.hasClass('checked')\n ) {\n // if this is an optional default test AND the primary custom test IS selected, switch this to an optional custom test\n Physician.customize.uncheckTest(obj.find('.toggle-default'))\n Physician.customize.checkTest(obj.find('.toggle-custom'))\n Physician.customize.updateGeneCounts(obj)\n obj.find('.toggle-default').hide()\n obj.find('.toggle-custom').show()\n }\n\n // EDGE CASE HACK FOR TEST\n // if primary default test is deselected, switch all selected optional default tests to optional custom tests\n if ($(this).hasClass('primary-test') && !obj.hasClass('selected')) {\n // change optional test default\n var optionalDefaultTests = $('.optional-test.toggle-default')\n $.each(optionalDefaultTests, function(key, value) {\n var optionalTest = $(this)\n if (optionalTest.hasClass('checked')) {\n var tempObj = optionalTest.closest('.test-selection')\n\n Physician.customize.uncheckTest(optionalTest)\n if (optionalTest.hasClass('nips-panel')) {\n tempObj.find('.gene').addClass('excluded')\n Physician.customize.updateGeneCounts(tempObj)\n //Selecting optional nips panel w/o primary is not avail\n return\n }\n tempObj.find('.toggle-default').hide()\n\n Physician.customize.checkTest(tempObj.find('.toggle-custom'))\n tempObj.find('.toggle-custom').show()\n\n tempObj.find('.gene').removeClass('excluded')\n Physician.customize.updateGeneCounts(tempObj)\n }\n })\n // for nips panels also reset optional custom tests\n var nipsOptionalCustomTests = $('.optional-test.toggle-custom.nips-panel')\n $.each(nipsOptionalCustomTests, function(key, value) {\n var nipsOptionalTest = $(this)\n if (nipsOptionalTest.hasClass('checked')) {\n Physician.customize.resetTest(nipsOptionalTest)\n }\n })\n }\n\n // EDGE CASE HACK - FOR TEST\n // if primary default test is selected, switch all selected optional custom tests which are fully selected to optional default tests\n else if ($(this).hasClass('primary-test') && obj.hasClass('selected')) {\n var optionalCustomTests = $('.optional-test.toggle-custom')\n $.each(optionalCustomTests, function(key, value) {\n var optionalTest = $(this)\n if (optionalTest.hasClass('checked') && optionalTest.closest('.selected').find('.excluded').length == 0) {\n Physician.customize.uncheckTest(optionalTest)\n var tempObj = optionalTest.closest('.test-selection')\n Physician.customize.checkTest(tempObj.find('.toggle-default'))\n tempObj.find('.toggle-custom').hide()\n tempObj.find('.toggle-default').show()\n Physician.customize.updateGeneCounts(tempObj)\n }\n })\n }\n Physician.customize.prepareOrder()\n })\n\n // if a gene is clicked\n $('.gene').on('click', function() {\n const $gene = $(this)\n const isLocked = $gene.hasClass('non-removable')\n const obj = $gene.closest('.test-selection')\n const lockedGenesContainer = obj.find('p.locked')\n const isPreventive = !!$('[data-product-type=Preventive]').length\n const isStatTat = !!$('[data-product-type=STAT-TAT]').length\n const isExomeSlice = !!$('[data-product-type=\"Exome Slice\"]').length\n if (isLocked && $gene.closest('[data-product-type=Diagnostic]').length === 0) {\n // If user trying to select one of the required gene - select whole list of required genes (WHCP-300)\n if (isLocked && !obj.hasClass('selected')) {\n const lockedGenesLength = obj.find('.non-removable').length\n const allGenesLength = obj.find('.gene').length\n obj.find('.gene').addClass('excluded')\n Physician.customize.uncheckTest(obj.find('.toggle-default'))\n obj.find('.non-removable.gene').toggleClass('excluded')\n if (allGenesLength === lockedGenesLength) {\n Physician.customize.checkTest(obj.find('.toggle-default'))\n } else {\n obj.find('.toggle-default').hide()\n obj.find('.toggle-custom').show()\n Physician.customize.checkTest(obj.find('.toggle-custom'))\n }\n Physician.customize.updateGeneCounts(obj)\n obj.addClass('selected')\n Physician.customize.prepareOrder()\n return\n }\n if (isStatTat) {\n $('#stat-tat-gene-modal').modal('show')\n } else if (isPreventive) {\n $('#preventive-fixed-gene-modal').modal('show')\n } else if (isExomeSlice) {\n $('#exome-slice-gene-modal').modal('show')\n }\n return\n }\n // can customize if test has more than one gene\n if (obj.find('.gene').length != 1) {\n // if the test is already selected\n if (obj.hasClass('selected')) {\n $gene.toggleClass('excluded')\n // all genes are excluded\n if (obj.find('.excluded').length == obj.find('.gene').length) {\n // reset all\n Physician.customize.uncheckTest(obj.find('.toggle-default, .toggle-custom'))\n obj.find('.toggle-default').show()\n obj.find('.toggle-custom').hide()\n obj.find('.gene').removeClass('excluded')\n Physician.customize.updateGeneCounts(obj)\n obj.removeClass('selected')\n }\n // all genes are included\n else if (obj.find('.excluded').length == 0) {\n // reset all\n obj.find('.toggle-default').show()\n Physician.customize.checkTest(obj.find('.toggle-default'))\n obj.find('.toggle-custom').hide()\n Physician.customize.uncheckTest(obj.find('.toggle-custom'))\n obj.addClass('selected')\n } else {\n // some genes are excluded\n obj.find('.toggle-default').hide()\n Physician.customize.uncheckTest(obj.find('.toggle-default'))\n obj.find('.toggle-custom').show()\n Physician.customize.checkTest(obj.find('.toggle-custom'))\n Physician.customize.updateGeneCounts(obj)\n obj.addClass('selected')\n }\n } else {\n // if the test has not been selected\n obj.addClass('selected')\n obj.find('.gene').addClass('excluded')\n $gene.toggleClass('excluded')\n obj.find('.toggle-default').hide()\n Physician.customize.uncheckTest(obj.find('.toggle-default'))\n obj.find('.toggle-custom').show()\n // If user select optional gene when there are required list of genes - select them (WHCP-300)\n if (lockedGenesContainer.length > 0) {\n obj.find('.non-removable.gene').toggleClass('excluded')\n }\n Physician.customize.checkTest(obj.find('.toggle-custom'))\n Physician.customize.updateGeneCounts(obj)\n obj.addClass('selected')\n }\n\n // EDGE CASE HACK - FOR GENE\n var defaultTest = $('.primary-test.toggle-default')\n\n if (!defaultTest.hasClass('checked')) {\n if (defaultTest.hasClass('nips-panel')) {\n defaultTest.closest('.test-selection').addClass('selected')\n Physician.customize.checkTest(defaultTest)\n }\n // if primary default test is deselected, switch any optional default tests to optional custom tests\n var optionalDefaultTests = $('.optional-test.toggle-default')\n $.each(optionalDefaultTests, function(key, value) {\n if ($(optionalDefaultTests[key]).hasClass('checked')) {\n Physician.customize.uncheckTest($(optionalDefaultTests[key]))\n var tempObj = $(optionalDefaultTests[key]).closest('.test-selection')\n Physician.customize.checkTest(tempObj.find('.toggle-custom'))\n tempObj.find('.toggle-default').hide()\n tempObj.find('.toggle-custom').show()\n Physician.customize.updateGeneCounts(tempObj)\n }\n })\n } else if (defaultTest.hasClass('checked')) {\n // if primary default test is selected, switch any optional custom tests to optional default tests\n var optionalCustomTests = $('.optional-test.toggle-custom')\n $.each(optionalCustomTests, function(key, value) {\n if (\n $(optionalCustomTests[key]).hasClass('checked') &&\n $(optionalCustomTests[key])\n .closest('.selected')\n .find('.excluded').length === 0\n ) {\n Physician.customize.uncheckTest($(optionalCustomTests[key]))\n var tempObj = $(optionalCustomTests[key]).closest('.test-selection')\n Physician.customize.checkTest(tempObj.find('.toggle-default'))\n tempObj.find('.toggle-custom').hide()\n tempObj.find('.toggle-default').show()\n Physician.customize.updateGeneCounts(tempObj)\n }\n })\n }\n Physician.customize.prepareOrder()\n }\n })\n },\n checkTest: function(obj) {\n $(obj)\n .addClass('checked')\n .find('span.icon')\n .addClass('icon-check-square')\n .removeClass('icon-square')\n },\n uncheckTest: function(obj) {\n $(obj)\n .removeClass('checked')\n .find('span.icon')\n .removeClass('icon-check-square')\n .addClass('icon-square')\n },\n resetTest: function(obj) {\n Physician.customize.uncheckTest(obj)\n var testData = $(obj).closest('.test-selection')\n testData.find('.gene').removeClass('excluded')\n testData.removeClass('selected')\n testData.find('.toggle-default').show()\n testData.find('.toggle-custom').hide()\n },\n updateGeneCounts: function(obj) {\n const genesCount = Physician.customize.getRealGenesListCount(obj)\n const excludedGenesCount = Physician.customize.getExcludedRealGenesListCount(obj)\n obj\n .find('.toggle-custom')\n .find('.genes-included-count')\n .text(genesCount - excludedGenesCount)\n obj\n .find('.toggle-custom')\n .find('.genes-excluded-count')\n .text(excludedGenesCount)\n },\n getRealGenesListCount: function($panel) {\n return Physician.customize.getRealGenesCountBySelector($panel, '.gene')\n },\n getRealGenesList: function($panel) {\n return Physician.customize.getRealGenesBySelector($panel, '.gene')\n },\n getExcludedRealGenesListCount: function($panel) {\n return Physician.customize.getRealGenesCountBySelector($panel, '.excluded')\n },\n\n getRealGenesBySelector: function($panel, selector) {\n const listOfExcludedGeneNames = $panel\n .find(selector)\n .map((index, item) => item.innerHTML)\n .toArray()\n return listOfExcludedGeneNames.reduce((acc, item) => {\n const gene = item.split(', ')\n return acc.concat(gene)\n }, [])\n },\n\n getRealGenesCountBySelector: function($panel, selector) {\n return Physician.customize.getRealGenesBySelector($panel, selector).length\n },\n\n getFakeOptInData: function(tests) {\n let fakeOptInCode = ''\n let isFakeOptInSelected = false\n let isFakeOptInExcluded = false\n if (tests.length > 1) {\n const fakeOptInPostfix = 'fake_opt_in'\n const testCode = tests\n .eq(1)\n .find('.toggle-default')\n .find('.icon')\n .data('id')\n fakeOptInCode = testCode.indexOf(fakeOptInPostfix) === -1 ? '' : testCode\n if (fakeOptInCode) {\n const fakePanel = tests.eq(1)\n isFakeOptInSelected = fakePanel.hasClass('selected')\n isFakeOptInExcluded = !!(isFakeOptInSelected && fakePanel.find('.gene.excluded').length)\n }\n }\n\n return {\n fakeOptInCode,\n hasFakeOptIn: !!fakeOptInCode,\n isFakeOptInSelected,\n isFakeOptInExcluded\n }\n },\n\n prepareOrder: function() {\n // collect codes and copy into submit button data-id\n var tests = $('.test-selection')\n var data_codes = []\n var primaryExcluded = false\n var optionalIncluded = false\n\n // check if primary is checked and has excluded genes\n var primary = tests.eq(0)\n const isPrimarySelected = primary.hasClass('selected')\n if (isPrimarySelected && primary.find('.gene.excluded').length) {\n primaryExcluded = true\n }\n\n // check if optional is checked and has included genes\n var optional = tests.slice(1)\n if (optional.hasClass('selected')) {\n optionalIncluded = true\n }\n\n // get fake opt in data\n const {hasFakeOptIn, isFakeOptInExcluded, isFakeOptInSelected} = this.getFakeOptInData(tests)\n const shouldPushOnlyGenes =\n hasFakeOptIn && (isFakeOptInExcluded || !isFakeOptInSelected) && isPrimarySelected && !primaryExcluded\n\n // collecting test and optional genes id\n $.each(tests, function(testIndex, test) {\n var $test = $(test)\n\n const testCode = $test\n .find('.toggle-default')\n .find('.icon')\n .data('id')\n const defaultPanelChecked = $test.find('.toggle-default').hasClass('checked')\n\n if (defaultPanelChecked && !shouldPushOnlyGenes) {\n data_codes.push(testCode)\n } else if ($test.find('.toggle-custom').hasClass('checked') || (defaultPanelChecked && shouldPushOnlyGenes)) {\n var genes = $test.find('.gene')\n $.each(genes, function(geneKey, gene) {\n var $gene = $(gene)\n if (!$gene.hasClass('excluded')) {\n data_codes.push($gene.data('id'))\n }\n })\n }\n })\n $('#add-to-order').data({\n primaryExcluded: primaryExcluded,\n optionalIncluded: optionalIncluded,\n id: data_codes.toString()\n })\n }\n}\n\nPhysician.alphabetNavigation = {\n init: function() {\n var $letterIndex = $('.letter-index')\n if (_isIOSDevice() || !$letterIndex.length) {\n return\n }\n this.$letterIndex = $letterIndex\n this.$letterIndexContainer = $letterIndex.parent()\n // scrolling alphabet navigation for non-iOS browsers\n $(window)\n .on('scroll', $.proxy(this.windowScroll, this))\n .on('resize', $.proxy(this.windowResize, this))\n this.windowScroll()\n },\n windowResize: function() {\n this.$letterIndex.css('left', 'auto').removeClass('fixed')\n this.windowScroll()\n },\n windowScroll: function() {\n var li = this.$letterIndex.filter(':visible')\n if (!li.length) {\n return\n }\n if (this.$letterIndexContainer.offset().top - $(window).scrollTop() < 88) {\n li.addClass('fixed')\n li.css({\n left: this.$letterIndexContainer.offset().left,\n width: this.$letterIndexContainer.width()\n })\n li.closest('section').css('min-height', '475px')\n } else {\n li.removeClass('fixed')\n li.css('left', 'auto')\n li.closest('section').css('min-height', 'auto')\n }\n }\n}\n\nPhysician.expandSubCategories = {\n init: function() {\n if ($('#category-tests').data('expand-first-category') === 'True') {\n var $firstPanel = $('.category-panel:first')\n $firstPanel.find('.category-header').removeClass('collapsed')\n $firstPanel.find('.category-content').addClass('in')\n }\n }\n}\n\n$(function() {\n Physician.cart.init()\n Physician.customize.init()\n Physician.alphabetNavigation.init()\n Physician.expandSubCategories.init()\n scrollToHash()\n})\n","import $ from 'jquery'\n\nfunction scrollToHash() {\n const {hash} = window.location\n\n if (!/#[\\w-_]+/.test(hash)) {\n return\n }\n\n const $tabsList = $('#tabs-category-detail').closest('section')\n const $targetEl = $(hash)\n\n if (!$tabsList.length || !$targetEl.length) {\n return\n }\n\n const $tabsLinks = $tabsList.find('li')\n let $tabPane = $targetEl.hasClass('tab-pane') ? $targetEl : $targetEl.closest('.tab-pane')\n\n if ($tabPane.length) {\n const paneId = $tabPane[0].id\n const $targetTab = $tabsList.find(`a[href=\"#${paneId}\"]`)\n\n // open the required tab\n if ($targetTab.length && !$tabPane.hasClass('active') && parseInt($tabsList[0].dataset.genesCount)) {\n $tabPane.siblings().removeClass('active')\n $tabPane.addClass('active')\n\n $tabsLinks.removeClass('active')\n $targetTab.parent().addClass('active')\n }\n }\n\n let scrollY = $targetEl.offset().top - 88\n\n // open required content dropdown\n if ($targetEl.hasClass('category-content')) {\n const $link = $targetEl.prev()\n if ($link.hasClass('collapsed')) {\n $link.click()\n }\n }\n\n // take letters links panel height into account\n if (/-genes$/.test($targetEl[0].id)) {\n scrollY -= 80\n }\n\n if ('scrollTo' in window) {\n window.scrollTo({top: scrollY, behavior: 'smooth'})\n } else {\n $('html, body').animate({scrollTop: scrollY}, 300)\n }\n\n // disable scroll restoration in modern browsers\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual'\n }\n}\n\nexport {scrollToHash}\n","import $ from 'jquery'\n\nexport function scrollToPanel(id) {\n const panel = $(id)\n panel.collapse('show')\n $('html, body').animate({scrollTop: panel.offset().top - 150}, 500)\n}\n\nexport default {\n init(id) {\n $(`#${id}`).on('show.bs.collapse', function(event) {\n if (history && history.pushState) {\n history.replaceState(null, null, '#' + event.target.id)\n } else {\n window.location.hash = event.target.id\n }\n })\n\n // if page has link that leads to the info panels we need to handle it\n $('a[href*=\"#info-panel-\"]:not(\".info-header\")').on('click', function(event) {\n event.preventDefault()\n scrollToPanel(event.target.hash)\n })\n\n if (window.location.hash.indexOf('#info-panel-') === 0) {\n scrollToPanel(window.location.hash)\n }\n }\n}\n","import 'physician/physician.order'\nimport 'styles/physician/catalog-print.css'\nimport commercialTest from 'physician/commercialTest'\n\nwindow.Physician.commercialTest = commercialTest\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}