admin-dev.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template lang='pug'>
  2. v-card(flat)
  3. v-card(color='grey lighten-5')
  4. .pa-3.pt-4
  5. .headline.primary--text Developer Tools
  6. .subheading.grey--text ¯\_(ツ)_/¯
  7. v-tabs(color='grey lighten-4', fixed-tabs, slider-color='primary', show-arrows)
  8. v-tab Graph API Playground
  9. v-tab Graph API Map
  10. v-tab-item(:transition='false', :reverse-transition='false')
  11. #graphiql
  12. </template>
  13. <script>
  14. import React from 'react'
  15. import ReactDOM from 'react-dom'
  16. import GraphiQL from 'graphiql'
  17. export default {
  18. data() {
  19. return {}
  20. },
  21. mounted() {
  22. this.renderGraphiQL()
  23. },
  24. methods: {
  25. renderGraphiQL() {
  26. ReactDOM.render(
  27. React.createElement(GraphiQL, {
  28. fetcher: graphQLParams => {
  29. return fetch('/graphql', {
  30. method: 'post',
  31. headers: {
  32. 'Accept': 'application/json',
  33. 'Content-Type': 'application/json'
  34. },
  35. body: JSON.stringify(graphQLParams),
  36. credentials: 'include'
  37. }).then(function (response) {
  38. return response.text()
  39. }).then(function (responseBody) {
  40. try {
  41. return JSON.parse(responseBody)
  42. } catch (error) {
  43. return responseBody
  44. }
  45. })
  46. },
  47. query: null,
  48. response: null,
  49. variables: null,
  50. operationName: null,
  51. websocketConnectionParams: null
  52. }),
  53. document.getElementById('graphiql')
  54. )
  55. }
  56. }
  57. }
  58. </script>
  59. <style lang='scss'>
  60. #graphiql {
  61. height: calc(100vh - 250px);
  62. .topBar {
  63. background-color: mc('grey', '200');
  64. background-image: none;
  65. padding: 1.5rem 0;
  66. > .title {
  67. display: none;
  68. }
  69. }
  70. .toolbar {
  71. background-color: initial;
  72. box-shadow: initial;
  73. }
  74. .cm-s-wikijs-dark.CodeMirror {
  75. background: darken(mc('grey','900'), 3%);
  76. color: #e0e0e0;
  77. }
  78. .cm-s-wikijs-dark div.CodeMirror-selected {
  79. background: mc('blue','800');
  80. }
  81. .cm-s-wikijs-dark .cm-matchhighlight {
  82. background: mc('blue','800');
  83. }
  84. .cm-s-wikijs-dark .CodeMirror-line::selection, .cm-s-wikijs-dark .CodeMirror-line > span::selection, .cm-s-wikijs-dark .CodeMirror-line > span > span::selection {
  85. background: mc('red', '500');
  86. }
  87. .cm-s-wikijs-dark .CodeMirror-line::-moz-selection, .cm-s-wikijs-dark .CodeMirror-line > span::-moz-selection, .cm-s-wikijs-dark .CodeMirror-line > span > span::-moz-selection {
  88. background: mc('red', '500');
  89. }
  90. .cm-s-wikijs-dark .CodeMirror-gutters {
  91. background: darken(mc('grey','900'), 6%);
  92. border-right: 1px solid mc('grey','900');
  93. }
  94. .cm-s-wikijs-dark .CodeMirror-guttermarker {
  95. color: #ac4142;
  96. }
  97. .cm-s-wikijs-dark .CodeMirror-guttermarker-subtle {
  98. color: #505050;
  99. }
  100. .cm-s-wikijs-dark .CodeMirror-linenumber {
  101. color: mc('grey','800');
  102. }
  103. .cm-s-wikijs-dark .CodeMirror-cursor {
  104. border-left: 1px solid #b0b0b0;
  105. }
  106. .cm-s-wikijs-dark span.cm-comment {
  107. color: mc('orange','800');
  108. }
  109. .cm-s-wikijs-dark span.cm-atom {
  110. color: #aa759f;
  111. }
  112. .cm-s-wikijs-dark span.cm-number {
  113. color: #aa759f;
  114. }
  115. .cm-s-wikijs-dark span.cm-property, .cm-s-wikijs-dark span.cm-attribute {
  116. color: #90a959;
  117. }
  118. .cm-s-wikijs-dark span.cm-keyword {
  119. color: #ac4142;
  120. }
  121. .cm-s-wikijs-dark span.cm-string {
  122. color: #f4bf75;
  123. }
  124. .cm-s-wikijs-dark span.cm-variable {
  125. color: #90a959;
  126. }
  127. .cm-s-wikijs-dark span.cm-variable-2 {
  128. color: #6a9fb5;
  129. }
  130. .cm-s-wikijs-dark span.cm-def {
  131. color: #d28445;
  132. }
  133. .cm-s-wikijs-dark span.cm-bracket {
  134. color: #e0e0e0;
  135. }
  136. .cm-s-wikijs-dark span.cm-tag {
  137. color: #ac4142;
  138. }
  139. .cm-s-wikijs-dark span.cm-link {
  140. color: #aa759f;
  141. }
  142. .cm-s-wikijs-dark span.cm-error {
  143. background: #ac4142;
  144. color: #b0b0b0;
  145. }
  146. .cm-s-wikijs-dark .CodeMirror-activeline-background {
  147. background: mc('grey','900');
  148. }
  149. .cm-s-wikijs-dark .CodeMirror-matchingbracket {
  150. text-decoration: underline;
  151. color: white !important;
  152. }
  153. }
  154. </style>