PageSourceSearch

https://mahonotes.pages.dev/js/store.js

js mahonotes.pages.dev collected 2026-10-03 05:24:55 UTC 2,459 bytes, 63 lines download raw bytes

1const          SELECT_CHARA_MUTATION = "SELECT_CHARA_MUTATION"
2const    ADD_SKILL_AND_TIME_MUTATION = "ADD_SKILL_AND_TIME_MUTATION"
3const REMOVE_SKILL_AND_TIME_MUTATION = "REMOVE_SKILL_AND_TIME_MUTATION"
4const                 CLEAR_MUTATION = "CLEAR_MUTATION"
5const           INIT_CHARAS_MUTATION = "INIT_CHARAS_MUTATION"
6
7const store = new Vuex.Store({
8    strict: ENVIROMENT_IS_DEVELOPMENT,
9    state: {
10        charas             : [],
11        selectedCharas     : [],
12        addedSkillsAndTimes: [],
13    },
14    mutations: {
15        [INIT_CHARAS_MUTATION](state, charas) {
16            state.charas = charas
17        },
18        [SELECT_CHARA_MUTATION](state, chara) {
19            if (state.selectedCharas.includes(chara)) {
20                let index = state.selectedCharas.indexOf(chara)
21                state.selectedCharas.splice(index, 1)
22                
23                if (state.selectedCharas == 0) {
24                    clearArrays(state.addedSkillsAndTimes)
25                }
26            }
27            else if (state.selectedCharas.length < 5) {
28                state.selectedCharas.push(chara)
29                state.selectedCharas.sort((a, b) => b.position - a.position)
30            }
31        },
32        [ADD_SKILL_AND_TIME_MUTATION](state, item) {
33            state.addedSkillsAndTimes.push(item)
34            state.addedSkillsAndTimes.sort((a, b) => b.useTime.toTotalSecond(true) - a.useTime.toTotalSecond(true))
35        },
36        [REMOVE_SKILL_AND_TIME_MUTATION](state, item) {
37            let index = state.addedSkillsAndTimes.indexOf(item)
38            state.addedSkillsAndTimes.splice(index, 1)
39        },
40        [CLEAR_MUTATION](state) {
41            clearArrays(state.selectedCharas, state.addedSkillsAndTimes)
42        },
43    },
44    getters: {
45        charaIsSelected(state) {
46            return chara => state.selectedCharas.includes(chara)
47        },
48        timelines(state) {
49            let skillNames = [...new Set(state.addedSkillsAndTimes.map(item => item.name))]
50            
51            return skillNames.map(skillName => {
52                let t        = state.addedSkillsAndTimes.filter(item => item.name == skillName)
53
54                let chara    = t[0].chara
55                let name     = t[0].name
56                let time     = t[0].time
57                let useTimes = t.map(({ useTime }) => useTime.toTotalSecond(true))
58
59                return new Timeline(chara, name, time, useTimes)
60            })
61        },
62    },
63})

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.