asoria HF staff commited on
Commit
4713958
·
verified ·
1 Parent(s): 5603be7

Upload index.html with huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +293 -18
index.html CHANGED
@@ -1,19 +1,294 @@
1
- <!doctype html>
 
2
  <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
  <html>
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
6
+ <title>fka/awesome-chatgpt-prompts</title>
7
+
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
11
+
12
+
13
+
14
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css" />
15
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" />
16
+ <script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>
17
+
18
+ <script src="https://unpkg.com/[email protected]"></script>
19
+
20
+ <style>
21
+ body {
22
+ margin: 0;
23
+ padding: 0;
24
+ overflow: hidden;
25
+ background: #ffffff;
26
+ }
27
+
28
+ #deck-container {
29
+ width: 100vw;
30
+ height: 100vh;
31
+ }
32
+
33
+ #deck-container canvas {
34
+ z-index: 1;
35
+ background: #ffffff;
36
+ }
37
+
38
+ .deck-tooltip {
39
+
40
+ font-size: 0.8em;
41
+ font-family: Roboto;
42
+ font-weight: 300;
43
+ color: #000000 !important;
44
+ background-color: #ffffffaa !important;
45
+ border-radius: 12px;
46
+ box-shadow: 2px 3px 10px #aaaaaa44;
47
+ max-width: 25%;
48
+ }
49
+
50
+ #loading {
51
+ width: 100%;
52
+ height: 100%;
53
+ top: 0px;
54
+ left: 0px;
55
+ position: absolute;
56
+ display: block;
57
+ z-index: 99
58
+ }
59
+
60
+ #loading-image {
61
+ position: absolute;
62
+ top: 45%;
63
+ left: 47.5%;
64
+ z-index: 100
65
+ }
66
+
67
+ #title-container {
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ margin: 16px;
72
+ padding: 12px;
73
+ border-radius: 16px;
74
+ line-height: 0.95;
75
+ z-index: 2;
76
+ font-family: Roboto;
77
+ color: #000000;
78
+ background: #ffffffaa;
79
+ box-shadow: 2px 3px 10px #aaaaaa44;
80
+ }
81
+
82
+
83
+ #search-container{
84
+ position: absolute;
85
+ left: -16px;
86
+ margin: 16px;
87
+ padding: 12px;
88
+ border-radius: 16px;
89
+ z-index: 2;
90
+ font-family: Roboto;
91
+ color: #000000;
92
+ background: #ffffffaa;
93
+ width: fit-content;
94
+ box-shadow: 2px 3px 10px #aaaaaa44;
95
+ }
96
+ input {
97
+ margin: 2px;
98
+ padding: 4px;
99
+ border-radius: 8px;
100
+ color: #000000;
101
+ background: #ffffffdd;
102
+ border: 1px solid #ddddddff;
103
+ transition: 0.5s;
104
+ outline: none;
105
+ }
106
+ input:focus {
107
+ border: 2px solid #555;
108
+ }
109
+
110
+
111
+ </style>
112
+ </head>
113
+ <body>
114
+ <div id="loading">
115
+ <img id="loading-image" src="https://i.gifer.com/ZKZg.gif" alt="Loading..." width="5%"/>
116
+ </div>
117
+
118
+ <div id="title-container">
119
+ <span style="font-family:Roboto;font-size:36pt;color:#000000">
120
+ fka/awesome-chatgpt-prompts
121
+ </span><br/>
122
+ <span style="font-family:Roboto;font-size:18pt;color:#777777">
123
+ Data map for the entire <a href='https://huggingface.co/datasets/fka/awesome-chatgpt-prompts/viewer/default/train' target='_blank'>dataset</a> (170 rows) using the column 'act'
124
+ </span>
125
+
126
+ <div id="search-container">
127
+ <input autocomplete="off" type="search" id="search" placeholder="🔍">
128
+ </div>
129
+
130
+ </div>
131
+
132
+
133
+ <div id="deck-container">
134
+ </div>
135
+
136
+ </body>
137
+ <script type="module">
138
+ import { ArrowLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/[email protected]/+esm'
139
+ import { JSONLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/[email protected]/+esm'
140
+
141
+
142
+
143
+ const pointDataBase64 = "QVJST1cxAAD/////0AUAABAAAAAAAAoADgAGAAUACAAKAAAAAAEEABAAAAAAAAoADAAAAAQACAAKAAAASAQAAAQAAAABAAAADAAAAAgADAAEAAgACAAAACAEAAAEAAAAEAQAAHsiaW5kZXhfY29sdW1ucyI6IFt7ImtpbmQiOiAicmFuZ2UiLCAibmFtZSI6IG51bGwsICJzdGFydCI6IDAsICJzdG9wIjogMTcwLCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJvYmplY3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogIngiLCAiZmllbGRfbmFtZSI6ICJ4IiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDMyIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ5IiwgImZpZWxkX25hbWUiOiAieSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiciIsICJmaWVsZF9uYW1lIjogInIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZyIsICJmaWVsZF9uYW1lIjogImciLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYiIsICJmaWVsZF9uYW1lIjogImIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYSIsICJmaWVsZF9uYW1lIjogImEiLCAicGFuZGFzX3R5cGUiOiAidWludDgi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Y3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogIngiLCAiZmllbGRfbmFtZSI6ICJ4IiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDMyIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ5IiwgImZpZWxkX25hbWUiOiAieSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiciIsICJmaWVsZF9uYW1lIjogInIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZyIsICJmaWVsZF9uYW1lIjogImciLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYiIsICJmaWVsZF9uYW1lIjogImIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYSIsICJmaWVsZF9uYW1lIjogImEiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAic2VsZWN0ZWQiLCAiZmllbGRfbmFtZSI6ICJzZWxlY3RlZCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4IiwgIm1ldGFkYXRhIjogbnVsbH1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJweWFycm93IiwgInZlcnNpb24iOiAiMTcuMC4wIn0sICJwYW5kYXNfdmVyc2lvbiI6ICIyLjIuMiJ9AAAAAAYAAABwYW5kYXMAAAcAAAAoAQAA7AAAALwAAACQAAAAZAAAADgAAAAEAAAABP///wAAAQIQAAAAHAAAAAQAAAAAAAAACAAAAHNlbGVjdGVkAAAAAGL///8IAAAANP///wAAAQIQAAAAFAAAAAQAAAAAAAAAAQAAAGEAAACK////CAAAAFz///8AAAECEAAAABQAAAAEAAAAAAAAAAEAAABiAAAAsv///wgAAACE////AAABAhAAAAAUAAAABAAAAAAAAAABAAAAZwAAANr///8IAAAArP///wAAAQIQAAAAGAAAAAQAAAAAAAAAAQAAAHIABgAIAAQABgAAAAgAAADY////AAABAxAAAAAUAAAABAAAAAAAAAABAAAAeQAAAMr///8AAAEAEAAUAAgABgAHAAwAAAAQABAAAAAAAAEDEAAAABgAAAAEAAAAAAAAAAEAAAB4AAYACAAGAAYAAAAAAAEA+AUAAEFSUk9XMQ==";
144
+ const pointDataBuffer = fflate.strToU8(atob(pointDataBase64), true);
145
+ const pointData = await loaders.parse(pointDataBuffer, ArrowLoader);
146
+ const hoverDataBase64 = "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";
147
+ const hoverDataBuffer = fflate.strToU8(atob(hoverDataBase64), true);
148
+ const unzippedHoverData = fflate.gunzipSync(hoverDataBuffer);
149
+ const hoverData = await loaders.parse(unzippedHoverData, ArrowLoader);
150
+ const labelDataBase64 = "H4sIAFefGWcC/2WSwY7TMBCGXyXyOWt57PHYzm3FIkDaAxKVOBAOadcbLAW7ckK1BfHuOAltynKyNIf5vv/3fPnFXlhzRxwkaeeMtaZm5zJR3DirkRSgrNnQ7f3AGvYmdYdvIfZVF5/a+NHnMcVuaOODP/khHb/7OLGajeGnZ42UHFAY63RZW7PMGleevjyqZnvWqELqWEP4u14lkCsJIGQhqlVCcmc0KiJr9I1E9t0UTr76nMNUZNq4S8dwGK9kcJwECSs04gIGJRfyvGW/evxDVtwKJCmcBbmSNUeQ6EypRG3kty9Hn6fqk8+ncPAbUCInktqUDUgLUdECBAELEcTrsMBJCTJSAuElrLZoXRHHjfjOR5/XtLuUhrGNzylXj13sf3S9L1+QUxEZSwubjOJaWUvGCKHX+PPGYkNulQH6r3mt0CEKPTd0XibCGquVE/am+fdhnFI+V+m5ekx9OLSx3MHVZuvfcrGA7d8WpFzA8/LXvRMUtFXKXc8O0GrthLvpfZe7cl/z0VX3H9p4/3QKY/HYIl+AQLCe2CWpuxC//gGv3+Yk6gIAAA==";
151
+ const labelDataBuffer = fflate.strToU8(atob(labelDataBase64), true);
152
+ const unzippedLabelData = fflate.gunzipSync(labelDataBuffer);
153
+ const labelData = await loaders.parse(unzippedLabelData, JSONLoader);
154
+
155
+
156
+ const DATA = {src: pointData.data, length: pointData.data.x.length}
157
+
158
+ const container = document.getElementById('deck-container');
159
+ const pointLayer = new deck.ScatterplotLayer({
160
+ id: 'dataPointLayer',
161
+ data: DATA,
162
+ getPosition: (object, {index, data}) => {
163
+ return [data.src.x[index], data.src.y[index]];
164
+ },
165
+
166
+ getRadius: 0.1,
167
+
168
+ getFillColor: (object, {index, data}) => {
169
+ return [
170
+ data.src.r[index],
171
+ data.src.g[index],
172
+ data.src.b[index],
173
+ 180
174
+ ]
175
+ },
176
+ getLineColor: (object, {index, data}) => {
177
+ return [
178
+ data.src.r[index],
179
+ data.src.g[index],
180
+ data.src.b[index],
181
+ 32
182
+ ]
183
+ },
184
+ getLineColor: [250, 250, 250, 128],
185
+ getLineWidth: 0.001,
186
+ highlightColor: [170, 0, 0, 187],
187
+ lineWidthMaxPixels: 8,
188
+ lineWidthMinPixels: 0.1,
189
+ radiusMaxPixels: 24,
190
+ radiusMinPixels: 0.01,
191
+ radiusUnits: "common",
192
+ lineWidthUnits: "common",
193
+ autoHighlight: true,
194
+ pickable: true,
195
+ stroked: true
196
+ });
197
+ const labelLayer = new deck.TextLayer({
198
+ id: "textLabelLayer",
199
+ data: labelData,
200
+ pickable: false,
201
+ getPosition: d => [d.x, d.y],
202
+ getText: d => d.label,
203
+ getColor: d => [d.r, d.g, d.b],
204
+ getSize: d => d.size,
205
+ sizeScale: 1,
206
+ sizeMinPixels: 18,
207
+ sizeMaxPixels: 36,
208
+ outlineWidth: 8,
209
+ outlineColor: [238, 238, 238, 221],
210
+ getBackgroundColor: [255, 255, 255, 64],
211
+ getBackgroundPadding: [15, 15, 15, 15],
212
+ background: true,
213
+ characterSet: "auto",
214
+ fontFamily: "Roboto",
215
+ fontWeight: 900,
216
+ lineHeight: 0.95,
217
+ fontSettings: {"sdf": true},
218
+ getTextAnchor: "middle",
219
+ getAlignmentBaseline: "center",
220
+ lineHeight: 0.95,
221
+ elevation: 100,
222
+ // CollideExtension options
223
+ collisionEnabled: true,
224
+ getCollisionPriority: d => d.size,
225
+ collisionTestProps: {
226
+ sizeScale: 3,
227
+ sizeMaxPixels: 36 * 2,
228
+ sizeMinPixels: 18 * 2
229
+ },
230
+ extensions: [new deck.CollisionFilterExtension()],
231
+ });
232
+
233
+
234
+ const deckgl = new deck.DeckGL({
235
+ container: container,
236
+ initialViewState: {
237
+ latitude: -3.8677602,
238
+ longitude: -3.799325,
239
+ zoom: 6.299414970719322
240
+ },
241
+ controller: true,
242
+
243
+ layers: [pointLayer, labelLayer],
244
+
245
+
246
+ getTooltip: ({index}) => hoverData.data.hover_text[index]
247
+ });
248
+
249
+ document.getElementById("loading").style.display = "none";
250
+
251
+
252
+ function selectPoints(item, conditional) {
253
+ var layerId;
254
+ if (item) {
255
+ for (var i = 0; i < DATA.length; i++) {
256
+ if (conditional(i)) {
257
+ DATA.src.selected[i] = 1;
258
+ } else {
259
+ DATA.src.selected[i] = 0;
260
+ }
261
+ }
262
+ layerId = 'selectedPointLayer' + item;
263
+ } else {
264
+ for (var i = 0; i < DATA.length; i++) {
265
+ DATA.src.selected[i] = 1;
266
+ }
267
+ layerId = 'dataPointLayer';
268
+ }
269
+ const selectedPointLayer = pointLayer.clone(
270
+ {
271
+ id: layerId,
272
+ data: DATA,
273
+ getFilterValue: (object, {index, data}) => data.src.selected[index],
274
+ filterRange: [1, 2],
275
+ extensions: [new deck.DataFilterExtension({filterSize: 1})]
276
+ }
277
+ );
278
+ deckgl.setProps(
279
+ {layers:
280
+ [selectedPointLayer].concat(deckgl.props.layers.slice(1,))
281
+ }
282
+ );
283
+ }
284
+
285
+ const search = document.getElementById("search");
286
+ search.addEventListener("input", (event) => {
287
+ const search_term = event.target.value.toLowerCase();
288
+ selectPoints(search_term, (i) => hoverData.data.hover_text[i].toLowerCase().includes(search_term));
289
+ }
290
+ );
291
+
292
+
293
+ </script>
294
+ </html>