{"version":3,"sources":["webpack:///./pericles/widgets/export-citations/js/export-citations.js","webpack:///./pericles/node_modules/ui-core/widgets/export-citations/js/export-citations.js"],"names":["UX","exportCitation","control","$","document","ready","length","removeClass","on","e","preventDefault","submitTargetedForm","this","data","submit","$this","$body","dataTarget","accessType","$exportCitationChecked","find","show","hide","collectDois","is","prop","next","attr","collectedDoi","multiText","$collectedDoisForm","$collectedDois","$collectedDoisNum","$pdfSize","doisCounter","avaliableDoisCounter","pdfSizeCounter","html","each","index","doi","append","val","parseFloat","text","toFixed","$toggle","$target","$wrapper","$multiToggle","dois","$trigger","response","selectCiteStyle","responseFormat","citationLimited","citationLimitNumber","loadingAdditionalInfo","init","url","params","dataType","resetPopup","toString","loadCiteProc","getWarningMessage","message","performServerSideAjax","ajax","async","success","setContent","content","downloadCiteProc","$el","doisArray","multiDois","hasClass","doiValue","push","selectedFormat","targetCustomCSLFIle","empty","closest","addClass","parent","css","loadingText","setParams","targetFile","format","$modal","removeAttr","warning","downloadContainer","downloadData","test","downloadMultiText","additionalDownloadDataFormat","contentType","encodeURIComponent","fileName","suffix"],"mappings":"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","file":"js/exportCitation-27eb4758982ba120d222.js","sourcesContent":["import 'ui-core/widgets/export-citations/js/export-citations';\n\nUX.exportCitation.control = function () {\n $(document).ready(function () {\n if ($('.exportCitationWrapper').length) {\n $('.articles-toolbar, .exportCitationCheckbox').removeClass('js--hidden');\n }\n });\n\n $(document).on('click', '.export-citations__submit', function (e) {\n e.preventDefault();\n\n let $this = $(this),\n submitTargetedForm = $this.data('form');\n\n $(submitTargetedForm).submit();\n });\n\n $(document).on('click', '.articles-toolbar-option', function () {\n let $this = $(this),\n $body = $('body'),\n dataTarget = $this.data('target'),\n accessType = $this.data('access-type'),\n $exportCitationChecked = $body.find('[data-type=\"exportCitation\"]:checked');\n\n if ($exportCitationChecked.length) {\n $('[data-type=\"filled\"]').show();\n $('[data-type=\"empty\"]').hide();\n UX.exportCitation.collectDois($exportCitationChecked, dataTarget, accessType);\n } else {\n $('[data-type=\"empty\"]').show();\n $('[data-type=\"filled\"]').hide();\n }\n });\n\n $(document).on('change', '.selectAllCitation', function () {\n let $this = $(this);\n\n if ($($this).is(':checked')) {\n $('[data-type=\"exportCitation\"]').prop('checked', true);\n $this.next('.label-txt').attr('aria-label', 'Deselect all articles');\n } else {\n $('[data-type=\"exportCitation\"]').prop('checked', false);\n $this.next('.label-txt').attr('aria-label', 'Select all articles');\n }\n });\n\n $(document).on('change', '[data-type=\"exportCitation\"]', function () {\n if (!$(this).is(':checked') && $('.selectAllCitation').is(':checked')) {\n $('.selectAllCitation').prop('checked', false);\n }\n if (!$('[data-type=\"exportCitation\"]:not(:checked)').length) {\n $('.selectAllCitation').prop('checked', true);\n }\n });\n};\n\nUX.exportCitation.collectDois = function (collectedDoi, dataTarget, accessType) {\n let $collectedDoisForm = $(dataTarget),\n $collectedDois = $collectedDoisForm.find('.collectedDois'),\n $collectedDoisNum = $collectedDoisForm.find('.collectedDoisNum'),\n $pdfSize = $collectedDoisForm.find('.pdfSize'),\n doisCounter = 0,\n avaliableDoisCounter = 0,\n pdfSizeCounter = 0,\n multiText = '';\n\n $collectedDois.html('');\n $collectedDoisNum.html('');\n $(collectedDoi).each(function (index, doi) {\n $collectedDois.append('');\n doisCounter++;\n if ($(doi).data('pdf-size')) {\n pdfSizeCounter += parseFloat($(doi).data('pdf-size'));\n avaliableDoisCounter++;\n }\n });\n\n $pdfSize.text(pdfSizeCounter.toFixed(1));\n\n multiText = doisCounter > 1 ? 's' : '';\n\n switch (dataTarget) {\n case '#exportCitation':\n $collectedDoisNum.html(\n '
You have chosen to export ' + doisCounter + ' citation' + multiText + '.
'\n );\n break;\n case '#pdfDownload':\n switch (accessType) {\n case 'all':\n $collectedDoisNum.html(\n 'You have chosen to download ' +\n doisCounter +\n ' PDF' +\n multiText +\n '.
'\n );\n break;\n case 'some':\n $collectedDoisNum.html(\n 'You can continue to download ' +\n avaliableDoisCounter +\n ' PDF' +\n multiText +\n ' of the ' +\n doisCounter +\n ' you have selected.
'\n );\n break;\n case 'full-book':\n $collectedDoisNum.html(\n 'Continue to download ' +\n avaliableDoisCounter +\n ' PDF' +\n multiText +\n '.
'\n );\n break;\n }\n break;\n }\n};\n","(function () {\n var exportCitation = {\n $toggle: $('#citation-format'),\n $target: $('.csl-response'),\n $wrapper: null,\n $multiToggle: $('.issue-Item__checkbox:checked'), // overwrite its value based on product html structure\n dois: null,\n $trigger: null,\n response: null,\n selectCiteStyle: null,\n responseFormat: {},\n citationLimited: false,\n citationLimitNumber: 0,\n loadingAdditionalInfo: '',\n\n init: function () {\n exportCitation.control();\n },\n\n control: function (url, params, dataType) {\n $(document).on('click', '[data-target=\"#exportCitation\"]', function () {\n exportCitation.$trigger = $(this);\n exportCitation.resetPopup(exportCitation.$trigger);\n exportCitation.dois = exportCitation.collectDois(exportCitation.$trigger).toString();\n exportCitation.loadCiteProc(exportCitation.$toggle);\n });\n\n $(document).on('change', '#citation-format', function () {\n exportCitation.loadCiteProc($(this));\n });\n },\n getWarningMessage: function (message) {\n return message;\n },\n performServerSideAjax: function (url, params, selectCiteStyle) {\n $.ajax({\n url: url,\n data: params,\n async: true,\n success: function (response) {\n exportCitation.response = response;\n exportCitation.responseFormat[selectCiteStyle] = exportCitation.response;\n exportCitation.setContent(exportCitation.responseFormat[selectCiteStyle].content);\n exportCitation.downloadCiteProc();\n },\n });\n },\n collectDois: function ($el) {\n var doisArray = [];\n var multiDois = false;\n if ($el.hasClass('export-citation')) {\n multiDois = true;\n }\n\n if (multiDois) {\n exportCitation.$multiToggle = $('.issue-Item__checkbox:checked');\n exportCitation.$multiToggle.each(function () {\n const $this = $(this);\n const doiValue = $this.attr('name') === 'doi' ? $this.val() : $this.attr('name');\n doisArray.push(doiValue);\n });\n } else {\n $el.find('[name=\"doiVal\"]').each(function () {\n doisArray.push($(this).val());\n });\n }\n\n return doisArray;\n },\n loadCiteProc: function ($el) {\n exportCitation.selectCiteStyle = $el.val();\n const selectedFormat = $('[value=' + exportCitation.selectCiteStyle + ']').data('format'),\n targetCustomCSLFIle = 'custom-' + exportCitation.selectCiteStyle;\n $('#export-warning').empty();\n exportCitation.$wrapper = $el.closest('.csl-wrapper');\n exportCitation.$target = exportCitation.$wrapper.find('.csl-response');\n\n if (exportCitation.selectCiteStyle) {\n exportCitation.$wrapper\n .find('.copy__btn, .download__btn')\n .addClass('disabled')\n .parent('li')\n .css('cursor', '');\n exportCitation.$wrapper.find('#citation-format').attr('disabled', 'disabled');\n //add spinner\n const loadingText = 'Loading ' + exportCitation.loadingAdditionalInfo + '... ';\n exportCitation.$target.html('' + loadingText + '');\n\n const action_server = '/action/exportCiteProcCitation';\n // var action_server = '/specs/ux3/widgets/export-citations/js/dummy-csl-metaData.json'; // dummy for UX3 testing\n //var action_server = '/specs/products/acm/widgets/export-citations/js/dummy-csl-metaData.json'; // dummy for ACM testing\n\n const params = exportCitation.setParams(targetCustomCSLFIle, selectedFormat);\n\n if (typeof exportCitation.responseFormat[exportCitation.selectCiteStyle] !== 'undefined') {\n exportCitation.setContent(exportCitation.responseFormat[exportCitation.selectCiteStyle].content);\n exportCitation.downloadCiteProc();\n } else {\n exportCitation.performServerSideAjax(action_server, params, exportCitation.selectCiteStyle);\n }\n\n exportCitation.$wrapper.find('[name=\"dois\"]').val(exportCitation.dois);\n exportCitation.$wrapper.find('[name=\"format\"]').val(selectedFormat);\n }\n },\n setParams: function (targetCustomCSLFIle, selectedFormat) {\n return {dois: exportCitation.dois, targetFile: targetCustomCSLFIle, format: selectedFormat};\n },\n resetPopup: function ($el) {\n exportCitation.$target.html('');\n exportCitation.responseFormat = {};\n exportCitation.$toggle.prop('selectedIndex', 0);\n const $modal = $($el.attr('data-target'));\n $modal.find('.copy__btn, .download__btn').addClass('disabled').parent('li').css('cursor', '');\n $modal.find('#citation-format').attr('disabled', 'disabled');\n },\n\n setContent: function (content) {\n exportCitation.$target.html(content);\n exportCitation.$wrapper.find('[name=\"content\"]').val(exportCitation.$target.text());\n exportCitation.$wrapper\n .find('.copy__btn, .download__btn')\n .removeClass('disabled')\n .parent('li')\n .css('cursor', 'pointer');\n exportCitation.$wrapper.find('#citation-format').removeAttr('disabled');\n if (exportCitation.responseFormat[exportCitation.selectCiteStyle].warning) {\n exportCitation.$wrapper\n .find('#export-warning')\n .html(\n exportCitation.getWarningMessage(\n exportCitation.responseFormat[exportCitation.selectCiteStyle].warning\n )\n );\n }\n },\n downloadCiteProc: function () {\n let $el = $('.download__btn'),\n downloadContainer = exportCitation.$target,\n downloadData = '';\n\n if (downloadContainer.is('.csl-response')) {\n if (exportCitation.$target.find('.csl-right-inline').length) {\n downloadContainer = exportCitation.$target.find('.csl-right-inline');\n downloadData = downloadContainer.html();\n\n if (/<\\/?[a-z][\\s\\S]*>/i.test(downloadContainer.html())) {\n downloadData = downloadContainer.text();\n }\n } else if (exportCitation.$target.find('.csl-entry').length) {\n downloadContainer = exportCitation.$target.find('.csl-entry');\n downloadData = downloadContainer.html();\n if (/<\\/?[a-z][\\s\\S]*>/i.test(downloadContainer.html())) {\n downloadData = downloadContainer.text();\n }\n }\n\n if (downloadContainer.length > 1) {\n let downloadMultiText = '';\n downloadContainer.each(function () {\n let $this = $(this);\n\n if (/<\\/?[a-z][\\s\\S]*>/i.test($this.html())) {\n downloadMultiText += $this.text() + '\\n\\n';\n } else {\n downloadMultiText += $this.html() + '\\n\\n';\n }\n });\n downloadData = downloadMultiText;\n }\n }\n\n downloadData = exportCitation.additionalDownloadDataFormat(downloadData);\n\n $el.attr(\n 'href',\n 'data:' +\n exportCitation.responseFormat[exportCitation.selectCiteStyle].contentType +\n ';charset=utf-8,' +\n encodeURIComponent(downloadData)\n );\n $el.attr(\n 'download',\n exportCitation.responseFormat[exportCitation.selectCiteStyle].fileName +\n '.' +\n exportCitation.responseFormat[exportCitation.selectCiteStyle].suffix\n );\n },\n additionalDownloadDataFormat: function (downloadData) {\n return downloadData;\n },\n };\n\n UX.exportCitation = exportCitation; // add to global namespace\n})();\n"],"sourceRoot":""}