SYMBOL INDEX (226 symbols across 22 files) FILE: app/js/About.js class About (line 1) | class About extends HTMLElement { method constructor (line 2) | constructor() { method getVersion (line 52) | getVersion(cb) { caches.keys().then(cache => { cb(cache.join('
')) ... FILE: app/js/CMenu.js class CMenu (line 1) | class CMenu extends HTMLElement { method constructor (line 2) | constructor() { method showItems (line 31) | showItems(show_list) { method pop (line 38) | pop(e) { method buildMenu (line 66) | buildMenu() { method isValidTarget (line 82) | isValidTarget() { method reposition (line 91) | reposition() { FILE: app/js/CsvHandle.js class CsvHandle (line 1) | class CsvHandle { method constructor (line 2) | constructor() { method launchFile (line 16) | async launchFile(handle) { method file_chunk_loaded (line 24) | file_chunk_loaded(d) { method readSuccess (line 30) | readSuccess() { method read (line 40) | read(file) { method pipe (line 54) | pipe(cmd, data) { this.sw.postMessage({ cmd: cmd, data: data }) } method open (line 56) | async open() { method reloadFile (line 72) | reloadFile(force = false) { method new (line 81) | new() { window.open('./home.html', "_blank", 'width=600,height=400') } method saveAs (line 83) | async saveAs() { method save (line 95) | async save() { method from2D (line 114) | static from2D(matrix) { FILE: app/js/Dataframe.js class Dataframe (line 1) | class Dataframe { method constructor (line 2) | constructor(d = [[""]]) { method get (line 12) | get(x, y) { return (y >= this.height || x >= this.width || y < 0 || x ... method getAll (line 15) | getAll(cb) { method trimAll (line 19) | trimAll() { method order (line 33) | order(new_order) { method shiftCol (line 41) | shiftCol(n) { method shiftRow (line 48) | shiftRow(n) { method deleteRow (line 55) | deleteRow(n) { method deleteCol (line 63) | deleteCol(n) { method insertCol (line 70) | insertCol(n) { method insertRow (line 76) | insertRow(n) { method pushCol (line 82) | pushCol() { method pushRow (line 87) | pushRow() { method edit (line 92) | edit(x, y, n) { method create (line 113) | create(r, u) { method undo (line 121) | undo() { method redo (line 132) | redo() { method square (line 143) | square() { method width (line 150) | get width() { return (this.data.length > 0) ? this.data[0].length : 0 } method height (line 151) | get height() { return this.data.length } FILE: app/js/Finder.js class Finder (line 1) | class Finder extends HTMLElement { method constructor (line 2) | constructor(sheet) { method showTable (line 94) | showTable() { method find (line 109) | find(force = false) { method findMenu (line 145) | findMenu(prefill = "", adv = false) { method replaceAll (line 156) | replaceAll() { FILE: app/js/Msg.js class Msg (line 1) | class Msg extends HTMLElement { method constructor (line 2) | constructor(txt = "Empty message", opt = {}) { method quick (line 29) | static quick(txt) { new Msg(txt, { id: 0, t: 1000 }) } method long (line 30) | static long(txt) { new Msg(txt, { id: 1, t: 3000 }) } method confirm (line 31) | static confirm(txt) { new Msg(txt, { id: 2 }) } method choice (line 32) | static choice(txt, cbTrue, cbFalse) { new Msg(txt, { id: 3, cbt: cbTru... FILE: app/js/Setting.js class Setting (line 4) | class Setting { method constructor (line 5) | constructor(s) { method init (line 26) | static init(cb) { for (var s of Setting.list) if (!s.title) new Settin... method build (line 29) | static build(setting) { method show (line 66) | static show() { method setTheme (line 85) | static setTheme() { method log (line 90) | static log() { method runAll (line 95) | static runAll() { method resetDefault (line 100) | static resetDefault() { FILE: app/js/Sheet.js class Sheet (line 1) | class Sheet extends HTMLTableElement { method constructor (line 2) | constructor(df = new Dataframe()) { method x (line 45) | get x() { return this.xx } method y (line 46) | get y() { return this.yy } method width (line 47) | get width() { return this.rows[0] ? this.rows[0].cells.length - 1 : 0 } method height (line 48) | get height() { return this.rows.length - 1 } method baseX (line 49) | get baseX() { return this.bx } method baseY (line 50) | get baseY() { return this.by } method baseX (line 51) | set baseX(n) { method baseY (line 64) | set baseY(n) { method x (line 77) | set x(n) { method y (line 84) | set y(n) { method getSlctFirstValue (line 92) | getSlctFirstValue() { method deleteRows (line 97) | deleteRows() { method deleteCols (line 109) | deleteCols() { method sort (line 122) | sort(n, ascending) { method validate_headers (line 142) | validate_headers() { method go_to_next (line 155) | go_to_next() { method validate_data (line 174) | validate_data() { method rangeOrdered (line 196) | rangeOrdered() { method expand (line 206) | expand() { method slctAll (line 237) | slctAll() { method shift (line 241) | shift(direction) { method insert (line 265) | insert(direction) { method input (line 276) | input(txt) { method bestInputCell (line 287) | bestInputCell() { method cellInView (line 309) | cellInView(x, y) { method inputBlur (line 315) | inputBlur() { method footerUpdate (line 331) | footerUpdate() { method scrollbarRefresh (line 344) | scrollbarRefresh() { method slctCol (line 373) | slctCol(n, m = undefined) { method slctRow (line 382) | slctRow(n, m = undefined) { method rangeArray (line 391) | rangeArray() { method rangeEdit (line 402) | rangeEdit(value) { method allApply (line 409) | allApply(cb) { method rangeApply (line 415) | rangeApply(cb) { method rangeTranspose (line 421) | rangeTranspose() { method round (line 436) | round(integer = true) { method fitWidth (line 454) | fitWidth() { method paste (line 475) | paste(mat) { method scroll (line 482) | scroll(e) { method loadCell (line 507) | loadCell(c, x, y) { method loadTopHeader (line 523) | loadTopHeader(x) { method loadLeftHeader (line 533) | loadLeftHeader(y) { method viewRangeRender (line 538) | viewRangeRender() { method isInViewRange (line 553) | isInViewRange(x, y) { return !(x < 0 || y < 0 || x >= this.width || y ... method slctFocus (line 556) | slctFocus() { method slctClear (line 564) | slctClear() { var td; while (td = this.getElementsByClassName('slct')[... method slctRefresh (line 566) | slctRefresh(focus = true) { method refresh (line 582) | refresh() { method reload (line 597) | reload() { FILE: app/js/Shortcuts.js class Shortcuts (line 1) | class Shortcuts extends HTMLElement { method constructor (line 2) | constructor() { method build (line 16) | build() { FILE: app/js/cmd.js method run (line 2) | run(){new About()} method run (line 3) | run(){csvHandle.new()} method run (line 4) | run(){sheet.deleteRows()} method run (line 5) | run(){sheet.deleteCols()} method run (line 6) | run(){sheet.rangeEdit('');sheet.refresh() } method run (line 7) | run(){sheet.rangeEdit('');sheet.refresh() } method run (line 8) | run(){Setting.show()} method run (line 9) | run(){new Shortcuts()} method run (line 10) | run(){sheet.slctAll()} method run (line 11) | run(){sheet.rangeTranspose();sheet.refresh()} method run (line 12) | run(){sheet.df.trimAll();sheet.refresh()} method run (line 13) | run(){sheet.round(true);sheet.refresh()} method run (line 14) | run(){sheet.round(false);sheet.refresh()} method run (line 15) | run(){sheet.fixTop = !sheet.fixTop;sheet.refresh()} method run (line 16) | run(){sheet.fixLeft = !sheet.fixLeft;sheet.refresh()} method run (line 17) | run(){sheet.fitWidth();sheet.refresh()} method run (line 18) | run(){sheet.df.undo();sheet.refresh()} method run (line 19) | run(){sheet.df.redo();sheet.refresh()} method run (line 20) | run(){sheet.df.redo();sheet.refresh()} method run (line 21) | run(){sheet.rangeEdit( (new Date()).getFormated("yyyy-mm-dd") );sheet.re... method run (line 22) | run(){sheet.finder.findMenu(sheet.getSlctFirstValue(),false); sheet.scro... method run (line 23) | run(){sheet.finder.findMenu(sheet.getSlctFirstValue(),true)} method run (line 24) | run(){stg.actionBar = !stg.actionBar } method run (line 25) | run(){csvHandle.open()} method run (line 26) | run(){csvHandle.save()} method run (line 27) | run(){csvHandle.saveAs()} method run (line 28) | run(){csvHandle.reloadFile()} method run (line 29) | run(){sheet.expand()} method run (line 30) | run(){sheet.validate_data()} method run (line 31) | run(){sheet.validate_headers()} method run (line 32) | run(){sheet.go_to_next()} method run (line 33) | run(){sheet.sort(sheet.x, true)} method run (line 34) | run(){sheet.sort(sheet.x, false)} method run (line 37) | run(dir){sheet.shift(0)} method run (line 38) | run(dir){sheet.shift(2)} method run (line 39) | run(dir){sheet.shift(1)} method run (line 40) | run(dir){sheet.shift(3)} method run (line 43) | run(dir){sheet.insert(0)} method run (line 44) | run(dir){sheet.insert(2)} method run (line 45) | run(dir){sheet.insert(1)} method run (line 46) | run(dir){sheet.insert(3)} function buildCommands (line 56) | function buildCommands() { function buildMenu (line 65) | function buildMenu() { FILE: app/js/mouse.js constant LBT (line 2) | let LBT = undefined; constant RBT (line 3) | let RBT = undefined; function check_for_outofbound_scroll (line 121) | function check_for_outofbound_scroll() { FILE: app/js/ui/input/BoolInput.js class BoolInput (line 1) | class BoolInput extends HTMLElement { method constructor (line 2) | constructor(start = false) { method toggle (line 17) | toggle() { this.value = !this.value } method value (line 19) | get value() { return this.b } method value (line 20) | set value(b) { FILE: app/js/ui/input/ListInput.js class ListInput (line 1) | class ListInput extends HTMLElement { method constructor (line 2) | constructor(list, hide = false) { method next (line 38) | next() { this.idx = (this.idx + 1) % this.list.length; this.value = th... method prev (line 39) | prev() { this.idx = (this.idx + this.list.length - 1) % this.list.leng... method value (line 41) | get value() { return this.center.children[this.idx].innerHTML } method value (line 42) | set value(txt) { FILE: app/js/ui/input/NumInput.js class NumInput (line 1) | class NumInput extends HTMLElement { method constructor (line 2) | constructor(start = 0, min = 0, max = 999) { method value (line 30) | get value() { return this.n } method value (line 31) | set value(n) { FILE: app/js/ui/input/Scroller.js class Scroller (line 1) | class Scroller extends HTMLElement { method constructor (line 2) | constructor(vertical = true) { FILE: app/js/ui/input/TCell.js class TCell (line 1) | class TCell extends HTMLTableCellElement { method constructor (line 2) | constructor() { method setPosition (line 25) | setPosition(x, y) { FILE: app/js/ui/input/Table.js class Table (line 1) | class Table extends HTMLTableElement { method constructor (line 2) | constructor() { method br (line 6) | br() { method push (line 11) | push(ele = "", eleClass = undefined) { method activeRow (line 21) | activeRow() { method pushRow (line 24) | pushRow(array) { method clear (line 28) | clear() { while (this.children.length > 0) this.children[0].remove(); } FILE: app/js/utils/misc.js function signOf (line 2) | function signOf(value) { if (value >= 0) return 1; return -1; } function isAlphanumeric (line 4) | function isAlphanumeric(char) { function Timer (line 8) | function Timer(name) { function rndStr (line 28) | function rndStr(n = 2) { function isValidUrl (line 36) | function isValidUrl(txt) { FILE: app/sw_read_write_csv.js constant CHUNK_SIZE (line 1) | const CHUNK_SIZE = 500 * 1000; FILE: build.py function get_file_lines (line 10) | def get_file_lines (fpath): function mk_dir (line 15) | def mk_dir(path): function ls_dir (line 20) | def ls_dir(directory): function fcp (line 27) | def fcp(src_path, dest_path): function fcp_dir (line 32) | def fcp_dir(src, src_rm , dst): function frm (line 39) | def frm(dir_path): function clean_js_rows (line 45) | def clean_js_rows(input_file): function clean_js_file (line 55) | def clean_js_file(input_file, output_file): function concat_js_files (line 60) | def concat_js_files(dir, output_file): function clean_html_file (line 68) | def clean_html_file(input_file, output_file): function copy_web_to_public (line 81) | def copy_web_to_public(): function update_sw_pwa_admin (line 93) | def update_sw_pwa_admin(): function add_seo_pages (line 105) | def add_seo_pages(): function article_get_title (line 123) | def article_get_title(md_lines): function article_get_author (line 129) | def article_get_author(md_lines): function article_get_last_modified_date (line 135) | def article_get_last_modified_date(file_path): function article_get_first_url (line 140) | def article_get_first_url(md_lines): function is_image_url (line 148) | def is_image_url(url): function article_get_og_img (line 152) | def article_get_og_img(url): function article_get_img_banner_tag (line 170) | def article_get_img_banner_tag(md_lines): function article_get_first_paragraph (line 181) | def article_get_first_paragraph(html): function md_to_html (line 186) | def md_to_html(md_file_path, html_file_path): function build_articles (line 218) | def build_articles(): function build_sitemap (line 229) | def build_sitemap(): FILE: misc/automate.js function sleep (line 1) | function sleep(ms) { return new Promise(resolve => setTimeout(resolve, m... function qid (line 2) | function qid(id) { return document.querySelector(id).click(); } FILE: update_version.py function get_file_lines (line 3) | def get_file_lines (fpath): function increment_version (line 8) | def increment_version(txt):