{"mappings":"MAAO,MAAMA,EAAqB,CAChC,UACA,UACA,UACA,UACA,WAoCWC,EAAa,CACxB,QACA,QACA,SACA,OAGWC,EAAa,CACxB,QACA,QACA,SACA,OAGWC,EAAa,CACxB,OACA,SACA,SAGWC,EAAY,CACvB,OACA,MAGWC,EAAa,CACxB,QACA,MAGWC,EAAa,CACxB,KACA,MAGWC,EAAa,CACxB,QACA,QACA,OACA,QACA,QAGWC,EAAe,CAC1B,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,eACA,iBACA,kBACA,qBACA,kBACA,qBACA,kBACA,uBACA,oBACA,mBACA,eACA,eACA,mBACA,cACA,eACA,eACA,iBACA,SACA,KACA,UAGWC,EAAiB,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGjDC,EAAmB,CAC9B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,SACA,WACA,YACA,eACA,YACA,eACA,YACA,iBACA,cACA,aACA,SACA,SACA,aACA,QACA,SACA,SACA,YAGWC,EAAqB,CAChC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC/C,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IA8CrCC,EAAa,CACxB,UACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,8FAEWC,EAAe,EAAC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAClDC,EAAY,CACvB,UACA,UACA,0FACA,0FACA,0FACA,0FACA,0FACA,0FACA,0FACA,6FAEWC,EAAc,EAAC,GAAI,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC5CC,E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","sources":["src/js/m/const_m.js","src/js/m/site_m.js","src/js/index.js"],"sourcesContent":["export const LV_TYPE_BACK_COLOR = [\n '#FFFFFF',\n '#9ED0FF',\n '#C1FF84',\n '#FFFF99',\n '#FF99FF',\n];\n\nexport const STATS_DATA = [\n 'av.',\n '75%',\n 'me.',\n '25%',\n 'top',\n];\n\nexport const DIFF_DATA = [\n '-∞',\n '-20k',\n '-10k',\n '-5k',\n '-3k',\n '-2k',\n '-1k',\n '-1',\n '0',\n '+1',\n '+1k',\n '+2k',\n '+3k',\n '+5k',\n '+10k',\n '+20k',\n '+∞',\n];\n\nexport const DIFF_DATA_R = [\n -200000, -20000, -10000, -5000, -3000, -2000, -1000, -1, 0,\n +1, +1000, +2000, +3000, +5000, +10000, +20000, +200000,\n];\n\nexport const NAME_DATA1 = [\n 'title',\n 'genre',\n 'double',\n 't/g',\n];\n\nexport const NAME_DATA2 = [\n 'genre',\n 'title',\n 'double',\n 'g/t',\n];\n\nexport const ALIGN_DATA = [\n 'left',\n 'center',\n 'right',\n];\n\nexport const WRAP_DATA = [\n 'wrap',\n 'nw',\n];\n\nexport const BREAK_DATA = [\n 'break',\n 'nb',\n];\n\nexport const ORDER_DATA = [\n 'tg',\n 'gt',\n];\n\nexport const UPPER_DATA = [\n 'title',\n 'genre',\n 'both',\n 'first',\n 'last',\n];\n\nexport const VERSION_DATA = [\n 'ALL',\n 'pop\\'n 1',\n 'pop\\'n 2',\n 'pop\\'n 3',\n 'pop\\'n 4',\n 'pop\\'n 5',\n 'pop\\'n 6',\n 'pop\\'n 7',\n 'pop\\'n 8',\n 'pop\\'n 9',\n 'pop\\'n 10',\n 'pop\\'n 11',\n 'pop\\'n 12 いろは',\n 'pop\\'n 13 カーニバル',\n 'pop\\'n 14 FEVER!',\n 'pop\\'n 15 ADVENTURE',\n 'pop\\'n 16 PARTY♪',\n 'pop\\'n 17 THE MOVIE',\n 'pop\\'n 18 せんごく列伝',\n 'pop\\'n 19 TUNE STREET',\n 'pop\\'n 20 fantasia',\n 'pop\\'n Sunny Park',\n 'pop\\'n ラピストリア',\n 'pop\\'n éclale',\n 'pop\\'n うさぎと猫と少年の夢',\n 'pop\\'n peace',\n 'pop\\'n 解明リドルズ',\n 'pop\\'n UniLab',\n 'pop\\'n Jam&Fizz',\n 'TV・アニメ',\n 'CS',\n 'BEMANI',\n];\n\nexport const VERSION_DATA_R = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 23, 24, 25,\n];\n\nexport const ADD_VERSION_DATA = [\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '11',\n '12 いろは',\n '13 カーニバル',\n '14 FEVER!',\n '15 ADVENTURE',\n '16 PARTY♪',\n '17 THE MOVIE',\n '18 せんごく列伝',\n '19 TUNE STREET',\n '20 fantasia',\n 'Sunny Park',\n 'ラピストリア',\n 'éclale',\n 'うさぎと猫と少年の夢',\n 'peace',\n '解明リドルズ',\n 'UniLab',\n 'Jam&Fizz',\n];\n\nexport const ADD_VERSION_DATA_R = [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31,\n];\n\nexport const TARGET_MEDAL_DATA = [\n '\"4\"',\n '\"5\"',\n '\"6\"',\n '\"7\"',\n '\"8\"',\n '\"9\"',\n '\"10\"',\n 'NEXT',\n];\nexport const TARGET_MEDAL_DATA_R = [\n 4, 5, 6, 7, 8, 9, 10, 999,\n];\n\nexport const TARGET_SCORE_DATA = [\n '85k',\n '90k',\n '95k',\n '98k',\n '99k',\n '99.4k',\n '100k',\n 'NEXT',\n];\n\nexport const TARGET_SCORE_DATA_R = [\n 4, 5, 6, 7, 8, 9, 10, 999,\n];\n\nexport const TARGET_SCORE_CLASS_DATA = [\n '-',\n '0',\n '70k',\n '80k',\n '85k',\n '90k',\n '95k',\n '98k',\n '99k',\n '99.4k',\n '100k',\n];\n\nexport const MEDAL_DATA = [\n 'NO PLAY',\n '\"0\"',\n '\"1\"',\n '\"2\"',\n '\"3\"',\n '\"4\"',\n '\"5\"',\n '\"6\"',\n '\"7\"',\n '\"8\"',\n '\"9\"',\n '\"10\"',\n];\nexport const MEDAL_DATA_R = [-2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nexport const RANK_DATA = [\n 'NO PLAY',\n 'NO RANK',\n '\"3\"',\n '\"4\"',\n '\"5\"',\n '\"6\"',\n '\"7\"',\n '\"8\"',\n '\"9\"',\n '\"10\"',\n];\nexport const RANK_DATA_R = [-2, -1, 3, 4, 5, 6, 7, 8, 9, 10];\nexport const SCORE_DATA = [\n 'NO PLAY',\n '0',\n '70k',\n '80k',\n '85k',\n '90k',\n '95k',\n '98k',\n '99k',\n '99.4k',\n '100k',\n '=100k',\n];\n\nexport const SCORE_DATA_DISPLAY = [\n 'NO PLAY',\n '0',\n '70k',\n '80k',\n '85k',\n '90k',\n '95k',\n '98k',\n '99k',\n '99.4k',\n '100k',\n '100k',\n];\n\nexport const SCORE_DATA_R = [\n -2,\n 0,\n 70000,\n 80000,\n 85000,\n 90000,\n 95000,\n 98000,\n 99000,\n 99400,\n 100000,\n 200000,\n];\n/*\nexport const otoge.SCORE_DATA_R_LOWER = [\n -2,\n 0,\n 70000,\n 80000,\n 85000,\n 90000,\n 95000,\n 98000,\n 99000,\n 99400,\n 100000,\n];\nexport const otoge.SCORE_DATA_R_UPPER = [\n 0,\n 70000,\n 80000,\n 85000,\n 90000,\n 95000,\n 98000,\n 99000,\n 99400,\n 100000,\n 200000,\n];\n*/\nexport const LV_DATA = Array.from({ length: 51 }, (v, k) => String(k));\nLV_DATA.shift();\n\nexport const LV_TYPE_DATA = [\n 'EASY',\n 'NORMAL',\n 'HYPER',\n 'EX',\n];\n\nexport const TARGET_PERCENT_DATA = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '10',\n '20',\n '30',\n '40',\n '50',\n '60',\n '70',\n '80',\n '90',\n '100',\n '=100',\n];\n\nexport const TARGET_PERCENT_DATA_DISPLAY = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '10',\n '20',\n '30',\n '40',\n '50',\n '60',\n '70',\n '80',\n '90',\n '100',\n '100',\n];\n\nexport const TARGET_PERCENT_DATA_R = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 10,\n 20,\n 30,\n 40,\n 50,\n 60,\n 70,\n 80,\n 90,\n 100,\n 200,\n];\n\nexport const COUNT_DATA = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '20',\n '30',\n '40',\n '50',\n '60',\n '70',\n '80',\n '90',\n '100',\n '200',\n '300',\n '400',\n '500',\n '1000',\n '∞',\n];\n\nexport const COUNT_DATA_DISPLAY = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '20',\n '30',\n '40',\n '50',\n '60',\n '70',\n '80',\n '90',\n '100',\n '200',\n '300',\n '400',\n '500',\n '1000',\n '∞',\n];\n\nexport const COUNT_DATA_R = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 20,\n 30,\n 40,\n 50,\n 60,\n 70,\n 80,\n 90,\n 100,\n 200,\n 300,\n 400,\n 500,\n 1000,\n 99999,\n];\n","import * as otoge from './const_m.js';\n\nexport const getCurrentSortStatus = () => {\n let sTarget = null;\n let sCount = 0;\n const sortButton = document.querySelector('[class~=gridjs-sort-asc],[class~=gridjs-sort-desc]');\n if (sortButton !== null) {\n sTarget = sortButton.parentNode.attributes['data-column-id'].nodeValue;\n sCount = sortButton.classList.contains('gridjs-sort-desc') ? 2 : 1;\n }\n\n return [sTarget, sCount];\n};\n\nexport const getFilterSortStatus = (pageName, defaultSort, defaultSortCount) => {\n const selectedFilter = window.localStorage.getItem(`${pageName}.selectedFilter`) ?? '0';\n const prevFilters = JSON.parse(window.localStorage.getItem(`${pageName}.filters`));\n const prevFilter = (prevFilters === null\n || !Object.prototype.hasOwnProperty.call(prevFilters, selectedFilter))\n ? null\n : prevFilters[selectedFilter];\n\n return (prevFilter && prevFilter.sort) ? prevFilter.sort : [defaultSort, defaultSortCount];\n};\n\nexport const getKeyNames = (sliderId, dataObject) => {\n const skipStepSlider = document.getElementById(sliderId);\n\n const sliderValues = skipStepSlider.noUiSlider.get();\n const isArray = Array.isArray(sliderValues);\n\n // スライダーの値が1つの場合\n if (!isArray) {\n const keyName = Object.keys(dataObject).find(\n (key) => dataObject[key] === sliderValues,\n );\n return keyName;\n }\n\n // スライダーの値が2つの場合\n const keyName1 = Object.keys(dataObject).find(\n (key) => dataObject[key] === sliderValues[0],\n );\n const keyName2 = Object.keys(dataObject).find(\n (key) => dataObject[key] === sliderValues[1],\n );\n\n return [keyName1, keyName2];\n};\n\nexport const saveView = () => {\n const keyAlign = getKeyNames('skipstep-align', otoge.ALIGN_DATA);\n const keyWrap = getKeyNames('skipstep-wrap', otoge.WRAP_DATA);\n const keyBreak = getKeyNames('skipstep-break', otoge.BREAK_DATA);\n const keyOrder = getKeyNames('skipstep-order', otoge.ORDER_DATA);\n const keyUpper = getKeyNames('skipstep-upper', otoge.UPPER_DATA);\n const keyName = getKeyNames('skipstep-name', keyOrder === '1' ? otoge.NAME_DATA2 : otoge.NAME_DATA1);\n\n const prevView = {\n name: keyName,\n align: keyAlign,\n wrap: keyWrap,\n break: keyBreak,\n order: keyOrder,\n upper: keyUpper,\n };\n\n window.localStorage.setItem('view', JSON.stringify(prevView));\n};\n\nexport const CreateSkipSlider1 = (\n id,\n dataObject,\n prevKey,\n onStart,\n onSet,\n defaultKey,\n) => {\n const skipSlider = document.getElementById(`skipstep-${id}`);\n const defaultPos = dataObject[defaultKey];\n const startPos = (prevKey !== null && prevKey !== undefined)\n ? dataObject[prevKey]\n : defaultPos;\n\n noUiSlider.create(skipSlider, {\n range: {\n min: 0,\n max: dataObject.length - 1,\n },\n start: startPos,\n default: defaultPos,\n matchingTable: dataObject,\n step: 1,\n tooltips: true,\n format: {\n to: (key) => dataObject[Math.round(key)],\n from: (value) => Object.keys(dataObject).filter(\n (key) => dataObject[key] === value,\n )[0],\n },\n });\n\n const skipValues = [\n document.getElementById(`${id}-text`),\n ];\n\n skipSlider.noUiSlider.on('update', (values, handle) => {\n skipValues[handle].innerHTML = values[handle];\n });\n\n skipSlider.noUiSlider.on('start', onStart);\n skipSlider.noUiSlider.on('set', onSet);\n};\n\nexport const CreateSkipSlider2 = (\n id,\n dataObject,\n prevKeys,\n onStart,\n onSet,\n margin = 0,\n defaultPosUpper = undefined,\n updateFn = undefined,\n) => {\n const skipSlider = document.getElementById(`skipstep-${id}`);\n const defaultPos = [dataObject[0],\n defaultPosUpper === undefined ? dataObject[dataObject.length - 1] : defaultPosUpper];\n const startPos = (prevKeys !== null && prevKeys !== undefined\n && prevKeys.length === 2)\n ? [dataObject[prevKeys[0]], dataObject[prevKeys[1]]]\n : defaultPos;\n\n noUiSlider.create(skipSlider, {\n range: {\n min: 0,\n max: dataObject.length - 1,\n },\n connect: true,\n start: startPos,\n default: defaultPos,\n matchingTable: dataObject,\n step: 1,\n margin,\n tooltips: [true, true],\n format: {\n to: (key) => dataObject[Math.round(key)],\n from: (value) => Object.keys(dataObject).filter(\n (key) => dataObject[key] === value,\n )[0],\n },\n });\n\n const skipValues = [\n document.getElementById(`${id}-lower`),\n document.getElementById(`${id}-upper`),\n document.getElementById(`${id}-hyphen`),\n document.getElementById(`${id}-same`),\n ];\n\n skipSlider.noUiSlider.on('update', updateFn !== undefined ? updateFn : (values, handle) => {\n skipValues[handle].innerHTML = values[handle];\n\n const firstDataValue = dataObject[0];\n const lastDataValue = dataObject[dataObject.length - 1];\n\n if (skipValues[0].innerHTML === skipValues[1].innerHTML) {\n skipValues[3].innerHTML = values[handle];\n skipValues[0].style.display = 'none';\n skipValues[1].style.display = 'none';\n skipValues[2].style.display = 'none';\n skipValues[3].style.display = 'inline';\n } else if ((skipValues[0].innerText === firstDataValue\n || skipValues[0].innerHTML === firstDataValue)\n && (skipValues[1].innerText === lastDataValue\n || skipValues[1].innerHTML === lastDataValue)) {\n skipValues[3].innerHTML = 'ALL';\n skipValues[0].style.display = 'none';\n skipValues[1].style.display = 'none';\n skipValues[2].style.display = 'none';\n skipValues[3].style.display = 'inline';\n } else {\n skipValues[0].style.display = 'inline';\n skipValues[1].style.display = 'inline';\n skipValues[2].style.display = 'inline';\n skipValues[3].style.display = 'none';\n }\n });\n\n skipSlider.noUiSlider.on('start', onStart);\n skipSlider.noUiSlider.on('set', onSet);\n};\n","import * as site from './m/site_m.js';\nimport * as otoge from './m/const_m.js';\n\nconst PAGE_NAME = 'index';\n\nlet mainGrid;\nlet stats1Grid;\nlet stats2Grid;\n\nlet allData;\nlet filteredData;\n\nlet updateFilterTimer;\n\nlet sortClickCount;\nlet sortTarget;\n\nlet initializing = true;\n\nconst fumenFilter = (data, version, addVersion, medal, rank, score, lv, lvType, order, upper) => {\n const column0 = (upper === '0' || upper === '2') ? 'CONCAT([0], [8])' : '[0]';\n const column1 = (upper === '1' || upper === '2' || upper === undefined) ? 'CONCAT([1], [8])' : '[1]';\n\n const columnOrder = order === '1' ? `${column1}, ${column0}` : `${column0}, ${column1}`;\n let sql = `MATRIX OF SELECT ${columnOrder}, [2], [3], [4], [5], [6], [7], [8], [9] FROM ?`;\n let arg = [data];\n if (version[0] !== 0) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' [7] = ?';\n arg = arg.concat([otoge.VERSION_DATA_R[version[0]]]);\n }\n if (addVersion[0] !== 0 || addVersion[1] !== otoge.ADD_VERSION_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [9] AND [9] <= ?';\n arg = arg.concat([otoge.ADD_VERSION_DATA_R[addVersion[0]],\n otoge.ADD_VERSION_DATA_R[addVersion[1]]]);\n }\n if (medal[0] !== 0 || medal[1] !== otoge.MEDAL_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [4] AND [4] <= ?';\n arg = arg.concat([otoge.MEDAL_DATA_R[medal[0]], otoge.MEDAL_DATA_R[medal[1]]]);\n }\n if (rank[0] !== 0 || rank[1] !== otoge.RANK_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [5] AND [5] <= ?';\n arg = arg.concat([otoge.RANK_DATA_R[rank[0]], otoge.RANK_DATA_R[rank[1]]]);\n }\n if (score[0] !== 0 || score[1] !== otoge.SCORE_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [6] AND [6] < ?';\n arg = arg.concat([\n otoge.SCORE_DATA_R[score[0]],\n otoge.SCORE_DATA_R[score[1]]]);\n }\n if (lv[0] !== 0 || lv[1] !== otoge.LV_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [3] AND [3] <= ?';\n arg = arg.concat([lv[0] + 1, lv[1] + 1]); // +1 == to lv\n }\n if (lvType[0] !== 0 || lvType[1] !== otoge.LV_TYPE_DATA.length - 1) {\n sql += (arg.length === 1) ? ' WHERE' : ' AND';\n sql += ' ? <= [2] AND [2] <= ?';\n arg = arg.concat([lvType[0] + 1, lvType[1] + 1]); // +1 == to lv type\n }\n\n const res = alasql(sql, arg);\n\n return res;\n};\n\n// const onReady = (...args) => {\nconst onReady = () => {\n // page 移動, sort 変更のタイミングでも呼ばれる。\n // console.log('row: ' + JSON.stringify(args), args);\n const test = site.getCurrentSortStatus();\n // console.log(test);\n if (test[0]) {\n saveFilterAndSort();\n }\n\n const tableWrapper = document.querySelector('#wrapper');\n const table = tableWrapper.querySelector('table');\n\n table.style.tableLayout = 'auto';\n\n const view = JSON.parse(window.localStorage.getItem('view'));\n\n if (view?.name === '0' || view?.name === '1') {\n table.querySelector('thead tr th:first-child').style.width = '100%';\n table.querySelector('thead tr th:nth-child(4)').style.width = '22px';\n table.querySelector('thead tr th:nth-child(5)').style.width = '22px';\n } else {\n table.querySelector('thead tr th:nth-child(1)').style.width = '50%';\n table.querySelector('thead tr th:nth-child(2)').style.width = '50%';\n table.querySelector('thead tr th:nth-child(5)').style.width = '22px';\n table.querySelector('thead tr th:nth-child(6)').style.width = '22px';\n }\n\n table.style.tableLayout = 'fixed';\n};\n\n// const storeSort = (...args) => {\nconst storeSort = () => {\n mainGrid.off('ready', storeSort);\n\n // console.log('row: ' + JSON.stringify(args), args);\n\n setTimeout(() => {\n [...Array(sortClickCount)].map(() => $(`.gridjs-th[data-column-id=${sortTarget}]`).trigger('click'));\n }, 0);\n};\n\nconst updateGrid = (data) => {\n if (mainGrid === undefined) {\n const view = JSON.parse(window.localStorage.getItem('view'));\n\n let containerStyle = `\n display: flex;\n justify-content: space-between;\n padding: 0ch 1ch;\n align-items: center;\n `;\n\n let middleStyle = `\n flex-grow: 1;\n padding: 0;\n `;\n\n let nameStyle = 'display: block;';\n\n if (view?.align === '0') {\n nameStyle += `\n text-align: left;\n `;\n } else if (view?.align === '2') {\n nameStyle += `\n text-align: right;\n `;\n }\n\n if (view?.wrap === '1') {\n containerStyle += `\n overflow: hidden;\n white-space: nowrap; \n `;\n middleStyle += `\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; \n `;\n nameStyle += `\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `;\n }\n\n const name1 = view?.order === '1' ? 'genre' : 'title';\n const name2 = view?.order === '1' ? 'title' : 'genre';\n\n const br = (view?.break !== '1') ? '
' : ' ';\n\n // const Upper = (view?.upper === '3' || view?.upper === '4') ? 'UPPER' : '';\n\n let nameColumns = [];\n\n const name = view?.name;\n if (name === '0') {\n nameColumns = [{\n id: '0',\n name: name1,\n formatter: (_, row) => {\n const displayData = row.cells[0].data;\n return gridjs.html(`\n
\n ${(view?.upper === '3' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n ${displayData}\n ${(view?.upper === '4' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n
\n`);\n },\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n colspan: '1',\n };\n },\n },\n {\n id: '1',\n name: name2,\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n style: 'display:none',\n };\n },\n hidden: true,\n }];\n } else if (name === '1') {\n nameColumns = [{\n id: '0',\n name: name1,\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n style: 'display:none',\n };\n },\n hidden: true,\n },\n {\n id: '1',\n name: name2,\n formatter: (_, row) => {\n const displayData = row.cells[1].data;\n return gridjs.html(`\n
\n ${(view?.upper === '3' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n ${displayData}\n ${(view?.upper === '4' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n
\n`);\n },\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n colspan: '1',\n };\n },\n }];\n } else if (name === '3') {\n nameColumns = [{\n id: '0',\n name: name1,\n formatter: (_, row) => {\n let cell0Data = row.cells[0].data;\n let cell1Data = row.cells[1].data;\n if (cell0Data.replace(/UPPER$/, '') === cell1Data.replace(/UPPER$/, '') && cell0Data !== cell1Data) {\n if (cell1Data.length < cell0Data.length) {\n cell1Data = cell0Data;\n } else {\n cell0Data = cell1Data;\n }\n }\n\n const displayData = `${cell0Data}${cell0Data === cell1Data ? '' : br + cell1Data}`;\n return gridjs.html(`\n
\n ${(view?.upper === '3' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n ${displayData}\n ${(view?.upper === '4' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n
\n`);\n },\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n colspan: '2',\n };\n },\n },\n {\n id: '1',\n name: name2,\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n style: 'display:none',\n };\n },\n }];\n } else {\n nameColumns = [{\n id: '0',\n name: name1,\n formatter: (_, row) => {\n const displayData = `${row.cells[0].data}${br}${row.cells[1].data}`;\n return gridjs.html(`\n
\n ${(view?.upper === '3' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n ${displayData}\n ${(view?.upper === '4' && row.cells[8].data) ? `${row.cells[8].data}` : ''}\n
\n`);\n },\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n colspan: '2',\n };\n },\n },\n {\n id: '1',\n name: name2,\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n style: 'display:none',\n };\n },\n }];\n }\n\n const otherColumns = [{\n id: '2',\n name: '',\n sort: 0,\n width: '1px',\n attributes: {\n style: 'display:none',\n },\n },\n {\n id: '3',\n name: 'lv',\n width: '3ch',\n attributes: (cell, row) => {\n if (cell === null) {\n return {\n colspan: '2',\n };\n }\n return {\n style: `background-color:${otoge.LV_TYPE_BACK_COLOR[row.cells[2].data]}; padding:0ch 0.5ch; text-align: right; font-family: monospace;`,\n colspan: '2',\n };\n },\n },\n {\n id: '4',\n name: 'm',\n width: '45px',\n formatter: (cell, row) => {\n if (cell === null) {\n return undefined;\n }\n return gridjs.html(`\"${row.cells[4].data}\\t\"`\n + `\"${row.cells[5].data}\"`);\n },\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n colspan: '2',\n };\n },\n },\n {\n id: '5',\n name: 'r',\n attributes: (cell) => {\n if (cell === null) {\n return undefined;\n }\n return {\n style: 'display:none',\n };\n },\n },\n {\n id: '6',\n name: 'score',\n width: '6ch',\n formatter: (_, row) => (row.cells[6].data === -2 ? '-' : row.cells[6].data),\n attributes: (cell) => {\n if (cell === null) {\n return {\n colspan: '2',\n };\n }\n return {\n style: 'padding: 0px 5px 0px 0px; text-align: right; font-family: monospace',\n colspan: '2',\n };\n },\n },\n {\n id: '7',\n name: '',\n sort: 0,\n width: '1px',\n attributes: {\n style: 'display:none',\n },\n },\n {\n id: '8',\n name: '',\n sort: 0,\n width: '1px',\n attributes: {\n style: 'display:none',\n },\n }];\n\n mainGrid = new gridjs.Grid({\n columns: [...nameColumns, ...otherColumns],\n sort: true,\n search: {\n ignoreHiddenColumns: false,\n },\n pagination: {\n enabled: true,\n limit: 20,\n },\n fixedHeader: true,\n height: '400px',\n style: {\n table: {\n width: '100%',\n },\n th: {\n padding: '0px',\n 'text-align': 'center',\n 'min-width': 'auto',\n },\n td: {\n padding: '0px',\n 'text-align': 'center',\n },\n },\n language: {\n pagination: {\n previous: '←',\n next: '→',\n },\n },\n data,\n });\n\n mainGrid.on('ready', onReady);\n mainGrid.render(document.getElementById('wrapper'));\n\n // 1st sort.\n [sortTarget, sortClickCount] = site.getFilterSortStatus(PAGE_NAME, null, 0);\n\n if (sortClickCount > 0) {\n mainGrid.on('ready', storeSort);\n }\n } else {\n [sortTarget, sortClickCount] = site.getFilterSortStatus(PAGE_NAME, null, 0);\n\n mainGrid.updateConfig({\n data: filteredData,\n }).forceRender();\n\n if (sortClickCount > 0) {\n mainGrid.on('ready', storeSort);\n }\n }\n};\n\nfunction saveFilterAndSort() {\n const keyVersion = site.getKeyNames('skipstep-version', otoge.VERSION_DATA);\n const [keyAddVersion1, keyAddVersion2] = site.getKeyNames('skipstep-add-version', otoge.ADD_VERSION_DATA);\n const [keyMedal1, keyMedal2] = site.getKeyNames('skipstep-medal', otoge.MEDAL_DATA);\n const [keyRank1, keyRank2] = site.getKeyNames('skipstep-rank', otoge.RANK_DATA);\n const [keyScore1, keyScore2] = site.getKeyNames('skipstep-score', otoge.SCORE_DATA);\n const [keyLv1, keyLv2] = site.getKeyNames('skipstep-lv', otoge.LV_DATA);\n const [keyLvType1, keyLvType2] = site.getKeyNames('skipstep-lv-type', otoge.LV_TYPE_DATA);\n\n const sortStatus = site.getCurrentSortStatus();\n\n const selectedFilter = window.localStorage.getItem(`${PAGE_NAME}.selectedFilter`) ?? '0';\n const prevFilters = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.filters`)) ?? {};\n prevFilters[selectedFilter] = {\n version: keyVersion,\n add_version: [keyAddVersion1, keyAddVersion2],\n medal: [keyMedal1, keyMedal2],\n rank: [keyRank1, keyRank2],\n score: [keyScore1, keyScore2],\n lv: [keyLv1, keyLv2],\n lv_type: [keyLvType1, keyLvType2],\n sort: sortStatus,\n filter_version: 2,\n };\n\n window.localStorage.setItem(`${PAGE_NAME}.filters`, JSON.stringify(prevFilters));\n}\n\nfunction updateGrid2() {\n const keyVersion = site.getKeyNames('skipstep-version', otoge.VERSION_DATA);\n const [keyAddVersion1, keyAddVersion2] = site.getKeyNames('skipstep-add-version', otoge.ADD_VERSION_DATA);\n const [keyMedal1, keyMedal2] = site.getKeyNames('skipstep-medal', otoge.MEDAL_DATA);\n const [keyRank1, keyRank2] = site.getKeyNames('skipstep-rank', otoge.RANK_DATA);\n const [keyScore1, keyScore2] = site.getKeyNames('skipstep-score', otoge.SCORE_DATA);\n const [keyLv1, keyLv2] = site.getKeyNames('skipstep-lv', otoge.LV_DATA);\n const [keyLvType1, keyLvType2] = site.getKeyNames('skipstep-lv-type', otoge.LV_TYPE_DATA);\n\n const order = JSON.parse(window.localStorage.getItem('view'))?.order;\n const upper = JSON.parse(window.localStorage.getItem('view'))?.upper;\n\n filteredData = fumenFilter(\n allData,\n [keyVersion].map(Number),\n [keyAddVersion1, keyAddVersion2].map(Number),\n [keyMedal1, keyMedal2].map(Number),\n [keyRank1, keyRank2].map(Number),\n [keyScore1, keyScore2].map(Number),\n [keyLv1, keyLv2].map(Number),\n [keyLvType1, keyLvType2].map(Number),\n order,\n upper,\n );\n\n updateGrid(filteredData);\n}\n\nfunction updateStats() {\n const targetData = filteredData === undefined ? allData : filteredData;\n const res = alasql('MATRIX OF SELECT [4] AS medal, [2] AS levelType, COUNT(*) AS c FROM ? GROUP BY [4], [2]', [targetData]);\n const medalOrder = [10, 9, 8, 7, 6, 5, 4, 0, 3, 2, 1, -2];\n const levelTypeOrder = [1, 2, 3, 4];\n const statsData = [];\n const clearStats = [undefined, 0, 0, 0, 0];\n const totalStats = [undefined, 0, 0, 0, 0];\n\n // for (const element1 of medalOrder) {\n medalOrder.map((element1) => {\n let medalSum = 0;\n const row = [element1];\n\n // for (const element2 of levelTypeOrder) {\n levelTypeOrder.map((element2) => {\n const filterResult = res.filter((a) => a[0] === element1 && a[1] === element2);\n const c = filterResult.length === 0 ? 0 : filterResult[0][2];\n if (element1 === 0 || element1 >= 4) {\n clearStats[element2] += c;\n }\n totalStats[element2] += c;\n row.push(c);\n medalSum += c;\n\n return undefined;\n });\n\n row.push(medalSum);\n statsData.push(row);\n return undefined;\n });\n\n clearStats.push(clearStats.reduce((a, b) => (a ?? 0) + (b ?? 0)));\n clearStats[0] = 'clear';\n statsData.push(clearStats);\n\n totalStats.push(totalStats.reduce((a, b) => (a ?? 0) + (b ?? 0)));\n totalStats[0] = 'total';\n statsData.push(totalStats);\n\n if (stats1Grid === undefined) {\n stats1Grid = new gridjs.Grid({\n columns: [\n {\n id: '0',\n name: '',\n formatter: (_, row) => gridjs.html(!Number.isInteger(row.cells[0].data) ? row.cells[0].data : `\"${row.cells[0].data}\"`),\n attributes: {\n style: 'padding: 0px; text-align: center',\n },\n },\n {\n id: '1',\n name: gridjs.h('div', {\n style: {\n 'background-color': '#9ED0FF',\n },\n }, 'easy'),\n },\n {\n id: '2',\n name: gridjs.h('div', {\n style: {\n 'background-color': '#C1FF84',\n },\n }, 'normal'),\n },\n {\n id: '3',\n name: gridjs.h('div', {\n style: {\n 'background-color': '#FFFF99',\n },\n }, 'hyper'),\n },\n {\n id: '4',\n name: gridjs.h('div', {\n style: {\n 'background-color': '#FF99FF',\n },\n }, 'ex'),\n },\n {\n id: '5',\n name: 'sum',\n }],\n fixedHeader: true,\n style: {\n table: {\n width: '100%',\n 'font-family': 'monospace',\n },\n th: {\n padding: '0px',\n 'text-align': 'center',\n },\n td: {\n padding: '0px 5px 0px 0px',\n 'text-align': 'right',\n },\n },\n data: statsData,\n }).render(document.getElementById('stats1_wrapper'));\n } else {\n stats1Grid.updateConfig({\n data: statsData,\n }).forceRender();\n }\n}\n\nfunction updateStats2() {\n const targetData = filteredData === undefined ? allData : filteredData;\n\n const resMedal = alasql('MATRIX OF SELECT [4] AS medal, COUNT(*) AS c FROM ? GROUP BY [4]', [targetData]);\n const resRank = alasql('MATRIX OF SELECT [5] AS rank, COUNT(*) AS c FROM ? GROUP BY [5]', [targetData]);\n const resScore = alasql(`MATRIX OF SELECT\nCASE\nWHEN 100000 <= [6] THEN '100k'\nWHEN 99400 <= [6] THEN '99.4k'\nWHEN 99000 <= [6] THEN '99k'\nWHEN 98000 <= [6] THEN '98k'\nWHEN 95000 <= [6] THEN '95k'\nWHEN 90000 <= [6] THEN '90k'\nWHEN 85000 <= [6] THEN '85k'\nWHEN 80000 <= [6] THEN '80k'\nWHEN 70000 <= [6] THEN '70k'\nWHEN 0 <= [6] THEN '0'\nELSE '-2' END AS scoreHierarchy, COUNT(*) AS c FROM ?\nGROUP BY\nCASE\nWHEN 100000 <= [6] THEN '100k'\nWHEN 99400 <= [6] THEN '99.4k'\nWHEN 99000 <= [6] THEN '99k'\nWHEN 98000 <= [6] THEN '98k'\nWHEN 95000 <= [6] THEN '95k'\nWHEN 90000 <= [6] THEN '90k'\nWHEN 85000 <= [6] THEN '85k'\nWHEN 80000 <= [6] THEN '80k'\nWHEN 70000 <= [6] THEN '70k'\nWHEN 0 <= [6] THEN '0'\nELSE '-2' END`, [targetData]);\n const indexer = [...Array(12).keys()];\n const medalOrder = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -2];\n const rankOrder = [10, 9, 8, 7, 6, 5, 4, 3, -1, undefined, undefined, -2];\n const scoreTypeOrder = ['100k', '99.4k', '99k', '98k', '95k', '90k', '85k', '80k', '70k', '0', undefined, '-2'];\n const statsData = [];\n\n indexer.map((idx) => {\n const row = [];\n {\n const order = medalOrder[idx];\n row.push(order);\n const filterResult = resMedal.filter((a) => a[0] === order);\n\n if (filterResult.length === 0) {\n row.push(order === undefined ? undefined : 0);\n } else {\n row.push(filterResult[0][1]);\n }\n }\n {\n const order = rankOrder[idx];\n row.push(order);\n const filterResult = resRank.filter((a) => a[0] === order);\n if (filterResult.length === 0) {\n row.push(order === undefined ? undefined : 0);\n } else {\n row.push(filterResult[0][1]);\n }\n }\n {\n const order = scoreTypeOrder[idx];\n row.push(order);\n const filterResult = resScore.filter((a) => a[0] === order);\n if (filterResult.length === 0) {\n row.push(order === undefined ? undefined : 0);\n } else {\n row.push(filterResult[0][1]);\n }\n }\n statsData.push(row);\n\n return undefined;\n });\n\n if (stats2Grid === undefined) {\n stats2Grid = new gridjs.Grid({\n columns: [\n {\n id: '0',\n name: 'medal',\n formatter: (_, row) => gridjs.html(\n !Number.isInteger(row.cells[0].data) ? row.cells[0].data\n : `\"${row.cells[0].data}\"`,\n ),\n attributes: {\n style: 'padding: 0px; text-align: center',\n },\n },\n {\n id: '1',\n name: '',\n },\n {\n id: '2',\n name: 'rank',\n formatter: (_, row) => gridjs.html(\n !Number.isInteger(row.cells[2].data) ? row.cells[2].data\n : `\"${row.cells[2].data}\"`,\n ),\n attributes: {\n style: 'padding: 0px; text-align: center',\n },\n },\n {\n id: '3',\n name: '',\n },\n {\n id: '4',\n name: 'score',\n formatter: (_, row) => {\n if (row.cells[4].data === undefined) {\n return undefined;\n }\n\n return (row.cells[4].data === '-2'\n ? gridjs.html('\"-2\"') : row.cells[4].data);\n },\n attributes: {\n style: 'padding: 0px; text-align: center',\n },\n },\n {\n id: '5',\n name: '',\n },\n ],\n fixedHeader: true,\n style: {\n table: {\n width: '100%',\n 'font-family': 'monospace',\n },\n th: {\n padding: '0px',\n 'text-align': 'center',\n },\n td: {\n padding: '0px 5px 0px 0px',\n 'text-align': 'right',\n },\n },\n data: statsData,\n }).render(document.getElementById('stats2_wrapper'));\n } else {\n stats2Grid.updateConfig({\n data: statsData,\n }).forceRender();\n }\n}\n\nfunction onSliderStart() {\n clearTimeout(updateFilterTimer);\n}\n\nfunction onViewSliderSet(values, handle, unencoded, tap, positions, slider, callback) {\n if (!allData || !mainGrid) return;\n\n site.saveView();\n document.getElementById('wrapper').innerHTML = '';\n mainGrid = undefined;\n updateGrid(allData);\n clearTimeout(updateFilterTimer);\n updateFilterTimer = setTimeout(() => {\n if (callback) {\n callback();\n }\n updateGrid2(); // 1st filter\n updateStats();\n updateStats2();\n }, 1000);\n}\n\nfunction onViewOrderSliderSet(values, handle, unencoded, tap, positions, slider) {\n onViewSliderSet(values, handle, unencoded, tap, positions, slider, () => {\n // When the 'order' slider is moved, we need to update the display of the 'name' slider.\n const skipSlider = document.getElementById('skipstep-name');\n const currentView = JSON.parse(window.localStorage.getItem('view'));\n const isNewOrder = currentView?.order === '1';\n\n const newNameData = isNewOrder ? otoge.NAME_DATA2 : otoge.NAME_DATA1;\n const oldNameData = isNewOrder ? otoge.NAME_DATA1 : otoge.NAME_DATA2;\n\n const findKeyByValue = (obj, value) => Object.keys(obj).find((key) => obj[key] === value);\n\n skipSlider.noUiSlider.updateOptions({\n format: {\n to: (key) => newNameData[Math.round(key)],\n from: (value) => findKeyByValue(newNameData, value)\n || findKeyByValue(oldNameData, value),\n },\n });\n });\n}\n\nfunction onFilterSliderSet(values, handle, unencoded, tap, positions, slider, callback) {\n if (!allData || !mainGrid) return;\n\n saveFilterAndSort();\n clearTimeout(updateFilterTimer);\n updateFilterTimer = setTimeout(() => {\n updateGrid2();\n updateStats();\n updateStats2();\n if (callback) {\n callback();\n }\n }, 1000);\n}\n\nfunction onFilterScoreSliderUpdate(values, handle) {\n const skipValues = [\n document.getElementById('score-lower'),\n document.getElementById('score-upper'),\n document.getElementById('score-hyphen'),\n document.getElementById('score-same'),\n ];\n\n const dataObject = otoge.SCORE_DATA;\n const dataDisplayObject = otoge.SCORE_DATA_DISPLAY;\n const firstDataValue = dataObject[0];\n const lastDataValue = dataObject[dataObject.length - 1];\n\n const keyScore = Object.keys(dataObject).filter(\n (key) => dataObject[key] === values[handle],\n )[0];\n\n skipValues[handle].innerHTML = dataDisplayObject[keyScore];\n\n if (values[0] === firstDataValue\n && values[1] === lastDataValue) {\n skipValues[3].innerHTML = 'ALL';\n skipValues[0].style.display = 'none';\n skipValues[1].style.display = 'none';\n skipValues[2].style.display = 'none';\n skipValues[3].style.display = 'inline';\n } else {\n skipValues[0].style.display = 'inline';\n skipValues[1].style.display = 'inline';\n skipValues[2].style.display = 'inline';\n if (values[1] === lastDataValue) {\n skipValues[2].innerHTML = '\"closed\"';\n } else {\n skipValues[2].innerHTML = '\"leftclosed\"';\n }\n skipValues[3].style.display = 'none';\n }\n}\n\nif (document.querySelector('h1.nologin') !== null) {\n // no login\n} else {\n document.getElementById('filter-selection').addEventListener('click', ({ target }) => {\n if (initializing === false && target.children[0].getAttribute('name') === 'btnradio') {\n // change filter\n const selectedFilter = target.children[0].id.replace('btnradio', '');\n window.localStorage.setItem(`${PAGE_NAME}.selectedFilter`, selectedFilter);\n // load filter\n const prevFilters = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.filters`));\n const prevFilter = (prevFilters === null\n || !Object.prototype.hasOwnProperty.call(prevFilters, selectedFilter))\n ? null\n : prevFilters[selectedFilter];\n\n Array.from(document.querySelectorAll('[id^=skipstep-]')).map(\n (skipSlider) => {\n if (skipSlider.noUiSlider !== undefined) {\n if (prevFilter === null) {\n skipSlider.noUiSlider.set(skipSlider.noUiSlider.options.default);\n } else {\n const filter = prevFilter[skipSlider.id.replace('skipstep-', '').replaceAll('-', '_')];\n const table = skipSlider.noUiSlider.options.matchingTable;\n if (Array.isArray(filter)) {\n skipSlider.noUiSlider.set([table[filter[0]], table[filter[1]]]);\n } else {\n skipSlider.noUiSlider.set(table[filter]);\n }\n }\n }\n\n return undefined;\n },\n );\n\n // change filter で local storage は更新しない。\n if (prevFilters === null) {\n window.localStorage.removeItem(`${PAGE_NAME}.filters`);\n } else {\n window.localStorage.setItem(`${PAGE_NAME}.filters`, JSON.stringify(prevFilters));\n }\n\n updateGrid2();\n }\n });\n\n document.getElementById('reset-button').addEventListener('click', () => {\n Array.from(document.querySelectorAll('#filter [id^=skipstep-]')).map(\n (skipSlider) => skipSlider.noUiSlider.set(skipSlider.noUiSlider.options.default),\n );\n\n // remove filter\n const selectedFilter = window.localStorage.getItem(`${PAGE_NAME}.selectedFilter`) ?? '0';\n const prevFilters = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.filters`));\n if (prevFilters !== null) {\n if (Object.prototype.hasOwnProperty.call(prevFilters, selectedFilter)) {\n delete prevFilters[selectedFilter];\n if (Object.keys(prevFilters).length === 0) {\n window.localStorage.removeItem(`${PAGE_NAME}.filters`);\n } else {\n window.localStorage.setItem(`${PAGE_NAME}.filters`, JSON.stringify(prevFilters));\n }\n }\n }\n\n updateGrid2();\n });\n\n $.getJSON('/api/profile', (data) => {\n const arr = data[0];\n const [name, popnFriendId, chara, c1, c2, c3, comment, lastUpdate] = arr;\n\n document.getElementById('name').innerHTML = name;\n document.getElementById('chara').innerHTML = chara;\n document.getElementById('popnFriendId').innerHTML = popnFriendId;\n document.getElementById('creditsCount').innerHTML = `${c1} / ${c2} / ${c3}`;\n document.getElementById('comment').innerHTML = comment;\n\n dayjs.extend(window.dayjs_plugin_utc);\n const localTime = dayjs.utc(lastUpdate).local();\n\n document.getElementById('lastUpdate').innerHTML = localTime.format('YYYY/MM/DD HH:mm:ss');\n $('div#profile').show();\n }).fail((jqXHR) => {\n if (jqXHR.status === 404) {\n document.getElementById('name').innerHTML = 'アップロード未完了ユーザー';\n $('div#profile').show();\n }\n });\n\n $.getJSON('/api/values', (data) => {\n allData = data;\n updateGrid(allData); // init\n updateGrid2(); // 1st filter\n\n $('div#score').show();\n $('div#stats').show();\n $('div#stats2').show();\n updateStats();\n updateStats2();\n }).fail((jqXHR) => {\n if (jqXHR.status === 404) {\n allData = [];\n updateGrid(allData);\n updateGrid2();\n\n $('div#score').show();\n $('div#stats').show();\n $('div#stats2').show();\n updateStats();\n updateStats2();\n }\n });\n\n // accordion-item の 表示非表示処理\n const nodelist = document.querySelectorAll('.accordion-item');\n const btns = Array.prototype.slice.call(nodelist, 0);\n btns.forEach((btn) => {\n btn.addEventListener('click', (element) => {\n const ITEM_ID = element.currentTarget.parentNode.id;\n const elm = element.currentTarget.parentNode.querySelectorAll('.content')[0];\n const showStatus = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.show`)) ?? {};\n\n if (elm.style.display !== 'none') {\n elm.style.display = 'none';\n showStatus[ITEM_ID] = '0';\n } else {\n elm.style.display = '';\n showStatus[ITEM_ID] = '1';\n }\n\n window.localStorage.setItem(`${PAGE_NAME}.show`, JSON.stringify(showStatus));\n });\n });\n\n {\n // load filter\n const selectedFilter = window.localStorage.getItem(`${PAGE_NAME}.selectedFilter`) ?? '0';\n document.getElementById(`btnradio${selectedFilter}`).parentNode.click();\n const view = JSON.parse(window.localStorage.getItem('view'));\n const prevFilters = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.filters`));\n const prevFilter = (prevFilters === null\n || !Object.prototype.hasOwnProperty.call(prevFilters, selectedFilter))\n ? null\n : prevFilters[selectedFilter];\n\n const nameData = view?.order === '1' ? otoge.NAME_DATA2 : otoge.NAME_DATA1;\n\n // view\n site.CreateSkipSlider1('name', nameData, view?.name, onSliderStart, onViewSliderSet, 2);\n site.CreateSkipSlider1('align', otoge.ALIGN_DATA, view?.align, onSliderStart, onViewSliderSet, 1);\n site.CreateSkipSlider1('wrap', otoge.WRAP_DATA, view?.wrap, onSliderStart, onViewSliderSet, 0);\n site.CreateSkipSlider1('break', otoge.BREAK_DATA, view?.break, onSliderStart, onViewSliderSet, 0);\n site.CreateSkipSlider1('order', otoge.ORDER_DATA, view?.order, onSliderStart, onViewOrderSliderSet, 0);\n site.CreateSkipSlider1('upper', otoge.UPPER_DATA, view?.upper, onSliderStart, onViewSliderSet, 1);\n\n // filter\n if ((prevFilter?.filter_version == null || prevFilter?.filter_version < 2) &&\n prevFilter?.add_version[0] === '0' &&\n prevFilter?.add_version[1] === '26') {\n prevFilter?.add_version[1] = '27';\n }\n site.CreateSkipSlider1('version', otoge.VERSION_DATA, prevFilter?.version, onSliderStart, onFilterSliderSet, 0);\n site.CreateSkipSlider2('add-version', otoge.ADD_VERSION_DATA, prevFilter?.add_version, onSliderStart, onFilterSliderSet);\n site.CreateSkipSlider2('medal', otoge.MEDAL_DATA, prevFilter?.medal, onSliderStart, onFilterSliderSet);\n site.CreateSkipSlider2('rank', otoge.RANK_DATA, prevFilter?.rank, onSliderStart, onFilterSliderSet);\n site.CreateSkipSlider2('score', otoge.SCORE_DATA, prevFilter?.score, onSliderStart, onFilterSliderSet, 1, undefined, onFilterScoreSliderUpdate);\n site.CreateSkipSlider2('lv', otoge.LV_DATA, prevFilter?.lv, onSliderStart, onFilterSliderSet);\n site.CreateSkipSlider2('lv-type', otoge.LV_TYPE_DATA, prevFilter?.lv_type, onSliderStart, onFilterSliderSet);\n }\n\n // local storage からの読み込み処理\n {\n const showStatus = JSON.parse(window.localStorage.getItem(`${PAGE_NAME}.show`));\n if (showStatus !== null) {\n const nodelist2 = document.querySelectorAll('.accordion-item');\n\n Array.from(nodelist2).map((a) => {\n const { id } = a.parentNode;\n // ls の結果から表示非表示初期対応\n if (showStatus[id]) {\n document.querySelector(`#${id} .content`).style.display = (showStatus[id] === '1') ? '' : 'none';\n }\n return undefined;\n });\n }\n }\n\n initializing = false;\n}\n"],"names":["$1e74faffb68ba8a3$export$29ae9be4f239d5eb","$1e74faffb68ba8a3$export$b2ef79de4aad7ee2","$1e74faffb68ba8a3$export$90203b761f8437f2","$1e74faffb68ba8a3$export$9014f6d13cfe3cb7","$1e74faffb68ba8a3$export$f3ad466aa54b4785","$1e74faffb68ba8a3$export$6ab1457b5ef2c742","$1e74faffb68ba8a3$export$92f7773cd98552e6","$1e74faffb68ba8a3$export$7604bacaa643014d","$1e74faffb68ba8a3$export$9b2ef07002a0ce85","$1e74faffb68ba8a3$export$9a0fca8da336ce8a","$1e74faffb68ba8a3$export$fbdc9646959f858c","$1e74faffb68ba8a3$export$d82c53e7702fe75e","$1e74faffb68ba8a3$export$c997f72d9cc26839","$1e74faffb68ba8a3$export$c14bbb39fab086b0","$1e74faffb68ba8a3$export$94a1503258adbd6","$1e74faffb68ba8a3$export$5ce6209a89deb2bc","$1e74faffb68ba8a3$export$d4133b60643fa9c5","$1e74faffb68ba8a3$export$a5aa4ddf84085b2e","$1e74faffb68ba8a3$export$b768221d2c1318d8","$1e74faffb68ba8a3$export$1ccb888e0abbb150","Array","from","length","v","k","String","shift","$1e74faffb68ba8a3$export$73d2d6170e948738","$ba3269ee33a960ee$export$9e5f01d6f4239890","sTarget","sCount","sortButton","document","querySelector","parentNode","attributes","nodeValue","classList","contains","$ba3269ee33a960ee$export$beefa8cde267470e","pageName","defaultSort","defaultSortCount","selectedFilter","window","localStorage","getItem","prevFilters","JSON","parse","prevFilter","Object","prototype","hasOwnProperty","call","sort","$ba3269ee33a960ee$export$454d598a873e9650","sliderId","dataObject","sliderValues","getElementById","noUiSlider","get","isArray","keys","find","key","$ba3269ee33a960ee$export$5c85e4ea5ae8a7f2","keyAlign","keyWrap","keyBreak","keyOrder","keyUpper","prevView","name","align","wrap","break","order","upper","setItem","stringify","$ba3269ee33a960ee$export$fa9a4469f22cf7f9","id","prevKey","onStart","onSet","defaultKey","skipSlider","defaultPos","startPos","create","range","min","max","start","default","matchingTable","step","tooltips","format","to","Math","round","value","filter","skipValues","on","values","handle","innerHTML","$ba3269ee33a960ee$export$266d5ac9cfd7ce27","prevKeys","margin","defaultPosUpper","updateFn","undefined","connect","firstDataValue","lastDataValue","style","display","innerText","$05556e7da27e597b$var$PAGE_NAME","$05556e7da27e597b$var$mainGrid","$05556e7da27e597b$var$stats1Grid","$05556e7da27e597b$var$stats2Grid","$05556e7da27e597b$var$allData","$05556e7da27e597b$var$filteredData","$05556e7da27e597b$var$updateFilterTimer","$05556e7da27e597b$var$sortClickCount","$05556e7da27e597b$var$sortTarget","$05556e7da27e597b$var$initializing","$05556e7da27e597b$var$fumenFilter","data","version","addVersion","medal","rank","score","lv","lvType","column0","column1","sql","arg","concat","alasql","$05556e7da27e597b$var$onReady","$05556e7da27e597b$var$saveFilterAndSort","table","tableLayout","view","width","$05556e7da27e597b$var$storeSort","off","setTimeout","map","$","trigger","$05556e7da27e597b$var$updateGrid","containerStyle","middleStyle","nameStyle","name1","name2","br","nameColumns","formatter","_","row","displayData","cells","gridjs","html","cell","colspan","hidden","cell0Data","cell1Data","replace","otherColumns","Grid","columns","search","ignoreHiddenColumns","pagination","enabled","limit","fixedHeader","height","th","padding","td","language","previous","next","render","updateConfig","forceRender","keyVersion","keyAddVersion1","keyAddVersion2","keyMedal1","keyMedal2","keyRank1","keyRank2","keyScore1","keyScore2","keyLv1","keyLv2","keyLvType1","keyLvType2","sortStatus","add_version","lv_type","filter_version","$05556e7da27e597b$var$updateGrid2","Number","$05556e7da27e597b$var$updateStats","res","levelTypeOrder","statsData","clearStats","totalStats","element1","medalSum","element2","filterResult","a","c","push","reduce","b","isInteger","h","$05556e7da27e597b$var$updateStats2","targetData","resMedal","resRank","resScore","indexer","medalOrder","rankOrder","scoreTypeOrder","idx","$05556e7da27e597b$var$onSliderStart","clearTimeout","$05556e7da27e597b$var$onViewSliderSet","unencoded","tap","positions","slider","callback","$05556e7da27e597b$var$onFilterSliderSet","addEventListener","target","children","getAttribute","querySelectorAll","set","options","replaceAll","removeItem","getJSON","arr","popnFriendId","chara","c1","c2","c3","comment","lastUpdate","dayjs","extend","dayjs_plugin_utc","localTime","utc","local","show","fail","jqXHR","status","nodelist","slice","forEach","btn","element","ITEM_ID","currentTarget","elm","showStatus","click","currentView","isNewOrder","newNameData","oldNameData","findKeyByValue","obj","updateOptions","dataDisplayObject","keyScore","nodelist2"],"version":3,"file":"index.js.map"}