!function e(h,r,n){function a(s,t){if(!r[s]){if(!h[s]){var i="function"==typeof require&&require;if(!t&&i)return i(s,!0);if(o)return o(s,!0);throw(i=new Error("Cannot find module '"+s+"'")).code="MODULE_NOT_FOUND",i}i=r[s]={exports:{}},h[s][0].call(i.exports,function(t){return a(h[s][1][t]||t)},i,i.exports,e,h,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,t=0;t{this.publish("on_copy",t)}),window.addEventListener("cut",t=>{this.publish("on_cut",t)}),window.addEventListener("paste",t=>{this.publish("on_paste",t)})}write_text(t){const s=navigator.clipboard;if(!s)return r.alert("clip_missing");s.writeText(t).catch(()=>r.alert("clip_write_failed"))}read_text(s){const t=navigator.clipboard;if(!t)return r.alert("clip_missing");t.readText().then(t=>s(t),()=>r.alert("clip_read_failed"))}}},{"./Messages":10,"./Publisher":11}],3:[function(t,s,i){s.exports={VERSION:"21.08",DATA_COLS:40,ROWS_MAX:23,COLS_MAX:40,MASK_NONE:0,MASK_CTRL:1,MASK_ALL:2,CHAR_XSIZE:10,CHAR_YSIZE:12,BG_COLOR:"#CCC",TTX_COLORS:["#000","#F00","#0F0","#FF0","#00F","#F0F","#0FF","#FFF","#444","#F77","#7F7","#FF7","#77F","#F7F","#7FF","#CCC"],CODE_AC:0,CODE_FL:8,CODE_ST:9,CODE_EB:10,CODE_SB:11,CODE_NS:12,CODE_DH:13,CODE_DW:14,CODE_DS:15,CODE_GC:16,CODE_CD:24,CODE_CG:25,CODE_SG:26,CODE_BB:28,CODE_NB:29,CODE_HG:30,CODE_RG:31}},{}],4:[function(t,s,i){s.exports=class{constructor(t){this.left=0,this.top=0,this.scale=1,this.hint="",this.t=0,this.s=0,this.i=1,this.childs=[],t&&((this.parent=t).childs.push(this),this.e=t.ctx,this.i=t.i)}get ctx(){return this.e}get width(){return this.t*this.scale}get height(){return this.s*this.scale}get right(){return this.left+this.t*this.scale-1}get bottom(){return this.top+this.s*this.scale-1}get visible(){return this.i}set visible(t){t?this.show():this.hide()}on_mousedown(){}on_mousemove(){}on_mouseenter(){this.hint&&this.bubble("show_hint",this.hint)}on_mouseleave(){this.hint&&this.bubble("show_hint")}on_keydown(t){for(const s of this.childs)if("default"!==s.on_keydown(t))return;return"default"}bubble(t,...s){return this[t]?this[t](...s):this.parent?this.parent.bubble(t,...s):void 0}resize(t,s,i,e){this.parent&&(t+=this.parent.left,s+=this.parent.top),this.left=t,this.top=s,i&&(this.t=i/this.scale),e&&(this.s=e/this.scale),this.h=new Path2D,this.h.rect(t,s,this.width,this.height)}hide(){this.clear(),this.r(0)}show(){this.r(1),this.redraw()}find_by_coordinates(t,s){if(this.i&&this.ctx.isPointInPath(this.h,t,s)){for(const e of this.childs){var i=e.find_by_coordinates(t,s);if(i)return i}return this}}redraw(){if(this.i)for(const t of this.childs)t.redraw()}clear(){return this.n("","destination-out",0,0,this.t,this.s)}fill(t){return this.n(t,"",0,0,this.t,this.s)}invert(t=0,s=0,i=this.t,e=this.s){return this.n("white","difference",t,s,i,e)}draw_line(s,i,e,h){this.a(t=>{t.beginPath(),t.moveTo(s+.5,i+.5),t.lineTo(e+.5,h+.5),t.stroke()})}draw_vline(t,s,i){this.draw_line(t,s,t,i)}draw_hline(t,s,i){this.draw_line(s,t,i,t)}r(t){this.i=t;for(const s of this.childs)s.r(t)}a(t){if(this.t){const s=this.ctx;s.save(),s.translate(this.left,this.top),s.scale(this.scale,this.scale),s.imageSmoothingEnabled=!1,t(s),s.restore()}}n(s,i,e,h,r,n){return this.a(t=>{s&&(t.fillStyle=s),i&&(t.globalCompositeOperation=i),t.fillRect(e,h,r,n)}),this.ctx}}},{}],5:[function(t,s,i){const e=t("./Constants")["BG_COLOR"];t=t("./Ctrl");s.exports=class extends t{constructor(t){super();const s=document.createElement("canvas");this.o=s,s.id=t,s.style.border="1px solid",s.tabIndex=0,s.style.backgroundColor=e,s.addEventListener("focus",t=>this.focus=0),s.addEventListener("blur",t=>this.focus=1),s.addEventListener("keydown",t=>{let s=t.key;t.shiftKey&&(s=`S-${s}`),t.ctrlKey&&(s=`C-${s}`),"default"!==this.on_keydown(s)&&(t.preventDefault(),t.stopPropagation())}),s.addEventListener("contextmenu",t=>t.preventDefault()),s.addEventListener("click",t=>{const s=this.find_by_coordinates(t.offsetX,t.offsetY);s&&s.bubble("on_click",s)}),s.addEventListener("mousedown",t=>{const s=this.find_by_coordinates(t.offsetX,t.offsetY);s&&s.on_mousedown(t.offsetX-s.left,t.offsetY-s.top,t.buttons)}),s.addEventListener("mousemove",t=>{const s=this.find_by_coordinates(t.offsetX,t.offsetY);s&&s.on_mousemove(t.offsetX-s.left,t.offsetY-s.top,t.buttons),s!=this.c&&(this.c&&this.c.on_mouseleave(),s&&s.on_mouseenter(),this.c=s)}),s.addEventListener("mouseleave",t=>{this.c&&(this.c.on_mouseleave(),this.c=0)})}get ctx(){return this.o.getContext("2d")}get canvas(){return this.o}resize(t,s){super.resize(0,0,t,s),this.o.width=t,this.o.height=s}define_property(t,s){Object.defineProperty(this.o,t,s)}}},{"./Constants":3,"./Ctrl":4}],6:[function(t,s,i){s.exports=class{constructor(){this.row=0,this.col=0}as_pos(){return[this.row,this.col]}pack(){return[this.row,this.col]}unpack(t){[this.row,this.col]=t}}},{}],7:[function(t,s,i){var e=t("./Ctrl");const h=t("../build/sprites/icons.js"),r=document.createElement("img");r.src=h.src,s.exports=class extends e{constructor(t,s,i){super(t),this.name=s,this.hint=s,this.shortcut=i,h.pos[s]||(s=s.replace(/^t_/,"")),this.u=h.pos[s],this.d=0,this.l=1}pos(t,s){var[,,i,e]=this.u;super.resize(t,s,i,e)}set active(t){this.d!=t&&(this.d=t,this.redraw(),this.bubble("on_change",this))}get active(){return this.d}set enabled(t){this.l!=t&&(this.l=t,this.redraw())}get enabled(){return this.l}redraw(){this.visible&&(this.d?this.fill("white"):this.clear(),this.a(t=>{this.l||(t.globalAlpha=.25),t.drawImage(r,...this.u,0,0,this.t,this.s)}))}on_keydown(t){if(t!=this.shortcut)return"default";this.on_click()}}},{"../build/sprites/icons.js":1,"./Ctrl":4}],8:[function(t,s,i){t=t("./Ctrl");s.exports=class extends t{constructor(t,s){super(t),this.hint=s,this.f=""}set text(t){this.f=t,this.redraw()}redraw(){this.visible&&(this.clear(),this.a(t=>{t.font="11px Verdana",t.fillText(this.f,0,this.s-3,this.t)}))}}},{"./Ctrl":4}],9:[function(t,s,i){s.exports=class{constructor(){this._="",this.w=[]}set data_hex(s){this._=s;let i=[];for(let t=0;tthis.C[s],set:t=>{this.C[s]!=t&&(this.C[s]=t,this.publish(s,t))}})}subscribe(t,s){this.b.includes(t)&&(t in this.C&&s(this.C[t]),this.p[t].add(s))}publish(t,...s){t=this.p[t];if(t)for(const i of t)i(...s)}}},{}],12:[function(t,s,i){t=t("./Publisher");s.exports=class extends t{constructor(){super({is_valid:0}),this.v=[]}set(t,s,i,e){i{this.toolbar.icons.cut.enabled=t,this.toolbar.icons.copy.enabled=t}),this.ttxedit.subscribe("can_undo",t=>{this.toolbar.icons.undo.enabled=t}),this.ttxedit.subscribe("can_redo",t=>{this.toolbar.icons.redo.enabled=t}),this.define_property("Version",{get:()=>s}),this.define_property("TtxCols",{get:()=>this.ttxedit.cols,set:t=>this.ttxedit.cols=parseInt(t)}),this.define_property("TtxRows",{get:()=>this.ttxedit.rows,set:t=>this.ttxedit.rows=parseInt(t)}),this.define_property("TtxData",{get:()=>this.ttxedit.data_hex,set:t=>this.ttxedit.data_hex=t}),this.define_property("TtxTemplate",{get:()=>this.ttxedit.mask_hex,set:t=>this.ttxedit.mask_hex=t}),this.define_property("TtxHelpLanguage",{get:()=>this.messages.language_num,set:t=>this.messages.language_num=parseInt(t)}),this.define_property("TtxCharset",{get:()=>this.ttxedit.charset_num,set:t=>this.ttxedit.charset_num=parseInt(t)}),this.define_property("TtxLicense",{get:()=>this.license.data_hex,set:t=>this.license.data_hex=t})}redraw(){var t=this.toolbar.height,s=t+1+this.ttxedit.height,i=s+1+this.statusbar.height,e=this.ttxedit.width,h=e+1+this.sidebar_smart.width;this.resize(h,i),this.draw_vline(e,0,i),this.draw_hline(t,0,e),this.draw_hline(s,0,e),this.toolbar.resize(0,0,e),this.sidebar_smart.resize(e+1,0,void 0,i),this.sidebar_expert.resize(e+1,0,void 0,i),this.statusbar.resize(0,s+1,e),this.ttxedit.resize(0,t+1),super.redraw()}on_change(t){var s=t.active;switch(t.name){case"show_codes":this.ttxedit.show_codes=s,this.toolbar.icons.reveal.enabled=!s,this.toolbar.icons.reveal.active=0,this.toolbar.icons.tp.enabled=!s,this.toolbar.icons.tp.active=0;break;case"gmode":this.ttxedit.show_grid=s;break;case"reveal":this.ttxedit.show_hidden=s;break;case"tp":this.ttxedit.show_transparent=s;break;case"zoom":this.ttxedit.scale=s?2:1,this.redraw()}}on_click(t){switch(t.name){case"redraw":return this.ttxedit.redraw();case"info":return window.alert(this.license.as_text());case"cut":return this.ttxedit.cut();case"copy":return this.ttxedit.copy();case"paste":return this.ttxedit.paste();case"undo":return this.ttxedit.undo();case"redo":return this.ttxedit.redo();case"insert_row":return this.ttxedit.insert_row();case"delete_row":return this.ttxedit.delete_row();case"move_up":return this.ttxedit.key_ctrl_up();case"move_down":return this.ttxedit.key_ctrl_down();case"smart":return this.sidebar_smart.hide(),this.sidebar_expert.show();case"f0":return this.ttxedit.set_fg(0);case"f1":return this.ttxedit.set_fg(1);case"f2":return this.ttxedit.set_fg(2);case"f3":return this.ttxedit.set_fg(3);case"f4":return this.ttxedit.set_fg(4);case"f5":return this.ttxedit.set_fg(5);case"f6":return this.ttxedit.set_fg(6);case"f7":return this.ttxedit.set_fg(7);case"b0":return this.ttxedit.set_bg(0);case"b1":return this.ttxedit.set_bg(1);case"b2":return this.ttxedit.set_bg(2);case"b3":return this.ttxedit.set_bg(3);case"b4":return this.ttxedit.set_bg(4);case"b5":return this.ttxedit.set_bg(5);case"b6":return this.ttxedit.set_bg(6);case"b7":return this.ttxedit.set_bg(7);case"t_fl":return this.ttxedit.toggle_fl();case"t_dh":return this.ttxedit.toggle_dh();case"t_cd":return this.ttxedit.toggle_cd();case"t_sb":return this.ttxedit.toggle_sb();case"t_g":return this.ttxedit.toggle_g();case"t_sg":return this.ttxedit.toggle_sg();case"t_hg":return this.ttxedit.toggle_hg();case"expert":return this.sidebar_expert.hide(),this.sidebar_smart.show();case"a0":return this.ttxedit.write_code(i+0);case"a1":return this.ttxedit.write_code(i+1);case"a2":return this.ttxedit.write_code(i+2);case"a3":return this.ttxedit.write_code(i+3);case"a4":return this.ttxedit.write_code(i+4);case"a5":return this.ttxedit.write_code(i+5);case"a6":return this.ttxedit.write_code(i+6);case"a7":return this.ttxedit.write_code(i+7);case"g0":return this.ttxedit.write_code(d+0);case"g1":return this.ttxedit.write_code(d+1);case"g2":return this.ttxedit.write_code(d+2);case"g3":return this.ttxedit.write_code(d+3);case"g4":return this.ttxedit.write_code(d+4);case"g5":return this.ttxedit.write_code(d+5);case"g6":return this.ttxedit.write_code(d+6);case"g7":return this.ttxedit.write_code(d+7);case"nb":return this.ttxedit.write_code(w);case"fl":return this.ttxedit.write_code(e);case"dh":return this.ttxedit.write_code(o);case"ds":return this.ttxedit.write_code(u);case"cd":return this.ttxedit.write_code(l);case"sb":return this.ttxedit.write_code(n);case"sg":return this.ttxedit.write_code(f);case"hg":return this.ttxedit.write_code(b);case"bb":return this.ttxedit.write_code(_);case"st":return this.ttxedit.write_code(h);case"nh":return this.ttxedit.write_code(a);case"dw":return this.ttxedit.write_code(c);case"eb":return this.ttxedit.write_code(r);case"cg":return this.ttxedit.write_code(g);case"rg":return this.ttxedit.write_code(p)}}show_hint(t){t!=this.last_hint&&(this.last_hint=t,t=this.messages.get_text(t),this.statusbar.status=t||"")}show_pos(t){var s=t.cursor;this.statusbar.pos=t.focus?s.row+1+" / "+(s.col+1):"",this.statusbar.mask=t.focus?s.masked:0,this.statusbar.ins=t.focus?s.insert+0:void 0;const i=this.sidebar_smart.icons;i.t_fl.active=s.state.fl,i.t_sb.active=s.state.sb,i.t_dh.active=s.state.dh,i.t_cd.active=s.state.cd,i.t_sg.active=s.state.sg,i.t_hg.active=s.state.hg,i.t_g.active=s.state.g;for(let t=0;t<8;t++)i[`f${t}`].active=t==s.state.fg,i[`b${t}`].active=t==s.state.bg}set focus(t){this.ttxedit.focus=1}}window.addEventListener("load",function(){var i=document.getElementsByTagName("object");for(let s=0;st==s);return 0<=t?h[t]:0<=h.findIndex(t=>t==s)?-1:32<=s&&s<=127?s:57344<=s&&s<=57375?s-57344:-1}ttx_to_unicode(s){var t=h.findIndex(t=>t==s);return 0<=t?e[this.code][t]:s<32?57344+s:s}}},{}],15:[function(t,s,i){const l=t("./Constants")["DATA_COLS"];t("./TtxCharSet");t=t("./TtxStore.js");s.exports=class extends t{delete_rows(t,s=t){let i=(s-t+1)*l;for(this.S.splice(t*l,i);i--;)this.S.push(32)}insert_space(t,s,i){for(this.S.splice(-i);i--;)this.S.splice(t*l+s,0,32)}insert_row(t){return this.insert_space(t,0,l)}split_row(t,s){this.insert_space(t,s,l-s),this.insert_space(t+1,l-s,s)}swap_rows(t,s,i=0){var e=this.get_data(t,i),h=this.get_data(s,i);this.set_data(t,i,h),this.set_data(s,i,e)}fill(s,i,e,h,r){for(let t=s;t<=e;t++){let s=this.get_data(t);for(let t=i;t<=h;t++)s[t]=r;this.set_data(t,0,s)}}erase(s,i,e,t){var h=(t=t>=l?l-1:t)-i+1,r=new Array(h).fill(32);for(let t=s;t<=e;t++){var n=t*l+i;this.S.splice(n+l-i,0,...r),this.S.splice(n,h)}}length_of_row(t){let s=l;for(var i=t*l;0{t.fillStyle=d[n];var s=this.T(i,e,a,c);t.fillRect(...s),void 0!==h&&(s=this.T(i,e,o,c),l.draw_char(t,...s,h,r),u&&l.draw_char(t,...s,383,8))})}invert_cursor(t,s,i,e,h){t==r-1&&(i=0),s==n&&(h=1);var[t,s,i,e]=this.T(t,s,i,e);this.invert(t,s,h?2:i,e)}invert_area(t,s,i,e){this.invert(s*a,t*o,(e-s+1)*a,(i-t+1)*o)}px_to_pos(t,s){var i=s/o/this.scale,e=t/a/this.scale,s=Math.trunc(i),t=Math.trunc(e);return s>=this.y||t>=this.H?[]:[s,t,Math.trunc(3*(i-s)),Math.trunc(2*(e-t))]}T(t,s,i,e){t*=o,s*=a,i=i?2*o:o;return[s,t,e?2*a:a,i]}}},{"./Constants":3,"./Ctrl":4,"./TtxFont.js":19}],18:[function(t,s,i){const{CODE_FL:e,CODE_ST:h,CODE_EB:r,CODE_SB:n,CODE_NS:a,CODE_DH:o,CODE_CD:c,CODE_CG:u,CODE_SG:d,CODE_BB:l,CODE_NB:g,CODE_HG:f,CODE_RG:_}=t("./Constants");var w=t("./TtxRender");const b=t("./UndoStack"),p=t("./Clipboard");s.exports=class extends w{constructor(t){super(t),this.undostack=new b,this.clipboard=new p,this.B=void 0,this.z=void 0,this.clipboard.subscribe("on_cut",()=>{this.focus&&this.cut()}),this.clipboard.subscribe("on_copy",()=>{this.focus&&this.copy()}),this.clipboard.subscribe("on_paste",()=>{this.focus&&this.paste()})}subscribe(t,s){switch(t){case"can_copy":return this.selection.subscribe("is_valid",s);case"can_undo":case"can_redo":return this.undostack.subscribe(t,s)}}on_mousedown(t,s,i){var[e,h,t,s]=this.px_to_pos(t,s);void 0!==e&&(this.focus=1,this.show_grid?this.plot_mosaic(e,h,t,s,1==i):1==i&&(this.selection_off(),this.cursor_set(e,h),this.B=[e,h]))}on_mousemove(t,s,i){var e,h;i?this.focus&&([e,h,t,s]=this.px_to_pos(t,s),void 0!==e&&(this.show_grid?this.plot_mosaic(e,h,t,s,1==i):(s=this.B)&&1==i&&(this.selection.set(...s,e,h),this.cursor_set(e,h),this.redraw()))):this.B}on_keydown(t){switch(t){case"ArrowLeft":return this.key_left();case"ArrowRight":return this.key_right();case"ArrowUp":return this.clr_selection(this.cursor_up);case"ArrowDown":return this.clr_selection(this.cursor_down);case"PageUp":return this.clr_selection(this.cursor_page_up);case"PageDown":return this.clr_selection(this.cursor_page_down);case"Home":return this.clr_selection(this.cursor_home);case"End":return this.clr_selection(this.cursor_end);case"Enter":return this.clr_selection(this.key_enter);case"Insert":return this.key_insert();case"Delete":return this.key_delete();case"Backspace":return this.key_backspace();case"S-ArrowLeft":return this.extend_selection(this.cursor_left);case"S-ArrowRight":return this.extend_selection(this.cursor_right);case"S-ArrowUp":return this.extend_selection(this.cursor_up);case"S-ArrowDown":return this.extend_selection(this.cursor_down);case"S-PageUp":return this.extend_selection(this.cursor_page_up);case"S-PageDown":return this.extend_selection(this.cursor_page_down);case"S-Home":return this.extend_selection(this.cursor_home);case"S-End":return this.extend_selection(this.cursor_end);case"C-ArrowUp":return this.key_ctrl_up();case"C-ArrowDown":return this.key_ctrl_down();case"C-Home":return this.clr_selection(this.cursor_ctrl_home);case"C-End":return this.clr_selection(this.cursor_ctrl_end);case"C-Enter":return this.key_ctrl_enter();case"C-Backspace":return this.delete_row();case"C-a":case"C-l":return this.selection_all();case"C-r":return this.redraw();case"C-y":return this.redo();case"C-z":return this.undo();case"C-S-Home":return this.extend_selection(this.cursor_ctrl_home);case"C-S-End":return this.extend_selection(this.cursor_ctrl_end)}if(1!=(t=t.replace("S-","")).length)return"default";t=t.charCodeAt(0),t=this.charset.unicode_to_ttx(t);return t<32?void 0:this.key_char(t)}key_left(){if(!this.selection.is_valid)return this.cursor_left();var[t,s]=this.selection.as_pos();return this.selection_off(),this.cursor_set(t,s)}key_right(){if(!this.selection.is_valid)return this.cursor_right();var[,,t,s]=this.selection.as_pos();return this.selection_off(),this.cursor_set(t,s)}key_enter(){this.cursor_home(),this.cursor_down()}key_insert(){this.cursor_stop(),this.R=!this.R,this.cursor_set()}key_delete(){if(this.undo_save(),this.selection.is_valid)return this.fill_selection(32);var[t,s]=this.cursor_get();return 0!=s||this.ttxdata.length_of_row(t)?this.delete_char():(this.ttxdata.delete_rows(t),void this.display_rect(t))}key_backspace(){this.undo_save();var[t,s]=this.cursor_get();if(this.selection.is_valid)return this.fill_selection(32);if(0{this.undo_save();var s=this.cursor_get();this.ttxdata.import_text(t,...s,this.charset,this.R),this.redraw()})}undo_save(){this.undostack.save(this.pack_state())}undo(){this.unpack_state(this.undostack.undo(this.pack_state()))}redo(){this.unpack_state(this.undostack.redo(this.pack_state()))}toggle_fl(){this.toggle_attr("fl",e,h)}toggle_dh(){this.toggle_attr("dh",o,a)}toggle_cd(){var t=this.cur_state,t=t.fg+16*t.g;this.toggle_attr("cd",c,t)}toggle_sb(){this.toggle_attr("sb",n,r),this.toggle_attr("sb",n,r)}toggle_g(){var t=this.cur_state;this.toggle_attr("g",t.fg+16,t.fg)}toggle_sg(){this.toggle_attr("sg",d,u)}toggle_hg(){this.toggle_attr("hg",f,_)}toggle_attr(t,s,i){this.cur_state[t]?this.switch_attr(s,i):this.switch_attr(i,s)}set_fg(t){var s=this.cur_state;s.g?this.switch_attr(s.fg+16,t+16,1):this.switch_attr(s.fg,t,1)}switch_attr(s,i,e){if(this.undo_save(),s!=i){var[h,r]=this.cursor_get();if(12!=i||h!=this.y-1){const u=this.cur_state;if(u.g||![25,26,30,31].includes(i)){var n=17<=i&&i<=23,a=15&i,o=this.ttxdata.get_data(h);for(let t=r-1;0<=t;t--){var c=o[t];if(32{for(const t of e)this.W.push(this.M(s,t))},s.src="data:image/png;base64,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"}draw_char(t,s,i,e,h,r,n){t.drawImage(this.W[n],10*(31&r),12*(r>>5),10,12,s,i,e,h)}M(t,s){const i=document.createElement("canvas");i.width=t.width,i.height=t.height;const e=i.getContext("2d");e.drawImage(t,0,0);var h=[1,2,3].map(t=>parseInt(s.substr(t,1),16));const r=e.getImageData(0,0,i.width,i.height);for(let t=0;t{this.Z&&(0==(s=(s+1)%10)&&(this.I=0,this.redraw()),8==s&&(this.I=1,this.redraw()))},100)}set data_hex(t){this.ttxdata.tius_hex=t,this.redraw()}get data_hex(){return this.ttxdata.tius_hex}set mask_hex(t){this.ttxmask.tius_hex=t,this.redraw()}get mask_hex(){return this.X.tius_hex}set cols(t){t<1||t>h||(this.H=t)}get cols(){return this.H}set rows(t){t<1||t>e||(this.y=t)}get rows(){return this.y}set charset_num(t){this.charset.code=t}get charset_num(){return this.charset.code}set show_codes(t){this.U=t,this.redraw()}set show_grid(t){this.selection_off(),this.L=t,this.redraw()}get show_grid(){return this.L}set show_hidden(t){this.P=t,this.redraw()}set show_transparent(t){this.j=t,this.redraw()}set focus(t){t!=this.N&&(this.N=t,this.Y(),t?this.q():this.cursor_stop(),this.redraw())}get focus(){return this.N}get cursor(){return{row:this.cursor_pos.row,col:this.cursor_pos.col,masked:this.cur_masked,state:this.cur_state,insert:this.R}}redraw(){this.Z=0,super.fill("black"),this.display_rect(0,0,this.y-1,this.H-1),this.J(),this.K()}pack_state(){return[this.cursor_pos.pack(),this.selection.pack(),this.ttxdata.pack()]}unpack_state(t){var s,i;t&&([s,i,t]=t,this.cursor_pos.unpack(s),this.selection.unpack(i),this.ttxdata.unpack(t),this.redraw())}display_rect(t,h=0,s=this.y-1,r=this.cols-1){s>=this.y&&(s=this.y-1);for(let e=t;e<=s;e++)if(!((this.V[e]=0)13==t||15==t);let i=new o(s.splice(0,h));for(let t=h;t<=r;t++)i.decode_byte(s.shift()),this.Q(e,t,i.state)}}Q(t,s,i){var e=i.code;let h=i.fg,r=i.bg,n=i.dh,a=i.dw;var o=i.grid&&this.L;let c;if(e<32&&this.U){r=0,h=7,n=a=0;var u=15&e;u<=7&&(h=u),0==u&&(h=15),c=e}else{if(i.skip)return;c=this.$(i)}this.j&&!i.sb&&(r=8),this.N&&this.ttxmask.is_masked(t,s)&&(r|=8,h|=8),i.fl&&32{this.it()},1e3))}it(){var t=this.cur_state,[s,i]=this.cursor_pos.as_pos();this.invert_cursor(s,i,t.dh,t.dw&&!t.skip,this.R),this.tt=!this.tt}Y(){var[t,s]=this.cursor_pos.as_pos();this.cur_state=this.get_state(t,s),this.cur_masked=this.ttxmask.is_masked(t,s),this.bubble("show_pos",this)}get_state(t,s){s=this.ttxdata.get_data(t).slice(0,s+1),s=this.ttxmask.apply_mask(t,s);return new o(s).state}get_mask(t,s){return this.ttxmask.is_masked(t,s)}K(){if(this.N&&this.selection.is_valid){let[t,s,i,e]=this.selection.as_pos();this.V[i]&&i++,this.invert_area(t,s,i,e)}}}},{"./Constants":3,"./CursorPos":6,"./Selection":12,"./TtxCharSet":14,"./TtxData":15,"./TtxDecode":16,"./TtxDraw":17,"./TtxMask":20}],22:[function(t,s,i){const{DATA_COLS:h,ROWS_MAX:e}=t("./Constants");s.exports=class{constructor(){this.S=new Array(e*h).fill(32)}set tius_hex(s){let i=[];for(let t=0;t=this.rows?new Array(i).fill(32):this.S.slice(t*h+s,t*h+s+i)}set_data(t,s,i){return t>=this.rows&&(this.S=new Array((t+1)*h).fill(32)),this.S.splice(t*h+s,i.length,...i)}get_code(t,s){s=t*h+s;if(!(s>=this.S.length))return this.S[s]}set_code(t,s,i){s=t*h+s;s>=this.S.length||(this.S[s]=i)}pack(){return Uint8Array.from(this.S)}unpack(t){this.S=Array.from(t)}}},{"./Constants":3}],23:[function(t,s,i){t=t("./Publisher");s.exports=class extends t{constructor(){super({can_undo:0,can_redo:0}),this.ht=[],this.rt=[]}clr(){this.ht.length=0,this.rt.length=0,this.nt()}save(t){this.ht.push(t),1e3