1/** 2 * ÐÑкÑÑÐ²Ð°ÐµÑ Ð¼Ð¾Ð´Ð°Ð»Ñное окно Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм ÑодеÑжимÑм. 3 * ÐавиÑÐ¸Ñ Ð¾Ñ bootstrap.Modal 4 */ 5new class Modal extends RsJsCore.classes.plugin { 6 /** 7 * ÐÑкÑÑÐ²Ð°ÐµÑ Ð¼Ð¾Ð´Ð°Ð»Ñное окно 8 * @param html СодеÑжимое окна 9 * @param onOpen callback, вÑзÑваемÑй поÑле оÑкÑÑÑÐ¸Ñ Ð¾ÐºÐ½Ð° 10 * @param options обÑекÑ, лÑбÑе дополниÑелÑнÑе ÑвойÑÑва 11 */ 12 open(html, onOpen, options) { 13 let isReopen = this.isOpen(); 14 if (this.modal) { 15 //ÐÑи повÑоÑном оÑкÑÑÑии без анимаÑии закÑÑваем ÑекÑÑее окно 16 this.modal.$el.innerHTML = html; 17 this.modal.$el.dispatchEvent(new CustomEvent('shown', {bubbles: true})); 18 return; 19 } 20 21 let element = document.createElement('div'); 22 element.className = 'modal rs-dialog' + (isReopen ? '' : ' fade'); 23 element.dataset.ukModal = true; 24 25 element.addEventListener('shown', (event) => { 26 element.dispatchEvent(new CustomEvent('new-content', {bubbles: true})); 27 }); 28 29 element.addEventListener('shown', onOpen); 30 element.addEventListener('hide', () => { 31 this.modal = null 32 }); 33 element.addEventListener('hidden', (event) => { 34 event.target.remove(); 35 }); 36 37 element.innerHTML = html; 38 39 this.modal = UIkit.modal(element, options); 40 this.modal.show(); 41 } 42 43 /** 44 * ÐакÑÑÐ²Ð°ÐµÑ Ð¼Ð¾Ð´Ð°Ð»Ñное окно 45 */ 46 close() { 47 if (this.modal) { 48 this.modal.hide(); 49 } 50 } 51 52 /** 53 * ÐозвÑаÑÐ°ÐµÑ true, еÑли модалÑное окно ÑейÑÐ°Ñ Ð¾ÑкÑÑÑо 54 * 55 * @returns boolean 56 */ 57 isOpen() { 58 return !!this.modal; 59 } 60 61 /** 62 * ÐÑобÑÐ°Ð¶Ð°ÐµÑ Ð»Ð¾Ð°Ð´ÐµÑ Ð²Ð½ÑÑÑи диалогового окна 63 */ 64 showLoader() { 65 if (this.modal) { 66 this.loader = document.createElement('div'); 67 this.loader.classList.add('rs-loader'); 68 } 69 } 70 71 /** 72 * СкÑÑÐ²Ð°ÐµÑ Ð»Ð¾Ð°Ð´ÐµÑ Ð²Ð½ÑÑÑи диалогового окна 73 */ 74 hideLoader() { 75 if (this.loader) { 76 this.loader.remove(); 77 } 78 } 79};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.