@vxe-ui/core
Version:
Vxe UI core library
1 lines • 1.4 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.globalResize=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_configStore=require("./configStore");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let resizeTimeout,eventStore=[],defaultInterval=500;function eventHandle(){eventStore.length&&(eventStore.forEach(n=>{n.tarList.forEach(e=>{var{target:t,width:r,heighe:i}=e,o=t.clientWidth,t=t.clientHeight;(o&&r!==o||t&&i!==t)&&(e.width=o,e.heighe=t,setTimeout(n.callback))})}),eventListener())}function eventListener(){clearTimeout(resizeTimeout),resizeTimeout=setTimeout(eventHandle,_configStore.globalConfigStore.resizeInterval||defaultInterval)}class XEResizeObserver{constructor(e){Object.defineProperty(this,"tarList",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"callback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.callback=e}observe(t){var e;t&&(e=this.tarList,e.some(e=>e.target===t)||e.push({target:t,width:t.clientWidth,heighe:t.clientHeight}),eventStore.length||eventListener(),eventStore.some(e=>e===this)||eventStore.push(this))}unobserve(t){_xeUtils.default.remove(eventStore,e=>e.tarList.some(e=>e.target===t))}disconnect(){_xeUtils.default.remove(eventStore,e=>e===this)}}let globalResize=exports.globalResize={create(e){return new(window.ResizeObserver||XEResizeObserver)(e)}};