PageSourceSearch

https://front.stockoption.cloud/assets/controllers/point_shortcut_…5345595103af6bd8b5a459368b7baee80d613995.js

js stockoption.cloud collected 2026-10-04 19:21:55 UTC 2,601 bytes, 84 lines download raw bytes

1import { Controller } from "@hotwired/stimulus"
2
3export default class extends Controller {
4  static targets = ["pointMasterId", "grantUrl", "importUrl", "defaultImportUrl", "selectorTrigger", "selectedName", "modal", "tab", "list", "grantButton", "grantButtonText", "importButton"]
5
6  openModal(event) {
7    event.preventDefault()
8    this.modalTarget.classList.add('-on')
9  }
10
11  closeModal() {
12    this.modalTarget.classList.remove('-on')
13  }
14
15  switchTab(event) {
16    event.preventDefault()
17    const groupId = event.currentTarget.dataset.groupId
18
19    // タブのアクティブ状態を更新(p-tabの-crクラス)
20    this.tabTargets.forEach(tab => {
21      tab.classList.toggle('-cr', tab.dataset.groupId === groupId)
22    })
23
24    // リストの表示を切り替え
25    this.listTargets.forEach(list => {
26      list.classList.toggle('-hidden', list.dataset.groupId !== groupId)
27    })
28  }
29
30  selectItem(event) {
31    event.preventDefault()
32    const item = event.currentTarget
33    const id = item.dataset.id
34    const name = item.dataset.name
35    const grantUrl = item.dataset.grantUrl || ''
36    const importUrl = item.dataset.importUrl || ''
37    const grantLabel = item.dataset.grantLabel || ''
38
39    // 値を設定
40    this.pointMasterIdTarget.value = id
41    this.grantUrlTarget.value = grantUrl
42    this.selectedNameTarget.textContent = name
43    this.selectorTriggerTarget.classList.add('-selected')
44
45    // ポイント付与ボタンの有効/無効とテキスト更新
46    if (grantUrl) {
47      this.grantButtonTarget.classList.remove('-disabled')
48      if (grantLabel) {
49        this.grantButtonTextTarget.textContent = grantLabel
50      }
51    } else {
52      this.grantButtonTarget.classList.add('-disabled')
53    }
54
55    // CSVインポートボタンの有効/無効
56    // 評価項目が選択されている場合、その項目にimport_urlがなければ無効
57    if (importUrl) {
58      this.importUrlTarget.value = importUrl
59      this.importButtonTarget.classList.remove('-disabled')
60    } else {
61      this.importUrlTarget.value = ''
62      this.importButtonTarget.classList.add('-disabled')
63    }
64
65    // モーダルを閉じる
66    this.closeModal()
67  }
68
69  grantPoint(event) {
70    event.preventDefault()
71    if (this.grantButtonTarget.classList.contains('-disabled')) return
72
73    const url = this.grantUrlTarget.value
74    if (url) window.location.href = url
75  }
76
77  importCsv(event) {
78    event.preventDefault()
79    if (this.importButtonTarget.classList.contains('-disabled')) return
80
81    const url = this.importUrlTarget.value
82    if (url) window.location.href = url
83  }
84};

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.