presto-8.x-2.2/modules/presto_components/js/src/iconbox_conditional_display.js
modules/presto_components/js/src/iconbox_conditional_display.js
/** * @file * Defines the behavior of paragraph Icon box form display. */ (($, Drupal) => { /** * Attaches the behavior of the media entity browser view. */ Drupal.behaviors.paragraphIconBox = { attach(context/* , settings */) { setTimeout(() => { $('[name*="field_body_paragraphs"][name*="subform"][name*="field_icon_box_type"]', context).triggerHandler('change'); }, 1000); const conditionalDisplay = (event) => { const $target = $(event.target); const selected = $target.find('option:selected').val(); if (selected === 'undefined') { return; } const $parentForm = $target.parents('.paragraphs-subform').first(); const $imageField = $parentForm.find('[data-drupal-selector*="-subform-field-media-wrapper"]'); const $iconField = $parentForm.find('[data-drupal-selector*="-subform-field-icon-wrapper"]'); switch (selected.toLowerCase()) { case '_none': $imageField.hide(); $iconField.hide(); break; case 'image': $imageField.show(); $iconField.hide(); break; case 'icon': $iconField.show(); $imageField.hide(); break; default: // Case default or _none: hide both. $imageField.hide(); $iconField.hide(); break; } }; $('[name*="field_body_paragraphs"][name*="subform"][name*="field_icon_box_type"]', context).once('paragraphIconBox').each((i, el) => { const $this = $(el); $this.on('change', conditionalDisplay); $this.triggerHandler('change'); }); }, }; })(jQuery, window.Drupal);