Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quantum-kittens
GitHub Repository: quantum-kittens/platypus
Path: blob/main/frontend/vue/main.ts
3353 views
1
import { QiskitBanner } from '@qiskit-community/qiskit-vue'
2
import wrapper from './wc-wrapper/platypusWrapper'
3
4
import CodeMirrorClipboardCopy from './components/CodeMirrorClipboardCopy/CodeMirrorClipboardCopy.vue'
5
import TheMenu from './components/TheMenu/index.vue'
6
import WhatIsQuantumVolume from './components/WhatIsQuantumVolume/WhatIsQuantumVolume.vue'
7
import LayersCircuit from './components/WhatIsQuantumVolume/LayersCircuit.vue'
8
import DragAndDropCode from './components/DragAndDropCode/DragAndDropCode.vue'
9
import EndUserLicenseAgreementLayout from './components/UserAccount/EndUserLicenseAgreementLayout.vue'
10
import Carousel from './components/Carousel/Carousel.vue'
11
import MiniComposer from './components/MiniComposer/MiniComposer.vue'
12
import CircuitSandboxWidget from './components/MiniComposer/CircuitSandboxWidget.vue'
13
import Quiz from './components/Quiz/Quiz.vue'
14
import AppCta from './components/common/AppCta.vue'
15
import ContentMenu from './components/common/ContentMenu.vue'
16
import LanguageSelector from './components/common/LanguageSelector.vue'
17
import UtilityPanel from './components/UtilityPanel/UtilityPanel.vue'
18
import UtilityPanelHeader from './components/UtilityPanel/UtilityPanelHeader.vue'
19
import UtilityPanelDropdown from './components/UtilityPanel/UtilityPanelDropdown.vue'
20
import UtilityPanelContent from './components/UtilityPanel/UtilityPanelContent.vue'
21
import LessonNotes from './components/UtilityPanel/LessonNotes.vue'
22
import UniversalGlossary from './components/UtilityPanel/UniversalGlossary.vue'
23
import EmptyPanel from './components/UtilityPanel/EmptyPanel.vue'
24
import Binary from './components/Binary/Binary.vue'
25
import BinaryTile from './components/Binary/BinaryTile.vue'
26
import SignIn from './components/SignIn/SignIn.vue'
27
import UserAccountLayout from './components/UserAccount/UserAccountLayout.vue'
28
import UserAccountSectionHeader from './components/UserAccount/UserAccountSectionHeader.vue'
29
import AmplitudeDisk from './components/AmplitudeDisk/AmplitudeDisk.vue'
30
import AmplitudeDiskWithValues from './components/AmplitudeDisk/AmplitudeDiskWithValues.vue'
31
import AmplitudeAdditionDisk from './components/AmplitudeDisk/AmplitudeAdditionDisk.vue'
32
import AmplitudeAdditionDiskWithValues from './components/AmplitudeDisk/AmplitudeAdditionDiskWithValues.vue'
33
import AmplitudeAdditionWidget from './components/AmplitudeDisk/AmplitudeAdditionWidget.vue'
34
import StatevectorAmplitudeEncoding from './components/Statevector/StatevectorAmplitudeEncoding.vue'
35
import StatevectorBinaryEncoding from './components/Statevector/StatevectorBinaryEncoding.vue'
36
import CodeExercise from './components/CodeExercise/CodeExercise.vue'
37
import EigenvectorWidget from './components/Eigenvector/EigenvectorWidget.vue'
38
import SyllabusLayout from './components/Syllabus/SyllabusLayout.vue'
39
import SyllabusCreateLayout from './components/Syllabus/SyllabusCreateLayout.vue'
40
41
declare global {
42
interface Window {
43
textbook: any
44
}
45
}
46
47
const kebabize = (str:string) => {
48
return str.split('').map((letter:string, idx:number) => {
49
return letter.toUpperCase() === letter
50
? `${idx !== 0 ? '-' : ''}${letter.toLowerCase()}`
51
: letter
52
}).join('')
53
}
54
55
const components: any = {
56
QiskitBanner,
57
AppCta,
58
CodeMirrorClipboardCopy,
59
ContentMenu,
60
LanguageSelector,
61
TheMenu,
62
LayersCircuit,
63
WhatIsQuantumVolume,
64
DragAndDropCode,
65
EndUserLicenseAgreementLayout,
66
Carousel,
67
Quiz,
68
UtilityPanel,
69
UtilityPanelDropdown,
70
UtilityPanelContent,
71
UtilityPanelHeader,
72
LessonNotes,
73
UniversalGlossary,
74
EmptyPanel,
75
MiniComposer,
76
CircuitSandboxWidget,
77
Binary,
78
BinaryTile,
79
SignIn,
80
UserAccountLayout,
81
UserAccountSectionHeader,
82
AmplitudeDisk,
83
AmplitudeDiskWithValues,
84
AmplitudeAdditionDisk,
85
AmplitudeAdditionDiskWithValues,
86
AmplitudeAdditionWidget,
87
StatevectorAmplitudeEncoding,
88
StatevectorBinaryEncoding,
89
SyllabusLayout,
90
SyllabusCreateLayout,
91
CodeExercise,
92
EigenvectorWidget
93
}
94
95
Object.keys(components).forEach((c) => {
96
const CustomElement = wrapper(components[c])
97
window.customElements.define(`q-${kebabize(c)}`, CustomElement)
98
})
99
100