├── .babelrc
├── .eslintrc
├── .gitignore
├── .yarnrc
├── LICENSE
├── README.md
├── css
├── cgraphiql.css
└── graphiql.css
├── example
├── README.md
├── index.html
├── package.json
├── server.js
└── yarn.lock
├── package.json
├── resources
├── build.sh
├── cgraphiql.gif
├── cgraphiql2.png
├── checkgit.sh
├── prepublish.sh
└── updateWebsite.sh
├── server
├── app.js
├── index.html
├── paths.js
└── webpack.config.js
├── src
├── components
│ ├── CustomGraphiQL.js
│ ├── EditHeaderFormItem.js
│ ├── EditHeaderModal.js
│ ├── GenerateMutation.js
│ ├── GetSetURL.js
│ └── TopBar.js
├── helpers
│ ├── getParameters.js
│ └── json2-mod.js
└── index.js
├── website
├── img
│ └── favicon.png
└── index.html
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-env",
4 | "@babel/preset-react"
5 | ],
6 | "plugins": [
7 | "@babel/plugin-proposal-class-properties"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "parser": "babel-eslint",
3 |
4 | "plugins": [
5 | "babel",
6 | "react"
7 | ],
8 |
9 | "settings": {
10 | "react": {
11 | "version": "0.15.0"
12 | }
13 | },
14 |
15 | "env": {
16 | "browser": true,
17 | "es6": true,
18 | "node": true
19 | },
20 |
21 | "extends": [
22 | "prettier"
23 | ],
24 |
25 | "parserOptions": {
26 | "arrowFunctions": true,
27 | "binaryLiterals": true,
28 | "blockBindings": true,
29 | "classes": true,
30 | "defaultParams": true,
31 | "destructuring": true,
32 | "experimentalObjectRestSpread": true,
33 | "forOf": true,
34 | "generators": true,
35 | "globalReturn": true,
36 | "jsx": true,
37 | "modules": true,
38 | "objectLiteralComputedProperties": true,
39 | "objectLiteralDuplicateProperties": true,
40 | "objectLiteralShorthandMethods": true,
41 | "objectLiteralShorthandProperties": true,
42 | "octalLiterals": true,
43 | "regexUFlag": true,
44 | "regexYFlag": true,
45 | "restParams": true,
46 | "spread": true,
47 | "superInFunctions": true,
48 | "templateStrings": true,
49 | "unicodeCodePointEscapes": true
50 | },
51 |
52 | "rules": {
53 | "react/no-deprecated": 2,
54 | "react/no-did-mount-set-state": 2,
55 | "react/no-did-update-set-state": 2,
56 | "react/no-direct-mutation-state": 2,
57 | "react/no-string-refs": 2,
58 | "react/no-unknown-property": 2,
59 | "react/prefer-es6-class": 2,
60 | "react/prefer-stateless-function": 2,
61 | "react/prop-types": [2, {"ignore": ["children"]}],
62 | "react/react-in-jsx-scope": 2,
63 | "react/self-closing-comp": 2,
64 | "react/sort-comp": [2, {"order": [
65 | "static-methods",
66 | "lifecycle",
67 | "everything-else",
68 | "render"
69 | ]}],
70 | "react/jsx-boolean-value": 2,
71 | "react/jsx-handler-names": 2,
72 | "react/jsx-key": 2,
73 | "react/jsx-no-duplicate-props": 2,
74 | "react/jsx-no-literals": 2,
75 | "react/jsx-no-undef": 2,
76 | "react/jsx-pascal-case": 2,
77 | "react/jsx-uses-react": 2,
78 | "react/jsx-uses-vars": 2,
79 |
80 | "block-scoped-var": 0,
81 | "callback-return": 2,
82 | "camelcase": [2, {"properties": "always"}],
83 | "comma-dangle": 0,
84 | "comma-spacing": 0,
85 | "complexity": 0,
86 | "consistent-return": 0,
87 | "consistent-this": 0,
88 | "curly": [2, "all"],
89 | "default-case": 0,
90 | "dot-notation": 0,
91 | "eqeqeq": 2,
92 | "func-names": 0,
93 | "func-style": 0,
94 | "guard-for-in": 2,
95 | "handle-callback-err": [2, "error"],
96 | "id-length": 0,
97 | "id-match": [2, "^(?:_?[a-zA-Z0-9]*)|[_A-Z0-9]+$"],
98 | "indent": 0,
99 | "init-declarations": 0,
100 | "linebreak-style": 2,
101 | "lines-around-comment": 0,
102 | "max-depth": 0,
103 | "max-nested-callbacks": 0,
104 | "max-params": 0,
105 | "max-statements": 0,
106 | "new-cap": 0,
107 | "newline-after-var": 0,
108 | "no-alert": 2,
109 | "no-array-constructor": 2,
110 | "no-await-in-loop": 2,
111 | "no-bitwise": 0,
112 | "no-caller": 2,
113 | "no-catch-shadow": 0,
114 | "no-class-assign": 2,
115 | "no-cond-assign": 2,
116 | "no-console": 1,
117 | "no-const-assign": 2,
118 | "no-constant-condition": 2,
119 | "no-continue": 0,
120 | "no-control-regex": 0,
121 | "no-debugger": 1,
122 | "no-delete-var": 2,
123 | "no-div-regex": 2,
124 | "no-dupe-args": 2,
125 | "no-dupe-keys": 2,
126 | "no-duplicate-case": 2,
127 | "no-else-return": 2,
128 | "no-empty": 2,
129 | "no-empty-character-class": 2,
130 | "no-eq-null": 0,
131 | "no-eval": 2,
132 | "no-ex-assign": 2,
133 | "no-extend-native": 2,
134 | "no-extra-bind": 2,
135 | "no-extra-boolean-cast": 2,
136 | "no-extra-parens": 0,
137 | "no-fallthrough": 2,
138 | "no-floating-decimal": 2,
139 | "no-func-assign": 2,
140 | "no-implicit-coercion": 2,
141 | "no-implied-eval": 2,
142 | "no-inline-comments": 0,
143 | "no-inner-declarations": [2, "functions"],
144 | "no-invalid-regexp": 2,
145 | "no-invalid-this": 0,
146 | "no-irregular-whitespace": 2,
147 | "no-iterator": 2,
148 | "no-label-var": 2,
149 | "no-labels": [2, {"allowLoop": true}],
150 | "no-lone-blocks": 2,
151 | "no-lonely-if": 2,
152 | "no-loop-func": 0,
153 | "no-mixed-requires": [2, true],
154 | "no-multi-str": 2,
155 | "no-multiple-empty-lines": 0,
156 | "no-native-reassign": 0,
157 | "no-negated-in-lhs": 2,
158 | "no-nested-ternary": 0,
159 | "no-new": 2,
160 | "no-new-func": 0,
161 | "no-new-object": 2,
162 | "no-new-require": 2,
163 | "no-new-wrappers": 2,
164 | "no-obj-calls": 2,
165 | "no-octal": 2,
166 | "no-octal-escape": 2,
167 | "no-param-reassign": 2,
168 | "no-path-concat": 2,
169 | "no-plusplus": 0,
170 | "no-process-env": 0,
171 | "no-process-exit": 0,
172 | "no-proto": 2,
173 | "no-redeclare": 2,
174 | "no-regex-spaces": 2,
175 | "no-restricted-modules": 0,
176 | "no-return-assign": 2,
177 | "no-script-url": 2,
178 | "no-self-compare": 0,
179 | "no-sequences": 2,
180 | "no-shadow": 2,
181 | "no-shadow-restricted-names": 2,
182 | "no-sparse-arrays": 2,
183 | "no-sync": 2,
184 | "no-ternary": 0,
185 | "no-this-before-super": 2,
186 | "no-throw-literal": 2,
187 | "no-undef": 2,
188 | "no-undef-init": 2,
189 | "no-undefined": 0,
190 | "no-underscore-dangle": 0,
191 | "no-unexpected-multiline": 2,
192 | "no-unneeded-ternary": 2,
193 | "no-unreachable": 2,
194 | "no-unused-expressions": 2,
195 | "no-unused-vars": [2, {"vars": "all", "args": "after-used"}],
196 | "no-use-before-define": 0,
197 | "no-useless-call": 2,
198 | "no-useless-escape": 2,
199 | "no-useless-return": 2,
200 | "no-var": 2,
201 | "no-void": 2,
202 | "no-warning-comments": 0,
203 | "no-with": 2,
204 | "object-curly-spacing": [0, "always"],
205 | "object-shorthand": [2, "always"],
206 | "one-var": [2, "never"],
207 | "operator-assignment": [2, "always"],
208 | "padded-blocks": 0,
209 | "prefer-const": 2,
210 | "prefer-reflect": 0,
211 | "prefer-spread": 0,
212 | "radix": 2,
213 | "require-yield": 2,
214 | "sort-vars": 0,
215 | "space-in-parens": 0,
216 | "spaced-comment": [2, "always"],
217 | "strict": 0,
218 | "use-isnan": 2,
219 | "valid-jsdoc": 0,
220 | "valid-typeof": 2,
221 | "vars-on-top": 0,
222 | "wrap-regex": 0,
223 | "yoda": [2, "never", {"exceptRange": true}]
224 | }
225 | }
226 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.swp
2 | *~
3 | .*.haste_cache.*
4 | .DS_Store
5 | npm-debug.log
6 | .env
7 |
8 | node_modules/
9 | coverage/
10 | dist/
11 | /custom-graphiql.js
12 | /custom-graphiql.min.js
13 | /custom-graphiql.css
14 |
15 | yarn-error.log
16 |
17 | website/css
18 | website/js
19 |
--------------------------------------------------------------------------------
/.yarnrc:
--------------------------------------------------------------------------------
1 | save-prefix ""
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | CustomGraphiQL
2 | ==============
3 |
4 | A custom wrapper around [graphiql](https://github.com/graphql/graphiql/) package
5 | which offers more utility button and a component which allows to query any graphql
6 | endpoint. Inspired from [graphiql-app](https://github.com/skevy/graphiql-app/)
7 | but within browser without requirement for an app.
8 |
9 | [](https://www.npmjs.com/package/custom-graphiql)
10 |
11 | Try it out here: https://graphiql-ide.netlify.com/
12 |
13 | 
14 |
15 | 
16 |
17 | ### Getting started
18 |
19 | ```sh
20 | npm install --save custom-graphiql
21 | # OR
22 | yarn add custom-graphiql
23 | ```
24 |
25 | CustomGraphiQL is React component which wraps existing GraphiQL component. It
26 | can be directly hosted on your server. Check the example directory for how to
27 | setup CustomGraphiQL on any endpoint of your express server.
28 |
29 | Build for the web with [webpack](http://webpack.github.io/) or
30 | [browserify](http://browserify.org/), or use the pre-bundled custom-graphiql.js
31 | file. See the example in the git repository to see how to use the pre-bundled
32 | file. Alternatively you can get custom-graphiql.js or custom-graphiql.min.js from
33 | the [releases page](https://github.com/shahankit/custom-graphiql/releases).
34 |
35 | Don't forget to include the CSS file on the page! If you're using npm, you can
36 | find it in `node_modules/custom-graphiql/custom-graphiql.css`, or you can
37 | download it from the [releases page](https://github.com/graphql/graphiql/releases).
38 |
39 | It can be directly hosted on your server. Check out the [example](./example) in
40 | thie repository for how to setup CustomGraphiQL on any endpoint of your express server.
41 |
42 | ### Features
43 |
44 | * Generates stub mutation by scanning you schema.
45 | * Share current query using Get or Set query button.
46 |
47 | ### Usage
48 |
49 | CustomGraphiQL exports a single React component and it can further customized.
50 |
51 | ```js
52 | import CustomGraphiQL from 'custom-graphiql';
53 |
54 |
55 | ```
56 |
57 | CustomGraphiQL supports all the props and children accepted by GraphiQL **except the
58 | `fetcher` prop**. The fetch function is implemented within the component and hence no
59 | fetcher props is required for CustomGraphiQL component. Check [here](https://github.com/graphql/graphiql#usage)
60 | for description of available props and children and their example usage.
61 |
62 | ### Contributing
63 |
64 | 1. Fork this repo by using the "Fork" button in the upper-right
65 |
66 | 2. Check out your fork
67 |
68 | ```sh
69 | git clone git@github.com:yournamehere/graphiql.git
70 | ```
71 |
72 | 3. Install or Update all dependencies
73 |
74 | ```sh
75 | yarn
76 | ```
77 |
78 | 4. Run development server
79 |
80 | ```sh
81 | yarn dev
82 | ```
83 |
84 | 5. Push your changes and raise a PR.
85 |
--------------------------------------------------------------------------------
/css/cgraphiql.css:
--------------------------------------------------------------------------------
1 | /* Root */
2 |
3 | .cgraphiql-container {
4 | height: 100vh;
5 | margin: 0px;
6 | width: 100%;
7 | display: flex;
8 | overflow: hidden;
9 | flex-direction: column;
10 | }
11 |
12 | /* Common */
13 |
14 | .shadow-button {
15 | padding: 3px 16px;
16 | font-size: 14px;
17 | line-height: 20px;
18 | height: 32px;
19 | box-sizing: border-box;
20 | display: flex;
21 | align-items: center;
22 | justify-content: center;
23 | font-weight: 600;
24 | color: rgb(51, 51, 51);
25 | white-space: nowrap;
26 | cursor: pointer;
27 | user-select: none;
28 | background-color: rgb(238, 238, 238);
29 | background-image: linear-gradient(rgb(252, 252, 252), rgb(238, 238, 238));
30 | border: 1px solid rgb(213, 213, 213);
31 | border-radius: 5px;
32 | font-family: Helvetica;
33 | }
34 | .shadow-button:hover {
35 | text-decoration: none;
36 | background-color: #ddd;
37 | background-image: linear-gradient(#eee, #ddd);
38 | border-color: #ccc;
39 | }
40 | .shadow-button:focus {
41 | box-shadow: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
42 | outline: 0;
43 | }
44 | .toolbar-button-wrapper {
45 | position: relative;
46 | }
47 | .cgraphiql-container .menu-popup {
48 | position: absolute;
49 | top: 100%;
50 | left: 0px;
51 | z-index: 100;
52 | padding-top: 5px;
53 | padding-bottom: 5px;
54 | margin-top: 2px;
55 | margin-left: 5px;
56 | background-color: rgb(248, 248, 248);
57 | background-clip: padding-box;
58 | border: 1px solid rgba(0, 0, 0, 0.15);
59 | border-radius: 4px;
60 | box-shadow: rgba(0, 0, 0, 0.15) 0px 3px 12px;
61 | max-height: 385px;
62 | overflow-y: auto;
63 | }
64 |
65 | /* TopBar */
66 |
67 | .top-bar {
68 | width: 100%;
69 | background: linear-gradient(#f7f7f7, #e2e2e2);
70 | border-bottom: 1px solid #d0d0d0;
71 | padding: 7px 14px 6px;
72 | display: flex;
73 | flex-direction: row;
74 | align-items: center;
75 | min-height: 53px;
76 | box-sizing: border-box;
77 | }
78 | .url-input-wrapper {
79 | display: flex;
80 | flex-direction: row;
81 | align-items: center;
82 | line-height: 25px;
83 | background-position: right 8px center;
84 | border-radius: 5px 0px 0px 5px;
85 | outline: none;
86 | border: 1px solid rgb(213, 213, 213);
87 | box-shadow: rgba(0, 0, 0, 0.075) 0px 1px 2px inset;
88 | color: rgb(118, 118, 118);
89 | background-color: rgb(255, 255, 255);
90 | }
91 | .url-input-wrapper:focus-within {
92 | border: 1px solid #51a7e8;
93 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075),
94 | 0 0 5px rgba(81, 167, 232, 0.5);
95 | color: #4078c0;
96 | background-color: #edf2f9;
97 | }
98 | .url-input-wrapper.error {
99 | color: #b00;
100 | background-image: linear-gradient(#fdf3f3, #e6d6d7);
101 | border: 1px solid rgba(187, 0, 0, 0.4);
102 | }
103 | .url-input {
104 | padding: 0px 8px;
105 | width: 300px;
106 | min-height: 30px;
107 | font-size: 15px;
108 | border: 0px;
109 | box-shadow: none;
110 | outline: none;
111 | background-color: white;
112 | }
113 | .url-input-label {
114 | padding-right: 12px;
115 | padding-left: 12px;
116 | font-size: 16px;
117 | white-space: nowrap;
118 | border-right: 1px solid rgb(238, 238, 238);
119 | font-family: Helvetica;
120 | }
121 | .fetch-button {
122 | border-left-width: 0;
123 | border-top-left-radius: 0;
124 | border-bottom-left-radius: 0;
125 | }
126 | .edit-headers-button {
127 | margin-left: 30px;
128 | }
129 |
130 | /* EditFormModal */
131 |
132 | .edit-form-modal-container {
133 | position: absolute;
134 | top: 0px;
135 | right: 0px;
136 | bottom: 0px;
137 | left: 0px;
138 | z-index: 1000;
139 | background-color: rgba(0, 0, 0, 0.3);
140 | padding: 60px 0px;
141 | display: flex;
142 | flex-direction: column;
143 | align-items: center;
144 | }
145 | .edit-form-modal {
146 | box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px;
147 | background-color: white;
148 | border: 1px solid rgba(0, 0, 0, 0.2);
149 | border-radius: 3px;
150 | outline: 0px;
151 | padding: 15px 20px;
152 | width: 50%;
153 | }
154 | .edit-form-modal .title {
155 | font-size: 14px;
156 | line-height: 20px;
157 | font-weight: 600;
158 | color: rgb(51, 51, 51);
159 | font-family: Helvetica;
160 | margin-bottom: 10px;
161 | }
162 | .edit-form-modal .buttons-container {
163 | display: flex;
164 | justify-content: flex-end;
165 | padding-top: 20px;
166 | }
167 | .edit-form-modal .save-button {
168 | margin-left: 25px;
169 | }
170 |
171 | /* EditFormModalItem */
172 |
173 | .edit-form-input-item {
174 | display: flex;
175 | flex: 1 1 0%;
176 | flex-direction: row;
177 | margin-bottom: 3px;
178 | }
179 | .edit-form-input-item .input-row {
180 | display: flex;
181 | flex: 1 1 0%;
182 | flex-direction: row;
183 | border-radius: 3px 0px 0px 3px;
184 | }
185 | .edit-form-input-item .input-row:focus {
186 | background-color: #fafafa;
187 | }
188 | .edit-form-input-item .input-row.input-row-invalid {
189 | background-color: #f8eded;
190 | }
191 | .edit-form-input-item .input {
192 | width: calc(50% - 10px);
193 | height: 30px;
194 | background-color: transparent;
195 | font-size: 14px;
196 | border-width: 0px 0px 1px;
197 | border-bottom-style: solid;
198 | border-bottom-color: rgb(240, 240, 240);
199 | padding: 10px;
200 | color: rgb(80, 80, 80);
201 | font-family: Helvetica;
202 | box-sizing: border-box;
203 | line-height: normal;
204 | margin: 0px 10px 0px 0px;
205 | }
206 | .edit-form-input-item .input:focus {
207 | outline: none;
208 | border-bottom-color: #4078c0;
209 | }
210 | .edit-form-input-item .input.key-input {
211 | margin-right: 10px;
212 | }
213 | .edit-form-input-item .input.value-input {
214 | margin-left: 10px;
215 | }
216 | .edit-form-input-item .delete-button {
217 | width: 30px;
218 | height: 30px;
219 | padding: 0px;
220 | margin-left: 3px;
221 | }
222 | .edit-form-input-item .delete-button-stub {
223 | background-color: transparent;
224 | cursor: unset;
225 | }
226 |
227 | /* GenerateMutation */
228 |
229 | .mutation-search-input {
230 | margin: 8px;
231 | padding: 0px 8px;
232 | width: 250px;
233 | min-height: 28px;
234 | font-size: 14px;
235 | font-family: Helvetica;
236 | background-color: white;
237 | color: rgb(51, 51, 51);
238 | vertical-align: middle;
239 | background-repeat: no-repeat;
240 | background-position: right 8px center;
241 | border-radius: 5px;
242 | border: 1px solid rgb(221, 221, 221);
243 | outline: none;
244 | box-shadow: rgba(0, 0, 0, 0.075) 0px 1px 2px inset;
245 | }
246 | .mutation-search-input:focus {
247 | border: 1px solid #51a7e8;
248 | outline: none;
249 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075),
250 | 0 0 5px rgba(81, 167, 232, 0.5);
251 | }
252 | .menu-list-item {
253 | display: block;
254 | padding: 8px 8px 8px 30px;
255 | overflow: hidden;
256 | text-overflow: ellipsis;
257 | white-space: nowrap;
258 | cursor: pointer;
259 | font-size: 13px;
260 | font-family: Helvetica;
261 | border-bottom: 1px solid rgb(238, 238, 238);
262 | background-color: white;
263 | color: rgb(102, 102, 102);
264 | }
265 | .menu-list-item:hover {
266 | background-color: #4078c0;
267 | color: white;
268 | }
269 |
270 | .saveURLButton:hover {
271 | background-color: #4078c0;
272 | color: white;
273 | }
274 |
275 | /* GetSetURL */
276 |
277 | .get-set-url-popup .input {
278 | margin: 8px;
279 | padding: 0px 8px;
280 | width: 300px;
281 | min-height: 30px;
282 | font-size: 15px;
283 | background-color: white;
284 | color: rgb(51, 51, 51);
285 | vertical-align: middle;
286 | background-repeat: no-repeat;
287 | background-position: right 8px center;
288 | border: 1px solid rgb(221, 221, 221);
289 | border-radius: 5px;
290 | outline: none;
291 | box-shadow: rgba(0, 0, 0, 0.075) 0px 1px 2px inset;
292 | }
293 | .get-set-url-popup .input:focus {
294 | border: 1px solid #51a7e8;
295 | outline: none;
296 | box-shadow: inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(81,167,232,0.5);
297 | }
298 | .get-set-url-popup .button-container {
299 | display: flex;
300 | flex-direction: row;
301 | margin: 0px 8px 8px 8px;
302 | }
303 | .get-set-url-popup .button {
304 | margin-right: 8px;
305 | min-width: 82px;
306 | }
307 | .get-set-url-popup .copied-button {
308 | color: #55b230;
309 | }
310 | .get-set-url-popup .copied-button:focus {
311 | box-shadow: 0 0 0 0.2em rgba(52,208,88,.4);
312 | }
--------------------------------------------------------------------------------
/css/graphiql.css:
--------------------------------------------------------------------------------
1 | .graphiql-container,
2 | .graphiql-container button,
3 | .graphiql-container input {
4 | color: #141823;
5 | font-family:
6 | system,
7 | -apple-system,
8 | 'San Francisco',
9 | '.SFNSDisplay-Regular',
10 | 'Segoe UI',
11 | Segoe,
12 | 'Segoe WP',
13 | 'Helvetica Neue',
14 | helvetica,
15 | 'Lucida Grande',
16 | arial,
17 | sans-serif;
18 | font-size: 14px;
19 | }
20 |
21 | .graphiql-container {
22 | display: -webkit-box;
23 | display: -ms-flexbox;
24 | display: flex;
25 | -webkit-box-orient: horizontal;
26 | -webkit-box-direction: normal;
27 | -ms-flex-direction: row;
28 | flex-direction: row;
29 | height: 100%;
30 | margin: 0;
31 | overflow: hidden;
32 | width: 100%;
33 | }
34 |
35 | .graphiql-container .editorWrap {
36 | display: -webkit-box;
37 | display: -ms-flexbox;
38 | display: flex;
39 | -webkit-box-orient: vertical;
40 | -webkit-box-direction: normal;
41 | -ms-flex-direction: column;
42 | flex-direction: column;
43 | -webkit-box-flex: 1;
44 | -ms-flex: 1;
45 | flex: 1;
46 | overflow-x: hidden;
47 | }
48 |
49 | .graphiql-container .title {
50 | font-size: 18px;
51 | }
52 |
53 | .graphiql-container .title em {
54 | font-family: georgia;
55 | font-size: 19px;
56 | }
57 |
58 | .graphiql-container .topBarWrap {
59 | display: -webkit-box;
60 | display: -ms-flexbox;
61 | display: flex;
62 | -webkit-box-orient: horizontal;
63 | -webkit-box-direction: normal;
64 | -ms-flex-direction: row;
65 | flex-direction: row;
66 | }
67 |
68 | .graphiql-container .topBar {
69 | -webkit-box-align: center;
70 | -ms-flex-align: center;
71 | align-items: center;
72 | background: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e2e2e2));
73 | background: linear-gradient(#f7f7f7, #e2e2e2);
74 | border-bottom: 1px solid #d0d0d0;
75 | cursor: default;
76 | display: -webkit-box;
77 | display: -ms-flexbox;
78 | display: flex;
79 | -webkit-box-orient: horizontal;
80 | -webkit-box-direction: normal;
81 | -ms-flex-direction: row;
82 | flex-direction: row;
83 | -webkit-box-flex: 1;
84 | -ms-flex: 1;
85 | flex: 1;
86 | height: 34px;
87 | overflow-y: visible;
88 | padding: 7px 14px 6px;
89 | -webkit-user-select: none;
90 | -moz-user-select: none;
91 | -ms-user-select: none;
92 | user-select: none;
93 | }
94 |
95 | .graphiql-container .toolbar {
96 | overflow-x: visible;
97 | display: -webkit-box;
98 | display: -ms-flexbox;
99 | display: flex;
100 | }
101 |
102 | .graphiql-container .docExplorerShow,
103 | .graphiql-container .historyShow {
104 | background: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e2e2e2));
105 | background: linear-gradient(#f7f7f7, #e2e2e2);
106 | border-radius: 0;
107 | border-bottom: 1px solid #d0d0d0;
108 | border-right: none;
109 | border-top: none;
110 | color: #3B5998;
111 | cursor: pointer;
112 | font-size: 14px;
113 | margin: 0;
114 | outline: 0;
115 | padding: 2px 20px 0 18px;
116 | }
117 |
118 | .graphiql-container .docExplorerShow {
119 | border-left: 1px solid rgba(0, 0, 0, 0.2);
120 | }
121 |
122 | .graphiql-container .historyShow {
123 | border-right: 1px solid rgba(0, 0, 0, 0.2);
124 | border-left: 0;
125 | }
126 |
127 | .graphiql-container .docExplorerShow:before {
128 | border-left: 2px solid #3B5998;
129 | border-top: 2px solid #3B5998;
130 | content: '';
131 | display: inline-block;
132 | height: 9px;
133 | margin: 0 3px -1px 0;
134 | position: relative;
135 | -webkit-transform: rotate(-45deg);
136 | transform: rotate(-45deg);
137 | width: 9px;
138 | }
139 |
140 | .graphiql-container .editorBar {
141 | display: -webkit-box;
142 | display: -ms-flexbox;
143 | display: flex;
144 | -webkit-box-orient: horizontal;
145 | -webkit-box-direction: normal;
146 | -ms-flex-direction: row;
147 | flex-direction: row;
148 | -webkit-box-flex: 1;
149 | -ms-flex: 1;
150 | flex: 1;
151 | }
152 |
153 | .graphiql-container .queryWrap {
154 | display: -webkit-box;
155 | display: -ms-flexbox;
156 | display: flex;
157 | -webkit-box-orient: vertical;
158 | -webkit-box-direction: normal;
159 | -ms-flex-direction: column;
160 | flex-direction: column;
161 | -webkit-box-flex: 1;
162 | -ms-flex: 1;
163 | flex: 1;
164 | }
165 |
166 | .graphiql-container .resultWrap {
167 | border-left: solid 1px #e0e0e0;
168 | display: -webkit-box;
169 | display: -ms-flexbox;
170 | display: flex;
171 | -webkit-box-orient: vertical;
172 | -webkit-box-direction: normal;
173 | -ms-flex-direction: column;
174 | flex-direction: column;
175 | -webkit-box-flex: 1;
176 | -ms-flex: 1;
177 | flex: 1;
178 | position: relative;
179 | }
180 |
181 | .graphiql-container .docExplorerWrap,
182 | .graphiql-container .historyPaneWrap {
183 | background: white;
184 | -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
185 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
186 | position: relative;
187 | z-index: 3;
188 | }
189 |
190 | .graphiql-container .historyPaneWrap {
191 | min-width: 230px;
192 | z-index: 5;
193 | }
194 |
195 | .graphiql-container .docExplorerResizer {
196 | cursor: col-resize;
197 | height: 100%;
198 | left: -5px;
199 | position: absolute;
200 | top: 0;
201 | width: 10px;
202 | z-index: 10;
203 | }
204 |
205 | .graphiql-container .docExplorerHide {
206 | cursor: pointer;
207 | font-size: 18px;
208 | margin: -7px -8px -6px 0;
209 | padding: 18px 16px 15px 12px;
210 | }
211 |
212 | .graphiql-container div .query-editor {
213 | -webkit-box-flex: 1;
214 | -ms-flex: 1;
215 | flex: 1;
216 | position: relative;
217 | }
218 |
219 | .graphiql-container .variable-editor {
220 | display: -webkit-box;
221 | display: -ms-flexbox;
222 | display: flex;
223 | -webkit-box-orient: vertical;
224 | -webkit-box-direction: normal;
225 | -ms-flex-direction: column;
226 | flex-direction: column;
227 | height: 29px;
228 | position: relative;
229 | }
230 |
231 | .graphiql-container .variable-editor-title {
232 | background: #eeeeee;
233 | border-bottom: 1px solid #d6d6d6;
234 | border-top: 1px solid #e0e0e0;
235 | color: #777;
236 | font-variant: small-caps;
237 | font-weight: bold;
238 | letter-spacing: 1px;
239 | line-height: 14px;
240 | padding: 6px 0 8px 43px;
241 | text-transform: lowercase;
242 | -webkit-user-select: none;
243 | -moz-user-select: none;
244 | -ms-user-select: none;
245 | user-select: none;
246 | }
247 |
248 | .graphiql-container .codemirrorWrap {
249 | -webkit-box-flex: 1;
250 | -ms-flex: 1;
251 | flex: 1;
252 | height: 100%;
253 | position: relative;
254 | }
255 |
256 | .graphiql-container .result-window {
257 | -webkit-box-flex: 1;
258 | -ms-flex: 1;
259 | flex: 1;
260 | height: 100%;
261 | position: relative;
262 | }
263 |
264 | .graphiql-container .footer {
265 | background: #f6f7f8;
266 | border-left: 1px solid #e0e0e0;
267 | border-top: 1px solid #e0e0e0;
268 | margin-left: 12px;
269 | position: relative;
270 | }
271 |
272 | .graphiql-container .footer:before {
273 | background: #eeeeee;
274 | bottom: 0;
275 | content: " ";
276 | left: -13px;
277 | position: absolute;
278 | top: -1px;
279 | width: 12px;
280 | }
281 |
282 | /* No `.graphiql-container` here so themes can overwrite */
283 | .result-window .CodeMirror {
284 | background: #f6f7f8;
285 | }
286 |
287 | .graphiql-container .result-window .CodeMirror-gutters {
288 | background-color: #eeeeee;
289 | border-color: #e0e0e0;
290 | cursor: col-resize;
291 | }
292 |
293 | .graphiql-container .result-window .CodeMirror-foldgutter,
294 | .graphiql-container .result-window .CodeMirror-foldgutter-open:after,
295 | .graphiql-container .result-window .CodeMirror-foldgutter-folded:after {
296 | padding-left: 3px;
297 | }
298 |
299 | .graphiql-container .toolbar-button {
300 | background: #fdfdfd;
301 | background: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
302 | background: linear-gradient(#f9f9f9, #ececec);
303 | border-radius: 3px;
304 | -webkit-box-shadow:
305 | inset 0 0 0 1px rgba(0,0,0,0.20),
306 | 0 1px 0 rgba(255,255,255, 0.7),
307 | inset 0 1px #fff;
308 | box-shadow:
309 | inset 0 0 0 1px rgba(0,0,0,0.20),
310 | 0 1px 0 rgba(255,255,255, 0.7),
311 | inset 0 1px #fff;
312 | color: #555;
313 | cursor: pointer;
314 | display: inline-block;
315 | margin: 0 5px;
316 | padding: 3px 11px 5px;
317 | text-decoration: none;
318 | text-overflow: ellipsis;
319 | white-space: nowrap;
320 | max-width: 150px;
321 | }
322 |
323 | .graphiql-container .toolbar-button:active {
324 | background: -webkit-gradient(linear, left top, left bottom, from(#ececec), to(#d5d5d5));
325 | background: linear-gradient(#ececec, #d5d5d5);
326 | -webkit-box-shadow:
327 | 0 1px 0 rgba(255, 255, 255, 0.7),
328 | inset 0 0 0 1px rgba(0,0,0,0.10),
329 | inset 0 1px 1px 1px rgba(0, 0, 0, 0.12),
330 | inset 0 0 5px rgba(0, 0, 0, 0.1);
331 | box-shadow:
332 | 0 1px 0 rgba(255, 255, 255, 0.7),
333 | inset 0 0 0 1px rgba(0,0,0,0.10),
334 | inset 0 1px 1px 1px rgba(0, 0, 0, 0.12),
335 | inset 0 0 5px rgba(0, 0, 0, 0.1);
336 | }
337 |
338 | .graphiql-container .toolbar-button.error {
339 | background: -webkit-gradient(linear, left top, left bottom, from(#fdf3f3), to(#e6d6d7));
340 | background: linear-gradient(#fdf3f3, #e6d6d7);
341 | color: #b00;
342 | }
343 |
344 | .graphiql-container .toolbar-button-group {
345 | margin: 0 5px;
346 | white-space: nowrap;
347 | }
348 |
349 | .graphiql-container .toolbar-button-group > * {
350 | margin: 0;
351 | }
352 |
353 | .graphiql-container .toolbar-button-group > *:not(:last-child) {
354 | border-top-right-radius: 0;
355 | border-bottom-right-radius: 0;
356 | }
357 |
358 | .graphiql-container .toolbar-button-group > *:not(:first-child) {
359 | border-top-left-radius: 0;
360 | border-bottom-left-radius: 0;
361 | margin-left: -1px;
362 | }
363 |
364 | .graphiql-container .execute-button-wrap {
365 | height: 34px;
366 | margin: 0 14px 0 28px;
367 | position: relative;
368 | }
369 |
370 | .graphiql-container .execute-button {
371 | background: -webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#d2d3d6));
372 | background: linear-gradient(#fdfdfd, #d2d3d6);
373 | border-radius: 17px;
374 | border: 1px solid rgba(0,0,0,0.25);
375 | -webkit-box-shadow: 0 1px 0 #fff;
376 | box-shadow: 0 1px 0 #fff;
377 | cursor: pointer;
378 | fill: #444;
379 | height: 34px;
380 | margin: 0;
381 | padding: 0;
382 | width: 34px;
383 | }
384 |
385 | .graphiql-container .execute-button svg {
386 | pointer-events: none;
387 | }
388 |
389 | .graphiql-container .execute-button:active {
390 | background: -webkit-gradient(linear, left top, left bottom, from(#e6e6e6), to(#c3c3c3));
391 | background: linear-gradient(#e6e6e6, #c3c3c3);
392 | -webkit-box-shadow:
393 | 0 1px 0 #fff,
394 | inset 0 0 2px rgba(0, 0, 0, 0.2),
395 | inset 0 0 6px rgba(0, 0, 0, 0.1);
396 | box-shadow:
397 | 0 1px 0 #fff,
398 | inset 0 0 2px rgba(0, 0, 0, 0.2),
399 | inset 0 0 6px rgba(0, 0, 0, 0.1);
400 | }
401 |
402 | .graphiql-container .execute-button:focus {
403 | outline: 0;
404 | }
405 |
406 | .graphiql-container .toolbar-menu,
407 | .graphiql-container .toolbar-select {
408 | position: relative;
409 | }
410 |
411 | .graphiql-container .execute-options,
412 | .graphiql-container .toolbar-menu-items,
413 | .graphiql-container .toolbar-select-options {
414 | background: #fff;
415 | -webkit-box-shadow:
416 | 0 0 0 1px rgba(0,0,0,0.1),
417 | 0 2px 4px rgba(0,0,0,0.25);
418 | box-shadow:
419 | 0 0 0 1px rgba(0,0,0,0.1),
420 | 0 2px 4px rgba(0,0,0,0.25);
421 | margin: 0;
422 | padding: 6px 0;
423 | position: absolute;
424 | z-index: 100;
425 | }
426 |
427 | .graphiql-container .execute-options {
428 | min-width: 100px;
429 | top: 37px;
430 | left: -1px;
431 | }
432 |
433 | .graphiql-container .toolbar-menu-items {
434 | left: 1px;
435 | margin-top: -1px;
436 | min-width: 110%;
437 | top: 100%;
438 | visibility: hidden;
439 | }
440 |
441 | .graphiql-container .toolbar-menu-items.open {
442 | visibility: visible;
443 | }
444 |
445 | .graphiql-container .toolbar-select-options {
446 | left: 0;
447 | min-width: 100%;
448 | top: -5px;
449 | visibility: hidden;
450 | }
451 |
452 | .graphiql-container .toolbar-select-options.open {
453 | visibility: visible;
454 | }
455 |
456 | .graphiql-container .execute-options > li,
457 | .graphiql-container .toolbar-menu-items > li,
458 | .graphiql-container .toolbar-select-options > li {
459 | cursor: pointer;
460 | display: block;
461 | margin: none;
462 | max-width: 300px;
463 | overflow: hidden;
464 | padding: 2px 20px 4px 11px;
465 | text-overflow: ellipsis;
466 | white-space: nowrap;
467 | }
468 |
469 | .graphiql-container .execute-options > li.selected,
470 | .graphiql-container .toolbar-menu-items > li.hover,
471 | .graphiql-container .toolbar-menu-items > li:active,
472 | .graphiql-container .toolbar-menu-items > li:hover,
473 | .graphiql-container .toolbar-select-options > li.hover,
474 | .graphiql-container .toolbar-select-options > li:active,
475 | .graphiql-container .toolbar-select-options > li:hover,
476 | .graphiql-container .history-contents > p:hover,
477 | .graphiql-container .history-contents > p:active {
478 | background: #e10098;
479 | color: #fff;
480 | }
481 |
482 | .graphiql-container .toolbar-select-options > li > svg {
483 | display: inline;
484 | fill: #666;
485 | margin: 0 -6px 0 6px;
486 | pointer-events: none;
487 | vertical-align: middle;
488 | }
489 |
490 | .graphiql-container .toolbar-select-options > li.hover > svg,
491 | .graphiql-container .toolbar-select-options > li:active > svg,
492 | .graphiql-container .toolbar-select-options > li:hover > svg {
493 | fill: #fff;
494 | }
495 |
496 | .graphiql-container .CodeMirror-scroll {
497 | overflow-scrolling: touch;
498 | }
499 |
500 | .graphiql-container .CodeMirror {
501 | color: #141823;
502 | font-family:
503 | 'Consolas',
504 | 'Inconsolata',
505 | 'Droid Sans Mono',
506 | 'Monaco',
507 | monospace;
508 | font-size: 13px;
509 | height: 100%;
510 | left: 0;
511 | position: absolute;
512 | top: 0;
513 | width: 100%;
514 | }
515 |
516 | .graphiql-container .CodeMirror-lines {
517 | padding: 20px 0;
518 | }
519 |
520 | .CodeMirror-hint-information .content {
521 | box-orient: vertical;
522 | color: #141823;
523 | display: -webkit-box;
524 | display: -ms-flexbox;
525 | display: flex;
526 | font-family: system, -apple-system, 'San Francisco', '.SFNSDisplay-Regular', 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', helvetica, 'Lucida Grande', arial, sans-serif;
527 | font-size: 13px;
528 | line-clamp: 3;
529 | line-height: 16px;
530 | max-height: 48px;
531 | overflow: hidden;
532 | text-overflow: -o-ellipsis-lastline;
533 | }
534 |
535 | .CodeMirror-hint-information .content p:first-child {
536 | margin-top: 0;
537 | }
538 |
539 | .CodeMirror-hint-information .content p:last-child {
540 | margin-bottom: 0;
541 | }
542 |
543 | .CodeMirror-hint-information .infoType {
544 | color: #CA9800;
545 | cursor: pointer;
546 | display: inline;
547 | margin-right: 0.5em;
548 | }
549 |
550 | .autoInsertedLeaf.cm-property {
551 | -webkit-animation-duration: 6s;
552 | animation-duration: 6s;
553 | -webkit-animation-name: insertionFade;
554 | animation-name: insertionFade;
555 | border-bottom: 2px solid rgba(255, 255, 255, 0);
556 | border-radius: 2px;
557 | margin: -2px -4px -1px;
558 | padding: 2px 4px 1px;
559 | }
560 |
561 | @-webkit-keyframes insertionFade {
562 | from, to {
563 | background: rgba(255, 255, 255, 0);
564 | border-color: rgba(255, 255, 255, 0);
565 | }
566 |
567 | 15%, 85% {
568 | background: #fbffc9;
569 | border-color: #f0f3c0;
570 | }
571 | }
572 |
573 | @keyframes insertionFade {
574 | from, to {
575 | background: rgba(255, 255, 255, 0);
576 | border-color: rgba(255, 255, 255, 0);
577 | }
578 |
579 | 15%, 85% {
580 | background: #fbffc9;
581 | border-color: #f0f3c0;
582 | }
583 | }
584 |
585 | div.CodeMirror-lint-tooltip {
586 | background-color: white;
587 | border-radius: 2px;
588 | border: 0;
589 | color: #141823;
590 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
591 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
592 | font-family:
593 | system,
594 | -apple-system,
595 | 'San Francisco',
596 | '.SFNSDisplay-Regular',
597 | 'Segoe UI',
598 | Segoe,
599 | 'Segoe WP',
600 | 'Helvetica Neue',
601 | helvetica,
602 | 'Lucida Grande',
603 | arial,
604 | sans-serif;
605 | font-size: 13px;
606 | line-height: 16px;
607 | max-width: 430px;
608 | opacity: 0;
609 | padding: 8px 10px;
610 | -webkit-transition: opacity 0.15s;
611 | transition: opacity 0.15s;
612 | white-space: pre-wrap;
613 | }
614 |
615 | div.CodeMirror-lint-tooltip > * {
616 | padding-left: 23px;
617 | }
618 |
619 | div.CodeMirror-lint-tooltip > * + * {
620 | margin-top: 12px;
621 | }
622 |
623 | /* COLORS */
624 |
625 | .graphiql-container .CodeMirror-foldmarker {
626 | border-radius: 4px;
627 | background: #08f;
628 | background: -webkit-gradient(linear, left top, left bottom, from(#43A8FF), to(#0F83E8));
629 | background: linear-gradient(#43A8FF, #0F83E8);
630 | -webkit-box-shadow:
631 | 0 1px 1px rgba(0, 0, 0, 0.2),
632 | inset 0 0 0 1px rgba(0, 0, 0, 0.1);
633 | box-shadow:
634 | 0 1px 1px rgba(0, 0, 0, 0.2),
635 | inset 0 0 0 1px rgba(0, 0, 0, 0.1);
636 | color: white;
637 | font-family: arial;
638 | font-size: 12px;
639 | line-height: 0;
640 | margin: 0 3px;
641 | padding: 0px 4px 1px;
642 | text-shadow: 0 -1px rgba(0, 0, 0, 0.1);
643 | }
644 |
645 | .graphiql-container div.CodeMirror span.CodeMirror-matchingbracket {
646 | color: #555;
647 | text-decoration: underline;
648 | }
649 |
650 | .graphiql-container div.CodeMirror span.CodeMirror-nonmatchingbracket {
651 | color: #f00;
652 | }
653 |
654 | /* Comment */
655 | .cm-comment {
656 | color: #999;
657 | }
658 |
659 | /* Punctuation */
660 | .cm-punctuation {
661 | color: #555;
662 | }
663 |
664 | /* Keyword */
665 | .cm-keyword {
666 | color: #B11A04;
667 | }
668 |
669 | /* OperationName, FragmentName */
670 | .cm-def {
671 | color: #D2054E;
672 | }
673 |
674 | /* FieldName */
675 | .cm-property {
676 | color: #1F61A0;
677 | }
678 |
679 | /* FieldAlias */
680 | .cm-qualifier {
681 | color: #1C92A9;
682 | }
683 |
684 | /* ArgumentName and ObjectFieldName */
685 | .cm-attribute {
686 | color: #8B2BB9;
687 | }
688 |
689 | /* Number */
690 | .cm-number {
691 | color: #2882F9;
692 | }
693 |
694 | /* String */
695 | .cm-string {
696 | color: #D64292;
697 | }
698 |
699 | /* Boolean */
700 | .cm-builtin {
701 | color: #D47509;
702 | }
703 |
704 | /* EnumValue */
705 | .cm-string-2 {
706 | color: #0B7FC7;
707 | }
708 |
709 | /* Variable */
710 | .cm-variable {
711 | color: #397D13;
712 | }
713 |
714 | /* Directive */
715 | .cm-meta {
716 | color: #B33086;
717 | }
718 |
719 | /* Type */
720 | .cm-atom {
721 | color: #CA9800;
722 | }
723 | /* BASICS */
724 |
725 | .CodeMirror {
726 | /* Set height, width, borders, and global font properties here */
727 | color: black;
728 | font-family: monospace;
729 | height: 300px;
730 | }
731 |
732 | /* PADDING */
733 |
734 | .CodeMirror-lines {
735 | padding: 4px 0; /* Vertical padding around content */
736 | }
737 | .CodeMirror pre {
738 | padding: 0 4px; /* Horizontal padding of content */
739 | }
740 |
741 | .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
742 | background-color: white; /* The little square between H and V scrollbars */
743 | }
744 |
745 | /* GUTTER */
746 |
747 | .CodeMirror-gutters {
748 | border-right: 1px solid #ddd;
749 | background-color: #f7f7f7;
750 | white-space: nowrap;
751 | }
752 | .CodeMirror-linenumbers {}
753 | .CodeMirror-linenumber {
754 | color: #999;
755 | min-width: 20px;
756 | padding: 0 3px 0 5px;
757 | text-align: right;
758 | white-space: nowrap;
759 | }
760 |
761 | .CodeMirror-guttermarker { color: black; }
762 | .CodeMirror-guttermarker-subtle { color: #999; }
763 |
764 | /* CURSOR */
765 |
766 | .CodeMirror .CodeMirror-cursor {
767 | border-left: 1px solid black;
768 | }
769 | /* Shown when moving in bi-directional text */
770 | .CodeMirror div.CodeMirror-secondarycursor {
771 | border-left: 1px solid silver;
772 | }
773 | .CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
774 | background: #7e7;
775 | border: 0;
776 | width: auto;
777 | }
778 | .CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
779 | z-index: 1;
780 | }
781 |
782 | .cm-animate-fat-cursor {
783 | -webkit-animation: blink 1.06s steps(1) infinite;
784 | animation: blink 1.06s steps(1) infinite;
785 | border: 0;
786 | width: auto;
787 | }
788 | @-webkit-keyframes blink {
789 | 0% { background: #7e7; }
790 | 50% { background: none; }
791 | 100% { background: #7e7; }
792 | }
793 | @keyframes blink {
794 | 0% { background: #7e7; }
795 | 50% { background: none; }
796 | 100% { background: #7e7; }
797 | }
798 |
799 | /* Can style cursor different in overwrite (non-insert) mode */
800 | div.CodeMirror-overwrite div.CodeMirror-cursor {}
801 |
802 | .cm-tab { display: inline-block; text-decoration: inherit; }
803 |
804 | .CodeMirror-ruler {
805 | border-left: 1px solid #ccc;
806 | position: absolute;
807 | }
808 |
809 | /* DEFAULT THEME */
810 |
811 | .cm-s-default .cm-keyword {color: #708;}
812 | .cm-s-default .cm-atom {color: #219;}
813 | .cm-s-default .cm-number {color: #164;}
814 | .cm-s-default .cm-def {color: #00f;}
815 | .cm-s-default .cm-variable,
816 | .cm-s-default .cm-punctuation,
817 | .cm-s-default .cm-property,
818 | .cm-s-default .cm-operator {}
819 | .cm-s-default .cm-variable-2 {color: #05a;}
820 | .cm-s-default .cm-variable-3 {color: #085;}
821 | .cm-s-default .cm-comment {color: #a50;}
822 | .cm-s-default .cm-string {color: #a11;}
823 | .cm-s-default .cm-string-2 {color: #f50;}
824 | .cm-s-default .cm-meta {color: #555;}
825 | .cm-s-default .cm-qualifier {color: #555;}
826 | .cm-s-default .cm-builtin {color: #30a;}
827 | .cm-s-default .cm-bracket {color: #997;}
828 | .cm-s-default .cm-tag {color: #170;}
829 | .cm-s-default .cm-attribute {color: #00c;}
830 | .cm-s-default .cm-header {color: blue;}
831 | .cm-s-default .cm-quote {color: #090;}
832 | .cm-s-default .cm-hr {color: #999;}
833 | .cm-s-default .cm-link {color: #00c;}
834 |
835 | .cm-negative {color: #d44;}
836 | .cm-positive {color: #292;}
837 | .cm-header, .cm-strong {font-weight: bold;}
838 | .cm-em {font-style: italic;}
839 | .cm-link {text-decoration: underline;}
840 | .cm-strikethrough {text-decoration: line-through;}
841 |
842 | .cm-s-default .cm-error {color: #f00;}
843 | .cm-invalidchar {color: #f00;}
844 |
845 | .CodeMirror-composing { border-bottom: 2px solid; }
846 |
847 | /* Default styles for common addons */
848 |
849 | div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
850 | div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
851 | .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
852 | .CodeMirror-activeline-background {background: #e8f2ff;}
853 |
854 | /* STOP */
855 |
856 | /* The rest of this file contains styles related to the mechanics of
857 | the editor. You probably shouldn't touch them. */
858 |
859 | .CodeMirror {
860 | background: white;
861 | overflow: hidden;
862 | position: relative;
863 | }
864 |
865 | .CodeMirror-scroll {
866 | height: 100%;
867 | /* 30px is the magic margin used to hide the element's real scrollbars */
868 | /* See overflow: hidden in .CodeMirror */
869 | margin-bottom: -30px; margin-right: -30px;
870 | outline: none; /* Prevent dragging from highlighting the element */
871 | overflow: scroll !important; /* Things will break if this is overridden */
872 | padding-bottom: 30px;
873 | position: relative;
874 | }
875 | .CodeMirror-sizer {
876 | border-right: 30px solid transparent;
877 | position: relative;
878 | }
879 |
880 | /* The fake, visible scrollbars. Used to force redraw during scrolling
881 | before actual scrolling happens, thus preventing shaking and
882 | flickering artifacts. */
883 | .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
884 | display: none;
885 | position: absolute;
886 | z-index: 6;
887 | }
888 | .CodeMirror-vscrollbar {
889 | overflow-x: hidden;
890 | overflow-y: scroll;
891 | right: 0; top: 0;
892 | }
893 | .CodeMirror-hscrollbar {
894 | bottom: 0; left: 0;
895 | overflow-x: scroll;
896 | overflow-y: hidden;
897 | }
898 | .CodeMirror-scrollbar-filler {
899 | right: 0; bottom: 0;
900 | }
901 | .CodeMirror-gutter-filler {
902 | left: 0; bottom: 0;
903 | }
904 |
905 | .CodeMirror-gutters {
906 | min-height: 100%;
907 | position: absolute; left: 0; top: 0;
908 | z-index: 3;
909 | }
910 | .CodeMirror-gutter {
911 | display: inline-block;
912 | height: 100%;
913 | margin-bottom: -30px;
914 | vertical-align: top;
915 | white-space: normal;
916 | /* Hack to make IE7 behave */
917 | *zoom:1;
918 | *display:inline;
919 | }
920 | .CodeMirror-gutter-wrapper {
921 | background: none !important;
922 | border: none !important;
923 | position: absolute;
924 | z-index: 4;
925 | }
926 | .CodeMirror-gutter-background {
927 | position: absolute;
928 | top: 0; bottom: 0;
929 | z-index: 4;
930 | }
931 | .CodeMirror-gutter-elt {
932 | cursor: default;
933 | position: absolute;
934 | z-index: 4;
935 | }
936 | .CodeMirror-gutter-wrapper {
937 | -webkit-user-select: none;
938 | -moz-user-select: none;
939 | -ms-user-select: none;
940 | user-select: none;
941 | }
942 |
943 | .CodeMirror-lines {
944 | cursor: text;
945 | min-height: 1px; /* prevents collapsing before first draw */
946 | }
947 | .CodeMirror pre {
948 | -webkit-tap-highlight-color: transparent;
949 | /* Reset some styles that the rest of the page might have set */
950 | background: transparent;
951 | border-radius: 0;
952 | border-width: 0;
953 | color: inherit;
954 | font-family: inherit;
955 | font-size: inherit;
956 | -webkit-font-variant-ligatures: none;
957 | font-variant-ligatures: none;
958 | line-height: inherit;
959 | margin: 0;
960 | overflow: visible;
961 | position: relative;
962 | white-space: pre;
963 | word-wrap: normal;
964 | z-index: 2;
965 | }
966 | .CodeMirror-wrap pre {
967 | word-wrap: break-word;
968 | white-space: pre-wrap;
969 | word-break: normal;
970 | }
971 |
972 | .CodeMirror-linebackground {
973 | position: absolute;
974 | left: 0; right: 0; top: 0; bottom: 0;
975 | z-index: 0;
976 | }
977 |
978 | .CodeMirror-linewidget {
979 | overflow: auto;
980 | position: relative;
981 | z-index: 2;
982 | }
983 |
984 | .CodeMirror-widget {}
985 |
986 | .CodeMirror-code {
987 | outline: none;
988 | }
989 |
990 | /* Force content-box sizing for the elements where we expect it */
991 | .CodeMirror-scroll,
992 | .CodeMirror-sizer,
993 | .CodeMirror-gutter,
994 | .CodeMirror-gutters,
995 | .CodeMirror-linenumber {
996 | -webkit-box-sizing: content-box;
997 | box-sizing: content-box;
998 | }
999 |
1000 | .CodeMirror-measure {
1001 | height: 0;
1002 | overflow: hidden;
1003 | position: absolute;
1004 | visibility: hidden;
1005 | width: 100%;
1006 | }
1007 |
1008 | .CodeMirror-cursor { position: absolute; }
1009 | .CodeMirror-measure pre { position: static; }
1010 |
1011 | div.CodeMirror-cursors {
1012 | position: relative;
1013 | visibility: hidden;
1014 | z-index: 3;
1015 | }
1016 | div.CodeMirror-dragcursors {
1017 | visibility: visible;
1018 | }
1019 |
1020 | .CodeMirror-focused div.CodeMirror-cursors {
1021 | visibility: visible;
1022 | }
1023 |
1024 | .CodeMirror-selected { background: #d9d9d9; }
1025 | .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
1026 | .CodeMirror-crosshair { cursor: crosshair; }
1027 | .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
1028 | .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
1029 | .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
1030 |
1031 | .cm-searching {
1032 | background: #ffa;
1033 | background: rgba(255, 255, 0, .4);
1034 | }
1035 |
1036 | /* IE7 hack to prevent it from returning funny offsetTops on the spans */
1037 | .CodeMirror span { *vertical-align: text-bottom; }
1038 |
1039 | /* Used to force a border model for a node */
1040 | .cm-force-border { padding-right: .1px; }
1041 |
1042 | @media print {
1043 | /* Hide the cursor when printing */
1044 | .CodeMirror div.CodeMirror-cursors {
1045 | visibility: hidden;
1046 | }
1047 | }
1048 |
1049 | /* See issue #2901 */
1050 | .cm-tab-wrap-hack:after { content: ''; }
1051 |
1052 | /* Help users use markselection to safely style text background */
1053 | span.CodeMirror-selectedtext { background: none; }
1054 |
1055 | .CodeMirror-dialog {
1056 | background: inherit;
1057 | color: inherit;
1058 | left: 0; right: 0;
1059 | overflow: hidden;
1060 | padding: .1em .8em;
1061 | position: absolute;
1062 | z-index: 15;
1063 | }
1064 |
1065 | .CodeMirror-dialog-top {
1066 | border-bottom: 1px solid #eee;
1067 | top: 0;
1068 | }
1069 |
1070 | .CodeMirror-dialog-bottom {
1071 | border-top: 1px solid #eee;
1072 | bottom: 0;
1073 | }
1074 |
1075 | .CodeMirror-dialog input {
1076 | background: transparent;
1077 | border: 1px solid #d3d6db;
1078 | color: inherit;
1079 | font-family: monospace;
1080 | outline: none;
1081 | width: 20em;
1082 | }
1083 |
1084 | .CodeMirror-dialog button {
1085 | font-size: 70%;
1086 | }
1087 | .graphiql-container .doc-explorer {
1088 | background: white;
1089 | }
1090 |
1091 | .graphiql-container .doc-explorer-title-bar,
1092 | .graphiql-container .history-title-bar {
1093 | cursor: default;
1094 | display: -webkit-box;
1095 | display: -ms-flexbox;
1096 | display: flex;
1097 | height: 34px;
1098 | line-height: 14px;
1099 | padding: 8px 8px 5px;
1100 | position: relative;
1101 | -webkit-user-select: none;
1102 | -moz-user-select: none;
1103 | -ms-user-select: none;
1104 | user-select: none;
1105 | }
1106 |
1107 | .graphiql-container .doc-explorer-title,
1108 | .graphiql-container .history-title {
1109 | -webkit-box-flex: 1;
1110 | -ms-flex: 1;
1111 | flex: 1;
1112 | font-weight: bold;
1113 | overflow-x: hidden;
1114 | padding: 10px 0 10px 10px;
1115 | text-align: center;
1116 | text-overflow: ellipsis;
1117 | -webkit-user-select: initial;
1118 | -moz-user-select: initial;
1119 | -ms-user-select: initial;
1120 | user-select: initial;
1121 | white-space: nowrap;
1122 | }
1123 |
1124 | .graphiql-container .doc-explorer-back {
1125 | color: #3B5998;
1126 | cursor: pointer;
1127 | margin: -7px 0 -6px -8px;
1128 | overflow-x: hidden;
1129 | padding: 17px 12px 16px 16px;
1130 | text-overflow: ellipsis;
1131 | white-space: nowrap;
1132 | }
1133 |
1134 | .doc-explorer-narrow .doc-explorer-back {
1135 | width: 0;
1136 | }
1137 |
1138 | .graphiql-container .doc-explorer-back:before {
1139 | border-left: 2px solid #3B5998;
1140 | border-top: 2px solid #3B5998;
1141 | content: '';
1142 | display: inline-block;
1143 | height: 9px;
1144 | margin: 0 3px -1px 0;
1145 | position: relative;
1146 | -webkit-transform: rotate(-45deg);
1147 | transform: rotate(-45deg);
1148 | width: 9px;
1149 | }
1150 |
1151 | .graphiql-container .doc-explorer-rhs {
1152 | position: relative;
1153 | }
1154 |
1155 | .graphiql-container .doc-explorer-contents,
1156 | .graphiql-container .history-contents {
1157 | background-color: #ffffff;
1158 | border-top: 1px solid #d6d6d6;
1159 | bottom: 0;
1160 | left: 0;
1161 | overflow-y: auto;
1162 | padding: 20px 15px;
1163 | position: absolute;
1164 | right: 0;
1165 | top: 47px;
1166 | }
1167 |
1168 | .graphiql-container .doc-explorer-contents {
1169 | min-width: 300px;
1170 | }
1171 |
1172 | .graphiql-container .doc-type-description p:first-child ,
1173 | .graphiql-container .doc-type-description blockquote:first-child {
1174 | margin-top: 0;
1175 | }
1176 |
1177 | .graphiql-container .doc-explorer-contents a {
1178 | cursor: pointer;
1179 | text-decoration: none;
1180 | }
1181 |
1182 | .graphiql-container .doc-explorer-contents a:hover {
1183 | text-decoration: underline;
1184 | }
1185 |
1186 | .graphiql-container .doc-value-description > :first-child {
1187 | margin-top: 4px;
1188 | }
1189 |
1190 | .graphiql-container .doc-value-description > :last-child {
1191 | margin-bottom: 4px;
1192 | }
1193 |
1194 | .graphiql-container .doc-category {
1195 | margin: 20px 0;
1196 | }
1197 |
1198 | .graphiql-container .doc-category-title {
1199 | border-bottom: 1px solid #e0e0e0;
1200 | color: #777;
1201 | cursor: default;
1202 | font-size: 14px;
1203 | font-variant: small-caps;
1204 | font-weight: bold;
1205 | letter-spacing: 1px;
1206 | margin: 0 -15px 10px 0;
1207 | padding: 10px 0;
1208 | -webkit-user-select: none;
1209 | -moz-user-select: none;
1210 | -ms-user-select: none;
1211 | user-select: none;
1212 | }
1213 |
1214 | .graphiql-container .doc-category-item {
1215 | margin: 12px 0;
1216 | color: #555;
1217 | }
1218 |
1219 | .graphiql-container .keyword {
1220 | color: #B11A04;
1221 | }
1222 |
1223 | .graphiql-container .type-name {
1224 | color: #CA9800;
1225 | }
1226 |
1227 | .graphiql-container .field-name {
1228 | color: #1F61A0;
1229 | }
1230 |
1231 | .graphiql-container .field-short-description {
1232 | color: #999;
1233 | margin-left: 5px;
1234 | overflow: hidden;
1235 | text-overflow: ellipsis;
1236 | }
1237 |
1238 | .graphiql-container .enum-value {
1239 | color: #0B7FC7;
1240 | }
1241 |
1242 | .graphiql-container .arg-name {
1243 | color: #8B2BB9;
1244 | }
1245 |
1246 | .graphiql-container .arg {
1247 | display: block;
1248 | margin-left: 1em;
1249 | }
1250 |
1251 | .graphiql-container .arg:first-child:last-child,
1252 | .graphiql-container .arg:first-child:nth-last-child(2),
1253 | .graphiql-container .arg:first-child:nth-last-child(2) ~ .arg {
1254 | display: inherit;
1255 | margin: inherit;
1256 | }
1257 |
1258 | .graphiql-container .arg:first-child:nth-last-child(2):after {
1259 | content: ', ';
1260 | }
1261 |
1262 | .graphiql-container .arg-default-value {
1263 | color: #43A047;
1264 | }
1265 |
1266 | .graphiql-container .doc-deprecation {
1267 | background: #fffae8;
1268 | -webkit-box-shadow: inset 0 0 1px #bfb063;
1269 | box-shadow: inset 0 0 1px #bfb063;
1270 | color: #867F70;
1271 | line-height: 16px;
1272 | margin: 8px -8px;
1273 | max-height: 80px;
1274 | overflow: hidden;
1275 | padding: 8px;
1276 | border-radius: 3px;
1277 | }
1278 |
1279 | .graphiql-container .doc-deprecation:before {
1280 | content: 'Deprecated:';
1281 | color: #c79b2e;
1282 | cursor: default;
1283 | display: block;
1284 | font-size: 9px;
1285 | font-weight: bold;
1286 | letter-spacing: 1px;
1287 | line-height: 1;
1288 | padding-bottom: 5px;
1289 | text-transform: uppercase;
1290 | -webkit-user-select: none;
1291 | -moz-user-select: none;
1292 | -ms-user-select: none;
1293 | user-select: none;
1294 | }
1295 |
1296 | .graphiql-container .doc-deprecation > :first-child {
1297 | margin-top: 0;
1298 | }
1299 |
1300 | .graphiql-container .doc-deprecation > :last-child {
1301 | margin-bottom: 0;
1302 | }
1303 |
1304 | .graphiql-container .show-btn {
1305 | -webkit-appearance: initial;
1306 | display: block;
1307 | border-radius: 3px;
1308 | border: solid 1px #ccc;
1309 | text-align: center;
1310 | padding: 8px 12px 10px;
1311 | width: 100%;
1312 | -webkit-box-sizing: border-box;
1313 | box-sizing: border-box;
1314 | background: #fbfcfc;
1315 | color: #555;
1316 | cursor: pointer;
1317 | }
1318 |
1319 | .graphiql-container .search-box {
1320 | border-bottom: 1px solid #d3d6db;
1321 | display: block;
1322 | font-size: 14px;
1323 | margin: -15px -15px 12px 0;
1324 | position: relative;
1325 | }
1326 |
1327 | .graphiql-container .search-box:before {
1328 | content: '\26b2';
1329 | cursor: pointer;
1330 | display: block;
1331 | font-size: 24px;
1332 | position: absolute;
1333 | top: -2px;
1334 | -webkit-transform: rotate(-45deg);
1335 | transform: rotate(-45deg);
1336 | -webkit-user-select: none;
1337 | -moz-user-select: none;
1338 | -ms-user-select: none;
1339 | user-select: none;
1340 | }
1341 |
1342 | .graphiql-container .search-box .search-box-clear {
1343 | background-color: #d0d0d0;
1344 | border-radius: 12px;
1345 | color: #fff;
1346 | cursor: pointer;
1347 | font-size: 11px;
1348 | padding: 1px 5px 2px;
1349 | position: absolute;
1350 | right: 3px;
1351 | top: 8px;
1352 | -webkit-user-select: none;
1353 | -moz-user-select: none;
1354 | -ms-user-select: none;
1355 | user-select: none;
1356 | }
1357 |
1358 | .graphiql-container .search-box .search-box-clear:hover {
1359 | background-color: #b9b9b9;
1360 | }
1361 |
1362 | .graphiql-container .search-box > input {
1363 | border: none;
1364 | -webkit-box-sizing: border-box;
1365 | box-sizing: border-box;
1366 | font-size: 14px;
1367 | outline: none;
1368 | padding: 6px 24px 8px 20px;
1369 | width: 100%;
1370 | }
1371 |
1372 | .graphiql-container .error-container {
1373 | font-weight: bold;
1374 | left: 0;
1375 | letter-spacing: 1px;
1376 | opacity: 0.5;
1377 | position: absolute;
1378 | right: 0;
1379 | text-align: center;
1380 | text-transform: uppercase;
1381 | top: 50%;
1382 | -webkit-transform: translate(0, -50%);
1383 | transform: translate(0, -50%);
1384 | }
1385 | .CodeMirror-foldmarker {
1386 | color: blue;
1387 | cursor: pointer;
1388 | font-family: arial;
1389 | line-height: .3;
1390 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
1391 | }
1392 | .CodeMirror-foldgutter {
1393 | width: .7em;
1394 | }
1395 | .CodeMirror-foldgutter-open,
1396 | .CodeMirror-foldgutter-folded {
1397 | cursor: pointer;
1398 | }
1399 | .CodeMirror-foldgutter-open:after {
1400 | content: "\25BE";
1401 | }
1402 | .CodeMirror-foldgutter-folded:after {
1403 | content: "\25B8";
1404 | }
1405 | .graphiql-container .history-contents {
1406 | font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace;
1407 | padding: 0;
1408 | }
1409 |
1410 | .graphiql-container .history-contents p {
1411 | font-size: 12px;
1412 | overflow: hidden;
1413 | text-overflow: ellipsis;
1414 | white-space: nowrap;
1415 | margin: 0;
1416 | padding: 8px;
1417 | border-bottom: 1px solid #e0e0e0;
1418 | }
1419 |
1420 | .graphiql-container .history-contents p:hover {
1421 | cursor: pointer;
1422 | }
1423 | .CodeMirror-info {
1424 | background: white;
1425 | border-radius: 2px;
1426 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
1427 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
1428 | -webkit-box-sizing: border-box;
1429 | box-sizing: border-box;
1430 | color: #555;
1431 | font-family:
1432 | system,
1433 | -apple-system,
1434 | 'San Francisco',
1435 | '.SFNSDisplay-Regular',
1436 | 'Segoe UI',
1437 | Segoe,
1438 | 'Segoe WP',
1439 | 'Helvetica Neue',
1440 | helvetica,
1441 | 'Lucida Grande',
1442 | arial,
1443 | sans-serif;
1444 | font-size: 13px;
1445 | line-height: 16px;
1446 | margin: 8px -8px;
1447 | max-width: 400px;
1448 | opacity: 0;
1449 | overflow: hidden;
1450 | padding: 8px 8px;
1451 | position: fixed;
1452 | -webkit-transition: opacity 0.15s;
1453 | transition: opacity 0.15s;
1454 | z-index: 50;
1455 | }
1456 |
1457 | .CodeMirror-info :first-child {
1458 | margin-top: 0;
1459 | }
1460 |
1461 | .CodeMirror-info :last-child {
1462 | margin-bottom: 0;
1463 | }
1464 |
1465 | .CodeMirror-info p {
1466 | margin: 1em 0;
1467 | }
1468 |
1469 | .CodeMirror-info .info-description {
1470 | color: #777;
1471 | line-height: 16px;
1472 | margin-top: 1em;
1473 | max-height: 80px;
1474 | overflow: hidden;
1475 | }
1476 |
1477 | .CodeMirror-info .info-deprecation {
1478 | background: #fffae8;
1479 | -webkit-box-shadow: inset 0 1px 1px -1px #bfb063;
1480 | box-shadow: inset 0 1px 1px -1px #bfb063;
1481 | color: #867F70;
1482 | line-height: 16px;
1483 | margin: -8px;
1484 | margin-top: 8px;
1485 | max-height: 80px;
1486 | overflow: hidden;
1487 | padding: 8px;
1488 | }
1489 |
1490 | .CodeMirror-info .info-deprecation-label {
1491 | color: #c79b2e;
1492 | cursor: default;
1493 | display: block;
1494 | font-size: 9px;
1495 | font-weight: bold;
1496 | letter-spacing: 1px;
1497 | line-height: 1;
1498 | padding-bottom: 5px;
1499 | text-transform: uppercase;
1500 | -webkit-user-select: none;
1501 | -moz-user-select: none;
1502 | -ms-user-select: none;
1503 | user-select: none;
1504 | }
1505 |
1506 | .CodeMirror-info .info-deprecation-label + * {
1507 | margin-top: 0;
1508 | }
1509 |
1510 | .CodeMirror-info a {
1511 | text-decoration: none;
1512 | }
1513 |
1514 | .CodeMirror-info a:hover {
1515 | text-decoration: underline;
1516 | }
1517 |
1518 | .CodeMirror-info .type-name {
1519 | color: #CA9800;
1520 | }
1521 |
1522 | .CodeMirror-info .field-name {
1523 | color: #1F61A0;
1524 | }
1525 |
1526 | .CodeMirror-info .enum-value {
1527 | color: #0B7FC7;
1528 | }
1529 |
1530 | .CodeMirror-info .arg-name {
1531 | color: #8B2BB9;
1532 | }
1533 |
1534 | .CodeMirror-info .directive-name {
1535 | color: #B33086;
1536 | }
1537 | .CodeMirror-jump-token {
1538 | text-decoration: underline;
1539 | cursor: pointer;
1540 | }
1541 | /* The lint marker gutter */
1542 | .CodeMirror-lint-markers {
1543 | width: 16px;
1544 | }
1545 |
1546 | .CodeMirror-lint-tooltip {
1547 | background-color: infobackground;
1548 | border-radius: 4px 4px 4px 4px;
1549 | border: 1px solid black;
1550 | color: infotext;
1551 | font-family: monospace;
1552 | font-size: 10pt;
1553 | max-width: 600px;
1554 | opacity: 0;
1555 | overflow: hidden;
1556 | padding: 2px 5px;
1557 | position: fixed;
1558 | -webkit-transition: opacity .4s;
1559 | transition: opacity .4s;
1560 | white-space: pre-wrap;
1561 | z-index: 100;
1562 | }
1563 |
1564 | .CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
1565 | background-position: left bottom;
1566 | background-repeat: repeat-x;
1567 | }
1568 |
1569 | .CodeMirror-lint-mark-error {
1570 | background-image:
1571 | url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
1572 | ;
1573 | }
1574 |
1575 | .CodeMirror-lint-mark-warning {
1576 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
1577 | }
1578 |
1579 | .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
1580 | background-position: center center;
1581 | background-repeat: no-repeat;
1582 | cursor: pointer;
1583 | display: inline-block;
1584 | height: 16px;
1585 | position: relative;
1586 | vertical-align: middle;
1587 | width: 16px;
1588 | }
1589 |
1590 | .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
1591 | background-position: top left;
1592 | background-repeat: no-repeat;
1593 | padding-left: 18px;
1594 | }
1595 |
1596 | .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
1597 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
1598 | }
1599 |
1600 | .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
1601 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
1602 | }
1603 |
1604 | .CodeMirror-lint-marker-multiple {
1605 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
1606 | background-position: right bottom;
1607 | background-repeat: no-repeat;
1608 | width: 100%; height: 100%;
1609 | }
1610 | .graphiql-container .spinner-container {
1611 | height: 36px;
1612 | left: 50%;
1613 | position: absolute;
1614 | top: 50%;
1615 | -webkit-transform: translate(-50%, -50%);
1616 | transform: translate(-50%, -50%);
1617 | width: 36px;
1618 | z-index: 10;
1619 | }
1620 |
1621 | .graphiql-container .spinner {
1622 | -webkit-animation: rotation .6s infinite linear;
1623 | animation: rotation .6s infinite linear;
1624 | border-bottom: 6px solid rgba(150, 150, 150, .15);
1625 | border-left: 6px solid rgba(150, 150, 150, .15);
1626 | border-radius: 100%;
1627 | border-right: 6px solid rgba(150, 150, 150, .15);
1628 | border-top: 6px solid rgba(150, 150, 150, .8);
1629 | display: inline-block;
1630 | height: 24px;
1631 | position: absolute;
1632 | vertical-align: middle;
1633 | width: 24px;
1634 | }
1635 |
1636 | @-webkit-keyframes rotation {
1637 | from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
1638 | to { -webkit-transform: rotate(359deg); transform: rotate(359deg); }
1639 | }
1640 |
1641 | @keyframes rotation {
1642 | from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
1643 | to { -webkit-transform: rotate(359deg); transform: rotate(359deg); }
1644 | }
1645 | .CodeMirror-hints {
1646 | background: white;
1647 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
1648 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
1649 | font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace;
1650 | font-size: 13px;
1651 | list-style: none;
1652 | margin-left: -6px;
1653 | margin: 0;
1654 | max-height: 14.5em;
1655 | overflow-y: auto;
1656 | overflow: hidden;
1657 | padding: 0;
1658 | position: absolute;
1659 | z-index: 10;
1660 | }
1661 |
1662 | .CodeMirror-hint {
1663 | border-top: solid 1px #f7f7f7;
1664 | color: #141823;
1665 | cursor: pointer;
1666 | margin: 0;
1667 | max-width: 300px;
1668 | overflow: hidden;
1669 | padding: 2px 6px;
1670 | white-space: pre;
1671 | }
1672 |
1673 | li.CodeMirror-hint-active {
1674 | background-color: #08f;
1675 | border-top-color: white;
1676 | color: white;
1677 | }
1678 |
1679 | .CodeMirror-hint-information {
1680 | border-top: solid 1px #c0c0c0;
1681 | max-width: 300px;
1682 | padding: 4px 6px;
1683 | position: relative;
1684 | z-index: 1;
1685 | }
1686 |
1687 | .CodeMirror-hint-information:first-child {
1688 | border-bottom: solid 1px #c0c0c0;
1689 | border-top: none;
1690 | margin-bottom: -1px;
1691 | }
1692 |
1693 | .CodeMirror-hint-deprecation {
1694 | background: #fffae8;
1695 | -webkit-box-shadow: inset 0 1px 1px -1px #bfb063;
1696 | box-shadow: inset 0 1px 1px -1px #bfb063;
1697 | color: #867F70;
1698 | font-family:
1699 | system,
1700 | -apple-system,
1701 | 'San Francisco',
1702 | '.SFNSDisplay-Regular',
1703 | 'Segoe UI',
1704 | Segoe,
1705 | 'Segoe WP',
1706 | 'Helvetica Neue',
1707 | helvetica,
1708 | 'Lucida Grande',
1709 | arial,
1710 | sans-serif;
1711 | font-size: 13px;
1712 | line-height: 16px;
1713 | margin-top: 4px;
1714 | max-height: 80px;
1715 | overflow: hidden;
1716 | padding: 6px;
1717 | }
1718 |
1719 | .CodeMirror-hint-deprecation .deprecation-label {
1720 | color: #c79b2e;
1721 | cursor: default;
1722 | display: block;
1723 | font-size: 9px;
1724 | font-weight: bold;
1725 | letter-spacing: 1px;
1726 | line-height: 1;
1727 | padding-bottom: 5px;
1728 | text-transform: uppercase;
1729 | -webkit-user-select: none;
1730 | -moz-user-select: none;
1731 | -ms-user-select: none;
1732 | user-select: none;
1733 | }
1734 |
1735 | .CodeMirror-hint-deprecation .deprecation-label + * {
1736 | margin-top: 0;
1737 | }
1738 |
1739 | .CodeMirror-hint-deprecation :last-child {
1740 | margin-bottom: 0;
1741 | }
1742 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | Example Custom-GraphiQL Install
2 | ===============================
3 |
4 | This example uses the version of Custom-GraphiQL found in the parent directory, rather
5 | than depending on npm, so that it is easier to test new changes. In order to use
6 | the compiled version of GraphiQL, first run build in the parent directory before
7 | installing and starting the example.
8 |
9 | 1. Run `npm install && npm run build` in the parent directory
10 | 2. Navigate to this directory (example) in Terminal
11 | 3. `npm install`
12 | 4. `npm start`
13 | 5. Open your browser to [http://localhost:8081/]()
14 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
23 |
24 |
31 |
32 |
33 |
34 |
35 |
36 |
41 |
42 |
43 |
44 |
45 |
46 | Loading...
47 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "An example using GraphiQL",
3 | "scripts": {
4 | "start": "node server.js"
5 | },
6 | "dependencies": {
7 | "express": "^4.13.3",
8 | "custom-graphiql": "../",
9 | "graphql": "^0.8.0"
10 | },
11 | "optionalDependencies": {
12 | "react": "^15.0.1",
13 | "react-dom": "^15.0.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/example/server.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | const path = require('path');
11 | const express = require('express');
12 |
13 | const app = express();
14 |
15 | app.use(express.static(__dirname));
16 | app.use('/graphql', function (req, res) {
17 | res.sendFile(path.join(__dirname, 'index.html'));
18 | });
19 |
20 | app.listen(8081, () => console.log('Started on http://localhost:8081/'));
21 |
--------------------------------------------------------------------------------
/example/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | accepts@~1.3.5:
6 | version "1.3.5"
7 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
8 | integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
9 | dependencies:
10 | mime-types "~2.1.18"
11 | negotiator "0.6.1"
12 |
13 | argparse@^1.0.7:
14 | version "1.0.10"
15 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
16 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
17 | dependencies:
18 | sprintf-js "~1.0.2"
19 |
20 | array-flatten@1.1.1:
21 | version "1.1.1"
22 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
23 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
24 |
25 | asap@~2.0.3:
26 | version "2.0.6"
27 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
28 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
29 |
30 | balanced-match@^1.0.0:
31 | version "1.0.0"
32 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
33 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
34 |
35 | body-parser@1.18.3:
36 | version "1.18.3"
37 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
38 | integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
39 | dependencies:
40 | bytes "3.0.0"
41 | content-type "~1.0.4"
42 | debug "2.6.9"
43 | depd "~1.1.2"
44 | http-errors "~1.6.3"
45 | iconv-lite "0.4.23"
46 | on-finished "~2.3.0"
47 | qs "6.5.2"
48 | raw-body "2.3.3"
49 | type-is "~1.6.16"
50 |
51 | brace-expansion@^1.1.7:
52 | version "1.1.11"
53 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
54 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
55 | dependencies:
56 | balanced-match "^1.0.0"
57 | concat-map "0.0.1"
58 |
59 | bytes@3.0.0:
60 | version "3.0.0"
61 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
62 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
63 |
64 | codemirror-graphql@^0.7.1:
65 | version "0.7.1"
66 | resolved "https://registry.yarnpkg.com/codemirror-graphql/-/codemirror-graphql-0.7.1.tgz#64b995643d511b9aa8f85eeeb2feac7aeb4b94d4"
67 | integrity sha512-HtHXMJAn6iGJYpijkzi3IlqWIdGrB6V0RqJ607yffJTCKk/OgaNtdLOb8hZJyEtHfkw7PZDaKybMAVCi6ScWSQ==
68 | dependencies:
69 | graphql-language-service-interface "^1.3.2"
70 | graphql-language-service-parser "^1.2.2"
71 |
72 | codemirror@^5.26.0:
73 | version "5.42.2"
74 | resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.42.2.tgz#801ab715a7a7e1c7ed4162b78e9d8138b98de8f0"
75 | integrity sha512-Tkv6im39VuhduFMsDA3MlXcC/kKas3Z0PI1/8N88QvFQbtOeiiwnfFJE4juGyC8/a4sb1BSxQlzsil8XLQdxRw==
76 |
77 | concat-map@0.0.1:
78 | version "0.0.1"
79 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
80 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
81 |
82 | content-disposition@0.5.2:
83 | version "0.5.2"
84 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
85 | integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
86 |
87 | content-type@~1.0.4:
88 | version "1.0.4"
89 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
90 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
91 |
92 | cookie-signature@1.0.6:
93 | version "1.0.6"
94 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
95 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
96 |
97 | cookie@0.3.1:
98 | version "0.3.1"
99 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
100 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
101 |
102 | copy-to-clipboard@^3:
103 | version "3.0.8"
104 | resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz#f4e82f4a8830dce4666b7eb8ded0c9bcc313aba9"
105 | integrity sha512-c3GdeY8qxCHGezVb1EFQfHYK/8NZRemgcTIzPq7PuxjHAf/raKibn2QdhHPb/y6q74PMgH6yizaDZlRmw6QyKw==
106 | dependencies:
107 | toggle-selection "^1.0.3"
108 |
109 | core-js@^1.0.0:
110 | version "1.2.7"
111 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
112 | integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
113 |
114 | create-react-class@^15.6.0:
115 | version "15.6.3"
116 | resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
117 | integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
118 | dependencies:
119 | fbjs "^0.8.9"
120 | loose-envify "^1.3.1"
121 | object-assign "^4.1.1"
122 |
123 | cross-fetch@2.2.2:
124 | version "2.2.2"
125 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723"
126 | integrity sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=
127 | dependencies:
128 | node-fetch "2.1.2"
129 | whatwg-fetch "2.0.4"
130 |
131 | custom-graphiql@../:
132 | version "0.1.3"
133 | dependencies:
134 | graphiql "0.12.0"
135 | isomorphic-fetch "2.2.1"
136 | react-copy-to-clipboard "5.0.1"
137 |
138 | debug@2.6.9:
139 | version "2.6.9"
140 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
141 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
142 | dependencies:
143 | ms "2.0.0"
144 |
145 | depd@~1.1.2:
146 | version "1.1.2"
147 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
148 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
149 |
150 | destroy@~1.0.4:
151 | version "1.0.4"
152 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
153 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
154 |
155 | ee-first@1.1.1:
156 | version "1.1.1"
157 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
158 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
159 |
160 | encodeurl@~1.0.2:
161 | version "1.0.2"
162 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
163 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
164 |
165 | encoding@^0.1.11:
166 | version "0.1.12"
167 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
168 | integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
169 | dependencies:
170 | iconv-lite "~0.4.13"
171 |
172 | entities@~1.1.1:
173 | version "1.1.2"
174 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
175 | integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
176 |
177 | escape-html@~1.0.3:
178 | version "1.0.3"
179 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
180 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
181 |
182 | esprima@^4.0.0:
183 | version "4.0.1"
184 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
185 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
186 |
187 | etag@~1.8.1:
188 | version "1.8.1"
189 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
190 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
191 |
192 | express@^4.13.3:
193 | version "4.16.4"
194 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
195 | integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==
196 | dependencies:
197 | accepts "~1.3.5"
198 | array-flatten "1.1.1"
199 | body-parser "1.18.3"
200 | content-disposition "0.5.2"
201 | content-type "~1.0.4"
202 | cookie "0.3.1"
203 | cookie-signature "1.0.6"
204 | debug "2.6.9"
205 | depd "~1.1.2"
206 | encodeurl "~1.0.2"
207 | escape-html "~1.0.3"
208 | etag "~1.8.1"
209 | finalhandler "1.1.1"
210 | fresh "0.5.2"
211 | merge-descriptors "1.0.1"
212 | methods "~1.1.2"
213 | on-finished "~2.3.0"
214 | parseurl "~1.3.2"
215 | path-to-regexp "0.1.7"
216 | proxy-addr "~2.0.4"
217 | qs "6.5.2"
218 | range-parser "~1.2.0"
219 | safe-buffer "5.1.2"
220 | send "0.16.2"
221 | serve-static "1.13.2"
222 | setprototypeof "1.1.0"
223 | statuses "~1.4.0"
224 | type-is "~1.6.16"
225 | utils-merge "1.0.1"
226 | vary "~1.1.2"
227 |
228 | fbjs@^0.8.9:
229 | version "0.8.17"
230 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
231 | integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
232 | dependencies:
233 | core-js "^1.0.0"
234 | isomorphic-fetch "^2.1.1"
235 | loose-envify "^1.0.0"
236 | object-assign "^4.1.0"
237 | promise "^7.1.1"
238 | setimmediate "^1.0.5"
239 | ua-parser-js "^0.7.18"
240 |
241 | finalhandler@1.1.1:
242 | version "1.1.1"
243 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
244 | integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==
245 | dependencies:
246 | debug "2.6.9"
247 | encodeurl "~1.0.2"
248 | escape-html "~1.0.3"
249 | on-finished "~2.3.0"
250 | parseurl "~1.3.2"
251 | statuses "~1.4.0"
252 | unpipe "~1.0.0"
253 |
254 | forwarded@~0.1.2:
255 | version "0.1.2"
256 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
257 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
258 |
259 | fresh@0.5.2:
260 | version "0.5.2"
261 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
262 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
263 |
264 | graphiql@0.12.0:
265 | version "0.12.0"
266 | resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-0.12.0.tgz#a035c93a6e3c18850c2f450c039747b2ea3eb953"
267 | integrity sha512-OM5dpcONLK1B2prez2WVTfohQlQKe4Fwv1YwNQYQhN+fFGEW87D5v5fN2M8ZebzxbZHqP12KkHicO3sv8k30TQ==
268 | dependencies:
269 | codemirror "^5.26.0"
270 | codemirror-graphql "^0.7.1"
271 | markdown-it "^8.4.0"
272 |
273 | graphql-config@2.0.1:
274 | version "2.0.1"
275 | resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.1.tgz#d34a9bdf1d7360af7b01db9b20260a342ddc7390"
276 | integrity sha512-eb4FzlODifHE/Q+91QptAmkGw39wL5ToinJ2556UUsGt2drPc4tzifL+HSnHSaxiIbH8EUhc/Fa6+neinF04qA==
277 | dependencies:
278 | graphql-import "^0.4.4"
279 | graphql-request "^1.5.0"
280 | js-yaml "^3.10.0"
281 | lodash "^4.17.4"
282 | minimatch "^3.0.4"
283 |
284 | graphql-import@^0.4.4:
285 | version "0.4.5"
286 | resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645"
287 | integrity sha512-G/+I08Qp6/QGTb9qapknCm3yPHV0ZL7wbaalWFpxsfR8ZhZoTBe//LsbsCKlbALQpcMegchpJhpTSKiJjhaVqQ==
288 | dependencies:
289 | lodash "^4.17.4"
290 |
291 | graphql-language-service-interface@^1.3.2:
292 | version "1.3.2"
293 | resolved "https://registry.yarnpkg.com/graphql-language-service-interface/-/graphql-language-service-interface-1.3.2.tgz#4bd5d49e23766c3d2ab65d110f26f10e321cc000"
294 | integrity sha512-sOxFV5sBSnYtKIFHtlmAHHVdhok7CRbvCPLcuHvL4Q1RSgKRsPpeHUDKU+yCbmlonOKn/RWEKaYWrUY0Sgv70A==
295 | dependencies:
296 | graphql-config "2.0.1"
297 | graphql-language-service-parser "^1.2.2"
298 | graphql-language-service-types "^1.2.2"
299 | graphql-language-service-utils "^1.2.2"
300 |
301 | graphql-language-service-parser@^1.2.2:
302 | version "1.2.2"
303 | resolved "https://registry.yarnpkg.com/graphql-language-service-parser/-/graphql-language-service-parser-1.2.2.tgz#010c8a5fdfae4726c8e15714137eee822753d3ea"
304 | integrity sha512-38zMqJibNKeQe3GheyJtBENoXMp+qc29smiiRQtHLZcwnQfsYtu6reJZKxxwzU7XOVh3SedNH15Gf3LjWJVkiQ==
305 | dependencies:
306 | graphql-config "2.0.1"
307 | graphql-language-service-types "^1.2.2"
308 |
309 | graphql-language-service-types@^1.2.2:
310 | version "1.2.2"
311 | resolved "https://registry.yarnpkg.com/graphql-language-service-types/-/graphql-language-service-types-1.2.2.tgz#078e0abc7936a593968c946a039502af136a9743"
312 | integrity sha512-WEAYYCP4jSzbz/Mw0Klc7HHMgtUHLgtaPMV6zyMMmvefCg/yBUkv7wREXKmqF1k1u9+f5ZX3dki0BMaXiwmJug==
313 | dependencies:
314 | graphql-config "2.0.1"
315 |
316 | graphql-language-service-utils@^1.2.2:
317 | version "1.2.2"
318 | resolved "https://registry.yarnpkg.com/graphql-language-service-utils/-/graphql-language-service-utils-1.2.2.tgz#d31d4b4288085bd31d1bb8efc35790d69e496cae"
319 | integrity sha512-98hzn1Dg3sSAiB+TuvNwWAoBrzuHs8NylkTK26TFyBjozM5wBZttp+T08OvOt+9hCFYRa43yRPrWcrs78KH9Hw==
320 | dependencies:
321 | graphql-config "2.0.1"
322 | graphql-language-service-types "^1.2.2"
323 |
324 | graphql-request@^1.5.0:
325 | version "1.8.2"
326 | resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe"
327 | integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==
328 | dependencies:
329 | cross-fetch "2.2.2"
330 |
331 | graphql@^0.8.0:
332 | version "0.8.2"
333 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.8.2.tgz#eb1bb524b38104bbf2c9157f9abc67db2feba7d2"
334 | integrity sha1-6xu1JLOBBLvyyRV/mrxn2y/rp9I=
335 | dependencies:
336 | iterall "1.0.2"
337 |
338 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
339 | version "1.6.3"
340 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
341 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
342 | dependencies:
343 | depd "~1.1.2"
344 | inherits "2.0.3"
345 | setprototypeof "1.1.0"
346 | statuses ">= 1.4.0 < 2"
347 |
348 | iconv-lite@0.4.23:
349 | version "0.4.23"
350 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
351 | integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==
352 | dependencies:
353 | safer-buffer ">= 2.1.2 < 3"
354 |
355 | iconv-lite@~0.4.13:
356 | version "0.4.24"
357 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
358 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
359 | dependencies:
360 | safer-buffer ">= 2.1.2 < 3"
361 |
362 | inherits@2.0.3:
363 | version "2.0.3"
364 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
365 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
366 |
367 | ipaddr.js@1.8.0:
368 | version "1.8.0"
369 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
370 | integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
371 |
372 | is-stream@^1.0.1:
373 | version "1.1.0"
374 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
375 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
376 |
377 | isomorphic-fetch@2.2.1, isomorphic-fetch@^2.1.1:
378 | version "2.2.1"
379 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
380 | integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
381 | dependencies:
382 | node-fetch "^1.0.1"
383 | whatwg-fetch ">=0.10.0"
384 |
385 | iterall@1.0.2:
386 | version "1.0.2"
387 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.0.2.tgz#41a2e96ce9eda5e61c767ee5dc312373bb046e91"
388 | integrity sha1-QaLpbOntpeYcdn7l3DEjc7sEbpE=
389 |
390 | "js-tokens@^3.0.0 || ^4.0.0":
391 | version "4.0.0"
392 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
393 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
394 |
395 | js-yaml@^3.10.0:
396 | version "3.12.1"
397 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
398 | integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
399 | dependencies:
400 | argparse "^1.0.7"
401 | esprima "^4.0.0"
402 |
403 | linkify-it@^2.0.0:
404 | version "2.1.0"
405 | resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db"
406 | integrity sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==
407 | dependencies:
408 | uc.micro "^1.0.1"
409 |
410 | lodash@^4.17.4:
411 | version "4.17.11"
412 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
413 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
414 |
415 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
416 | version "1.4.0"
417 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
418 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
419 | dependencies:
420 | js-tokens "^3.0.0 || ^4.0.0"
421 |
422 | markdown-it@^8.4.0:
423 | version "8.4.2"
424 | resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
425 | integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
426 | dependencies:
427 | argparse "^1.0.7"
428 | entities "~1.1.1"
429 | linkify-it "^2.0.0"
430 | mdurl "^1.0.1"
431 | uc.micro "^1.0.5"
432 |
433 | mdurl@^1.0.1:
434 | version "1.0.1"
435 | resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
436 | integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
437 |
438 | media-typer@0.3.0:
439 | version "0.3.0"
440 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
441 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
442 |
443 | merge-descriptors@1.0.1:
444 | version "1.0.1"
445 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
446 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
447 |
448 | methods@~1.1.2:
449 | version "1.1.2"
450 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
451 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
452 |
453 | mime-db@~1.37.0:
454 | version "1.37.0"
455 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
456 | integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
457 |
458 | mime-types@~2.1.18:
459 | version "2.1.21"
460 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
461 | integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
462 | dependencies:
463 | mime-db "~1.37.0"
464 |
465 | mime@1.4.1:
466 | version "1.4.1"
467 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
468 | integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
469 |
470 | minimatch@^3.0.4:
471 | version "3.0.4"
472 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
473 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
474 | dependencies:
475 | brace-expansion "^1.1.7"
476 |
477 | ms@2.0.0:
478 | version "2.0.0"
479 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
480 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
481 |
482 | negotiator@0.6.1:
483 | version "0.6.1"
484 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
485 | integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
486 |
487 | node-fetch@2.1.2:
488 | version "2.1.2"
489 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
490 | integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=
491 |
492 | node-fetch@^1.0.1:
493 | version "1.7.3"
494 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
495 | integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
496 | dependencies:
497 | encoding "^0.1.11"
498 | is-stream "^1.0.1"
499 |
500 | object-assign@^4.1.0, object-assign@^4.1.1:
501 | version "4.1.1"
502 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
503 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
504 |
505 | on-finished@~2.3.0:
506 | version "2.3.0"
507 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
508 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
509 | dependencies:
510 | ee-first "1.1.1"
511 |
512 | parseurl@~1.3.2:
513 | version "1.3.2"
514 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
515 | integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
516 |
517 | path-to-regexp@0.1.7:
518 | version "0.1.7"
519 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
520 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
521 |
522 | promise@^7.1.1:
523 | version "7.3.1"
524 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
525 | integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
526 | dependencies:
527 | asap "~2.0.3"
528 |
529 | prop-types@^15.5.10, prop-types@^15.5.8:
530 | version "15.6.2"
531 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
532 | integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
533 | dependencies:
534 | loose-envify "^1.3.1"
535 | object-assign "^4.1.1"
536 |
537 | proxy-addr@~2.0.4:
538 | version "2.0.4"
539 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
540 | integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
541 | dependencies:
542 | forwarded "~0.1.2"
543 | ipaddr.js "1.8.0"
544 |
545 | qs@6.5.2:
546 | version "6.5.2"
547 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
548 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
549 |
550 | range-parser@~1.2.0:
551 | version "1.2.0"
552 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
553 | integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
554 |
555 | raw-body@2.3.3:
556 | version "2.3.3"
557 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
558 | integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
559 | dependencies:
560 | bytes "3.0.0"
561 | http-errors "1.6.3"
562 | iconv-lite "0.4.23"
563 | unpipe "1.0.0"
564 |
565 | react-copy-to-clipboard@5.0.1:
566 | version "5.0.1"
567 | resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e"
568 | integrity sha512-ELKq31/E3zjFs5rDWNCfFL4NvNFQvGRoJdAKReD/rUPA+xxiLPQmZBZBvy2vgH7V0GE9isIQpT9WXbwIVErYdA==
569 | dependencies:
570 | copy-to-clipboard "^3"
571 | prop-types "^15.5.8"
572 |
573 | react-dom@^15.0.1:
574 | version "15.6.2"
575 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
576 | integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=
577 | dependencies:
578 | fbjs "^0.8.9"
579 | loose-envify "^1.1.0"
580 | object-assign "^4.1.0"
581 | prop-types "^15.5.10"
582 |
583 | react@^15.0.1:
584 | version "15.6.2"
585 | resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
586 | integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=
587 | dependencies:
588 | create-react-class "^15.6.0"
589 | fbjs "^0.8.9"
590 | loose-envify "^1.1.0"
591 | object-assign "^4.1.0"
592 | prop-types "^15.5.10"
593 |
594 | safe-buffer@5.1.2:
595 | version "5.1.2"
596 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
597 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
598 |
599 | "safer-buffer@>= 2.1.2 < 3":
600 | version "2.1.2"
601 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
602 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
603 |
604 | send@0.16.2:
605 | version "0.16.2"
606 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
607 | integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
608 | dependencies:
609 | debug "2.6.9"
610 | depd "~1.1.2"
611 | destroy "~1.0.4"
612 | encodeurl "~1.0.2"
613 | escape-html "~1.0.3"
614 | etag "~1.8.1"
615 | fresh "0.5.2"
616 | http-errors "~1.6.2"
617 | mime "1.4.1"
618 | ms "2.0.0"
619 | on-finished "~2.3.0"
620 | range-parser "~1.2.0"
621 | statuses "~1.4.0"
622 |
623 | serve-static@1.13.2:
624 | version "1.13.2"
625 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
626 | integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
627 | dependencies:
628 | encodeurl "~1.0.2"
629 | escape-html "~1.0.3"
630 | parseurl "~1.3.2"
631 | send "0.16.2"
632 |
633 | setimmediate@^1.0.5:
634 | version "1.0.5"
635 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
636 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
637 |
638 | setprototypeof@1.1.0:
639 | version "1.1.0"
640 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
641 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
642 |
643 | sprintf-js@~1.0.2:
644 | version "1.0.3"
645 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
646 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
647 |
648 | "statuses@>= 1.4.0 < 2":
649 | version "1.5.0"
650 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
651 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
652 |
653 | statuses@~1.4.0:
654 | version "1.4.0"
655 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
656 | integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
657 |
658 | toggle-selection@^1.0.3:
659 | version "1.0.6"
660 | resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
661 | integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI=
662 |
663 | type-is@~1.6.16:
664 | version "1.6.16"
665 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
666 | integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
667 | dependencies:
668 | media-typer "0.3.0"
669 | mime-types "~2.1.18"
670 |
671 | ua-parser-js@^0.7.18:
672 | version "0.7.19"
673 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b"
674 | integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==
675 |
676 | uc.micro@^1.0.1, uc.micro@^1.0.5:
677 | version "1.0.5"
678 | resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz#0c65f15f815aa08b560a61ce8b4db7ffc3f45376"
679 | integrity sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==
680 |
681 | unpipe@1.0.0, unpipe@~1.0.0:
682 | version "1.0.0"
683 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
684 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
685 |
686 | utils-merge@1.0.1:
687 | version "1.0.1"
688 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
689 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
690 |
691 | vary@~1.1.2:
692 | version "1.1.2"
693 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
694 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
695 |
696 | whatwg-fetch@2.0.4:
697 | version "2.0.4"
698 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
699 | integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==
700 |
701 | whatwg-fetch@>=0.10.0:
702 | version "3.0.0"
703 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
704 | integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
705 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "custom-graphiql",
3 | "version": "0.2.0",
4 | "description": "GraphiQL IDE with extra option for creating stub mutation and save queries to localStorage",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "build": ". ./resources/build.sh",
8 | "lint": "eslint src",
9 | "dev": "webpack-dev-server --config server/webpack.config.js --color --progress",
10 | "prepublish": ". ./resources/prepublish.sh",
11 | "preversion": ". ./resources/checkgit.sh",
12 | "update-website": ". ./resources/updateWebsite.sh"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git+https://github.com/shahankit/custom-graphiql.git"
17 | },
18 | "keywords": [
19 | "graphql",
20 | "graphiql",
21 | "react",
22 | "ide",
23 | "server",
24 | "custom"
25 | ],
26 | "author": "Ankit Shah (http://github.com/shahankit)",
27 | "license": "MIT",
28 | "bugs": {
29 | "url": "https://github.com/shahankit/custom-graphiql/issues"
30 | },
31 | "homepage": "https://github.com/shahankit/custom-graphiql#readme",
32 | "files": [
33 | "dist",
34 | "custom-graphiql.js",
35 | "custom-graphiql.min.js",
36 | "custom-graphiql.css",
37 | "README.md",
38 | "LICENSE"
39 | ],
40 | "browserify-shim": {
41 | "react": "global:React",
42 | "react-dom": "global:ReactDOM"
43 | },
44 | "dependencies": {
45 | "graphiql": "0.12.0",
46 | "isomorphic-fetch": "2.2.1",
47 | "react-copy-to-clipboard": "5.0.1"
48 | },
49 | "peerDependencies": {
50 | "graphql": "^0.6.0 || ^0.7.0 || ^0.8.0-b || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0",
51 | "prop-types": ">=15.5.0",
52 | "react": "^15.6.0 || ^16.0.0",
53 | "react-dom": "^15.6.0 || ^16.0.0"
54 | },
55 | "devDependencies": {
56 | "@babel/cli": "7.2.3",
57 | "@babel/core": "7.1.6",
58 | "@babel/plugin-proposal-class-properties": "7.2.3",
59 | "@babel/preset-env": "7.2.3",
60 | "@babel/preset-react": "7.0.0",
61 | "babel-eslint": "10.0.1",
62 | "babel-loader": "8.0.4",
63 | "browserify": "16.2.3",
64 | "browserify-shim": "3.8.14",
65 | "css-loader": "2.1.0",
66 | "eslint": "5.12.1",
67 | "eslint-config-prettier": "3.5.0",
68 | "eslint-plugin-babel": "5.3.0",
69 | "eslint-plugin-react": "7.12.4",
70 | "express": "4.16.4",
71 | "graphql": "0.13.2",
72 | "html-webpack-plugin": "3.2.0",
73 | "react": "16.7.0",
74 | "react-dom": "16.7.0",
75 | "remove-flow-types-loader": "1.1.0",
76 | "style-loader": "0.23.1",
77 | "uglify-js": "3.4.9",
78 | "uglifyify": "5.0.1",
79 | "webpack": "4.19.1",
80 | "webpack-cli": "3.2.1",
81 | "webpack-dev-server": "3.1.14"
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/resources/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | if [ ! -d "node_modules/.bin" ]; then
6 | echo "Be sure to run \`npm install\` before building CustomGraphiQL."
7 | exit 1
8 | fi
9 |
10 | rm -rf dist/ && mkdir -p dist/
11 | BABEL_ENV=production babel src --ignore __tests__ --out-dir dist/
12 | echo "Bundling custom-graphiql.js..."
13 | browserify -g browserify-shim -s CustomGraphiQL dist/index.js > custom-graphiql.js
14 | echo "Bundling custom-graphiql.min.js..."
15 | browserify -g browserify-shim -g uglifyify -s CustomGraphiQL dist/index.js 2> /dev/null | uglifyjs -c > custom-graphiql.min.js 2> /dev/null
16 | echo "Bundling custom-graphiql.css..."
17 | cat css/*.css > custom-graphiql.css
18 | echo "Done"
19 |
--------------------------------------------------------------------------------
/resources/cgraphiql.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shahankit/custom-graphiql/6096d0fb1a8c0575d315f0ca0a2a3872c02a152c/resources/cgraphiql.gif
--------------------------------------------------------------------------------
/resources/cgraphiql2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shahankit/custom-graphiql/6096d0fb1a8c0575d315f0ca0a2a3872c02a152c/resources/cgraphiql2.png
--------------------------------------------------------------------------------
/resources/checkgit.sh:
--------------------------------------------------------------------------------
1 | #
2 | # This script determines if current git state is the up to date master. If so
3 | # it exits normally. If not it prompts for an explicit continue. This script
4 | # intends to protect from versioning for NPM without first pushing changes
5 | # and including any changes on master.
6 | #
7 |
8 | # First fetch to ensure git is up to date. Fail-fast if this fails.
9 | git fetch;
10 | if [[ $? -ne 0 ]]; then exit 1; fi;
11 |
12 | # Extract useful information.
13 | GITBRANCH=$(git branch -v 2> /dev/null | sed '/^[^*]/d');
14 | GITBRANCHNAME=$(echo "$GITBRANCH" | sed 's/* \([A-Za-z0-9_\-]*\).*/\1/');
15 | GITBRANCHSYNC=$(echo "$GITBRANCH" | sed 's/* [^[]*.\([^]]*\).*/\1/');
16 |
17 | # Check if master is checked out
18 | if [ "$GITBRANCHNAME" != "master" ]; then
19 | read -p "Git not on master but $GITBRANCHNAME. Continue? (y|N) " yn;
20 | if [ "$yn" != "y" ]; then exit 1; fi;
21 | fi;
22 |
23 | # Check if branch is synced with remote
24 | if [ "$GITBRANCHSYNC" != "" ]; then
25 | read -p "Git not up to date but $GITBRANCHSYNC. Continue? (y|N) " yn;
26 | if [ "$yn" != "y" ]; then exit 1; fi;
27 | fi;
28 |
--------------------------------------------------------------------------------
/resources/prepublish.sh:
--------------------------------------------------------------------------------
1 | # Because of a long-running npm issue (https://github.com/npm/npm/issues/3059)
2 | # prepublish runs after `npm install` and `npm pack`.
3 | # In order to only run prepublish before `npm publish`, we have to check argv.
4 | if node -e "process.exit(($npm_config_argv).original[0].indexOf('pu') === 0)"; then
5 | exit 0;
6 | fi
7 |
8 | npm run build;
9 |
--------------------------------------------------------------------------------
/resources/updateWebsite.sh:
--------------------------------------------------------------------------------
1 | yarn build
2 |
3 | mkdir -p ./website/js
4 | mkdir -p ./website/css
5 |
6 | cp ./custom-graphiql.js ./custom-graphiql.min.js ./website/js/
7 | cp ./custom-graphiql.css ./website/css/
8 |
--------------------------------------------------------------------------------
/server/app.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import CustomGraphiQL from '../src/index';
4 |
5 | const rootElement = document.getElementById('root');
6 |
7 | ReactDOM.render(
8 | ,
9 | rootElement
10 | );
11 |
--------------------------------------------------------------------------------
/server/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 | Sample App
12 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/server/paths.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const fs = require('fs');
3 |
4 | // Make sure any symlinks in the project folder are resolved:
5 | // https://github.com/facebookincubator/create-react-app/issues/637
6 | const appDirectory = fs.realpathSync(process.cwd());
7 | function resolveApp(relativePath) {
8 | return path.resolve(appDirectory, relativePath);
9 | }
10 |
11 | module.exports = {
12 | appIndexJs: resolveApp('src/index.js'),
13 | appPackageJson: resolveApp('package.json'),
14 | appSrc: resolveApp('src'),
15 | appNodeModules: resolveApp('node_modules'),
16 | appContainerJs: resolveApp('server/app.js'),
17 | appCss: resolveApp('css'),
18 | appDist: resolveApp('dist'),
19 | appHtml: resolveApp('server/index.html'),
20 | };
21 |
--------------------------------------------------------------------------------
/server/webpack.config.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const paths = require('./paths');
3 | const HtmlWebpackPlugin = require('html-webpack-plugin');
4 |
5 | const publicPath = '/'
6 |
7 | module.exports = {
8 | mode: 'development',
9 | entry: [
10 | paths.appContainerJs
11 | ],
12 | devtool: 'cheap-module-source-map',
13 | output: {
14 | filename: 'bundle.js',
15 | publicPath: publicPath,
16 | },
17 | module: {
18 | rules: [
19 | {
20 | test: /\.js.flow$/, // assuming the files are named .js.flow
21 | enforce: 'pre',
22 | use: ['remove-flow-types-loader']
23 | },
24 | {
25 | test: /\.(js|mjs|jsx|ts|tsx)$/,
26 | enforce: 'pre',
27 | use: [
28 | require.resolve('babel-loader')
29 | ],
30 | include: [
31 | paths.appSrc,
32 | paths.appContainerJs
33 | ]
34 | },
35 | // Avoid "require is not defined" errors
36 | // (found in graphql@0.13.2)
37 | {
38 | test: /\.mjs$/,
39 | include: /node_modules/,
40 | type: "javascript/auto",
41 | },
42 | {
43 | test: /\.css$/,
44 | loader: 'style-loader!css-loader'
45 | }
46 | ]
47 | },
48 | plugins: [
49 | // Generates an `index.html` file with the
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | Loading...
44 |
54 |
55 |