{"version":3,"file":"focusmode.min.js","sources":["https:\/\/udl.id\/theme\/remui\/amd\/src\/focusmode.js"],"sourcesContent":["\/* eslint-disable no-console*\/\n\/\/ This file is part of Moodle - http:\/\/moodle.org\/\n\/\/\n\/\/ Moodle is free software: you can redistribute it and\/or modify\n\/\/ it under the terms of the GNU General Public License as published by\n\/\/ the Free Software Foundation, either version 3 of the License, or\n\/\/ (at your option) any later version.\n\/\/\n\/\/ Moodle is distributed in the hope that it will be useful,\n\/\/ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\/\/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\/\/ GNU General Public License for more details.\n\/\/\n\/\/ You should have received a copy of the GNU General Public License\n\/\/ along with Moodle. If not, see .\n\n\/**\n * @module theme_remui\/focusmode\n * @copyright (c) 2023 WisdmLabs (https:\/\/wisdmlabs.com\/)\n * @license http:\/\/www.gnu.org\/copyleft\/gpl.html GNU GPL v3 or later\n *\/\n\ndefine(['jquery', 'theme_remui\/notice', 'core\/str'], function($, Notice, Str) {\n return {\n init: function(action) {\n $(document).ready(function() {\n var focusmode = FocusMode(action);\n focusmode.initFocusMode();\n });\n }\n };\n\n \/**\n * Main category filters class.\n * @param {String} fmstatus Encoded settings string\n * @return {Object} Filter object\n *\/\n function FocusMode(fmstatus) {\n\n var SELECTORS = {\n BODY: 'body',\n BUTTON_FULLSCREEN: '#toggleFullscreen',\n FM_BUTTON: '#focusmodebutton',\n FM_BUTTON_ICON: '#focusmodebutton i.fa',\n SECTION_WRAPPER: '.stepprogress-section',\n SECTION_ITEM: '.stepprogress-item',\n SECTION: '.section',\n ACTIVITY: '.activity',\n GO_BACK: '#go-back',\n FOCUS_MODE_CLASS: 'focusmode'\n };\n\n var _obj = {\n fmstatus: fmstatus\n };\n var strings = [\n {\n key: 'focusmodeenabled',\n component: 'theme_remui'\n },\n {\n key: 'focusmodedisabled',\n component: 'theme_remui'\n }\n ];\n\n \/**\n * Initialize focus mode\n *\/\n _obj.initFocusMode = function() {\n Str.get_strings(strings).then(function(results) {\n strings = results;\n _obj.setupFocusMode();\n _obj.initEvents();\n });\n };\n\n _obj.setupFocusMode = function() {\n var action = (_obj.fmstatus) ? \"activate\" : \"deactivate\";\n\n \/\/ _obj.changeFMButtonClasses(action);\n if (action === \"activate\") {\n Notice.info(strings[0]);\n }\n };\n\n \/**\n * Initialize events required for focus mode\n *\/\n _obj.initEvents = function() {\n \/\/ Toggle the Activation\/Deactivate Focus Mode\n $(SELECTORS.FM_BUTTON).on(\"click\", function() {\n _obj.toggleFocusMode();\n });\n };\n\n _obj.changeFMButtonClasses = function(action) {\n if (action === \"activate\") {\n $(SELECTORS.BODY).addClass(SELECTORS.FOCUS_MODE_CLASS);\n $(SELECTORS.FM_BUTTON).addClass('btn-danger').removeClass('btn-primary');\n $(SELECTORS.FM_BUTTON).attr('aria-pressed', 'true');\n $(SELECTORS.FM_BUTTON_ICON).addClass('fa-compress').removeClass('fa-expand');\n }\n if (action === \"deactivate\") {\n $(SELECTORS.BODY).removeClass(SELECTORS.FOCUS_MODE_CLASS);\n $(SELECTORS.FM_BUTTON).removeClass('btn-danger').addClass('btn-primary');\n $(SELECTORS.FM_BUTTON).attr('aria-pressed', 'false');\n $(SELECTORS.FM_BUTTON_ICON).addClass('fa-expand').removeClass('fa-compress');\n }\n $(\"#page.drawers.show-drawer-left .drawer-left-toggle button\").click();\n $(\"#page.drawers.show-drawer-right .drawer-right-toggle button\").click();\n };\n\n _obj.toggleFocusMode = function() {\n \/\/ Var inFocus = $('body').hasClass(SELECTORS.FOCUS_MODE_CLASS);\n var action, status, tostr;\n if (_obj.fmstatus) {\n action = \"deactivate\";\n status = false;\n tostr = strings[1];\n } else {\n action = \"activate\";\n status = true;\n tostr = strings[0];\n }\n\n _obj.changeFMButtonClasses(action);\n\n _obj.fmstatus = status;\n M.util.set_user_preference('enable_focus_mode', _obj.fmstatus);\n Notice.info(tostr);\n };\n return _obj;\n }\n});\n"],"names":["define","$","Notice","Str","init","action","document","ready","SELECTORS","_obj","strings","focusmode","BODY","BUTTON_FULLSCREEN","FM_BUTTON","FM_BUTTON_ICON","SECTION_WRAPPER","SECTION_ITEM","SECTION","ACTIVITY","GO_BACK","FOCUS_MODE_CLASS","key","component","fmstatus","initFocusMode","get_strings","then","results","setupFocusMode","initEvents","info","on","toggleFocusMode","changeFMButtonClasses","addClass","removeClass","attr","click","status","tostr","M","util","set_user_preference"],"mappings":";;;;;AAsBAA,+BAAO,CAAC,SAAU,qBAAsB,aAAa,SAASC,EAAGC,OAAQC,WAC9D,CACHC,KAAM,SAASC,QACXJ,EAAEK,UAAUC,OAAM,eAclBC,UAaAC,KAGAC,QA7BQC,WAaRH,UAAY,CACZI,KAAM,OACNC,kBAAmB,oBACnBC,UAAW,mBACXC,eAAgB,wBAChBC,gBAAiB,wBACjBC,aAAc,qBACdC,QAAS,WACTC,SAAU,YACVC,QAAS,WACTC,iBAAkB,aAMlBX,QAAU,CACX,CACIY,IAAK,mBACLC,UAAW,eAEf,CACID,IAAK,oBACLC,UAAW,iBAVdd,KAAO,CACPe,SA3B8BnB,SA2C7BoB,cAAgB,WACjBtB,IAAIuB,YAAYhB,SAASiB,MAAK,SAASC,SACnClB,QAAUkB,QACVnB,KAAKoB,iBACLpB,KAAKqB,iBAIbrB,KAAKoB,eAAiB,WAIH,aAHDpB,KAAKe,SAAY,WAAa,eAIxCtB,OAAO6B,KAAKrB,QAAQ,KAO5BD,KAAKqB,WAAa,WAEd7B,EAAEO,UAAUM,WAAWkB,GAAG,SAAS,WAC\/BvB,KAAKwB,sBAIbxB,KAAKyB,sBAAwB,SAAS7B,QACnB,aAAXA,SACAJ,EAAEO,UAAUI,MAAMuB,SAAS3B,UAAUa,kBACrCpB,EAAEO,UAAUM,WAAWqB,SAAS,cAAcC,YAAY,eAC1DnC,EAAEO,UAAUM,WAAWuB,KAAK,eAAgB,QAC5CpC,EAAEO,UAAUO,gBAAgBoB,SAAS,eAAeC,YAAY,cAErD,eAAX\/B,SACAJ,EAAEO,UAAUI,MAAMwB,YAAY5B,UAAUa,kBACxCpB,EAAEO,UAAUM,WAAWsB,YAAY,cAAcD,SAAS,eAC1DlC,EAAEO,UAAUM,WAAWuB,KAAK,eAAgB,SAC5CpC,EAAEO,UAAUO,gBAAgBoB,SAAS,aAAaC,YAAY,gBAElEnC,EAAE,6DAA6DqC,QAC\/DrC,EAAE,+DAA+DqC,SAGrE7B,KAAKwB,gBAAkB,eAEf5B,OAAQkC,OAAQC,MAChB\/B,KAAKe,UACLnB,OAAS,aACTkC,QAAS,EACTC,MAAQ9B,QAAQ,KAEhBL,OAAS,WACTkC,QAAS,EACTC,MAAQ9B,QAAQ,IAGpBD,KAAKyB,sBAAsB7B,QAE3BI,KAAKe,SAAWe,OAChBE,EAAEC,KAAKC,oBAAoB,oBAAqBlC,KAAKe,UACrDtB,OAAO6B,KAAKS,QAET\/B,MAzGCE,UAAUc"}