{"version":3,"sources":["webpack:///./packages/jquery-scroll-to-visible/index.js","webpack:///./public/javascripts/translations/instructure_misc_plugins.js","webpack:///./ui/shims/dummyI18nResource.js?726f","webpack:///./ui/shared/jquery/jquery.instructure_misc_plugins.js","webpack:///./ui/features/eportfolios_wizard_box/index.js"],"names":["fn","scrollToVisible","obj","options","$obj","length","innerOffset","offset","width","outerWidth","height","outerHeight","top","bottom","left","right","currentTop","this","selector","windowScrollTop","scrollTop","currentLeft","scrollLeft","currentHeight","currentWidth","outerOffset","each","e","tagName","window","mergeI18nTranslations","JSON","parse","scoped","$","setOptions","prompt","result","htmlEscape","forEach","opt","optHtml","html","raw","ifExists","func","call","scrollbarWidth","$div","appendTo","$innerDiv","find","w1","innerWidth","css","w2","remove","dim","speed","animate","opacity","undim","confirmDelete","extend","defaults","$object","$dialog","noMessage","no_message","onContinue","cancelled","isFunction","confirmed","url","success","data","fadeOut","prepareData","authenticity_token","ajaxJSON","request","status","error","unhandledXHRs","push","message","skipConfirmations","dialog","dialog_options","confirmation_class","includes","modal","close","buttons","text","I18n","t","click","class","confirm","fragmentChange","query","location","search","replace","split","query_hash","i","item","indexOf","substring","bind","$doc","found","_checkFragments","fragmentList","doc","fragment","setTimeout","triggerHandler","hash","list","idx","clickLink","eq","hasClass","showIf","bool","index","show","hide","disableIf","prop","indicate","$indicator","zIndex","container","document","createElement","position","display","border","backgroundColor","addClass","mouseover","stop","append","singleFlash","fadeIn","scroll","hasScrollbar","clientHeight","scrollHeight","log","msg","console","fillWindowWithMe","opts","minHeight","$this","$wrapper","$main","$not_right_side","$window","$toResize","add","alsoResize","fillWindowWithThisElement","spaceLeftForThis","newHeight","Math","max","onResize","unbind","autoGrowInput","o","maxWidth","minWidth","comfortZone","filter","val","input","testSubject","fontSize","fontFamily","fontWeight","letterSpacing","whiteSpace","check","testerWidth","newWidth","isValidWidthChange","insertAfter","ready","on"],"mappings":"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","file":"eportfolios_wizard_box-c-164e2ef004.js","sourcesContent":["/*\n * Copyright (C) 2011 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\n// Scrolls the supplied object until its visible. Call from\n// (\"html,body\") to scroll the window.\n\nimport $ from 'jquery'\nimport './jquery.scrollTo'\n\n$.fn.scrollToVisible = function(obj) {\n const options = {}\n const $obj = $(obj)\n\n if ($obj.length === 0) {\n return\n }\n let innerOffset = $obj.offset(),\n width = $obj.outerWidth(),\n height = $obj.outerHeight(),\n top = innerOffset.top,\n bottom = top + height,\n left = innerOffset.left,\n right = left + width,\n currentTop = this.selector == 'html,body' ? $.windowScrollTop() : this.scrollTop(),\n currentLeft = this.scrollLeft(),\n currentHeight = this.outerHeight(),\n currentWidth = this.outerWidth()\n\n if (this.selector != 'html,body') {\n let outerOffset = $('body').offset()\n this.each(function() {\n try {\n outerOffset = $(this).offset()\n return false\n } catch (e) {}\n })\n top -= outerOffset.top\n bottom -= outerOffset.top\n left -= outerOffset.left\n right -= outerOffset.left\n }\n\n if (this[0].tagName == 'HTML' || this[0].tagName == 'BODY') {\n currentHeight = $(window).height()\n if ($('#wizard_box:visible').length > 0) {\n currentHeight -= $('#wizard_box:visible').height()\n }\n currentWidth = $(window).width()\n top -= currentTop\n left -= currentLeft\n bottom -= currentTop\n right -= currentLeft\n }\n if (top < 0 || (currentHeight < height && bottom > currentHeight)) {\n options.scrollTop = top + currentTop\n } else if (bottom > currentHeight) {\n options.scrollTop = bottom + currentTop - currentHeight + 20\n }\n if (left < 0) {\n options.scrollLeft = left + currentLeft\n } else if (right > currentWidth) {\n options.scrollLeft = right + currentLeft - currentWidth + 20\n }\n if (options.scrollTop == 1) {\n options.scrollTop = 0\n }\n if (options.scrollLeft == 1) {\n options.scrollLeft = 0\n }\n\n this.scrollTop(options.scrollTop)\n this.scrollLeft(options.scrollLeft)\n\n return this\n}\n","// this file was auto-generated by rake i18n:generate_js.\n// you probably shouldn't edit it directly\nimport mergeI18nTranslations from '@canvas/i18n/mergeI18nTranslations.js';\n\n// we use JSON.parse here instead of just loading it as a javascript object literal\n// because according to https://v8.dev/blog/cost-of-javascript-2019#json that is faster\nmergeI18nTranslations(JSON.parse(\"{\\\"ar\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"إلغاء\\\",\\\"delete\\\":\\\"حذف\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"هل ترغب بالتأكيد في حذف هذا؟\\\"}}},\\\"ca\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancel·la\\\",\\\"delete\\\":\\\"Suprimeix\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Segur que ho voleu suprimir?\\\"}}},\\\"cy\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Canslo\\\",\\\"delete\\\":\\\"Dileu\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Ydych chi’n siŵr eich bod am ddileu hyn?\\\"}}},\\\"da\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annullér\\\",\\\"delete\\\":\\\"Slet\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Er du sikker på, at du vil slette dette?\\\"}}},\\\"da-x-k12\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annullér\\\",\\\"delete\\\":\\\"Slet\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Er du sikker på, at du vil slette dette?\\\"}}},\\\"de\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Abbrechen\\\",\\\"delete\\\":\\\"Löschen\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Möchten Sie dies wirklich löschen?\\\"}}},\\\"el\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Ακύρωση\\\",\\\"delete\\\":\\\"Διαγραφή\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Είστε σίγουρος/η ότι επιθυμείτε να το διαγράψετε;\\\"}}},\\\"en\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancel\\\",\\\"delete\\\":\\\"Delete\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Are you sure you want to delete this?\\\"}}},\\\"en-AU\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancel\\\",\\\"delete\\\":\\\"Delete\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Are you sure you want to delete this?\\\"}}},\\\"en-CA\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancel\\\",\\\"delete\\\":\\\"Delete\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Are you sure you want to delete this?\\\"}}},\\\"en-GB\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancel\\\",\\\"delete\\\":\\\"Delete\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Are you sure you want to delete this?\\\"}}},\\\"es\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancelar\\\",\\\"delete\\\":\\\"Eliminar\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"¿Seguro que desea eliminarlo?\\\"}}},\\\"fa\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"لغو\\\",\\\"delete\\\":\\\"حذف\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"مطمئنید که می خواهید این مورد حذف شود؟\\\"}}},\\\"fi\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Peruuta\\\",\\\"delete\\\":\\\"Poista\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Haluatko varmasti poistaa tämän?\\\"}}},\\\"fr\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annuler\\\",\\\"delete\\\":\\\"Supprimer\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Voulez-vous vraiment supprimer cet élément ?\\\"}}},\\\"fr-CA\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annuler\\\",\\\"delete\\\":\\\"Supprimer\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Voulez-vous vraiment supprimer cet élément?\\\"}}},\\\"he\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"ביטול\\\",\\\"delete\\\":\\\"ביטול\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"בטוח/ה שרוצה לבטל זאת?\\\"}}},\\\"ht\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Anile\\\",\\\"delete\\\":\\\"Efase\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Ou kwè vrèman ou vle efase sa a?\\\"}}},\\\"hu\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Mégse\\\",\\\"delete\\\":\\\"Törlés\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Biztos benne, hogy törli ezt?\\\"}}},\\\"hy\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Չեղյալ համարել\\\",\\\"delete\\\":\\\"Ջնջել\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Դուք իսկապե՞ս ցանկանում եք ջնջել սա:\\\"}}},\\\"is\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Hætta við\\\",\\\"delete\\\":\\\"Eyða\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Viltu örugglega eyða þessu?\\\"}}},\\\"it\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annulla\\\",\\\"delete\\\":\\\"Elimina\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Vuoi eliminare questo?\\\"}}},\\\"ja\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"キャンセル\\\",\\\"delete\\\":\\\"削除\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"これを削除してもよろしいですか?\\\"}}},\\\"ko\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"취소\\\",\\\"delete\\\":\\\"삭제\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"삭제하시겠습니까?\\\"}}},\\\"mi\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Whakakore\\\",\\\"delete\\\":\\\"Muku\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"E tino hiahia ana koe ki te muku i tēnei?\\\"}}},\\\"nb\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Avbryt\\\",\\\"delete\\\":\\\"Slett\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Er du sikker på at du ønsker å slette dette?\\\"}}},\\\"nb-x-k12\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Avbryt\\\",\\\"delete\\\":\\\"Slett\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Er du sikker på at du ønsker å slette dette?\\\"}}},\\\"nl\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Annuleren\\\",\\\"delete\\\":\\\"Verwijderen\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Weet je zeker dat je dit wilt verwijderen?\\\"}}},\\\"nn\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Avbryt\\\",\\\"delete\\\":\\\"Slett\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Er du sikker på at du vil slette dette?\\\"}}},\\\"pl\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Anuluj\\\",\\\"delete\\\":\\\"Usuń\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Czy na pewno chcesz usunąć ten element?\\\"}}},\\\"pt\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancelar\\\",\\\"delete\\\":\\\"Eliminar\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Tem certeza de que deseja excluir isto?\\\"}}},\\\"pt-BR\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Cancelar\\\",\\\"delete\\\":\\\"Excluir\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Tem certeza que deseja excluir isto?\\\"}}},\\\"ru\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Отменить\\\",\\\"delete\\\":\\\"Удалить\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Действительно хотите удалить?\\\"}}},\\\"sl\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Prekliči\\\",\\\"delete\\\":\\\"Odstrani\\\"}},\\\"sv\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Avbryt\\\",\\\"delete\\\":\\\"Ta bort\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Vill du verkligen radera det här?\\\"}}},\\\"sv-x-k12\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Avbryt\\\",\\\"delete\\\":\\\"Ta bort\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Vill du verkligen radera det här?\\\"}}},\\\"tr\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"İptal\\\",\\\"delete\\\":\\\"Sil\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"Bunu silmek istediğinize emin misiniz?\\\"}}},\\\"uk\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"Скасувати\\\",\\\"delete\\\":\\\"Видалити\\\"}},\\\"zh-Hans\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"取消\\\",\\\"delete\\\":\\\"删除\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"是否确定要删除它?\\\"}}},\\\"zh-Hant\\\":{\\\"buttons\\\":{\\\"cancel\\\":\\\"取消\\\",\\\"delete\\\":\\\"刪除\\\"},\\\"instructure_misc_plugins\\\":{\\\"confirms\\\":{\\\"default_delete_thing\\\":\\\"您是否確定要刪除?\\\"}}}}\"));\n","\n import I18n from '@canvas/i18n/i18nObj';\n \n import 'translations/instructure_misc_plugins';\n import 'translations/_core';\n \n import 'translations/_core_en';\n\n export default I18n.scoped('instructure_misc_plugins');\n ","/*\n * Copyright (C) 2011 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\nimport I18n from 'i18n!instructure_misc_plugins'\nimport $ from 'jquery'\nimport htmlEscape from 'html-escape'\nimport authenticity_token from '@canvas/authenticity-token'\nimport './jquery.ajaxJSON'\nimport 'jqueryui/dialog'\nimport 'jquery-scroll-to-visible'\nimport 'jquery-scroll-to-visible/jquery.scrollTo'\n\n$.fn.setOptions = function(prompt, options) {\n let result = prompt ? \"' : ''\n\n if (options == null) {\n options = []\n }\n\n options.forEach(opt => {\n const optHtml = htmlEscape(opt)\n result += ''\n })\n\n return this.html($.raw(result))\n}\n\n// this function is to prevent you from doing all kinds of expesive operations on a\n// jquery object that doesn't actually have any elements in it\n// it is similar and inspired by http://www.slideshare.net/paul.irish/perfcompression (slide #42)\n// to use it do something like:\n// $(\"a .bunch #of .nodes\").ifExists(function(orignalQuery){\n// // 'this' points to the original jquery object (in this case, $(\"a .bunch #of .nodes\") );\n// // orignalQuery is the same as 'this';\n// this.slideUp().dialog().show();\n// });\n$.fn.ifExists = function(func) {\n this.length && func.call(this, this)\n return this\n}\n\n// Returns the width of the browser's scroll bars.\n$.fn.scrollbarWidth = function() {\n const $div = $(\n '
'\n ).appendTo(this),\n $innerDiv = $div.find('div')\n // Append our div, do our calculation and then remove it\n const w1 = $innerDiv.innerWidth()\n $div.css('overflow-y', 'scroll')\n const w2 = $innerDiv.innerWidth()\n $div.remove()\n return w1 - w2\n}\n\n// Simple animation for dimming an element's opacity\n$.fn.dim = function(speed) {\n return this.animate({opacity: 0.4}, speed)\n}\n\n$.fn.undim = function(speed) {\n return this.animate({opacity: 1.0}, speed)\n}\n\n// Helper for deleting objects from the DOM and db.\n// url: URL to pass DELETE message. If none provided,\n// behaves as if the request were a success. Useful for testing.\n// message: Confirmation message\n// cancelled: Function to handle cancel.\n// confirmed: Function to handle confirm, before submit.\n// success: What to do on success. If none provided, fades\n// out the element and removes it from the DOM.\n// error: Error.\n// dialog: If present, do a jquery.ui.dialog instead of a confirm(). If an\n// object, it will be merged into the dialog options.\n$.fn.confirmDelete = function(options) {\n var options = $.extend({}, $.fn.confirmDelete.defaults, options)\n const $object = this\n let $dialog = null\n let result = true\n options.noMessage = options.noMessage || options.no_message\n const onContinue = function() {\n if (!result) {\n if (options.cancelled && $.isFunction(options.cancelled)) {\n options.cancelled.call($object)\n }\n return\n }\n if (!options.confirmed) {\n options.confirmed = function() {\n $object.dim()\n }\n }\n options.confirmed.call($object)\n if (options.url) {\n if (!options.success) {\n options.success = function(data) {\n $object.fadeOut('slow', () => {\n $object.remove()\n })\n }\n }\n const data = options.prepareData ? options.prepareData.call($object, $dialog) : {}\n data.authenticity_token = authenticity_token()\n $.ajaxJSON(\n options.url,\n 'DELETE',\n data,\n data => {\n options.success.call($object, data)\n },\n (data, request, status, error) => {\n if (options.error && $.isFunction(options.error)) {\n options.error.call($object, data, request, status, error)\n } else {\n $.ajaxJSON.unhandledXHRs.push(request)\n }\n }\n )\n } else {\n if (!options.success) {\n options.success = function() {\n $object.fadeOut('slow', () => {\n $object.remove()\n })\n }\n }\n options.success.call($object)\n }\n }\n if (options.message && !options.noMessage && !$.skipConfirmations) {\n if (options.dialog) {\n result = false\n const dialog_options = typeof options.dialog === 'object' ? options.dialog : {}\n const confirmation_class = options.url.includes('assignments') ? 'btn-danger' : 'btn-primary'\n $dialog = $(options.message).dialog(\n $.extend(\n {},\n {\n modal: true,\n close: onContinue,\n buttons: [\n {\n text: I18n.t('#buttons.cancel', 'Cancel'),\n click() {\n $(this).dialog('close')\n } // ; onContinue();\n },\n {\n text: I18n.t('#buttons.delete', 'Delete'),\n class: confirmation_class,\n click() {\n result = true\n $(this).dialog('close')\n }\n }\n ]\n },\n dialog_options\n )\n )\n return\n } else {\n result = confirm(options.message)\n }\n }\n onContinue()\n}\n$.fn.confirmDelete.defaults = {\n get message() {\n return I18n.t('confirms.default_delete_thing', 'Are you sure you want to delete this?')\n }\n}\n\n// Watches the given element's location.href for any changes\n// to the fragment (\"#...\") and calls the provided function\n// when there are any.\n// $(document).fragmentChange(function(event, hash) { alert(hash); });\n$.fn.fragmentChange = function(fn) {\n if (fn && fn !== true) {\n const query = (window.location.search || '').replace(/^\\?/, '').split('&')\n // The URL can hard-code a hash regardless of what's\n // actually shown in the hash by specifying a query\n // parameter, hash=some_hash\n let query_hash = null\n for (var i = 0; i < query.length; i++) {\n const item = query[i]\n if (item && item.indexOf('hash=') === 0) {\n query_hash = '#' + item.substring(5)\n }\n }\n this.bind('document_fragment_change', fn)\n const $doc = this\n let found = false\n // Can only be used on the root document,\n // will not work on an iframe, for example.\n for (var i = 0; i < $._checkFragments.fragmentList.length; i++) {\n const obj = $._checkFragments.fragmentList[i]\n if (obj.doc[0] == $doc[0]) {\n found = true\n }\n }\n if (!found) {\n $._checkFragments.fragmentList.push({\n doc: $doc,\n fragment: ''\n })\n }\n $(window).bind('hashchange', $._checkFragments)\n setTimeout(() => {\n if (query_hash && query_hash.length > 0) {\n $doc.triggerHandler('document_fragment_change', query_hash)\n } else if ($doc && $doc[0] && $doc[0].location && $doc[0].location.hash.length > 0) {\n $doc.triggerHandler('document_fragment_change', $doc[0].location.hash)\n }\n }, 500)\n } else {\n this.triggerHandler('document_fragment_change', this[0].location.hash)\n }\n return this\n}\n$._checkFragments = function() {\n const list = $._checkFragments.fragmentList\n for (let idx = 0; idx < list.length; idx++) {\n const obj = list[idx]\n const $doc = obj.doc\n if ($doc[0].location.hash != obj.fragment) {\n $doc.triggerHandler('document_fragment_change', $doc[0].location.hash)\n obj.fragment = $doc[0].location.hash\n $._checkFragments.fragmentList[idx] = obj\n }\n }\n}\n$._checkFragments.fragmentList = []\n// Triggers a click only if the anchor tag isn't disabled.\n$.fn.clickLink = function() {\n const $obj = this.eq(0)\n if (!$obj.hasClass('disabled_link')) {\n $obj.click()\n }\n}\n\n// jQuery supposedly has this built-in, but I haven't\n// had much success with it.\n$.fn.showIf = function(bool) {\n if ($.isFunction(bool)) {\n return this.each(function(index) {\n $(this).showIf(bool.call(this))\n })\n }\n if (bool) {\n this.show()\n } else {\n this.hide()\n }\n return this\n}\n\n$.fn.disableIf = function(bool) {\n if ($.isFunction(bool)) {\n bool = bool.call(this)\n }\n this.prop('disabled', !!bool)\n return this\n}\n\n$.fn.indicate = function(options) {\n options = options || {}\n let $indicator\n if (options == 'remove') {\n $indicator = this.data('indicator')\n if ($indicator) {\n $indicator.remove()\n }\n return\n }\n $('.indicator_box').remove()\n let offset = this.offset()\n if (options && options.offset) {\n offset = options.offset\n }\n const width = this.width()\n const height = this.height()\n const zIndex = (options.container || this).zIndex()\n $indicator = $(document.createElement('div'))\n $indicator.css({\n width: width + 6,\n height: height + 6,\n top: offset.top - 3,\n left: offset.left - 3,\n zIndex: zIndex + 1,\n position: 'absolute',\n display: 'block',\n '-moz-border-radius': 5,\n opacity: 0.8,\n border: '2px solid #870',\n backgroundColor: '#fd0'\n })\n $indicator.addClass('indicator_box')\n $indicator.mouseover(function() {\n $(this)\n .stop()\n .fadeOut('fast', function() {\n $(this).remove()\n })\n })\n if (this.data('indicator')) {\n this.indicate('remove')\n }\n this.data('indicator', $indicator)\n $('body').append($indicator)\n if (options && options.singleFlash) {\n $indicator\n .hide()\n .fadeIn()\n .animate({opacity: 0.8}, 500)\n .fadeOut('slow', function() {\n $(this).remove()\n })\n } else {\n $indicator\n .hide()\n .fadeIn()\n .animate({opacity: 0.8}, 500)\n .fadeOut('slow')\n .fadeIn('slow')\n .animate({opacity: 0.8}, 2500)\n .fadeOut('slow', function() {\n $(this).remove()\n })\n }\n if (options && options.scroll) {\n $('html,body').scrollToVisible($indicator)\n }\n}\n\n$.fn.hasScrollbar = function() {\n return this.length && this[0].clientHeight < this[0].scrollHeight\n}\n\n$.fn.log = function(msg) {\n console.log('%s: %o', msg, this)\n return this\n}\n\n// this is used if you want to fill the browser window with something inside #content but you want to also leave the footer and header on the page.\n$.fn.fillWindowWithMe = function(options) {\n const opts = $.extend({minHeight: 400}, options),\n $this = $(this),\n $wrapper = $('#wrapper'),\n $main = $('#main'),\n $not_right_side = $('#not_right_side'),\n $window = $(window),\n $toResize = $(this).add(opts.alsoResize)\n\n function fillWindowWithThisElement() {\n $toResize.height(0)\n const spaceLeftForThis =\n $window.height() -\n ($wrapper.offset().top + $wrapper.outerHeight()) +\n ($main.height() - $not_right_side.height()),\n newHeight = Math.max(400, spaceLeftForThis)\n\n $toResize.height(newHeight)\n if ($.isFunction(opts.onResize)) {\n opts.onResize.call($this, newHeight)\n }\n }\n fillWindowWithThisElement()\n $window\n .unbind('resize.fillWindowWithMe')\n .bind('resize.fillWindowWithMe', fillWindowWithThisElement)\n return this\n}\n\n$.fn.autoGrowInput = function(o) {\n o = $.extend(\n {\n maxWidth: 1000,\n minWidth: 0,\n comfortZone: 70\n },\n o\n )\n\n this.filter('input:text').each(function() {\n let minWidth = o.minWidth || $(this).width(),\n val = '',\n input = $(this),\n testSubject = $('').css({\n position: 'absolute',\n top: -9999,\n left: -9999,\n width: 'auto',\n fontSize: input.css('fontSize'),\n fontFamily: input.css('fontFamily'),\n fontWeight: input.css('fontWeight'),\n letterSpacing: input.css('letterSpacing'),\n whiteSpace: 'nowrap'\n }),\n check = function() {\n setTimeout(() => {\n if (val === (val = input.val())) {\n return\n }\n\n // Enter new content into testSubject\n testSubject.text(val)\n\n // Calculate new width + whether to change\n const testerWidth = testSubject.width(),\n newWidth =\n testerWidth + o.comfortZone >= minWidth ? testerWidth + o.comfortZone : minWidth,\n currentWidth = input.width(),\n isValidWidthChange =\n (newWidth < currentWidth && newWidth >= minWidth) ||\n (newWidth > minWidth && newWidth < o.maxWidth)\n\n // Animate width\n if (isValidWidthChange) {\n input.width(newWidth)\n }\n })\n }\n\n testSubject.insertAfter(input)\n\n $(this).bind('keyup keydown blur update change', check)\n })\n\n return this\n}\n\nexport default $\n","//\n// Copyright (C) 2014 - present Instructure, Inc.\n//\n// This file is part of Canvas.\n//\n// Canvas is free software: you can redistribute it and/or modify it under\n// the terms of the GNU Affero General Public License as published by the Free\n// Software Foundation, version 3 of the License.\n//\n// Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n// A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n// details.\n//\n// You should have received a copy of the GNU Affero General Public License along\n// with this program. If not, see .\n\nimport $ from 'jquery'\n\nimport '@canvas/jquery/jquery.instructure_misc_plugins'\n\n$(document).ready(() => {\n $('.sections_list_hover').on('mouseover focus', () =>\n $('#section_list .section:first').indicate()\n )\n\n $('.pages_list_hover').on('mouseover focus', () => $('#section_pages').indicate())\n\n $('.organize_sections_hover').on('mouseover focus', () => $('.manage_sections_link').indicate())\n\n $('.organize_pages_hover').on('mouseover focus', () => $('.manage_pages_link').indicate())\n\n $('.eportfolio_settings_hover').on('mouseover focus', () =>\n $('.portfolio_settings_link').indicate()\n )\n\n $('.edit_content_hover').on('mouseover focus', () => $('.edit_content_link').indicate())\n\n $('.page_settings_hover').on('mouseover focus', () =>\n $('#edit_page_form .form_content').indicate()\n )\n\n $('.page_buttons_hover').on('mouseover focus', () =>\n $('#edit_page_sidebar .form_content:last').indicate()\n )\n\n $('.page_add_subsection_hover').on('mouseover focus', () => $('#edit_page_sidebar ul').indicate())\n\n $('#wizard_box').bind('wizard_opened', function() {\n $(this)\n .find('.option.information_step')\n .click()\n })\n\n $(document).bind('submission_dialog_opened', () => {\n if ($('.wizard_options .option.adding_submissions').hasClass('selected')) {\n $('.wizard_options .option.adding_submissions_dialog').click()\n }\n })\n\n $(document).bind('editing_page', () => {\n if ($('.wizard_options .option.edit_step').hasClass('selected')) {\n $('.wizard_options .option.editing_mode').click()\n }\n })\n})\n"],"sourceRoot":""}