Version 5.0.0 beta 5
This commit is contained in:
1 parent
2f24f9de48
commit
57d9db6ce2
218 files changed
+5331
-7416
No files matched your search
@@ -771,13 +771,9 @@ const fileId=parseInt(data?.fileElem?.attr?.('data-fileid'));if(!fileId||Number.
|
||||
try{instance.chain().removeAttachment(fileId).focus().run();}catch(e){Debug.warn(e);}}
|
||||
return{init,focus,unminimize,minimize,insertQuotes,insertHtml,reset,destruct,saveAndClearAutosave,getInstance,getInstanceHTML,scrollIntoView};}}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.filterBar',function(){var defaults={on:'phone,tablet',viewDefault:'filterContent'};var respond=function(elem,options){if(!$(elem).data('_filterBar')){$(elem).data('_filterBar',filterBarObj(elem,_.defaults(options,defaults)));}},getObj=function(elem){if($(elem).data('_filterBar')){return $(elem).data('_filterBar');}
|
||||
return undefined;},destruct=function(elem){var obj=getObj(elem);if(!_.isUndefined(obj)){obj.destruct();}};ips.ui.registerWidget('filterBar',ips.ui.filterBar,['on','viewDefault']);return{respond:respond,destruct:destruct,getObj:getObj};});var filterBarObj=function(elem,options){var filterBar=null;var filterContent=null;var workOn=[];var currentBreak;var currentlyShowing=null;var init=function(){if(!ips.utils.responsive.enabled()){return;}
|
||||
filterBar=elem.find('[data-role="filterBar"]');filterContent=elem.find('[data-role="filterContent"]');workOn=options.on.split(',');currentBreak=ips.utils.responsive.getCurrentKey();$(document).on('breakpointChange',_breakpointChange);elem.on('switchTo.filterBar',function(e,data){if(_.indexOf(workOn,ips.utils.responsive.getCurrentKey())===-1){return;}
|
||||
_switchView(data.switchTo);}).on('click','[data-action="filterBarSwitch"]',_switchToggle);if(_.indexOf(workOn,currentBreak)!==-1){_setUpBar();}},destruct=function(){$(document).off('breakpointChange',_breakpointChange);},_setUpBar=function(){if(options.viewDefault=='filterBar'){filterContent.attr('hidden','');currentlyShowing='filterBar';}else{filterBar.attr('hidden','');currentlyShowing='filterContent';}},_switchToggle=function(e){e.preventDefault();if(_.indexOf(workOn,ips.utils.responsive.getCurrentKey())===-1){return;}
|
||||
_switchView($(e.currentTarget).attr('data-switchTo')=='filterBar'?'filterBar':'filterContent');},_switchView=function(switchTo){if(switchTo==currentlyShowing){return;}
|
||||
elem.css({height:(currentlyShowing=='filterBar')?filterBar.outerHeight():filterContent.outerHeight()+'px'});filterBar.addClass('ipsFilter_layout');filterContent.addClass('ipsFilter_layout');var done=function(){filterBar.removeClass('ipsFilter_layout');filterContent.removeClass('ipsFilter_layout');elem.css({height:'auto'});currentlyShowing=switchTo;};if(switchTo=='filterBar'){filterBar.css({left:'-100%'}).removeAttr('hidden').animate({left:'0%'},{duration:300});filterContent.css({left:'0%'}).animate({left:'100%'},{duration:300,complete:function(){$(this).attr('hidden','')
|
||||
done();}});}else{filterBar.css({left:'0%'}).animate({left:'-100%'},{duration:300,complete:function(){$(this).attr('hidden','')
|
||||
done();}});filterContent.css({left:'100%'}).removeAttr('hidden').animate({left:'0%'},{duration:300});}},_cancel=function(){elem.find('[data-role="filterBar"], [data-role="filterContent"]').removeClass('ipsFilter_layout').css({left:'auto'}).removeAttr('hidden');elem.css({height:'auto'});currentlyShowing=null;},_breakpointChange=function(e,data){currentBreak=data.curBreakName;if(_.indexOf(workOn,currentBreak)!==-1){_switchView(options.viewDefault);}else{_cancel();}};init();return{init:init,destruct:destruct};};}(jQuery,_));;
|
||||
return undefined;},destruct=function(elem){var obj=getObj(elem);if(!_.isUndefined(obj)){obj.destruct();}};ips.ui.registerWidget('filterBar',ips.ui.filterBar,['on','viewDefault']);return{respond:respond,destruct:destruct,getObj:getObj};});var filterBarObj=function(elem,options){var filterBar=null;var filterContent=null;var currentlyShowing=null;var init=function(){filterBar=elem.find('[data-role="filterBar"]');filterContent=elem.find('[data-role="filterContent"]');elem.on('switchTo.filterBar',function(e,data){_switchView(data.switchTo);}).on('click','[data-action="filterBarSwitch"]',_switchToggle);_setUpBar();},destruct=function(){},_setUpBar=function(){if(options.viewDefault=='filterBar'){currentlyShowing='filterBar';}else{currentlyShowing='filterContent';}},_switchToggle=function(e){e.preventDefault();_switchView($(e.currentTarget).attr('data-switchTo')=='filterBar'?'filterBar':'filterContent');},_switchView=function(switchTo){if(switchTo==currentlyShowing){return;}
|
||||
if(document.startViewTransition){document.startViewTransition(()=>{elem.attr('data-ipsfilterbar-viewing',switchTo);});}else{elem.attr('data-ipsfilterbar-viewing',switchTo);}
|
||||
currentlyShowing=switchTo;};init();return{init:init,destruct:destruct};};}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.flashMsg',function(){var _queue=[],_doneInit=false,_box,_content,_isShowing=false,_currentDismissHandler=null;var defaults={timeout:2,extraClasses:'',location:'top',sticky:false,escape:true};var respond=function(elem,options){if(options.text){show(options.text,options);}},init=function(){$(document).ready(function(){if($('body').attr('data-message')){show($('body').attr('data-message'));}
|
||||
if(ips.utils.url.getParam('flmsg')){show(_.escape(decodeURIComponent(ips.utils.url.getParam('flmsg'))));}
|
||||
if(ips.utils.cookie.get('flmsg')){show(_.escape(ips.utils.cookie.get('flmsg')));ips.utils.cookie.unset('flmsg');}});$(document).on('closeFlashMsg.flashMsg',hide);},show=function(message,options,update){if(!_doneInit){_initElement();}
|
||||
@@ -1500,31 +1496,31 @@ var responseDiv=$('<div>'+response+'</div>');var responseWizard=responseDiv.find
|
||||
responseDiv.find("link","script").appendTo('head');ips.controller.cleanContentsOf(elem);elem.html(responseWizard);$(document).trigger('contentChange',[elem]);elem.trigger('wizardStepChanged');},_showLoading=function(elem){var loading=elem.find('[data-role="loading"]');var formContainer=elem.find('[data-role="wizardContent"]');if(!formContainer.is(':visible')){return;}
|
||||
if(!loading.length){loading=$('<div/>').attr('data-role','loading').addClass('ipsLoading').hide();elem.append(loading);}
|
||||
var dims={width:formContainer.outerWidth(),height:formContainer.outerHeight()};loading.css({width:dims.width+'px',height:dims.height+'px'}).show();formContainer.hide().after(loading.show());},_hideLoading=function(){var loading=elem.find('[data-role="loading"]');var formContainer=elem.find('[data-role="registerForm"]');loading.remove();formContainer.show();};ips.ui.registerWidget('wizard',ips.ui.wizard);return{respond:respond};});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.createModule('ips.ui.tabbar',function(){const defaults={itemSelector:'.ipsTabs__tab',activeClass:'ipsTabs__tab--active',loadingClass:'ipsLoading ipsTabs_loadingContent',panelClass:'ipsTabs__panel',panelPrefix:'ipsTabs',updateURL:true,updateTitle:false,disableNav:false};ips.ui.registerWidget('tabbar',ips.ui.tabbar,['contentArea','itemSelector','activeClass','loadingClass','disableNav','panelClass','updateURL','updateTitle','panelPrefix','defaultTab']);return{respond(elem,options){if(!$(elem).data('_tabbar')){$(elem).data('_tabbar',tabBarObj(elem,_.defaults(options,defaults)));}}};});function tabBarObj(elem,options){const rawElem=$(elem).get(0);const tabs=$(elem).find(options.itemSelector);let barId=rawElem.id;let active;let ajaxObj;function init(){if(!barId){barId=$(rawElem).identify().attr('id');}
|
||||
;(function($,_){"use strict";ips.createModule('ips.ui.tabbar',function(){const defaults={itemSelector:'.ipsTabs__tab',activeClass:false,loadingClass:'ipsLoading ipsTabs_loadingContent',panelClass:'ipsTabs__panel',updateURL:true,updateTitle:false,disableNav:false};ips.ui.registerWidget('tabbar',ips.ui.tabbar,['contentArea','itemSelector','activeClass','loadingClass','disableNav','panelClass','updateURL','updateTitle']);return{respond(elem,options){if(!$(elem).data('_tabbar')){$(elem).data('_tabbar',tabBarObj(elem,_.defaults(options,defaults)));}}};});function tabBarObj(elem,options){const rawElem=$(elem).get(0);const tabs=$(elem).find(options.itemSelector);let barId=rawElem.id;let active;let ajaxObj;function init(){if(!barId){barId=$(rawElem).identify().attr('id');}
|
||||
if(!options.contentArea||!$(options.contentArea).length){options.contentArea='#'+$(rawElem).next().identify().attr('id');}
|
||||
if(!tabs.length){Debug.warn("No tabs found in tab bar"+barId);return;}
|
||||
active=_getActiveTab();_initializeActive();$(elem).on('click',options.itemSelector,_handleTabClick);let tabbar=elem[0],tablist=tabbar.querySelector('[role="tablist"]'),scrollers=tabbar.querySelector('[data-role="tabScrollers"]');if(scrollers){scrollers.addEventListener("click",e=>_handleScrollerClick(e,tablist));let scrollerObserver=new IntersectionObserver(tabs=>tabs.forEach(tab=>tabbar.querySelector(`[data-direction="${tab.target.matches(':first-child') ? 'prev' : 'next'}"]`).hidden=tab.intersectionRatio>.99),{root:tablist,threshold:0.99});tablist.querySelectorAll(':scope > li:first-child, :scope > li:last-child').forEach(li=>{scrollerObserver.observe(li)});}}
|
||||
active=_getActiveTab();_initializeActive();$(elem).on('click',options.itemSelector,_handleTabClick);let tabbar=elem[0],tablist=tabbar.querySelector('[role="tablist"]'),scrollers=tabbar.querySelector('[data-role="tabScrollers"]');if(scrollers){scrollers.addEventListener("click",e=>_handleScrollerClick(e,tablist));let scrollerObserver=new IntersectionObserver(tabs=>tabs.forEach(tab=>tabbar.querySelector(`[data-direction="${tab.target.matches(':first-child') ? 'prev' : 'next'}"]`).hidden=tab.intersectionRatio>.99),{root:tablist,threshold:0.99});tablist.querySelectorAll(':scope > :first-child, :scope > :last-child').forEach(el=>{scrollerObserver.observe(el)});}}
|
||||
function _handleScrollerClick(e,tablist){let direction=e.target.closest('button').getAttribute("data-direction"),currentScroll=tablist.scrollLeft,listWidth=tablist.offsetWidth/2;if(direction==="prev"){listWidth=-listWidth;}
|
||||
tablist.scrollTo({left:currentScroll+listWidth,behavior:"smooth"})}
|
||||
function _handleTabClick(e){if(options.disableNav){return;}
|
||||
e.preventDefault();if($(this).hasClass(options.activeClass)){return;}
|
||||
let thisId=$(this).identify().attr('id'),thisContent=$('#'+options.panelPrefix+'_'+barId+'_'+thisId+'_panel');if(!thisContent.length){thisContent=_createTabPanel(thisId);_loadContent(this,thisContent).done(()=>_switchTab(thisId)).fail(()=>Debug.log('failed'));}else{_hideAllPanels();_switchTab(thisId);}
|
||||
e.preventDefault();if($(this).attr('aria-selected')==='true'){return;}
|
||||
let thisId=$(this).identify().attr('id'),thisContent=$('#'+$(this).attr('aria-controls'));if(!thisContent.length){thisContent=$('#'+thisId+'_panel');}
|
||||
if(!thisContent.length){thisContent=_createTabPanel(thisId);_loadContent(this,thisContent).done(()=>_switchTab(thisId)).fail(()=>Debug.log('failed'));}else{_hideAllPanels();_switchTab(thisId);}
|
||||
_updateURL(thisId);}
|
||||
function _switchTab(tabId,immediate=false){_hideAllPanels();const thisContent=$('#'+options.panelPrefix+'_'+barId+'_'+tabId+'_panel'),thisContentParent=document.querySelector(elem[0].getAttribute("data-ipstabbar-contentarea"));if(!immediate){ips.utils.anim.go('fadeIn',thisContent).done(function(){thisContent.attr('aria-hidden','false');$(elem).trigger('tabShown',{barID:barId,tabID:tabId,tab:active,panel:thisContent});$(document).trigger('contentChange',[thisContent]);});}else{thisContent.show().attr('aria-hidden','false');$(elem).trigger('tabShown',{barID:barId,tabID:tabId,tab:active,panel:thisContent});$(document).trigger('contentChange',[thisContent]);}
|
||||
if(elem[0].matches(".ipsTabs--sticky")&&thisContentParent&&window.scrollY>thisContentParent.offsetTop){thisContentParent.scrollIntoView({behavior:"smooth"});}
|
||||
function _switchTab(tabId){_hideAllPanels();const thisContent=$('#'+tabId+'_panel'),thisContentParent=document.querySelector(elem[0].getAttribute("data-ipstabbar-contentarea"));thisContent.removeAttr('hidden');$(elem).trigger('tabShown',{barID:barId,tabID:tabId,tab:active,panel:thisContent});$(document).trigger('contentChange',[thisContent]);if(elem[0].matches(".ipsTabs--sticky")&&thisContentParent&&window.scrollY>thisContentParent.offsetTop){thisContentParent.scrollIntoView({behavior:"smooth"});}
|
||||
active=$('#'+tabId);_makeTabActive(active);$(elem).trigger('tabChanged',{barID:barId,tabID:tabId,tab:active,panel:thisContent});}
|
||||
function _updateURL(tabId){if(!options.updateURL){return;}
|
||||
const tabLink=$(`#${tabId}`);const href=tabLink.attr('href');const title=(options.updateTitle&&tabLink.attr('title'))?tabLink.attr('title'):document.title;if(!_.isEmpty(href)&&!href.startsWith('#')){ips.utils.history.replaceState({},'ips.ui.tabbar',href);document.title=title
|
||||
ips.utils.analytics.trackPageView(href);}}
|
||||
function _getActiveTab(){const activeTab=elem.find('.'+options.activeClass);if(activeTab.length){return activeTab.get(0);}
|
||||
if(options.defaultTab&&$(elem).find(options.defaultTab)){return $(elem).find(options.defaultTab).get(0);}
|
||||
function _getActiveTab(){const activeTab=elem.find('[aria-selected="true"]');if(activeTab.length){return activeTab.get(0);}
|
||||
return $(elem).find(options.itemSelector).first();}
|
||||
function _initializeActive(){const activeId=$(active).identify().attr('id');if(!$('#'+options.panelPrefix+'_'+barId+'_'+activeId+'_panel').length){if($(options.contentArea).children().length){$(options.contentArea).wrapInner(_createTabPanel(activeId,true));_switchTab(activeId,true);}else{var newPanel=_createTabPanel(activeId);_loadContent(active,newPanel).done(function(){_switchTab(activeId);});}}else{_switchTab(activeId,true);}}
|
||||
function _makeTabActive(activeTab){$(elem).find(options.itemSelector).removeClass(options.activeClass).removeAttr('aria-selected');$(activeTab).addClass(options.activeClass).attr('aria-selected','true');}
|
||||
function _initializeActive(){const activeId=$(active).identify().attr('id');if(!$('#'+activeId+'_panel').length){if($(options.contentArea).children().length){$(options.contentArea).wrapInner(_createTabPanel(activeId,true));_switchTab(activeId);}else{var newPanel=_createTabPanel(activeId);_loadContent(active,newPanel).done(function(){_switchTab(activeId);});}}else{_switchTab(activeId);}}
|
||||
function _makeTabActive(activeTab){$(elem).find(options.itemSelector).attr('aria-selected','false');if(options.activeClass){$(elem).find(options.itemSelector).removeClass(options.activeClass);}
|
||||
$(activeTab).attr('aria-selected','true');if(options.activeClass){$(activeTab).addClass(options.activeClass);}}
|
||||
function _loadContent(tab,container){let url;const deferred=$.Deferred();_hideAllPanels();if($(tab).attr('data-tabURL')){url=$(tab).attr('data-tabURL');}else{url=$(tab).attr('href');}
|
||||
$(options.contentArea).addClass(options.loadingClass);ajaxObj=ips.getAjax();ajaxObj(url).done(response=>{$(container).html(response);deferred.resolve();}).fail(()=>window.location=$(tab).attr('href')).always(()=>$(options.contentArea).removeClass(options.loadingClass));return deferred.promise();}
|
||||
function _hideAllPanels(){$(options.contentArea).find('> .'+options.panelClass).hide().attr('aria-hidden','true');}
|
||||
function _createTabPanel(tabId,noAppend=false){const newPanel=$('<div/>').attr({'id':options.panelPrefix+'_'+barId+'_'+tabId+'_panel'}).addClass(options.panelClass).attr({'aria-labelledby':tabId});if(!noAppend){$(options.contentArea).append(newPanel);}
|
||||
function _hideAllPanels(){$(options.contentArea).find('> .'+options.panelClass).attr('hidden','');}
|
||||
function _createTabPanel(tabId,noAppend=false){const newPanel=$('<div/>').attr({'id':tabId+'_panel'}).addClass(options.panelClass).attr({'role':'tabpanel'}).attr({'aria-labelledby':tabId});if(!noAppend){$(options.contentArea).append(newPanel);}
|
||||
return newPanel;}
|
||||
init();return{init};}}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.utils',function(options){var argsToArray=function(obj){return Array.prototype.slice.call(obj);},uppercaseFirst=function(fromString){return fromString.charAt(0).toUpperCase()+fromString.slice(1);},getIDsFromList=function(list){if(!list){return'';}
|
||||
@@ -1890,11 +1886,10 @@ var item=queue.shift();if(item.run=='anim'){elem.animationComplete(function(){el
|
||||
item.deferred.resolve();},cleanClasses=function(elem){$(elem).removeClass('ipsAnim').removeClass(function(index,css){return(css.match(/ipsAnim[0-9a-z_\-]+/gi)||[]).join(' ');});return elem;},isTransition=function(name){return!_.isUndefined(_transitions[name]);},addTransition=function(name,cssAnimation,fallbackAnimation){if(_transitions[name]){Debug.warn("A transition with the name '"+name+"' already exists");return;}
|
||||
_transitions[name]={anim:cssAnimation,fallback:fallbackAnimation};},scrollTo=function(elem,options){};return{init:init,cleanClasses:cleanClasses,animationSupport:animationSupport,isTransition:isTransition,addTransition:addTransition,go:go,cancel:cleanClasses};});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.createModule("ips.utils.lazyload",function(){const fixedElements=new WeakSet();const imgDimsCache={_cache:new Map(),get(key){let value;if(!this._cache.has(key)){try{value=ips.utils.db.get('ips.utils.lazyloadImgDims',key);}catch(e){}}else{value=this._cache.get(key);}
|
||||
return value;},set(key,value){ips.utils.db.set('ips.utils.lazyloadImgDims',key,value,false,Math.round(Date.now()/1000)+86400);return this._cache.set(key,value);},has(key){return this._cache.has(key);},delete(key){ips.utils.db.remove('ips.utils.lazyloadImgDims',key);return this._cache.delete(key);}};return{init(){this.parseLazyLoadElements();$(document).on('contentChange',function(changedElement){try{$(changedElement).each(function(){ips.utils.lazyload.parseLazyLoadElements(this);});}catch(e){Debug.warn(`Something went wrong when processing lazy load images`);Debug.warn(e);}})},parseLazyLoadElements(root){root=root instanceof Element?root:document.body;root.querySelectorAll("[data-src]:is(img, audio, video, iframe, object, embed)").forEach(element=>{if(fixedElements.has(element)){return;}
|
||||
return value;},set(key,value){ips.utils.db.set('ips.utils.lazyloadImgDims',key,value,false,Math.round(Date.now()/1000)+86400);return this._cache.set(key,value);},has(key){return this._cache.has(key);},delete(key){ips.utils.db.remove('ips.utils.lazyloadImgDims',key);return this._cache.delete(key);}};return{init(){this.parseLazyLoadElements();$(document).on('contentChange',function(changedElement){try{$(changedElement).each(function(){ips.utils.lazyload.parseLazyLoadElements(this);});}catch(e){Debug.warn(`Something went wrong when processing lazy load images`);Debug.warn(e);}})},parseLazyLoadElements(root){root=root instanceof Element?root:document.body;root.querySelectorAll(":is([data-src], [data-embed-src]):is(img, audio, video, iframe, object, embed)").forEach(element=>{if(fixedElements.has(element)){return;}
|
||||
element.dataset.ipsLazyloadProcessed='1'
|
||||
fixedElements.add(element);if(element.getAttribute('src')===element.dataset.src){delete element.dataset.src
|
||||
return;}
|
||||
element.setAttribute('loading','lazy');element.setAttribute('src',element.dataset.src);delete element.dataset.src;if(element.matches('img')){let width=parseFloat(element.getAttribute('width')||'');let height=parseFloat(element.getAttribute('height')||'');if(width&&height&&!Number.isNaN(width)&&!Number.isNaN(height)){return;}else if(element.style.height||element.style.width){return;}else if(parseFloat(width?.toString()||element.dataset.width||'')&&parseFloat(height?.toString()||element.dataset.height||'')){width=Math.round(parseFloat(width?.toString()||element.dataset.width)*100)/100;height=Math.round(parseFloat(height?.toString()||element.dataset.height)*100)/100;}else if(parseFloat(width?.toString()||element.dataset.width||'')&&parseFloat(element.dataset.ratio||'')){width=Math.round(parseFloat(width?.toString()||element.dataset.width)*100)/100;height=Math.round((width/parseFloat(element.dataset.ratio))*100)/100;}else if(parseFloat(height?.toString()||element.dataset.height||'')&&parseFloat(element.dataset.ratio||'')){height=Math.round(parseFloat(height?.toString()||element.dataset.height)*100)/100;width=Math.round(height*parseFloat(element.dataset.ratio)*100)/100;}
|
||||
fixedElements.add(element);const dataSrc=(element.dataset.src||element.dataset.embedSrc)?.trim();if(element.getAttribute('src')?.trim()===dataSrc){delete element.dataset.src;delete element.dataset.embedSrc;return;}
|
||||
Debug.log(`Found legacy lazy loading ${element.tagName.toLowerCase()}. src: ${dataSrc}`);element.setAttribute('loading','lazy');element.setAttribute('src',dataSrc);delete element.dataset.src;delete element.dataset.embedSrc;if(element.matches('img')){let width=parseFloat(element.getAttribute('width')||'');let height=parseFloat(element.getAttribute('height')||'');if(width&&height&&!Number.isNaN(width)&&!Number.isNaN(height)){return;}else if(element.style.height||element.style.width){return;}else if(parseFloat(width?.toString()||element.dataset.width||'')&&parseFloat(height?.toString()||element.dataset.height||'')){width=Math.round(parseFloat(width?.toString()||element.dataset.width)*100)/100;height=Math.round(parseFloat(height?.toString()||element.dataset.height)*100)/100;}else if(parseFloat(width?.toString()||element.dataset.width||'')&&parseFloat(element.dataset.ratio||'')){width=Math.round(parseFloat(width?.toString()||element.dataset.width)*100)/100;height=Math.round((width/parseFloat(element.dataset.ratio))*100)/100;}else if(parseFloat(height?.toString()||element.dataset.height||'')&&parseFloat(element.dataset.ratio||'')){height=Math.round(parseFloat(height?.toString()||element.dataset.height)*100)/100;width=Math.round(height*parseFloat(element.dataset.ratio)*100)/100;}
|
||||
if(typeof height==="number"&&typeof width==="number"&&height>0&&width>0){Debug.log(`Determined the width and height from data- attributes`);element.setAttribute('width',width.toString());element.setAttribute('height',height.toString());}else{this.getNativeImgDims(element.getAttribute('src')).then(dims=>{if(dims){Debug.log(`Determined the width and height from the URL`);element.setAttribute('width',dims.width.toString());element.setAttribute('height',dims.height.toString());}}).catch(err=>{Debug.warn(`Failed to determine the native dims of the image at the URL ${element.getAttribute('url')}`);Debug.warn(err);})}}});},getNativeImgDims(url){return new Promise(_resolve=>{let done=false;let timeout;const resolve=val=>{if(timeout!==undefined){clearTimeout(timeout);}
|
||||
if(done){return;}
|
||||
done=true;_resolve(val);};try{let output={width:0,height:0};url=new URL(url);if(imgDimsCache.has(url.toString())){resolve(imgDimsCache.get(url.toString()));return;}
|
||||
|
||||
Reference in new issue
Block a user