{"version":3,"sources":["js/webforms.js"],"names":["$","Drupal","behaviors","ucws_dropdowns","attach","context","settings","$blockWebform","each","liveSearch","this","is","selectpicker","iconBase","tickIcon","actionsBox","deselectAllText","noneSelectedText","liveSearchPlaceholder","ucws_details","details","ucws_webform_file_uploads","generalFileUploadElements","audioFileUploadElements","documentFileUploadElements","imageFileUploadElements","videoFileUploadElements","allFileUploadElements","add","key","val","off","on","checkboxes","parent","find","removeButton","addClass","removeClass","jQuery"],"mappings":"CAAA,SAAWA,EAAGC,GACZ,aAEAA,EAAOC,UAAUC,eAAiB,CAChCC,OAAQ,SAAUC,EAASC,GACzB,MAAMC,EAAgBP,EAAE,kBAExBA,EAAE,uCAAwCO,GAAeC,MAAK,WAK5D,IAAIC,EAAaT,EAAEU,MAAMC,GAAG,kEAC5BX,EAAEU,MAAME,aAAa,CACnBC,SAAU,WACVC,SAAU,8BACVC,WAAYN,EACZO,gBAAiB,kBACjBC,iBAAkB,WAClBC,sBAAuB,SACvBT,WAAYA,SAMpBR,EAAOC,UAAUiB,aAAe,CAC9Bf,OAAQ,SAAUC,EAASC,GAEzBN,EAAE,0BAA0BoB,YAShCnB,EAAOC,UAAUmB,0BAA4B,CAC3CjB,OAAQ,SAAUC,EAASC,GAGzB,IAAIgB,EAA4BtB,EAAE,6EAC9BuB,EAA0BvB,EAAE,mFAC5BwB,EAA6BxB,EAAE,sFAC/ByB,EAA0BzB,EAAE,mFAC5B0B,EAA0B1B,EAAE,mFAE5B2B,EAAwBL,EAA0BM,IAAIL,GAAyBK,IAAIJ,GAA4BI,IAAIH,GAAyBG,IAAIF,GAEpJC,EAAsBnB,MAAK,SAAUqB,EAAKC,GAElBH,EAAsBE,GAG5C7B,EAAEU,MAAMqB,IAAI,SAASC,GAAG,QAAS,0BAA0B,WAEzD,IAAIC,EAAajC,EAAEU,MAAMwB,SAASC,KAAK,kCACnCC,EAAepC,EAAEU,MAAMwB,SAASC,KAAK,gBAGrCF,EAAWtB,GAAG,YAChByB,EAAaC,SAAS,UAGtBD,EAAaE,YAAY,kBAjErC,CAuEGC,OAAQtC","file":"webforms.js","sourcesContent":["(function ($, Drupal) {\n \"use strict\";\n\n Drupal.behaviors.ucws_dropdowns = {\n attach: function (context, settings) {\n const $blockWebform = $('.block.webform');\n // We need to apply this to selects but NOT image selects.\n $('select:not(.js-webform-image-select)', $blockWebform).each(function () {\n // Select2 and Choices are both default Webform options that essentially\n // enable searching, which we will simply use BootstrapSelect to handle.\n // To make the authoring clear, we've implemented a SearchMe checkbox and\n // hidden Select2/Choices options (unless already historically selected).\n let liveSearch = $(this).is('.js-webform-searchme, .js-webform-select2, .js-webform-choices');\n $(this).selectpicker({\n iconBase: 'ucalgary',\n tickIcon: 'ucws-icon-webform-checkmark',\n actionsBox: liveSearch,\n deselectAllText: \"Clear selection\",\n noneSelectedText: '- None -',\n liveSearchPlaceholder: 'Search',\n liveSearch: liveSearch,\n });\n });\n }\n };\n\n Drupal.behaviors.ucws_details = {\n attach: function (context, settings) {\n // Polyfill HTML5 details element - largely IE and really old browsers\n $('.block.webform details').details();\n }\n };\n\n /**\n * Attaches webform file upload button enable/disable behaviour to webforms.\n *\n * @type {Drupal~behavior}\n */\n Drupal.behaviors.ucws_webform_file_uploads = {\n attach: function (context, settings) {\n\n // Get all of the different file upload elements from the webform.\n var generalFileUploadElements = $('.block.webform .form-item.js-form-type-managed-file div.form-managed-file');\n var audioFileUploadElements = $('.block.webform .form-item.js-form-type-webform-audio-file div.form-managed-file');\n var documentFileUploadElements = $('.block.webform .form-item.js-form-type-webform-document-file div.form-managed-file');\n var imageFileUploadElements = $('.block.webform .form-item.js-form-type-webform-image-file div.form-managed-file');\n var videoFileUploadElements = $('.block.webform .form-item.js-form-type-webform-video-file div.form-managed-file');\n\n var allFileUploadElements = generalFileUploadElements.add(audioFileUploadElements).add(documentFileUploadElements).add(imageFileUploadElements).add(videoFileUploadElements);\n\n allFileUploadElements.each(function (key, val) {\n\n var uploadContainer = allFileUploadElements[key];\n\n // Loop through each file upload element.\n $(this).off('click').on('click', '.js-form-type-checkbox', function () {\n\n var checkboxes = $(this).parent().find('.js-form-type-checkbox > input');\n var removeButton = $(this).parent().find('.form-submit');\n\n // If any of the file upload elements files have been checked, enable the button.\n if (checkboxes.is(\":checked\")) {\n removeButton.addClass(\"active\");\n }\n else {\n removeButton.removeClass(\"active\");\n }\n });\n });\n }\n };\n})(jQuery, Drupal);\n"]}