New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@techui/utils

Package Overview
Dependencies
Maintainers
2
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@techui/utils - npm Package Compare versions

Comparing version
0.0.4
to
0.0.5
+55
UPDATE.md
# @techui/utils Update Log
[English](#english) | [中文](#中文)
---
## English
### v0.0.5 (2025-10-23 22:00)
- Renamed `i18n` method in tQuery object to `valueByPath`, and added `fallback` parameter to retrieve values from objects by string path
- `valueByPath` method is now called by `$tc` (themeColor) method and `i18n` method for querying theme and i18n parameters
- **Moved `flatToTree` utility method from component library to utils as a public function**
- Added ThemeManager class and tTheme method for theme processing
- Added viewTransStart method for global transition animation handling
### v0.0.4 (2025-10-22 22:20)
- **Breaking changes: version rolled back to align with four main component libraries**
- Iterated theme functionality: theme and i18n refactored to support dynamic imports for on-demand loading
- Updated `tTheme` method and `ThemeManager` class in utils library
### v1.0.1 (2025-10-05)
- Bug fixes
### v1.0.0 (2025-10-05)
- Initial release **(removed due to bugs)**
---
## 中文
### v0.0.5 (2025-10-23 22:00)
- tQuery 对象中的 `i18n` 方法重命名为 `valueByPath`,并新增 `fallback` 参数,可根据字符串路径获取对象中的值
- `valueByPath` 方法现被 `$tc`(themeColor)方法和 `i18n` 方法调用,用于查询主题和多语言参数
- **将组件库中的 `flatToTree` 工具方法移至 utils 中,作为公共函数开放**
- 添加ThemeManager类,tTheme方法,用作主题处理
- 添加viewTransStart方法,进行全局的转场动画处理
### v0.0.4 (2025-10-22 22:20)
- **破坏性更新:版本号回退,与四个主要组件库同步版本号**
- 迭代主题功能:主题和多语言改为动态导入,支持按需加载
- utils 组件库中更新 `tTheme` 方法和 `ThemeManager` 类
### v1.0.1 (2025-10-05)
- 修正 bug
### v1.0.0 (2025-10-05)
- 首次发布 **(因 bug 已移除)**
+1
-1

@@ -1,1 +0,1 @@

const N=({source:e,target:t,syncPosition:r=!1,positionBaseTo:s="root"})=>{const{left:n,top:i,width:a,height:o}=e.getBoundingClientRect(),c=e.closest("#tuiAdpt"),l=c&&c!=e,u=e.clientWidth,d=e.clientHeight,h={};if(h.width=l?u:a,h.height=l?d:o,r)if("root"==s)h.left=n,h.top=i;else if("parent"==s){const{offsetTop:t,offsetLeft:r}=e;h.left=r,h.top=t}return h},k=e=>{const t=/\[(.*?)\](.*?)(?=\[|$)/gs;let r,s={};for(;null!==(r=t.exec(e));){const e=r[1].trim(),t=r[2].trim();s[e]=t}return s},y={el:(e,t=!1)=>t?t?document.querySelectorAll(e):void 0:document.querySelector(e),i18n(e,t){const r=t.split(".");let s=e;for(const e of r){if(null==s)break;s=s[e]}return s??t},clearExcept(e,t){Array.from(e.children).forEach((r=>{r!==t&&e.removeChild(r)}))},get1stParent:(e,t)=>e&&e.parentElement?.closest(t)||null},L={adpt:{ready:!1,info:{scaleX:1,scaleY:1},init(e){this.info={scaleX:e.scaleX||e.scale,scaleY:e.scaleY||e.scale},this.ready=!0},reset(){this.info={scaleX:1,scaleY:1},this.ready=!1}},rootInfo(e){const t=this.isInAdp(e);let r={rootWidth:window.innerWidth,rootHeight:window.innerHeight,isInAdp:t};if(t){const e=y.el("#tuiAdpt").getBoundingClientRect(),{bottom:t,height:s,left:n,right:i,top:a,width:o}=e;let c=r.rootWidth-i,l=r.rootHeight-t;const u={A2RTop:a>0?a:0,A2RRight:c>0?c:0,A2RBottom:l>0?l:0,A2RLeft:n>0?n:0,adptWidth:o,adptHeight:s,adptOri:e};r={...r,...u}}return r},isInAdp(e){if(e){const t=e.closest("#tuiAdpt");return t&&t!=e}return!1}},b={data:new Map,s(e,t){this.data.has(e)||this.data.set(e,t)},g(e,t=!1){const r=this.data.get(e);return t&&void 0!==r&&this.data.delete(e),r},d(e){this.data.delete(e)},local:{s(e,t){"string"!=typeof t?localStorage.setItem(e,JSON.stringify(t)):localStorage.setItem(e,t)},g(e){let t=localStorage.getItem(e);if(!/[\'\(\{]/.test(t))return t;try{return JSON.parse(t)}catch(e){}},d(e){localStorage.removeItem(e)}},session:{s(e,t){"string"!=typeof t?sessionStorage.setItem(e,JSON.stringify(t)):sessionStorage.setItem(e,t)},g(e){let t=sessionStorage.getItem(e);if(!/[\'\(\{]/.test(t))return t;try{return JSON.parse(t)}catch(e){}},d(e){sessionStorage.removeItem(e)}},cookie:{s(e,t,r){var s=new Date;s.setSeconds(s.getSeconds()+r),document.cookie=e+"="+escape(t)+"; expires="+s.toGMTString()},g(e){if(document.cookie.length>0){let t=document.cookie.indexOf(e+"=");if(-1!=t){t=t+e.length+1;let r=document.cookie.indexOf(";",t);return-1==r&&(r=document.cookie.length),unescape(document.cookie.substring(t,r))}}return""},d(e){cookie.set(e,"",-1)}}},C={_db:null,_dbName:"TuiDB",_version:1,_tipInit:"database is not initialized, call the init() first",async init(e="TuiDB",t=1,r=[]){return this._dbName=e,this._version=t,new Promise(((e,t)=>{const s=indexedDB.open(this._dbName,this._version);s.onerror=()=>{t(new Error(this._dbName+"Failed to open the database: "+s.error))},s.onsuccess=()=>{this._db=s.result,e(this._db)},s.onupgradeneeded=e=>{const t=e.target.result;r.forEach((e=>{if(!t.objectStoreNames.contains(e.name)){const r=t.createObjectStore(e.name,{keyPath:e.keyPath||"id",autoIncrement:e.autoIncrement||!1});e.indexes&&e.indexes.forEach((e=>{r.createIndex(e.name,e.keyPath,{unique:e.unique||!1})}))}}))}}))},async add(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,s)=>{const n=this._db.transaction([e],"readwrite").objectStore(e);if(Array.isArray(t)){const e=t.map(((e,t)=>new Promise(((r,s)=>{const i=n.add(e);i.onsuccess=()=>r(i.result),i.onerror=()=>{"ConstraintError"===i.error.name?new Error(`第 ${t+1} 条数据主键重复: id="${e.id}"`):new Error(`第 ${t+1} 条数据添加失败: ${i.error.message}`),s(error||i.error)}}))));Promise.all(e).then(r).catch(s)}else{const e=n.add(t);e.onsuccess=()=>r(e.result),e.onerror=()=>{if("ConstraintError"===e.error.name){const e=new Error(`数据主键重复: id="${t.id}"`);s(e)}else s(e.error)}}}))},async put(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,s)=>{const n=this._db.transaction([e],"readwrite").objectStore(e);if(Array.isArray(t)){const e=t.map((e=>new Promise(((t,r)=>{const s=n.put(e);s.onsuccess=()=>t(s.result),s.onerror=()=>r(s.error)}))));Promise.all(e).then(r).catch(s)}else{const e=n.put(t);e.onsuccess=()=>r(e.result),e.onerror=()=>s(e.error)}}))},async get(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,s)=>{const n=this._db.transaction([e],"readonly").objectStore(e).get(t);n.onsuccess=()=>r(n.result),n.onerror=()=>s(n.error)}))},async getAll(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,s)=>{const n=this._db.transaction([e],"readonly").objectStore(e),i=t?n.getAll(void 0,t):n.getAll();i.onsuccess=()=>r(i.result),i.onerror=()=>s(i.error)}))},async getByIndex(e,t,r){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((s,n)=>{const i=this._db.transaction([e],"readonly").objectStore(e).index(t).getAll(r);i.onsuccess=()=>s(i.result),i.onerror=()=>n(i.error)}))},async delete(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,s)=>{const n=this._db.transaction([e],"readwrite").objectStore(e).delete(t);n.onsuccess=()=>r(!0),n.onerror=()=>s(n.error)}))},async clear(e){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((t,r)=>{const s=this._db.transaction([e],"readwrite").objectStore(e).clear();s.onsuccess=()=>t(!0),s.onerror=()=>r(s.error)}))},async count(e){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((t,r)=>{const s=this._db.transaction([e],"readonly").objectStore(e).count();s.onsuccess=()=>t(s.result),s.onerror=()=>r(s.error)}))},async iterate(e,t,r="next"){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((s,n)=>{const i=this._db.transaction([e],"readonly").objectStore(e).openCursor(null,r);i.onsuccess=e=>{const r=e.target.result;r?(t(r,r.value),r.continue()):s(!0)},i.onerror=()=>n(i.error)}))},close(){this._db&&(this._db.close(),this._db=null)},deleteDatabase:async e=>new Promise(((t,r)=>{const s=indexedDB.deleteDatabase(e);s.onsuccess=()=>t(!0),s.onerror=()=>r(s.error),s.onblocked=()=>{}})),info(){if(!this._db)throw new Error(this._dbName+this._tipInit);return{initialized:!0,name:this._db.name,version:this._db.version,tableCount:this._db.objectStoreNames.length,tables:Array.from(this._db.objectStoreNames)}},isInited(){return null!==this._db&&void 0!==this._db}},j=(e=null)=>{if(e)return M(e),e;{let e=b.session.g("sysLangLock"),t=b.session.g("sysLang");const r=Intl.DateTimeFormat().resolvedOptions().locale,s=window.navigator.language,n=(r||s).toLowerCase();let i="";return i=n.includes("cn")?"cn":n.includes("tw")||n.includes("hk")?"hk":n.includes("en")?"en":n,(!e&&t||!t)&&b.session.s("sysLang",i),i}},M=e=>{b.session.s("sysLang",e),b.session.s("sysLangLock",!0)};class D{constructor(){this.lang=null}register(e){return this.lang=e,!0}load(){return this.lang}hasLang(){return null!==this.lang}getValue(){return this.lang?.value||null}getData(){return this.lang?.data||{}}clear(){this.lang=null}}const F=new D,p=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase();p.join=(e,t,r)=>p(t)==e?t+r:t;const S={verify:e=>"number"==p(e),isNEG0:e=>"number"==p(e)&&e>=0,isNG0:e=>"number"==p(e)&&e>0,isNL0:e=>"number"==p(e)&&e<0,rdm:(e,t)=>Math.floor(Math.random()*(t-e+1))+e,max:(...e)=>Math.max(...e),min:(...e)=>Math.min(...e),rdma(e){for(var t=[],r=0;r<e.group;r++){for(var s=[],n=0;n<e.length;n++){var i=Math.round(Math.random()*(e.max-e.min)+e.min);s.push(i)}t.push(s)}return t},safeFixed(e,t){const r=Math.pow(10,t);return Math.round(e*r)/r},convert(e,t=0){try{const r=e.trim();let s=parseFloat(r);return isNaN(s)?{success:!1,error:"无效的数字格式"}:(s=0===t?Math.round(s):parseFloat(s.toFixed(t)),{success:!0,num:s})}catch(e){return{success:!1,error:e.message}}},padZero(e,t,r=!0){const s=Number(e);return r?s.toFixed(t):parseFloat(s.toFixed(t)).toString()},isDigit:e=>/^[0-9]$/.test(e),isDigitOrSeparator:e=>/^[0-9,.]$/.test(e),isAllDigits:e=>/^\d+$/.test(e),isValidNumber:e=>/^\d+(\.\d+)?$/.test(e),isNumberWithCommas:e=>/^\d{1,3}(,\d{3})*(\.\d+)?$/.test(e)},w={rdm(e=10){e=e||6;var t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz",r=t.length,s="";for(let n=0;n<e;n++)s+=t.charAt(Math.floor(Math.random()*r));return s},upper1st:e=>e.charAt(0).toUpperCase()+e.slice(1),upperAll:e=>e.toUpperCase(),lowerAll:e=>e.toLowerCase()},W={rdmpk1(e){if("array"!=p(e)||0===e.length)return null;return e[S.rdm(0,e.length-1)]},fieldValid(e,t){if(!Array.isArray(e)||!Array.isArray(t))return{valid:!1,message:"FieldValid Error! All parameters must be arrays."};for(let r=0;r<e.length;r++){const s=e[r],n=t.find((e=>!(e in s)||void 0===s[e]));if(n)return{valid:!1,message:`Item at index ${r+1} is missing field "${n}" ! Source:"${JSON.stringify(s)}"`,index:r,missingField:n}}return{valid:!0,message:"Success"}},shallowEQ(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],n=t[r];if(typeof s!=typeof n)return!1;if("number"==typeof s||"string"==typeof s){if(s!==n)return!1}else if(s!==n)return!1}return!0}},x={isEmpty:(e={})=>0===Object.keys(e).length,isEq(e,t){if(e===t)return!0;if(null==e||null==t)return!1;const r=typeof e;if(r!==typeof t)return!1;if("object"===r){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!this.isEq(e[r],t[r]))return!1;return!0}if("[object Object]"===Object.prototype.toString.call(e)&&"[object Object]"===Object.prototype.toString.call(t)){const r=Object.keys(e),s=Object.keys(t);if(r.length!==s.length)return!1;for(let n of r)if(!s.includes(n)||!this.isEq(e[n],t[n]))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString()}return!1},remKey(e,t){const r={...e};if(Array.isArray(t))for(const e of t)e in r&&delete r[e];else"string"==p(t)&&t in r&&delete r[t];return r},pick:(e,t)=>t.reduce(((t,r)=>(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{}),dpc(e){if(!e)return e;try{return JSON.parse(JSON.stringify(e))}catch(t){return Array.isArray(e)?[]:{}}},dpm(e,t){if(!t)return{...e};const r={...e};for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]&&"object"==typeof e[s]&&t[s]&&"object"==typeof t[s]&&!Array.isArray(e[s])&&!Array.isArray(t[s])?r[s]=this.dpm(e[s],t[s]):r[s]=t[s]);return r},keyValid:(e,t,r=!0)=>{const s={valid:!1,message:"",missing:[]};return e?t&&Array.isArray(t)?(t.forEach((t=>{"string"==typeof t?t in e||s.missing.push(t):s.missing.push("Non-string keywords")})),r?0===s.missing.length?(s.valid=!0,s.message="Success"):s.message=`Missing keys: ${s.missing.join(", ")}`:t.filter((t=>"string"==typeof t&&t in e)).length>0?(s.valid=!0,s.message="Success"):(s.valid=!1,s.message="Missing required key"),s):(s.message="Invalid keyword array",s):(s.message="Invalid object",s)}},A={map:new WeakMap,debugMap:new Map,debug:!1,o(e,t,r){const s=Array.isArray(e)?e:[e];if(!s.length)return;let n=r||100;t&&s.forEach((e=>{if(e){e.uid||(e.uid="tResizeTemp_"+w.rdm());const r=new ResizeObserver(((r,s)=>{E.s(e.uid,(()=>{t(r,s)}),n)}));r.observe(e),this.map.set(e,r),this.debug&&this.debugMap.set(e.uid,e.className||"No ClassName")}}))},d(e){const t=Array.isArray(e)?e:[e];t.length&&t.forEach((e=>{if(e){const t=this.map.get(e);t&&(t.disconnect(),this.map.delete(e),this.debug&&e.uid&&this.debugMap.delete(e.uid))}}))},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,elements:Object.fromEntries(this.debugMap)}:null},logDebugInfo(){this.getDebugInfo()}},v={map:new WeakMap,debugMap:new Map,debug:!1,o(e,t,r={},s){const n=Array.isArray(e)?e:[e];if(!n.length)return;const i={childList:!0,subtree:!1,attributes:!1,characterData:!1,attributeOldValue:!1,characterDataOldValue:!1,...r};let a="mut_"+w.rdm(),o=s||100;if(t){const e=new MutationObserver(((e,r)=>{E.s(a,(()=>{t(e,r)}),o)}));n.forEach((t=>{t&&(e.observe(t,i),this.map.set(t,e),this.debug&&(t.uid||(t.uid="tMutationTemp_"+w.rdm()),this.debugMap.set(t.uid,t.className||"No ClassName")))}))}},d(e){const t=Array.isArray(e)?e:[e];t.length&&t.forEach((e=>{if(e){const t=this.map.get(e);t&&(t.disconnect(),this.map.delete(e),this.debug&&e.uid&&this.debugMap.delete(e.uid))}}))},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,elements:Object.fromEntries(this.debugMap)}:null},logDebugInfo(){this.getDebugInfo()}},E={data:new Map,s(e,t,r,s){this.c(e);this.data.set(e,setTimeout(((...r)=>{t(...r),this.data.delete(e)}),r,s))},c(e){const t=this.data.get(e);t&&(clearTimeout(t),this.data.delete(e))},g(e){return this.data.get(e)},w:async(e=100)=>new Promise((t=>setTimeout(t,e))),getDebugInfo(){return{count:this.data.size,timers:Object.fromEntries(this.data)}},logDebugInfo(){this.getDebugInfo()}},$={data:new Map,s(e,t,r,...s){this.c(e);const n=setInterval(t,r,...s);return this.data.set(e,n),n},c(e){const t=this.data.get(e);return!!t&&(clearInterval(t),this.data.delete(e),!0)},g(e){return this.data.get(e)},w:async(e=100)=>new Promise((t=>setTimeout(t,e))),getDebugInfo(){return{count:this.data.size,intervals:Object.fromEntries(this.data)}},logDebugInfo(){this.getDebugInfo()}};function P(e){return{all:e=e||new Map,on:function(t,r){var s=e.get(t);s?s.push(r):e.set(t,[r])},off:function(t,r){var s=e.get(t);s&&(r?s.splice(s.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var s=e.get(t);s&&s.slice().map((function(e){e(r)})),(s=e.get("*"))&&s.slice().map((function(e){e(t,r)}))}}}const m={map:new WeakMap,debugMap:new Map,debug:!1,add(e,t,r,s,n=!1,i=!0){this.map.has(e)||this.map.set(e,new Map);const a=this.map.get(e),o=`${s}_${t}`;if(a.has(o))return!1;if(a.set(o,{handler:r,useCapture:n}),e.addEventListener(t,r,n),this.debug&&i){const r=`${s}_${t}`,n=`${t}${e.className?" ["+e.className+"]":""}`;this.debugMap.set(r,n)}return!0},remove(e,t,r,s=!1,n=!0){const i=`${r}_${t}`;if(!this.map.has(e))return!1;const a=this.map.get(e);if(!a.has(i))return!1;const{handler:o,useCapture:c}=a.get(i),l=void 0!==s?s:c;if(e.removeEventListener(t,o,l),a.delete(i),0===a.size&&this.map.delete(e),this.debug&&n){const e=`${r}_${t}`;this.debugMap.delete(e)}return!0},has(e,t,r){if(!this.map.has(e))return!1;const s=`${r}_${t}`;return this.map.get(e).has(s)},getEvents(e){if(!this.map.has(e))return[];const t=this.map.get(e);return Array.from(t.keys()).map((e=>{const[t,r]=e.split("_");return{uid:t,eName:r}}))},removeAll(e){if(!this.map.has(e))return!1;const t=this.map.get(e);let r=[];return this.debug&&t.forEach(((e,t)=>{const s=t.split("_")[0];r.push(s)})),t.forEach(((t,r)=>{const s=r.split("_")[1];e.removeEventListener(s,t.handler,t.useCapture)})),this.map.delete(e),this.debug&&r.forEach((e=>{this.debugMap.delete(e)})),!0},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,events:Object.fromEntries(this.debugMap)}:null},logDebugInfo(){this.getDebugInfo()}};m.debounce=(e,t,r=!1)=>{let s,n=null;const i=function(...i){const a=this;if(n&&clearTimeout(n),r){const r=!n;n=setTimeout((()=>{n=null}),t),r&&(s=e.apply(a,i))}else n=setTimeout((()=>{s=e.apply(a,i),n=null}),t);return s};return i.cancel=function(){clearTimeout(n),n=null,s=void 0},i},m.throttle=(e,t,r={})=>{let s,n,i,a=null,o=0;const{leading:c=!0,trailing:l=!0}=r,u=function(){o=!1===c?0:Date.now(),a=null,i=e.apply(s,n),a||(s=n=null)},d=function(...r){const d=Date.now();!o&&!1===c&&(o=d);const h=t-(d-o);return s=this,n=r,h<=0||h>t?(a&&(clearTimeout(a),a=null),o=d,i=e.apply(s,n),a||(s=n=null)):l&&!a&&(a=setTimeout(u,h)),i};return d.cancel=function(){clearTimeout(a),o=0,a=s=n=i=null},d};const T=()=>(A.logDebugInfo(),v.logDebugInfo(),m.logDebugInfo(),E.logDebugInfo(),$.logDebugInfo(),"from TechUI");T.enable=()=>{A.enableDebug(),v.enableDebug(),m.enableDebug()};const q=(e,t,r)=>{let s;y.el(`#style${e}`)?(s=y.el(`#style${e}`),s.dataset.info=t):(s=document.createElement("style"),s.id=`style${e}`,s.dataset.info=t,s.type="text/css",document.getElementsByTagName("head")[0].appendChild(s)),s.innerText=r},R=(e,t)=>Object.entries(t).map((([t,r])=>`--${e}-${t}: ${r}`)).join("; "),z={list:e=>e&&e.classList?e.classList:[],has:(e,t)=>!(!e||!e.classList)&&e.classList.contains(t),add(e,t){e&&e.classList&&e.classList.add(t)},del(e,t){e&&e.classList&&e.classList.remove(t)},toggle(e,t){e&&e.classList&&e.classList.toggle(t)},replace(e,t,r){if(!e||"string"!=typeof e.className||!e.classList)return;const s=e.className.split(" "),n=`${t}${r}`;this.has(e,n)||(s.filter((e=>e.startsWith(t))).forEach((t=>{t.endsWith(r)||this.del(e,t)})),this.add(e,`${t}${r}`))}};class O{constructor(){this.themes=[]}register(e){this.themes.push(e)}load(){return this.themes}loadIndex(){return this.themes.map((e=>({value:e.value,label:e.label,scheme:e.scheme,colors:e.colors})))}}const B=new O,V={isEnabled:()=>window.innerHeight===screen.height&&window.innerWidth===screen.width,toggle(){this.isEnabled()?this.switch(!1):this.switch(!0)},switch(e){e?document.documentElement.requestFullscreen&&document.documentElement.requestFullscreen():document.exitFullscreen&&document.exitFullscreen()}},H={data:new WeakMap,s(e,t,r,s=!0){"log"!=e&&"warn"!=e&&"error"!=e&&"info"!=e&&(e="log"),s&&(this.data[t]||(this.data[t]=e+":"+r))},g(e){return e?this.data[e]:this.data}},J=e=>{let t=e.actual,r=[];if("object"==typeof e.actual){t=e.actual.length,r=e.actual;for(var s=0;s<r.length;s++)r[s]=parseInt(r[s])}e.jump||(e.jump=1),e.pickType||(e.pickType="seq"),null==e.total&&(e.total=10);let{actual:n,total:i,pickType:a,palette:o,mode:c,jump:l,reverse:u}=e;try{if(o&&o.length>0&&i>0){c=c||"lch";let s={pickType:a,total:i,jump:l,arry:$c.scale(o,i,c),pickIndex:r,actual:t},n=$tCore.process_color_array(s);return e.extra&&e.extra.length>0&&"number"==typeof e.extra[1]&&n.forEach(((t,r)=>{if("hslh"==e.extra[0]){let s=ca(t).hsl();s[0]+=e.extra[1],n[r]=ca.hsl(s).hex()}else n[r]=$c[e.extra[0]](t,e.extra[1])})),u?n.reverse():n}throw new Error("colorPicker:params is error !")}catch(e){return[]}},Y=()=>{const e=navigator.userAgent.toLowerCase(),t=e.includes("webkit")?"webkit":e.includes("firefox")?"Firefox":e.includes("trident")||e.includes("msie")?"IE":"Unknown",r=navigator.maxTouchPoints>0,s=screen.orientation||screen.mozOrientation||screen.msOrientation;let n,i;s&&(s.type.includes("portrait")?n="portrait":s.type.includes("landscape")&&(n="landscape"),s.type.includes("primary")?i=!1:s.type.includes("secondary")&&(i=!0));let a=document.body.clientWidth,o=document.body.clientHeight,c=1356,l="";return l=r?a>=c||o>=c?"pad-lg":a>=1014||o>=1014?"pad":"mobile":a>=7670||o>=7670?"pc-xl":a>=3830||o>=3830?"pc-lg":a>=1910||o>=1910?"pc-md":a>=c||o>=c?"pc-sm":"pc-mi",{type:l,h:a,v:o,touchable:r,orientation:n,screenInvert:i,browser:t}},G={formatTime(e,t){const r=e.match(/^(\d{1,2}):(\d{1,2})$/);if(!r||!t)return e;const s=r[1].padStart(2,"0"),n=r[2].padStart(2,"0");let i=t;return i=i.replace(/HH/g,s),i=i.replace(/MM/g,n),i},formatWeek(e,t){const r=e.match(/^(\d{4})-W(\d{2})$/);if(!r||!t)return e;const s=parseInt(r[1],10),n=parseInt(r[2],10);let i=t;return i=i.replace(/YYYY/g,s),i=i.replace(/WW/g,n),i}},U=({callback:e,enable:t,complete:r})=>{t&&document.startViewTransition?document.startViewTransition((()=>{e()})).finished.then((()=>{r&&"function"==typeof r&&r()})).catch((e=>{r&&"function"==typeof r&&r()})):(e(),r&&"function"==typeof r&&r())};export{J as colorPicker,R as cssVarGen,Y as deviceInfo,V as fullScreen,j as initLang,M as lockLang,q as styleInit,N as syncContSize,W as tArr,z as tClass,H as tConsole,k as tCoreTpl,C as tDBM,L as tDom,m as tEvent,$ as tInterval,F as tLang,P as tMitt,T as tMonitor,v as tMutation,S as tNum,x as tObj,y as tQuery,A as tResize,b as tStore,w as tStr,B as tTheme,G as tTime,E as tTimer,p as tType,U as viewTransStart};
const syncContSize=({source:e,target:t,syncPosition:r=!1,positionBaseTo:n="root"})=>{const{left:s,top:o,width:i,height:a}=e.getBoundingClientRect(),l=e.closest("#tuiAdpt"),c=l&&l!=e,u=e.clientWidth,d=e.clientHeight,h={};if(h.width=c?u:i,h.height=c?d:a,r)if("root"==n)h.left=s,h.top=o;else if("parent"==n){const{offsetTop:t,offsetLeft:r}=e;h.left=r,h.top=t}return h},tCoreTpl=e=>{const t=/\[(.*?)\](.*?)(?=\[|$)/gs;let r,n={};for(;null!==(r=t.exec(e));){const e=r[1].trim(),t=r[2].trim();n[e]=t}return n},tQuery={el:(e,t=!1)=>t?t?document.querySelectorAll(e):void 0:document.querySelector(e),valueByPath(e,t,r=!0){const n=t.split(".");let s=e;for(const e of n){if(null==s)break;s=s[e]}return null!=s?s:r?t:null},clearExcept(e,t){Array.from(e.children).forEach((r=>{r!==t&&e.removeChild(r)}))},get1stParent:(e,t)=>e&&e.parentElement?.closest(t)||null},tDom={adpt:{ready:!1,info:{scaleX:1,scaleY:1},init(e){this.info={scaleX:e.scaleX||e.scale,scaleY:e.scaleY||e.scale},this.ready=!0},reset(){this.info={scaleX:1,scaleY:1},this.ready=!1}},rootInfo(e){const t=this.isInAdp(e);let r={rootWidth:window.innerWidth,rootHeight:window.innerHeight,isInAdp:t};if(t){const e=tQuery.el("#tuiAdpt").getBoundingClientRect(),{bottom:t,height:n,left:s,right:o,top:i,width:a}=e;let l=r.rootWidth-o,c=r.rootHeight-t;const u={A2RTop:i>0?i:0,A2RRight:l>0?l:0,A2RBottom:c>0?c:0,A2RLeft:s>0?s:0,adptWidth:a,adptHeight:n,adptOri:e};r={...r,...u}}return r},isInAdp(e){if(e){const t=e.closest("#tuiAdpt");return t&&t!=e}return!1}},tStore={data:new Map,s(e,t){this.data.has(e)||this.data.set(e,t)},g(e,t=!1){const r=this.data.get(e);return t&&void 0!==r&&this.data.delete(e),r},d(e){this.data.delete(e)},local:{s(e,t){"string"!=typeof t?localStorage.setItem(e,JSON.stringify(t)):localStorage.setItem(e,t)},g(e){let t=localStorage.getItem(e);if(!/[\'\(\{]/.test(t))return t;try{return JSON.parse(t)}catch(e){console.error("Error: Failed to parse JSON:",e)}},d(e){localStorage.removeItem(e)}},session:{s(e,t){"string"!=typeof t?sessionStorage.setItem(e,JSON.stringify(t)):sessionStorage.setItem(e,t)},g(e){let t=sessionStorage.getItem(e);if(!/[\'\(\{]/.test(t))return t;try{return JSON.parse(t)}catch(e){console.error("Error: Failed to parse JSON:",e)}},d(e){sessionStorage.removeItem(e)}},cookie:{s(e,t,r){var n=new Date;n.setSeconds(n.getSeconds()+r),document.cookie=e+"="+escape(t)+"; expires="+n.toGMTString()},g(e){if(document.cookie.length>0){let t=document.cookie.indexOf(e+"=");if(-1!=t){t=t+e.length+1;let r=document.cookie.indexOf(";",t);return-1==r&&(r=document.cookie.length),unescape(document.cookie.substring(t,r))}}return""},d(e){cookie.set(e,"",-1)}}},tDBM={_db:null,_dbName:"TuiDB",_version:1,_tipInit:"database is not initialized, call the init() first",async init(e="TuiDB",t=1,r=[]){return this._dbName=e,this._version=t,new Promise(((e,t)=>{const n=indexedDB.open(this._dbName,this._version);n.onerror=()=>{t(new Error(this._dbName+"Failed to open the database: "+n.error))},n.onsuccess=()=>{this._db=n.result,e(this._db)},n.onupgradeneeded=e=>{const t=e.target.result;r.forEach((e=>{if(!t.objectStoreNames.contains(e.name)){const r=t.createObjectStore(e.name,{keyPath:e.keyPath||"id",autoIncrement:e.autoIncrement||!1});e.indexes&&e.indexes.forEach((e=>{r.createIndex(e.name,e.keyPath,{unique:e.unique||!1})}))}}))}}))},async add(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,n)=>{const s=this._db.transaction([e],"readwrite").objectStore(e);if(Array.isArray(t)){const e=t.map(((e,t)=>new Promise(((r,n)=>{const o=s.add(e);o.onsuccess=()=>r(o.result),o.onerror=()=>{"ConstraintError"===o.error.name?(new Error(`第 ${t+1} 条数据主键重复: id="${e.id}"`),console.error("❌ 数据重复:",e)):new Error(`第 ${t+1} 条数据添加失败: ${o.error.message}`),n(error||o.error)}}))));Promise.all(e).then(r).catch(n)}else{const e=s.add(t);e.onsuccess=()=>r(e.result),e.onerror=()=>{if("ConstraintError"===e.error.name){const e=new Error(`数据主键重复: id="${t.id}"`);console.error("❌ 数据重复:",t),n(e)}else n(e.error)}}}))},async put(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,n)=>{const s=this._db.transaction([e],"readwrite").objectStore(e);if(Array.isArray(t)){const e=t.map((e=>new Promise(((t,r)=>{const n=s.put(e);n.onsuccess=()=>t(n.result),n.onerror=()=>r(n.error)}))));Promise.all(e).then(r).catch(n)}else{const e=s.put(t);e.onsuccess=()=>r(e.result),e.onerror=()=>n(e.error)}}))},async get(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,n)=>{const s=this._db.transaction([e],"readonly").objectStore(e).get(t);s.onsuccess=()=>r(s.result),s.onerror=()=>n(s.error)}))},async getAll(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,n)=>{const s=this._db.transaction([e],"readonly").objectStore(e),o=t?s.getAll(void 0,t):s.getAll();o.onsuccess=()=>r(o.result),o.onerror=()=>n(o.error)}))},async getByIndex(e,t,r){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((n,s)=>{const o=this._db.transaction([e],"readonly").objectStore(e).index(t).getAll(r);o.onsuccess=()=>n(o.result),o.onerror=()=>s(o.error)}))},async delete(e,t){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((r,n)=>{const s=this._db.transaction([e],"readwrite").objectStore(e).delete(t);s.onsuccess=()=>r(!0),s.onerror=()=>n(s.error)}))},async clear(e){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((t,r)=>{const n=this._db.transaction([e],"readwrite").objectStore(e).clear();n.onsuccess=()=>t(!0),n.onerror=()=>r(n.error)}))},async count(e){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((t,r)=>{const n=this._db.transaction([e],"readonly").objectStore(e).count();n.onsuccess=()=>t(n.result),n.onerror=()=>r(n.error)}))},async iterate(e,t,r="next"){if(!this._db)throw new Error(this._dbName+this._tipInit);return new Promise(((n,s)=>{const o=this._db.transaction([e],"readonly").objectStore(e).openCursor(null,r);o.onsuccess=e=>{const r=e.target.result;r?(t(r,r.value),r.continue()):n(!0)},o.onerror=()=>s(o.error)}))},close(){this._db&&(this._db.close(),this._db=null)},deleteDatabase:async e=>new Promise(((t,r)=>{const n=indexedDB.deleteDatabase(e);n.onsuccess=()=>t(!0),n.onerror=()=>r(n.error),n.onblocked=()=>{console.warn("TDB: Database deletion is blocked, make sure all connections are closed !")}})),info(){if(!this._db)throw new Error(this._dbName+this._tipInit);return{initialized:!0,name:this._db.name,version:this._db.version,tableCount:this._db.objectStoreNames.length,tables:Array.from(this._db.objectStoreNames)}},isInited(){return null!==this._db&&void 0!==this._db}},initLang=(e=null)=>{if(e)return lockLang(e),e;{let e=tStore.session.g("sysLangLock"),t=tStore.session.g("sysLang");const r=Intl.DateTimeFormat().resolvedOptions().locale,n=window.navigator.language,s=(r||n).toLowerCase();let o="";return o=s.includes("cn")?"cn":s.includes("tw")||s.includes("hk")?"hk":s.includes("en")?"en":s,(!e&&t||!t)&&tStore.session.s("sysLang",o),o}},lockLang=e=>{tStore.session.s("sysLang",e),tStore.session.s("sysLangLock",!0)};class I18nManager{constructor(){this.lang=null}register(e){return this.lang=e,!0}load(){return this.lang}hasLang(){return null!==this.lang}getValue(){return this.lang?.value||null}getData(){return this.lang?.data||{}}clear(){this.lang=null}}const tLang=new I18nManager,tType=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase();tType.join=(e,t,r)=>tType(t)==e?t+r:t;const tNum={verify:e=>"number"==tType(e),isNEG0:e=>"number"==tType(e)&&e>=0,isNG0:e=>"number"==tType(e)&&e>0,isNL0:e=>"number"==tType(e)&&e<0,rdm:(e,t)=>Math.floor(Math.random()*(t-e+1))+e,max:(...e)=>Math.max(...e),min:(...e)=>Math.min(...e),rdma(e){for(var t=[],r=0;r<e.group;r++){for(var n=[],s=0;s<e.length;s++){var o=Math.round(Math.random()*(e.max-e.min)+e.min);n.push(o)}t.push(n)}return t},safeFixed(e,t){const r=Math.pow(10,t);return Math.round(e*r)/r},convert(e,t=0){try{const r=e.trim();let n=parseFloat(r);return isNaN(n)?{success:!1,error:"无效的数字格式"}:(n=0===t?Math.round(n):parseFloat(n.toFixed(t)),{success:!0,num:n})}catch(e){return{success:!1,error:e.message}}},padZero(e,t,r=!0){const n=Number(e);return r?n.toFixed(t):parseFloat(n.toFixed(t)).toString()},isDigit:e=>/^[0-9]$/.test(e),isDigitOrSeparator:e=>/^[0-9,.]$/.test(e),isAllDigits:e=>/^\d+$/.test(e),isValidNumber:e=>/^\d+(\.\d+)?$/.test(e),isNumberWithCommas:e=>/^\d{1,3}(,\d{3})*(\.\d+)?$/.test(e)},tStr={rdm(e=10){e=e||6;var t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz",r=t.length,n="";for(let s=0;s<e;s++)n+=t.charAt(Math.floor(Math.random()*r));return n},upper1st:e=>e.charAt(0).toUpperCase()+e.slice(1),upperAll:e=>e.toUpperCase(),lowerAll:e=>e.toLowerCase()},tArr={rdmpk1(e){if("array"!=tType(e)||0===e.length)return null;return e[tNum.rdm(0,e.length-1)]},fieldValid(e,t){if(!Array.isArray(e)||!Array.isArray(t))return{valid:!1,message:"FieldValid Error! All parameters must be arrays."};for(let r=0;r<e.length;r++){const n=e[r],s=t.find((e=>!(e in n)||void 0===n[e]));if(s)return{valid:!1,message:`Item at index ${r+1} is missing field "${s}" ! Source:"${JSON.stringify(n)}"`,index:r,missingField:s}}return{valid:!0,message:"Success"}},shallowEQ(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r<e.length;r++){const n=e[r],s=t[r];if(typeof n!=typeof s)return!1;if("number"==typeof n||"string"==typeof n){if(n!==s)return!1}else if(n!==s)return!1}return!0}},tObj={isEmpty:(e={})=>0===Object.keys(e).length,isEq(e,t){if(e===t)return!0;if(null==e||null==t)return!1;const r=typeof e;if(r!==typeof t)return!1;if("object"===r){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!this.isEq(e[r],t[r]))return!1;return!0}if("[object Object]"===Object.prototype.toString.call(e)&&"[object Object]"===Object.prototype.toString.call(t)){const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let s of r)if(!n.includes(s)||!this.isEq(e[s],t[s]))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString()}return!1},remKey(e,t){const r={...e};if(Array.isArray(t))for(const e of t)e in r&&delete r[e];else"string"==tType(t)&&t in r&&delete r[t];return r},pick:(e,t)=>t.reduce(((t,r)=>(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{}),dpc(e){if(!e)return e;try{return JSON.parse(JSON.stringify(e))}catch(t){return console.error("DeepCopy Error:",t),Array.isArray(e)?[]:{}}},dpm(e,t){if(!t)return{...e};const r={...e};for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]&&"object"==typeof e[n]&&t[n]&&"object"==typeof t[n]&&!Array.isArray(e[n])&&!Array.isArray(t[n])?r[n]=this.dpm(e[n],t[n]):r[n]=t[n]);return r},keyValid:(e,t,r=!0)=>{const n={valid:!1,message:"",missing:[]};if(!e)return n.message="Invalid object",n;if(!t||!Array.isArray(t))return n.message="Invalid keyword array",n;if(t.forEach((t=>{"string"==typeof t?t in e||n.missing.push(t):n.missing.push("Non-string keywords")})),r)0===n.missing.length?(n.valid=!0,n.message="Success"):n.message=`Missing keys: ${n.missing.join(", ")}`;else{t.filter((t=>"string"==typeof t&&t in e)).length>0?(n.valid=!0,n.message="Success"):(n.valid=!1,n.message="Missing required key")}return n}},tResize={map:new WeakMap,debugMap:new Map,debug:!1,o(e,t,r){const n=Array.isArray(e)?e:[e];if(!n.length)return void console.warn("Warning: No Elements Found");let s=r||100;t&&n.forEach((e=>{if(e){e.uid||(e.uid="tResizeTemp_"+tStr.rdm());const r=new ResizeObserver(((r,n)=>{tTimer.s(e.uid,(()=>{t(r,n)}),s)}));r.observe(e),this.map.set(e,r),this.debug&&this.debugMap.set(e.uid,e.className||"No ClassName")}else console.warn("Warning: Invalid Element Found")}))},d(e){const t=Array.isArray(e)?e:[e];t.length?t.forEach((e=>{if(e){const t=this.map.get(e);t&&(t.disconnect(),this.map.delete(e),this.debug&&e.uid&&this.debugMap.delete(e.uid))}})):console.warn("Warning: No Elements Found")},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),console.info("🔒 tResize debug mode is off"),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,elements:Object.fromEntries(this.debugMap)}:(console.warn("tResize Debug mode is not enabled"),null)},logDebugInfo(){const e=this.getDebugInfo();e&&(console.group("🔍 tResize Debug Info"),console.info(`Total: ${e.count} elements`),console.table(e.elements),console.groupEnd())}},tMutation={map:new WeakMap,debugMap:new Map,debug:!1,o(e,t,r={},n){const s=Array.isArray(e)?e:[e];if(!s.length)return void console.warn("Warning: No Elements Found");const o={childList:!0,subtree:!1,attributes:!1,characterData:!1,attributeOldValue:!1,characterDataOldValue:!1,...r};let i="mut_"+tStr.rdm(),a=n||100;if(t){const e=new MutationObserver(((e,r)=>{tTimer.s(i,(()=>{t(e,r)}),a)}));s.forEach((t=>{t?(e.observe(t,o),this.map.set(t,e),this.debug&&(t.uid||(t.uid="tMutationTemp_"+tStr.rdm()),this.debugMap.set(t.uid,t.className||"No ClassName"))):console.warn("Warning: Invalid Element Found")}))}},d(e){const t=Array.isArray(e)?e:[e];t.length?t.forEach((e=>{if(e){const t=this.map.get(e);t&&(t.disconnect(),this.map.delete(e),this.debug&&e.uid&&this.debugMap.delete(e.uid))}})):console.warn("Warning: No Elements Found")},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),console.info("🔒 tMutation debug mode disabled"),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,elements:Object.fromEntries(this.debugMap)}:(console.warn("tMutation Debug mode is not enabled"),null)},logDebugInfo(){const e=this.getDebugInfo();e&&(console.group("🔍 tMutation Debug Info"),console.info(`Total: ${e.count} elements`),console.table(e.elements),console.groupEnd())}},tTimer={data:new Map,s(e,t,r,n){this.c(e);this.data.set(e,setTimeout(((...r)=>{t(...r),this.data.delete(e)}),r,n))},c(e){const t=this.data.get(e);t&&(clearTimeout(t),this.data.delete(e))},g(e){return this.data.get(e)},w:async(e=100)=>new Promise((t=>setTimeout(t,e))),getDebugInfo(){return{count:this.data.size,timers:Object.fromEntries(this.data)}},logDebugInfo(){const e=this.getDebugInfo();console.group("🔍 tTimer Debug Info"),console.info(`Total: ${e.count} timers`),console.table(e.timers),console.groupEnd()}},tInterval={data:new Map,s(e,t,r,...n){this.c(e);const s=setInterval(t,r,...n);return this.data.set(e,s),s},c(e){const t=this.data.get(e);return!!t&&(clearInterval(t),this.data.delete(e),!0)},g(e){return this.data.get(e)},w:async(e=100)=>new Promise((t=>setTimeout(t,e))),getDebugInfo(){return{count:this.data.size,intervals:Object.fromEntries(this.data)}},logDebugInfo(){const e=this.getDebugInfo();console.group("🔍 tInterval Debug Info"),console.info(`Total: ${e.count} intervals`),console.table(e.intervals),console.groupEnd()}};function tMitt(e){return{all:e=e||new Map,on:function(t,r){var n=e.get(t);n?n.push(r):e.set(t,[r])},off:function(t,r){var n=e.get(t);n&&(r?n.splice(n.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var n=e.get(t);n&&n.slice().map((function(e){e(r)})),(n=e.get("*"))&&n.slice().map((function(e){e(t,r)}))}}}const tEvent={map:new WeakMap,debugMap:new Map,debug:!1,add(e,t,r,n,s=!1,o=!0){this.map.has(e)||this.map.set(e,new Map);const i=this.map.get(e),a=`${n}_${t}`;if(i.has(a))return console.warn(`tEvent: already exists, ignore adding: ${a}`),!1;if(i.set(a,{handler:r,useCapture:s}),e.addEventListener(t,r,s),this.debug&&o){const r=`${n}_${t}`,s=`${t}${e.className?" ["+e.className+"]":""}`;this.debugMap.set(r,s)}return!0},remove(e,t,r,n=!1,s=!0){const o=`${r}_${t}`;if(!this.map.has(e))return!1;const i=this.map.get(e);if(!i.has(o))return!1;const{handler:a,useCapture:l}=i.get(o),c=void 0!==n?n:l;if(e.removeEventListener(t,a,c),i.delete(o),0===i.size&&this.map.delete(e),this.debug&&s){const e=`${r}_${t}`;this.debugMap.delete(e)}return!0},has(e,t,r){if(!this.map.has(e))return!1;const n=`${r}_${t}`;return this.map.get(e).has(n)},getEvents(e){if(!this.map.has(e))return[];const t=this.map.get(e);return Array.from(t.keys()).map((e=>{const[t,r]=e.split("_");return{uid:t,eName:r}}))},removeAll(e){if(!this.map.has(e))return!1;const t=this.map.get(e);let r=[];return this.debug&&t.forEach(((e,t)=>{const n=t.split("_")[0];r.push(n)})),t.forEach(((t,r)=>{const n=r.split("_")[1];e.removeEventListener(n,t.handler,t.useCapture)})),this.map.delete(e),this.debug&&r.forEach((e=>{this.debugMap.delete(e)})),!0},enableDebug(){return this.debug=!0,this},disableDebug(){return this.debug=!1,this.debugMap.clear(),console.info("🔒 tEvent debug mode is off"),this},getDebugInfo(){return this.debug?{count:this.debugMap.size,events:Object.fromEntries(this.debugMap)}:(console.warn("tEvent Debug mode is not enabled"),null)},logDebugInfo(){const e=this.getDebugInfo();e&&(console.group("🔍 tEvent Debug Info"),console.info(`Total: ${e.count} events`),console.table(e.events),console.groupEnd())}};tEvent.debounce=(e,t,r=!1)=>{let n,s=null;const o=function(...o){const i=this;if(s&&clearTimeout(s),r){const r=!s;s=setTimeout((()=>{s=null}),t),r&&(n=e.apply(i,o))}else s=setTimeout((()=>{n=e.apply(i,o),s=null}),t);return n};return o.cancel=function(){clearTimeout(s),s=null,n=void 0},o},tEvent.throttle=(e,t,r={})=>{let n,s,o,i=null,a=0;const{leading:l=!0,trailing:c=!0}=r,u=function(){a=!1===l?0:Date.now(),i=null,o=e.apply(n,s),i||(n=s=null)},d=function(...r){const d=Date.now();a||!1!==l||(a=d);const h=t-(d-a);return n=this,s=r,h<=0||h>t?(i&&(clearTimeout(i),i=null),a=d,o=e.apply(n,s),i||(n=s=null)):c&&!i&&(i=setTimeout(u,h)),o};return d.cancel=function(){clearTimeout(i),a=0,i=n=s=o=null},d};const tMonitor=()=>(console.group("🔍 All Monitor Debug Info"),tResize.logDebugInfo(),tMutation.logDebugInfo(),tEvent.logDebugInfo(),tTimer.logDebugInfo(),tInterval.logDebugInfo(),console.groupEnd(),"from TechUI");tMonitor.enable=()=>{tResize.enableDebug(),tMutation.enableDebug(),tEvent.enableDebug()};const styleInit=(e,t,r)=>{let n;tQuery.el(`#style${e}`)?(n=tQuery.el(`#style${e}`),n.dataset.info=t):(n=document.createElement("style"),n.id=`style${e}`,n.dataset.info=t,n.type="text/css",document.getElementsByTagName("head")[0].appendChild(n)),n.innerText=r},cssVarGen=(e,t)=>Object.entries(t).map((([t,r])=>`--${e}-${t}: ${r}`)).join("; "),tClass={list:e=>e&&e.classList?e.classList:[],has:(e,t)=>!(!e||!e.classList)&&e.classList.contains(t),add(e,t){e&&e.classList&&e.classList.add(t)},del(e,t){e&&e.classList&&e.classList.remove(t)},toggle(e,t){e&&e.classList&&e.classList.toggle(t)},replace(e,t,r){if(!e||"string"!=typeof e.className||!e.classList)return;const n=e.className.split(" "),s=`${t}${r}`;if(!this.has(e,s)){n.filter((e=>e.startsWith(t))).forEach((t=>{t.endsWith(r)||this.del(e,t)})),this.add(e,`${t}${r}`)}}};class ThemeManager{constructor(){this.themes=[]}register(e){this.themes.push(e)}load(){return this.themes}loadIndex(){return this.themes.map((e=>({value:e.value,label:e.label,scheme:e.scheme,colors:e.colors})))}}const tTheme=new ThemeManager,fullScreen={isEnabled:()=>window.innerHeight===screen.height&&window.innerWidth===screen.width,toggle(){this.isEnabled()?this.switch(!1):this.switch(!0)},switch(e){e?document.documentElement.requestFullscreen&&document.documentElement.requestFullscreen():document.exitFullscreen&&document.exitFullscreen()}},tConsole={data:new WeakMap,s(e,t,r,n=!0){"log"!=e&&"warn"!=e&&"error"!=e&&"info"!=e&&(e="log"),n?this.data[t]||(console[e](r),this.data[t]=e+":"+r):console[e](r)},g(e){return e?this.data[e]:this.data}},colorPicker=e=>{let t=e.actual,r=[];if("object"==typeof e.actual){t=e.actual.length,r=e.actual;for(var n=0;n<r.length;n++)r[n]=parseInt(r[n])}e.jump||(e.jump=1),e.pickType||(e.pickType="seq"),null==e.total&&(e.total=10);let{actual:s,total:o,pickType:i,palette:a,mode:l,jump:c,reverse:u}=e;try{if(a&&a.length>0&&o>0){l=l||"lch";let n={pickType:i,total:o,jump:c,arry:$c.scale(a,o,l),pickIndex:r,actual:t},s=$tCore.process_color_array(n);return e.extra&&e.extra.length>0&&"number"==typeof e.extra[1]&&s.forEach(((t,r)=>{if("hslh"==e.extra[0]){let n=ca(t).hsl();n[0]+=e.extra[1],s[r]=ca.hsl(n).hex()}else s[r]=$c[e.extra[0]](t,e.extra[1])})),u?s.reverse():s}throw new Error("colorPicker:params is error !")}catch(e){return console.warn(e),[]}},deviceInfo=()=>{const e=navigator.userAgent.toLowerCase(),t=e.includes("webkit")?"webkit":e.includes("firefox")?"Firefox":e.includes("trident")||e.includes("msie")?"IE":"Unknown",r=navigator.maxTouchPoints>0,n=screen.orientation||screen.mozOrientation||screen.msOrientation;let s,o;n&&(n.type.includes("portrait")?s="portrait":n.type.includes("landscape")&&(s="landscape"),n.type.includes("primary")?o=!1:n.type.includes("secondary")&&(o=!0));let i=document.body.clientWidth,a=document.body.clientHeight,l=1356,c="";return c=r?i>=l||a>=l?"pad-lg":i>=1014||a>=1014?"pad":"mobile":i>=7670||a>=7670?"pc-xl":i>=3830||a>=3830?"pc-lg":i>=1910||a>=1910?"pc-md":i>=l||a>=l?"pc-sm":"pc-mi",{type:c,h:i,v:a,touchable:r,orientation:s,screenInvert:o,browser:t}},tTime={formatTime(e,t){const r=e.match(/^(\d{1,2}):(\d{1,2})$/);if(!r||!t)return e;const n=r[1].padStart(2,"0"),s=r[2].padStart(2,"0");let o=t;return o=o.replace(/HH/g,n),o=o.replace(/MM/g,s),o},formatWeek(e,t){const r=e.match(/^(\d{4})-W(\d{2})$/);if(!r||!t)return e;const n=parseInt(r[1],10),s=parseInt(r[2],10);let o=t;return o=o.replace(/YYYY/g,n),o=o.replace(/WW/g,s),o}},viewTransStart=({callback:e,enable:t,complete:r})=>{if(t&&document.startViewTransition){document.startViewTransition((()=>{tClass.add(document.documentElement,"tui-transitioning"),e()})).finished.then((()=>{tClass.del(document.documentElement,"tui-transitioning"),r&&"function"==typeof r&&r()})).catch((e=>{console.warn("View Transition failed:",e),r&&"function"==typeof r&&r()}))}else e(),r&&"function"==typeof r&&r()},flatToTree=e=>{const t=new Map,r=[];return e.forEach((e=>{const{parentId:r,isParent:n,...s}=e,o={...s,children:[]};t.set(e.id,o)})),e.forEach((e=>{const n=t.get(e.id);if(e.parentId){const r=t.get(e.parentId);r&&r.children.push(n)}else r.push(n)})),function e(t){t.sort(((e,t)=>(e.order||0)-(t.order||0))),t.forEach((t=>{t.children&&0===t.children.length?delete t.children:t.children&&t.children.length>0&&e(t.children)}))}(r),r};export{colorPicker,cssVarGen,deviceInfo,flatToTree,fullScreen,initLang,lockLang,styleInit,syncContSize,tArr,tClass,tConsole,tCoreTpl,tDBM,tDom,tEvent,tInterval,tLang,tMitt,tMonitor,tMutation,tNum,tObj,tQuery,tResize,tStore,tStr,tTheme,tTime,tTimer,tType,viewTransStart};
{
"name": "@techui/utils",
"version": "0.0.4",
"version": "0.0.5",
"description": "TechUI utils, used to support TechuUI component library",

@@ -5,0 +5,0 @@ "author": "aYin <ayin86cn@gmail.com> <wechat:jay1986cn>",