mirror of
https://github.com/CharaChorder/DeviceManager.git
synced 2026-01-20 08:52:59 +00:00
2 lines
1.6 KiB
JavaScript
2 lines
1.6 KiB
JavaScript
import{f as h,d as g,c as f,b as l}from "./connection.5cd615cd.js";import{d as r}from "./index.c76aaf45.js";import{K as d}from "./keymap-codes.fc236303.js";var u=(s=>(s[s.Layout=0]="Layout",s[s.Chord=1]="Chord",s[s.Setting=2]="Setting",s))(u||{});const m=h("changes",[]),c=r(m, s=>{const i={layout:[new Map,new Map,new Map],chords:new Map,settings:new Map};for(const t of s)switch(t.type){case 0:i.layout[t.layer].set(t.id,t.action);break;case 1:i.chords.set(JSON.stringify(t.id),{actions:t.actions,phrase:t.phrase});break;case 2:i.settings.set(t.id,t.setting);break}return i}),w=r([c,g],([s,i])=>i.map((t, n)=>({value:s.settings.get(n)??t,isApplied:!s.settings.has(n)}))),O=r([c,f],([s,i])=>i.map((t, n)=>t.map((a, e)=>({action:s.layout[n].get(e)??a,isApplied:!s.layout[n].has(e)})))),A=r([c,l],([s,i])=>{const t=new Set(s.chords.keys()),n=i.map(a=>{const e=JSON.stringify(a.actions);if(s.chords.has(e)){t.delete(e);const o=s.chords.get(e);return{id:a.actions,sortBy:a.phrase.map(p=>d[p].id||p).join(),actions:o.actions,phrase:o.phrase,actionsChanged:e!==JSON.stringify(o.actions),phraseChanged:JSON.stringify(a.phrase)!==JSON.stringify(o.phrase),isApplied:!1}}else return{id:a.actions,sortBy:a.phrase.map(o=>d[o].id||o).join(),actions:a.actions,phrase:a.phrase,phraseChanged:!1,actionsChanged:!1,isApplied:!0}});for(const a of t){const e=s.chords.get(a);n.push({sortBy:"",isApplied:!1,actionsChanged:!0,phraseChanged:!1,id:JSON.parse(a),phrase:e.phrase,actions:e.actions})}return n.sort(({sortBy:a}, {sortBy:e})=>a.localeCompare(e))});export{u as C,A as a,m as c,O as l,c as o,w as s};
|