Spaces:
Running
Running
Commit ·
27da860
0
Parent(s):
🚀 Clean deploy: Removed canvaskit folder and updated frontend UI
Browse files- .gitignore +3 -0
- assets/AssetManifest.bin +0 -0
- assets/AssetManifest.bin.json +1 -0
- assets/AssetManifest.json +1 -0
- assets/FontManifest.json +1 -0
- assets/NOTICES +0 -0
- assets/fonts/MaterialIcons-Regular.otf +0 -0
- assets/packages/cupertino_icons/assets/CupertinoIcons.ttf +0 -0
- assets/packages/fluttertoast/assets/toastify.css +14 -0
- assets/packages/fluttertoast/assets/toastify.js +14 -0
- assets/shaders/ink_sparkle.frag +126 -0
- favicon.png +0 -0
- flutter.js +32 -0
- flutter_bootstrap.js +44 -0
- flutter_service_worker.js +206 -0
- icons/Icon-192.png +0 -0
- icons/Icon-512.png +0 -0
- icons/Icon-maskable-192.png +0 -0
- icons/Icon-maskable-512.png +0 -0
- index.html +38 -0
- main.dart.js +0 -0
- manifest.json +35 -0
- version.json +1 -0
.gitignore
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
canvaskit/
|
| 2 |
+
build/
|
| 3 |
+
.dart_tool/
|
assets/AssetManifest.bin
ADDED
|
Binary file (2 Bytes). View file
|
|
|
assets/AssetManifest.bin.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"DQA="
|
assets/AssetManifest.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{}
|
assets/FontManifest.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]}]
|
assets/NOTICES
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
assets/fonts/MaterialIcons-Regular.otf
ADDED
|
Binary file (8.82 kB). View file
|
|
|
assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
ADDED
|
Binary file (1.47 kB). View file
|
|
|
assets/packages/fluttertoast/assets/toastify.css
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* Minified by jsDelivr using clean-css v4.2.3.
|
| 3 |
+
* Original file: /npm/toastify-js@1.9.3/src/toastify.css
|
| 4 |
+
*
|
| 5 |
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
| 6 |
+
*/
|
| 7 |
+
/*!
|
| 8 |
+
* Toastify js 1.9.3
|
| 9 |
+
* https://github.com/apvarun/toastify-js
|
| 10 |
+
* @license MIT licensed
|
| 11 |
+
*
|
| 12 |
+
* Copyright (C) 2018 Varun A P
|
| 13 |
+
*/
|
| 14 |
+
.toastify{padding:12px 20px;color:#fff;display:inline-block;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(77,96,232,.3);background:-webkit-linear-gradient(315deg,#73a5ff,#5477f5);background:linear-gradient(135deg,#73a5ff,#5477f5);position:fixed;opacity:0;transition:all .4s cubic-bezier(.215,.61,.355,1);border-radius:2px;cursor:pointer;text-decoration:none;max-width:calc(50% - 20px);z-index:2147483647}.toastify.on{opacity:1}.toast-close{opacity:.4;padding:0 5px}.toastify-right{right:15px}.toastify-left{left:15px}.toastify-top{top:-150px}.toastify-bottom{bottom:-150px}.toastify-rounded{border-radius:25px}.toastify-avatar{width:1.5em;height:1.5em;margin:-7px 5px;border-radius:2px}.toastify-center{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content;max-width:-moz-fit-content}@media only screen and (max-width:360px){.toastify-left,.toastify-right{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content}}
|
assets/packages/fluttertoast/assets/toastify.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* Minified by jsDelivr using Terser v5.3.0.
|
| 3 |
+
* Original file: /npm/toastify-js@1.9.3/src/toastify.js
|
| 4 |
+
*
|
| 5 |
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
| 6 |
+
*/
|
| 7 |
+
/*!
|
| 8 |
+
* Toastify js 1.9.3
|
| 9 |
+
* https://github.com/apvarun/toastify-js
|
| 10 |
+
* @license MIT licensed
|
| 11 |
+
*
|
| 12 |
+
* Copyright (C) 2018 Varun A P
|
| 13 |
+
*/
|
| 14 |
+
!function(t,o){"object"==typeof module && module && module.exports?module.exports=o():t.Toastify=o()}(this,(function(t){var o=function(t){return new o.lib.init(t)};function i(t,o){return o.offset[t]?isNaN(o.offset[t])?o.offset[t]:o.offset[t]+"px":"0px"}function s(t,o){return!(!t||"string"!=typeof o)&&!!(t.className&&t.className.trim().split(/\s+/gi).indexOf(o)>-1)}return o.lib=o.prototype={toastify:"1.9.3",constructor:o,init:function(t){return t||(t={}),this.options={},this.toastElement=null,this.options.text=t.text||"Hi there!",this.options.node=t.node,this.options.duration=0===t.duration?0:t.duration||3e3,this.options.selector=t.selector,this.options.callback=t.callback||function(){},this.options.destination=t.destination,this.options.newWindow=t.newWindow||!1,this.options.close=t.close||!1,this.options.gravity="bottom"===t.gravity?"toastify-bottom":"toastify-top",this.options.positionLeft=t.positionLeft||!1,this.options.position=t.position||"",this.options.backgroundColor=t.backgroundColor,this.options.avatar=t.avatar||"",this.options.className=t.className||"",this.options.stopOnFocus=void 0===t.stopOnFocus||t.stopOnFocus,this.options.onClick=t.onClick,this.options.offset=t.offset||{x:0,y:0},this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var t=document.createElement("div");if(t.className="toastify on "+this.options.className,this.options.position?t.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(t.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):t.className+=" toastify-right",t.className+=" "+this.options.gravity,this.options.backgroundColor&&(t.style.background=this.options.backgroundColor),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)t.appendChild(this.options.node);else if(t.innerHTML=this.options.text,""!==this.options.avatar){var o=document.createElement("img");o.src=this.options.avatar,o.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?t.appendChild(o):t.insertAdjacentElement("afterbegin",o)}if(!0===this.options.close){var s=document.createElement("span");s.innerHTML="✖",s.className="toast-close",s.addEventListener("click",function(t){t.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var n=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&n>360?t.insertAdjacentElement("afterbegin",s):t.appendChild(s)}if(this.options.stopOnFocus&&this.options.duration>0){var e=this;t.addEventListener("mouseover",(function(o){window.clearTimeout(t.timeOutValue)})),t.addEventListener("mouseleave",(function(){t.timeOutValue=window.setTimeout((function(){e.removeElement(t)}),e.options.duration)}))}if(void 0!==this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var a=i("x",this.options),p=i("y",this.options),r="left"==this.options.position?a:"-"+a,l="toastify-top"==this.options.gravity?p:"-"+p;t.style.transform="translate("+r+","+l+")"}return t},showToast:function(){var t;if(this.toastElement=this.buildToast(),!(t=void 0===this.options.selector?document.body:document.getElementById(this.options.selector)))throw"Root element is not defined";return t.insertBefore(this.toastElement,t.firstChild),o.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(t){t.className=t.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),t.parentNode&&t.parentNode.removeChild(t),this.options.callback.call(t),o.reposition()}.bind(this),400)}},o.reposition=function(){for(var t,o={top:15,bottom:15},i={top:15,bottom:15},n={top:15,bottom:15},e=document.getElementsByClassName("toastify"),a=0;a<e.length;a++){t=!0===s(e[a],"toastify-top")?"toastify-top":"toastify-bottom";var p=e[a].offsetHeight;t=t.substr(9,t.length-1);(window.innerWidth>0?window.innerWidth:screen.width)<=360?(e[a].style[t]=n[t]+"px",n[t]+=p+15):!0===s(e[a],"toastify-left")?(e[a].style[t]=o[t]+"px",o[t]+=p+15):(e[a].style[t]=i[t]+"px",i[t]+=p+15)}return this},o.lib.init.prototype=o.lib,o}));
|
assets/shaders/ink_sparkle.frag
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"sksl": {
|
| 3 |
+
"entrypoint": "ink_sparkle_fragment_main",
|
| 4 |
+
"shader": "// This SkSL shader is autogenerated by spirv-cross.\n\nfloat4 flutter_FragCoord;\n\nuniform vec4 u_color;\nuniform vec4 u_composite_1;\nuniform vec2 u_center;\nuniform float u_max_radius;\nuniform vec2 u_resolution_scale;\nuniform vec2 u_noise_scale;\nuniform float u_noise_phase;\nuniform vec2 u_circle1;\nuniform vec2 u_circle2;\nuniform vec2 u_circle3;\nuniform vec2 u_rotation1;\nuniform vec2 u_rotation2;\nuniform vec2 u_rotation3;\n\nvec4 fragColor;\n\nfloat u_alpha;\nfloat u_sparkle_alpha;\nfloat u_blur;\nfloat u_radius_scale;\n\nvec2 FLT_flutter_local_FlutterFragCoord()\n{\n return flutter_FragCoord.xy;\n}\n\nmat2 FLT_flutter_local_rotate2d(vec2 rad)\n{\n return mat2(vec2(rad.x, -rad.y), vec2(rad.y, rad.x));\n}\n\nfloat FLT_flutter_local_soft_circle(vec2 uv, vec2 xy, float radius, float blur)\n{\n float blur_half = blur * 0.5;\n float d = distance(uv, xy);\n return 1.0 - smoothstep(1.0 - blur_half, 1.0 + blur_half, d / radius);\n}\n\nfloat FLT_flutter_local_circle_grid(vec2 resolution, inout vec2 p, vec2 xy, vec2 rotation, float cell_diameter)\n{\n vec2 param = rotation;\n p = (FLT_flutter_local_rotate2d(param) * (xy - p)) + xy;\n p = mod(p, vec2(cell_diameter)) / resolution;\n float cell_uv = (cell_diameter / resolution.y) * 0.5;\n float r = 0.64999997615814208984375 * cell_uv;\n vec2 param_1 = p;\n vec2 param_2 = vec2(cell_uv);\n float param_3 = r;\n float param_4 = r * 50.0;\n return FLT_flutter_local_soft_circle(param_1, param_2, param_3, param_4);\n}\n\nfloat FLT_flutter_local_turbulence(vec2 uv)\n{\n vec2 uv_scale = uv * vec2(0.800000011920928955078125);\n vec2 param = vec2(0.800000011920928955078125);\n vec2 param_1 = uv_scale;\n vec2 param_2 = u_circle1;\n vec2 param_3 = u_rotation1;\n float param_4 = 0.17000000178813934326171875;\n float _319 = FLT_flutter_local_circle_grid(param, param_1, param_2, param_3, param_4);\n float g1 = _319;\n vec2 param_5 = vec2(0.800000011920928955078125);\n vec2 param_6 = uv_scale;\n vec2 param_7 = u_circle2;\n vec2 param_8 = u_rotation2;\n float param_9 = 0.20000000298023223876953125;\n float _331 = FLT_flutter_local_circle_grid(param_5, param_6, param_7, param_8, param_9);\n float g2 = _331;\n vec2 param_10 = vec2(0.800000011920928955078125);\n vec2 param_11 = uv_scale;\n vec2 param_12 = u_circle3;\n vec2 param_13 = u_rotation3;\n float param_14 = 0.2750000059604644775390625;\n float _344 = FLT_flutter_local_circle_grid(param_10, param_11, param_12, param_13, param_14);\n float g3 = _344;\n float v = (((g1 * g1) + g2) - g3) * 0.5;\n return clamp(0.449999988079071044921875 + (0.800000011920928955078125 * v), 0.0, 1.0);\n}\n\nfloat FLT_flutter_local_soft_ring(vec2 uv, vec2 xy, float radius, float thickness, float blur)\n{\n vec2 param = uv;\n vec2 param_1 = xy;\n float param_2 = radius + thickness;\n float param_3 = blur;\n float circle_outer = FLT_flutter_local_soft_circle(param, param_1, param_2, param_3);\n vec2 param_4 = uv;\n vec2 param_5 = xy;\n float param_6 = max(radius - thickness, 0.0);\n float param_7 = blur;\n float circle_inner = FLT_flutter_local_soft_circle(param_4, param_5, param_6, param_7);\n return clamp(circle_outer - circle_inner, 0.0, 1.0);\n}\n\nfloat FLT_flutter_local_triangle_noise(inout vec2 n)\n{\n n = fract(n * vec2(5.398700237274169921875, 5.442100048065185546875));\n n += vec2(dot(n.yx, n + vec2(21.5351009368896484375, 14.3136997222900390625)));\n float xy = n.x * n.y;\n return (fract(xy * 95.43070220947265625) + fract(xy * 75.0496063232421875)) - 1.0;\n}\n\nfloat FLT_flutter_local_threshold(float v, float l, float h)\n{\n return step(l, v) * (1.0 - step(h, v));\n}\n\nfloat FLT_flutter_local_sparkle(vec2 uv, float t)\n{\n vec2 param = uv;\n float _242 = FLT_flutter_local_triangle_noise(param);\n float n = _242;\n float param_1 = n;\n float param_2 = 0.0;\n float param_3 = 0.0500000007450580596923828125;\n float s = FLT_flutter_local_threshold(param_1, param_2, param_3);\n float param_4 = n + sin(3.1415927410125732421875 * (t + 0.3499999940395355224609375));\n float param_5 = 0.100000001490116119384765625;\n float param_6 = 0.1500000059604644775390625;\n s += FLT_flutter_local_threshold(param_4, param_5, param_6);\n float param_7 = n + sin(3.1415927410125732421875 * (t + 0.699999988079071044921875));\n float param_8 = 0.20000000298023223876953125;\n float param_9 = 0.25;\n s += FLT_flutter_local_threshold(param_7, param_8, param_9);\n float param_10 = n + sin(3.1415927410125732421875 * (t + 1.0499999523162841796875));\n float param_11 = 0.300000011920928955078125;\n float param_12 = 0.3499999940395355224609375;\n s += FLT_flutter_local_threshold(param_10, param_11, param_12);\n return clamp(s, 0.0, 1.0) * 0.550000011920928955078125;\n}\n\nvoid FLT_main()\n{\n u_alpha = u_composite_1.x;\n u_sparkle_alpha = u_composite_1.y;\n u_blur = u_composite_1.z;\n u_radius_scale = u_composite_1.w;\n vec2 p = FLT_flutter_local_FlutterFragCoord();\n vec2 uv_1 = p * u_resolution_scale;\n vec2 density_uv = uv_1 - mod(p, u_noise_scale);\n float radius = u_max_radius * u_radius_scale;\n vec2 param_13 = uv_1;\n float turbulence = FLT_flutter_local_turbulence(param_13);\n vec2 param_14 = p;\n vec2 param_15 = u_center;\n float param_16 = radius;\n float param_17 = 0.0500000007450580596923828125 * u_max_radius;\n float param_18 = u_blur;\n float ring = FLT_flutter_local_soft_ring(param_14, param_15, param_16, param_17, param_18);\n vec2 param_19 = density_uv;\n float param_20 = u_noise_phase;\n float sparkle = ((FLT_flutter_local_sparkle(param_19, param_20) * ring) * turbulence) * u_sparkle_alpha;\n vec2 param_21 = p;\n vec2 param_22 = u_center;\n float param_23 = radius;\n float param_24 = u_blur;\n float wave_alpha = (FLT_flutter_local_soft_circle(param_21, param_22, param_23, param_24) * u_alpha) * u_color.w;\n vec4 wave_color = vec4(u_color.xyz * wave_alpha, wave_alpha);\n fragColor = mix(wave_color, vec4(1.0), vec4(sparkle));\n}\n\nhalf4 main(float2 iFragCoord)\n{\n flutter_FragCoord = float4(iFragCoord, 0, 0);\n FLT_main();\n return fragColor;\n}\n",
|
| 5 |
+
"stage": 1,
|
| 6 |
+
"uniforms": [
|
| 7 |
+
{
|
| 8 |
+
"array_elements": 0,
|
| 9 |
+
"bit_width": 32,
|
| 10 |
+
"columns": 1,
|
| 11 |
+
"location": 0,
|
| 12 |
+
"name": "u_color",
|
| 13 |
+
"rows": 4,
|
| 14 |
+
"type": 10
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"array_elements": 0,
|
| 18 |
+
"bit_width": 32,
|
| 19 |
+
"columns": 1,
|
| 20 |
+
"location": 1,
|
| 21 |
+
"name": "u_composite_1",
|
| 22 |
+
"rows": 4,
|
| 23 |
+
"type": 10
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"array_elements": 0,
|
| 27 |
+
"bit_width": 32,
|
| 28 |
+
"columns": 1,
|
| 29 |
+
"location": 2,
|
| 30 |
+
"name": "u_center",
|
| 31 |
+
"rows": 2,
|
| 32 |
+
"type": 10
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"array_elements": 0,
|
| 36 |
+
"bit_width": 32,
|
| 37 |
+
"columns": 1,
|
| 38 |
+
"location": 3,
|
| 39 |
+
"name": "u_max_radius",
|
| 40 |
+
"rows": 1,
|
| 41 |
+
"type": 10
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"array_elements": 0,
|
| 45 |
+
"bit_width": 32,
|
| 46 |
+
"columns": 1,
|
| 47 |
+
"location": 4,
|
| 48 |
+
"name": "u_resolution_scale",
|
| 49 |
+
"rows": 2,
|
| 50 |
+
"type": 10
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"array_elements": 0,
|
| 54 |
+
"bit_width": 32,
|
| 55 |
+
"columns": 1,
|
| 56 |
+
"location": 5,
|
| 57 |
+
"name": "u_noise_scale",
|
| 58 |
+
"rows": 2,
|
| 59 |
+
"type": 10
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"array_elements": 0,
|
| 63 |
+
"bit_width": 32,
|
| 64 |
+
"columns": 1,
|
| 65 |
+
"location": 6,
|
| 66 |
+
"name": "u_noise_phase",
|
| 67 |
+
"rows": 1,
|
| 68 |
+
"type": 10
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"array_elements": 0,
|
| 72 |
+
"bit_width": 32,
|
| 73 |
+
"columns": 1,
|
| 74 |
+
"location": 7,
|
| 75 |
+
"name": "u_circle1",
|
| 76 |
+
"rows": 2,
|
| 77 |
+
"type": 10
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"array_elements": 0,
|
| 81 |
+
"bit_width": 32,
|
| 82 |
+
"columns": 1,
|
| 83 |
+
"location": 8,
|
| 84 |
+
"name": "u_circle2",
|
| 85 |
+
"rows": 2,
|
| 86 |
+
"type": 10
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"array_elements": 0,
|
| 90 |
+
"bit_width": 32,
|
| 91 |
+
"columns": 1,
|
| 92 |
+
"location": 9,
|
| 93 |
+
"name": "u_circle3",
|
| 94 |
+
"rows": 2,
|
| 95 |
+
"type": 10
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"array_elements": 0,
|
| 99 |
+
"bit_width": 32,
|
| 100 |
+
"columns": 1,
|
| 101 |
+
"location": 10,
|
| 102 |
+
"name": "u_rotation1",
|
| 103 |
+
"rows": 2,
|
| 104 |
+
"type": 10
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"array_elements": 0,
|
| 108 |
+
"bit_width": 32,
|
| 109 |
+
"columns": 1,
|
| 110 |
+
"location": 11,
|
| 111 |
+
"name": "u_rotation2",
|
| 112 |
+
"rows": 2,
|
| 113 |
+
"type": 10
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"array_elements": 0,
|
| 117 |
+
"bit_width": 32,
|
| 118 |
+
"columns": 1,
|
| 119 |
+
"location": 12,
|
| 120 |
+
"name": "u_rotation3",
|
| 121 |
+
"rows": 2,
|
| 122 |
+
"type": 10
|
| 123 |
+
}
|
| 124 |
+
]
|
| 125 |
+
}
|
| 126 |
+
}
|
favicon.png
ADDED
|
|
flutter.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(()=>{var U=()=>navigator.vendor==="Google Inc."||navigator.agent==="Edg/",E=()=>typeof ImageDecoder>"u"?!1:U(),W=()=>typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",P=()=>{let s=[0,97,115,109,1,0,0,0,1,5,1,95,1,120,0];return WebAssembly.validate(new Uint8Array(s))},p={hasImageCodecs:E(),hasChromiumBreakIterators:W(),supportsWasmGC:P(),crossOriginIsolated:window.crossOriginIsolated};function l(...s){return new URL(_(...s),document.baseURI).toString()}function _(...s){return s.filter(e=>!!e).map((e,i)=>i===0?C(e):j(C(e))).filter(e=>e.length).join("/")}function j(s){let e=0;for(;e<s.length&&s.charAt(e)==="/";)e++;return s.substring(e)}function C(s){let e=s.length;for(;e>0&&s.charAt(e-1)==="/";)e--;return s.substring(0,e)}function L(s,e){return s.canvasKitBaseUrl?s.canvasKitBaseUrl:e.engineRevision&&!e.useLocalCanvasKit?_("https://www.gstatic.com/flutter-canvaskit",e.engineRevision):"canvaskit"}var h=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:i=l("main.dart.js"),onEntrypointLoaded:r,nonce:t}=e||{};return this._loadJSEntrypoint(i,r,t)}async load(e,i,r,t,n){n??=o=>{o.initializeEngine(r).then(c=>c.runApp())};let{entryPointBaseUrl:a}=r;if(e.compileTarget==="dart2wasm")return this._loadWasmEntrypoint(e,i,a,n);{let o=e.mainJsPath??"main.dart.js",c=l(a,o);return this._loadJSEntrypoint(c,n,t)}}didCreateEngineInitializer(e){typeof this._didCreateEngineInitializerResolve=="function"&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),typeof this._onEntrypointLoaded=="function"&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,i,r){let t=typeof i=="function";if(!this._scriptLoaded){this._scriptLoaded=!0;let n=this._createScriptTag(e,r);if(t)console.debug("Injecting <script> tag. Using callback."),this._onEntrypointLoaded=i,document.head.append(n);else return new Promise((a,o)=>{console.debug("Injecting <script> tag. Using Promises. Use the callback approach instead!"),this._didCreateEngineInitializerResolve=a,n.addEventListener("error",o),document.head.append(n)})}}async _loadWasmEntrypoint(e,i,r,t){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=t;let{mainWasmPath:n,jsSupportRuntimePath:a}=e,o=l(r,n),c=l(r,a);this._ttPolicy!=null&&(c=this._ttPolicy.createScriptURL(c));let d=(await import(c)).compileStreaming(fetch(o)),w;e.renderer==="skwasm"?w=(async()=>{let f=await i.skwasm;return window._flutter_skwasmInstance=f,{skwasm:f.wasmExports,skwasmWrapper:f,ffi:{memory:f.wasmMemory}}})():w=Promise.resolve({}),await(await(await d).instantiate(await w)).invokeMain()}}_createScriptTag(e,i){let r=document.createElement("script");r.type="application/javascript",i&&(r.nonce=i);let t=e;return this._ttPolicy!=null&&(t=this._ttPolicy.createScriptURL(e)),r.src=t,r}};async function T(s,e,i){if(e<0)return s;let r,t=new Promise((n,a)=>{r=setTimeout(()=>{a(new Error(`${i} took more than ${e}ms to resolve. Moving on.`,{cause:T}))},e)});return Promise.race([s,t]).finally(()=>{clearTimeout(r)})}var g=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e)return console.debug("Null serviceWorker configuration. Skipping."),Promise.resolve();if(!("serviceWorker"in navigator)){let o="Service Worker API unavailable.";return window.isSecureContext||(o+=`
|
| 2 |
+
The current context is NOT secure.`,o+=`
|
| 3 |
+
Read more: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts`),Promise.reject(new Error(o))}let{serviceWorkerVersion:i,serviceWorkerUrl:r=l(`flutter_service_worker.js?v=${i}`),timeoutMillis:t=4e3}=e,n=r;this._ttPolicy!=null&&(n=this._ttPolicy.createScriptURL(n));let a=navigator.serviceWorker.register(n).then(o=>this._getNewServiceWorker(o,i)).then(this._waitForServiceWorkerActivation);return T(a,t,"prepareServiceWorker")}async _getNewServiceWorker(e,i){if(!e.active&&(e.installing||e.waiting))return console.debug("Installing/Activating first service worker."),e.installing||e.waiting;if(e.active.scriptURL.endsWith(i))return console.debug("Loading from existing service worker."),e.active;{let r=await e.update();return console.debug("Updating service worker."),r.installing||r.waiting||r.active}}async _waitForServiceWorkerActivation(e){if(!e||e.state==="activated")if(e){console.debug("Service worker already active.");return}else throw new Error("Cannot activate a null service worker!");return new Promise((i,r)=>{e.addEventListener("statechange",()=>{e.state==="activated"&&(console.debug("Activated new service worker."),i())})})}};var y=class{constructor(e,i="flutter-js"){let r=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(i,{createScriptURL:function(t){if(t.startsWith("blob:"))return t;let n=new URL(t,window.location),a=n.pathname.split("/").pop();if(r.some(c=>c.test(a)))return n.toString();console.error("URL rejected by TrustedTypes policy",i,":",t,"(download prevented)")}}))}};var k=s=>{let e=WebAssembly.compileStreaming(fetch(s));return(i,r)=>((async()=>{let t=await e,n=await WebAssembly.instantiate(t,i);r(n,t)})(),{})};var I=(s,e,i,r)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let t=i.hasChromiumBreakIterators&&i.hasImageCodecs;if(!t&&e.canvasKitVariant=="chromium")throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let n=t&&e.canvasKitVariant!=="full",a=r;n&&(a=l(a,"chromium"));let o=l(a,"canvaskit.js");s.flutterTT.policy&&(o=s.flutterTT.policy.createScriptURL(o));let c=k(l(a,"canvaskit.wasm")),u=await import(o);return window.flutterCanvasKit=await u.default({instantiateWasm:c}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded);var b=async(s,e,i,r)=>{let t=l(r,"skwasm.js"),n=t;s.flutterTT.policy&&(n=s.flutterTT.policy.createScriptURL(n));let a=k(l(r,"skwasm.wasm"));return await(await import(n)).default({skwasmSingleThreaded:!i.crossOriginIsolated||e.forceSingleThreadedSkwasm,instantiateWasm:a,locateFile:(c,u)=>{if(c.endsWith(".ww.js")){let d=l(r,c);return URL.createObjectURL(new Blob([`
|
| 4 |
+
"use strict";
|
| 5 |
+
|
| 6 |
+
let eventListener;
|
| 7 |
+
eventListener = (message) => {
|
| 8 |
+
const pendingMessages = [];
|
| 9 |
+
const data = message.data;
|
| 10 |
+
data["instantiateWasm"] = (info,receiveInstance) => {
|
| 11 |
+
const instance = new WebAssembly.Instance(data["wasm"], info);
|
| 12 |
+
return receiveInstance(instance, data["wasm"])
|
| 13 |
+
};
|
| 14 |
+
import(data.js).then(async (skwasm) => {
|
| 15 |
+
await skwasm.default(data);
|
| 16 |
+
|
| 17 |
+
removeEventListener("message", eventListener);
|
| 18 |
+
for (const message of pendingMessages) {
|
| 19 |
+
dispatchEvent(message);
|
| 20 |
+
}
|
| 21 |
+
});
|
| 22 |
+
removeEventListener("message", eventListener);
|
| 23 |
+
eventListener = (message) => {
|
| 24 |
+
|
| 25 |
+
pendingMessages.push(message);
|
| 26 |
+
};
|
| 27 |
+
|
| 28 |
+
addEventListener("message", eventListener);
|
| 29 |
+
};
|
| 30 |
+
addEventListener("message", eventListener);
|
| 31 |
+
`],{type:"application/javascript"}))}return url},mainScriptUrlOrBlob:t})};var S=class{async loadEntrypoint(e){let{serviceWorker:i,...r}=e||{},t=new y,n=new g;n.setTrustedTypesPolicy(t.policy),await n.loadServiceWorker(i).catch(o=>{console.warn("Exception while loading service worker:",o)});let a=new h;return a.setTrustedTypesPolicy(t.policy),this.didCreateEngineInitializer=a.didCreateEngineInitializer.bind(a),a.loadEntrypoint(r)}async load({serviceWorkerSettings:e,onEntrypointLoaded:i,nonce:r,config:t}={}){t??={};let n=_flutter.buildConfig;if(!n)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let a=m=>{switch(m){case"skwasm":return p.hasChromiumBreakIterators&&p.hasImageCodecs&&p.supportsWasmGC;default:return!0}},o=(m,f)=>m.renderer==f,c=m=>m.compileTarget==="dart2wasm"&&!p.supportsWasmGC||t.renderer&&!o(m,t.renderer)?!1:a(m.renderer),u=n.builds.find(c);if(!u)throw"FlutterLoader could not find a build compatible with configuration and environment.";let d={};d.flutterTT=new y,e&&(d.serviceWorkerLoader=new g,d.serviceWorkerLoader.setTrustedTypesPolicy(d.flutterTT.policy),await d.serviceWorkerLoader.loadServiceWorker(e).catch(m=>{console.warn("Exception while loading service worker:",m)}));let w=L(t,n);u.renderer==="canvaskit"?d.canvasKit=I(d,t,p,w):u.renderer==="skwasm"&&(d.skwasm=b(d,t,p,w));let v=new h;return v.setTrustedTypesPolicy(d.flutterTT.policy),this.didCreateEngineInitializer=v.didCreateEngineInitializer.bind(v),v.load(u,d,t,r,i)}};window._flutter||(window._flutter={});window._flutter.loader||(window._flutter.loader=new S);})();
|
| 32 |
+
//# sourceMappingURL=flutter.js.map
|
flutter_bootstrap.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(()=>{var U=()=>navigator.vendor==="Google Inc."||navigator.agent==="Edg/",E=()=>typeof ImageDecoder>"u"?!1:U(),W=()=>typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",P=()=>{let s=[0,97,115,109,1,0,0,0,1,5,1,95,1,120,0];return WebAssembly.validate(new Uint8Array(s))},p={hasImageCodecs:E(),hasChromiumBreakIterators:W(),supportsWasmGC:P(),crossOriginIsolated:window.crossOriginIsolated};function l(...s){return new URL(_(...s),document.baseURI).toString()}function _(...s){return s.filter(e=>!!e).map((e,i)=>i===0?C(e):j(C(e))).filter(e=>e.length).join("/")}function j(s){let e=0;for(;e<s.length&&s.charAt(e)==="/";)e++;return s.substring(e)}function C(s){let e=s.length;for(;e>0&&s.charAt(e-1)==="/";)e--;return s.substring(0,e)}function L(s,e){return s.canvasKitBaseUrl?s.canvasKitBaseUrl:e.engineRevision&&!e.useLocalCanvasKit?_("https://www.gstatic.com/flutter-canvaskit",e.engineRevision):"canvaskit"}var h=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:i=l("main.dart.js"),onEntrypointLoaded:r,nonce:t}=e||{};return this._loadJSEntrypoint(i,r,t)}async load(e,i,r,t,n){n??=o=>{o.initializeEngine(r).then(c=>c.runApp())};let{entryPointBaseUrl:a}=r;if(e.compileTarget==="dart2wasm")return this._loadWasmEntrypoint(e,i,a,n);{let o=e.mainJsPath??"main.dart.js",c=l(a,o);return this._loadJSEntrypoint(c,n,t)}}didCreateEngineInitializer(e){typeof this._didCreateEngineInitializerResolve=="function"&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),typeof this._onEntrypointLoaded=="function"&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,i,r){let t=typeof i=="function";if(!this._scriptLoaded){this._scriptLoaded=!0;let n=this._createScriptTag(e,r);if(t)console.debug("Injecting <script> tag. Using callback."),this._onEntrypointLoaded=i,document.head.append(n);else return new Promise((a,o)=>{console.debug("Injecting <script> tag. Using Promises. Use the callback approach instead!"),this._didCreateEngineInitializerResolve=a,n.addEventListener("error",o),document.head.append(n)})}}async _loadWasmEntrypoint(e,i,r,t){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=t;let{mainWasmPath:n,jsSupportRuntimePath:a}=e,o=l(r,n),c=l(r,a);this._ttPolicy!=null&&(c=this._ttPolicy.createScriptURL(c));let d=(await import(c)).compileStreaming(fetch(o)),w;e.renderer==="skwasm"?w=(async()=>{let f=await i.skwasm;return window._flutter_skwasmInstance=f,{skwasm:f.wasmExports,skwasmWrapper:f,ffi:{memory:f.wasmMemory}}})():w=Promise.resolve({}),await(await(await d).instantiate(await w)).invokeMain()}}_createScriptTag(e,i){let r=document.createElement("script");r.type="application/javascript",i&&(r.nonce=i);let t=e;return this._ttPolicy!=null&&(t=this._ttPolicy.createScriptURL(e)),r.src=t,r}};async function T(s,e,i){if(e<0)return s;let r,t=new Promise((n,a)=>{r=setTimeout(()=>{a(new Error(`${i} took more than ${e}ms to resolve. Moving on.`,{cause:T}))},e)});return Promise.race([s,t]).finally(()=>{clearTimeout(r)})}var g=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e)return console.debug("Null serviceWorker configuration. Skipping."),Promise.resolve();if(!("serviceWorker"in navigator)){let o="Service Worker API unavailable.";return window.isSecureContext||(o+=`
|
| 2 |
+
The current context is NOT secure.`,o+=`
|
| 3 |
+
Read more: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts`),Promise.reject(new Error(o))}let{serviceWorkerVersion:i,serviceWorkerUrl:r=l(`flutter_service_worker.js?v=${i}`),timeoutMillis:t=4e3}=e,n=r;this._ttPolicy!=null&&(n=this._ttPolicy.createScriptURL(n));let a=navigator.serviceWorker.register(n).then(o=>this._getNewServiceWorker(o,i)).then(this._waitForServiceWorkerActivation);return T(a,t,"prepareServiceWorker")}async _getNewServiceWorker(e,i){if(!e.active&&(e.installing||e.waiting))return console.debug("Installing/Activating first service worker."),e.installing||e.waiting;if(e.active.scriptURL.endsWith(i))return console.debug("Loading from existing service worker."),e.active;{let r=await e.update();return console.debug("Updating service worker."),r.installing||r.waiting||r.active}}async _waitForServiceWorkerActivation(e){if(!e||e.state==="activated")if(e){console.debug("Service worker already active.");return}else throw new Error("Cannot activate a null service worker!");return new Promise((i,r)=>{e.addEventListener("statechange",()=>{e.state==="activated"&&(console.debug("Activated new service worker."),i())})})}};var y=class{constructor(e,i="flutter-js"){let r=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(i,{createScriptURL:function(t){if(t.startsWith("blob:"))return t;let n=new URL(t,window.location),a=n.pathname.split("/").pop();if(r.some(c=>c.test(a)))return n.toString();console.error("URL rejected by TrustedTypes policy",i,":",t,"(download prevented)")}}))}};var k=s=>{let e=WebAssembly.compileStreaming(fetch(s));return(i,r)=>((async()=>{let t=await e,n=await WebAssembly.instantiate(t,i);r(n,t)})(),{})};var I=(s,e,i,r)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let t=i.hasChromiumBreakIterators&&i.hasImageCodecs;if(!t&&e.canvasKitVariant=="chromium")throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let n=t&&e.canvasKitVariant!=="full",a=r;n&&(a=l(a,"chromium"));let o=l(a,"canvaskit.js");s.flutterTT.policy&&(o=s.flutterTT.policy.createScriptURL(o));let c=k(l(a,"canvaskit.wasm")),u=await import(o);return window.flutterCanvasKit=await u.default({instantiateWasm:c}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded);var b=async(s,e,i,r)=>{let t=l(r,"skwasm.js"),n=t;s.flutterTT.policy&&(n=s.flutterTT.policy.createScriptURL(n));let a=k(l(r,"skwasm.wasm"));return await(await import(n)).default({skwasmSingleThreaded:!i.crossOriginIsolated||e.forceSingleThreadedSkwasm,instantiateWasm:a,locateFile:(c,u)=>{if(c.endsWith(".ww.js")){let d=l(r,c);return URL.createObjectURL(new Blob([`
|
| 4 |
+
"use strict";
|
| 5 |
+
|
| 6 |
+
let eventListener;
|
| 7 |
+
eventListener = (message) => {
|
| 8 |
+
const pendingMessages = [];
|
| 9 |
+
const data = message.data;
|
| 10 |
+
data["instantiateWasm"] = (info,receiveInstance) => {
|
| 11 |
+
const instance = new WebAssembly.Instance(data["wasm"], info);
|
| 12 |
+
return receiveInstance(instance, data["wasm"])
|
| 13 |
+
};
|
| 14 |
+
import(data.js).then(async (skwasm) => {
|
| 15 |
+
await skwasm.default(data);
|
| 16 |
+
|
| 17 |
+
removeEventListener("message", eventListener);
|
| 18 |
+
for (const message of pendingMessages) {
|
| 19 |
+
dispatchEvent(message);
|
| 20 |
+
}
|
| 21 |
+
});
|
| 22 |
+
removeEventListener("message", eventListener);
|
| 23 |
+
eventListener = (message) => {
|
| 24 |
+
|
| 25 |
+
pendingMessages.push(message);
|
| 26 |
+
};
|
| 27 |
+
|
| 28 |
+
addEventListener("message", eventListener);
|
| 29 |
+
};
|
| 30 |
+
addEventListener("message", eventListener);
|
| 31 |
+
`],{type:"application/javascript"}))}return url},mainScriptUrlOrBlob:t})};var S=class{async loadEntrypoint(e){let{serviceWorker:i,...r}=e||{},t=new y,n=new g;n.setTrustedTypesPolicy(t.policy),await n.loadServiceWorker(i).catch(o=>{console.warn("Exception while loading service worker:",o)});let a=new h;return a.setTrustedTypesPolicy(t.policy),this.didCreateEngineInitializer=a.didCreateEngineInitializer.bind(a),a.loadEntrypoint(r)}async load({serviceWorkerSettings:e,onEntrypointLoaded:i,nonce:r,config:t}={}){t??={};let n=_flutter.buildConfig;if(!n)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let a=m=>{switch(m){case"skwasm":return p.hasChromiumBreakIterators&&p.hasImageCodecs&&p.supportsWasmGC;default:return!0}},o=(m,f)=>m.renderer==f,c=m=>m.compileTarget==="dart2wasm"&&!p.supportsWasmGC||t.renderer&&!o(m,t.renderer)?!1:a(m.renderer),u=n.builds.find(c);if(!u)throw"FlutterLoader could not find a build compatible with configuration and environment.";let d={};d.flutterTT=new y,e&&(d.serviceWorkerLoader=new g,d.serviceWorkerLoader.setTrustedTypesPolicy(d.flutterTT.policy),await d.serviceWorkerLoader.loadServiceWorker(e).catch(m=>{console.warn("Exception while loading service worker:",m)}));let w=L(t,n);u.renderer==="canvaskit"?d.canvasKit=I(d,t,p,w):u.renderer==="skwasm"&&(d.skwasm=b(d,t,p,w));let v=new h;return v.setTrustedTypesPolicy(d.flutterTT.policy),this.didCreateEngineInitializer=v.didCreateEngineInitializer.bind(v),v.load(u,d,t,r,i)}};window._flutter||(window._flutter={});window._flutter.loader||(window._flutter.loader=new S);})();
|
| 32 |
+
//# sourceMappingURL=flutter.js.map
|
| 33 |
+
|
| 34 |
+
if (!window._flutter) {
|
| 35 |
+
window._flutter = {};
|
| 36 |
+
}
|
| 37 |
+
_flutter.buildConfig = {"engineRevision":"dd93de6fb1776398bf586cbd477deade1391c7e4","builds":[{"compileTarget":"dart2js","renderer":"canvaskit","mainJsPath":"main.dart.js"}]};
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
_flutter.loader.load({
|
| 41 |
+
serviceWorkerSettings: {
|
| 42 |
+
serviceWorkerVersion: "3595413538"
|
| 43 |
+
}
|
| 44 |
+
});
|
flutter_service_worker.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'use strict';
|
| 2 |
+
const MANIFEST = 'flutter-app-manifest';
|
| 3 |
+
const TEMP = 'flutter-temp-cache';
|
| 4 |
+
const CACHE_NAME = 'flutter-app-cache';
|
| 5 |
+
|
| 6 |
+
const RESOURCES = {"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
|
| 7 |
+
"assets/AssetManifest.json": "99914b932bd37a50b983c5e7c90ae93b",
|
| 8 |
+
"assets/AssetManifest.bin.json": "a1fee2517bf598633e2f67fcf3e26c94",
|
| 9 |
+
"assets/NOTICES": "895f15cd35e0a80eb753cc18252ce478",
|
| 10 |
+
"assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "33b7d9392238c04c131b6ce224e13711",
|
| 11 |
+
"assets/packages/fluttertoast/assets/toastify.js": "56e2c9cedd97f10e7e5f1cebd85d53e3",
|
| 12 |
+
"assets/packages/fluttertoast/assets/toastify.css": "a85675050054f179444bc5ad70ffc635",
|
| 13 |
+
"assets/fonts/MaterialIcons-Regular.otf": "0edef33c1e687628719b49d6b8a4c4a0",
|
| 14 |
+
"assets/AssetManifest.bin": "0b0a3415aad49b6e9bf965ff578614f9",
|
| 15 |
+
"assets/FontManifest.json": "7b2a36307916a9721811788013e65289",
|
| 16 |
+
"main.dart.js": "e4b85822f2316fab26a112d79405f428",
|
| 17 |
+
"favicon.png": "5dcef449791fa27946b3d35ad8803796",
|
| 18 |
+
"icons/Icon-512.png": "96e752610906ba2a93c65f8abe1645f1",
|
| 19 |
+
"icons/Icon-maskable-192.png": "c457ef57daa1d16f64b27b786ec2ea3c",
|
| 20 |
+
"icons/Icon-maskable-512.png": "301a7604d45b3e739efc881eb04896ea",
|
| 21 |
+
"icons/Icon-192.png": "ac9a721a12bbc803b44f645561ecb1e1",
|
| 22 |
+
"manifest.json": "5c5c863764dadce171ba12ec5928000e",
|
| 23 |
+
"flutter_bootstrap.js": "842230edd36db21ff208ece302dc9fa6",
|
| 24 |
+
"version.json": "d04b6c60b898924adbfbf7b9685639fb",
|
| 25 |
+
"index.html": "5ff9e295fc0d751cce860398b401cbed",
|
| 26 |
+
"/": "5ff9e295fc0d751cce860398b401cbed",
|
| 27 |
+
"flutter.js": "83d881c1dbb6d6bcd6b42e274605b69c",
|
| 28 |
+
"canvaskit/canvaskit.js.symbols": "bdcd3835edf8586b6d6edfce8749fb77",
|
| 29 |
+
"canvaskit/chromium/canvaskit.js.symbols": "b61b5f4673c9698029fa0a746a9ad581",
|
| 30 |
+
"canvaskit/chromium/canvaskit.js": "8191e843020c832c9cf8852a4b909d4c",
|
| 31 |
+
"canvaskit/chromium/canvaskit.wasm": "f504de372e31c8031018a9ec0a9ef5f0",
|
| 32 |
+
"canvaskit/skwasm.wasm": "39dd80367a4e71582d234948adc521c0",
|
| 33 |
+
"canvaskit/canvaskit.js": "728b2d477d9b8c14593d4f9b82b484f3",
|
| 34 |
+
"canvaskit/skwasm.js": "ea559890a088fe28b4ddf70e17e60052",
|
| 35 |
+
"canvaskit/skwasm.js.symbols": "e72c79950c8a8483d826a7f0560573a1",
|
| 36 |
+
"canvaskit/canvaskit.wasm": "7a3f4ae7d65fc1de6a6e7ddd3224bc93"};
|
| 37 |
+
// The application shell files that are downloaded before a service worker can
|
| 38 |
+
// start.
|
| 39 |
+
const CORE = ["main.dart.js",
|
| 40 |
+
"index.html",
|
| 41 |
+
"flutter_bootstrap.js",
|
| 42 |
+
"assets/AssetManifest.bin.json",
|
| 43 |
+
"assets/FontManifest.json"];
|
| 44 |
+
|
| 45 |
+
// During install, the TEMP cache is populated with the application shell files.
|
| 46 |
+
self.addEventListener("install", (event) => {
|
| 47 |
+
self.skipWaiting();
|
| 48 |
+
return event.waitUntil(
|
| 49 |
+
caches.open(TEMP).then((cache) => {
|
| 50 |
+
return cache.addAll(
|
| 51 |
+
CORE.map((value) => new Request(value, {'cache': 'reload'})));
|
| 52 |
+
})
|
| 53 |
+
);
|
| 54 |
+
});
|
| 55 |
+
// During activate, the cache is populated with the temp files downloaded in
|
| 56 |
+
// install. If this service worker is upgrading from one with a saved
|
| 57 |
+
// MANIFEST, then use this to retain unchanged resource files.
|
| 58 |
+
self.addEventListener("activate", function(event) {
|
| 59 |
+
return event.waitUntil(async function() {
|
| 60 |
+
try {
|
| 61 |
+
var contentCache = await caches.open(CACHE_NAME);
|
| 62 |
+
var tempCache = await caches.open(TEMP);
|
| 63 |
+
var manifestCache = await caches.open(MANIFEST);
|
| 64 |
+
var manifest = await manifestCache.match('manifest');
|
| 65 |
+
// When there is no prior manifest, clear the entire cache.
|
| 66 |
+
if (!manifest) {
|
| 67 |
+
await caches.delete(CACHE_NAME);
|
| 68 |
+
contentCache = await caches.open(CACHE_NAME);
|
| 69 |
+
for (var request of await tempCache.keys()) {
|
| 70 |
+
var response = await tempCache.match(request);
|
| 71 |
+
await contentCache.put(request, response);
|
| 72 |
+
}
|
| 73 |
+
await caches.delete(TEMP);
|
| 74 |
+
// Save the manifest to make future upgrades efficient.
|
| 75 |
+
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
|
| 76 |
+
// Claim client to enable caching on first launch
|
| 77 |
+
self.clients.claim();
|
| 78 |
+
return;
|
| 79 |
+
}
|
| 80 |
+
var oldManifest = await manifest.json();
|
| 81 |
+
var origin = self.location.origin;
|
| 82 |
+
for (var request of await contentCache.keys()) {
|
| 83 |
+
var key = request.url.substring(origin.length + 1);
|
| 84 |
+
if (key == "") {
|
| 85 |
+
key = "/";
|
| 86 |
+
}
|
| 87 |
+
// If a resource from the old manifest is not in the new cache, or if
|
| 88 |
+
// the MD5 sum has changed, delete it. Otherwise the resource is left
|
| 89 |
+
// in the cache and can be reused by the new service worker.
|
| 90 |
+
if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) {
|
| 91 |
+
await contentCache.delete(request);
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
// Populate the cache with the app shell TEMP files, potentially overwriting
|
| 95 |
+
// cache files preserved above.
|
| 96 |
+
for (var request of await tempCache.keys()) {
|
| 97 |
+
var response = await tempCache.match(request);
|
| 98 |
+
await contentCache.put(request, response);
|
| 99 |
+
}
|
| 100 |
+
await caches.delete(TEMP);
|
| 101 |
+
// Save the manifest to make future upgrades efficient.
|
| 102 |
+
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
|
| 103 |
+
// Claim client to enable caching on first launch
|
| 104 |
+
self.clients.claim();
|
| 105 |
+
return;
|
| 106 |
+
} catch (err) {
|
| 107 |
+
// On an unhandled exception the state of the cache cannot be guaranteed.
|
| 108 |
+
console.error('Failed to upgrade service worker: ' + err);
|
| 109 |
+
await caches.delete(CACHE_NAME);
|
| 110 |
+
await caches.delete(TEMP);
|
| 111 |
+
await caches.delete(MANIFEST);
|
| 112 |
+
}
|
| 113 |
+
}());
|
| 114 |
+
});
|
| 115 |
+
// The fetch handler redirects requests for RESOURCE files to the service
|
| 116 |
+
// worker cache.
|
| 117 |
+
self.addEventListener("fetch", (event) => {
|
| 118 |
+
if (event.request.method !== 'GET') {
|
| 119 |
+
return;
|
| 120 |
+
}
|
| 121 |
+
var origin = self.location.origin;
|
| 122 |
+
var key = event.request.url.substring(origin.length + 1);
|
| 123 |
+
// Redirect URLs to the index.html
|
| 124 |
+
if (key.indexOf('?v=') != -1) {
|
| 125 |
+
key = key.split('?v=')[0];
|
| 126 |
+
}
|
| 127 |
+
if (event.request.url == origin || event.request.url.startsWith(origin + '/#') || key == '') {
|
| 128 |
+
key = '/';
|
| 129 |
+
}
|
| 130 |
+
// If the URL is not the RESOURCE list then return to signal that the
|
| 131 |
+
// browser should take over.
|
| 132 |
+
if (!RESOURCES[key]) {
|
| 133 |
+
return;
|
| 134 |
+
}
|
| 135 |
+
// If the URL is the index.html, perform an online-first request.
|
| 136 |
+
if (key == '/') {
|
| 137 |
+
return onlineFirst(event);
|
| 138 |
+
}
|
| 139 |
+
event.respondWith(caches.open(CACHE_NAME)
|
| 140 |
+
.then((cache) => {
|
| 141 |
+
return cache.match(event.request).then((response) => {
|
| 142 |
+
// Either respond with the cached resource, or perform a fetch and
|
| 143 |
+
// lazily populate the cache only if the resource was successfully fetched.
|
| 144 |
+
return response || fetch(event.request).then((response) => {
|
| 145 |
+
if (response && Boolean(response.ok)) {
|
| 146 |
+
cache.put(event.request, response.clone());
|
| 147 |
+
}
|
| 148 |
+
return response;
|
| 149 |
+
});
|
| 150 |
+
})
|
| 151 |
+
})
|
| 152 |
+
);
|
| 153 |
+
});
|
| 154 |
+
self.addEventListener('message', (event) => {
|
| 155 |
+
// SkipWaiting can be used to immediately activate a waiting service worker.
|
| 156 |
+
// This will also require a page refresh triggered by the main worker.
|
| 157 |
+
if (event.data === 'skipWaiting') {
|
| 158 |
+
self.skipWaiting();
|
| 159 |
+
return;
|
| 160 |
+
}
|
| 161 |
+
if (event.data === 'downloadOffline') {
|
| 162 |
+
downloadOffline();
|
| 163 |
+
return;
|
| 164 |
+
}
|
| 165 |
+
});
|
| 166 |
+
// Download offline will check the RESOURCES for all files not in the cache
|
| 167 |
+
// and populate them.
|
| 168 |
+
async function downloadOffline() {
|
| 169 |
+
var resources = [];
|
| 170 |
+
var contentCache = await caches.open(CACHE_NAME);
|
| 171 |
+
var currentContent = {};
|
| 172 |
+
for (var request of await contentCache.keys()) {
|
| 173 |
+
var key = request.url.substring(origin.length + 1);
|
| 174 |
+
if (key == "") {
|
| 175 |
+
key = "/";
|
| 176 |
+
}
|
| 177 |
+
currentContent[key] = true;
|
| 178 |
+
}
|
| 179 |
+
for (var resourceKey of Object.keys(RESOURCES)) {
|
| 180 |
+
if (!currentContent[resourceKey]) {
|
| 181 |
+
resources.push(resourceKey);
|
| 182 |
+
}
|
| 183 |
+
}
|
| 184 |
+
return contentCache.addAll(resources);
|
| 185 |
+
}
|
| 186 |
+
// Attempt to download the resource online before falling back to
|
| 187 |
+
// the offline cache.
|
| 188 |
+
function onlineFirst(event) {
|
| 189 |
+
return event.respondWith(
|
| 190 |
+
fetch(event.request).then((response) => {
|
| 191 |
+
return caches.open(CACHE_NAME).then((cache) => {
|
| 192 |
+
cache.put(event.request, response.clone());
|
| 193 |
+
return response;
|
| 194 |
+
});
|
| 195 |
+
}).catch((error) => {
|
| 196 |
+
return caches.open(CACHE_NAME).then((cache) => {
|
| 197 |
+
return cache.match(event.request).then((response) => {
|
| 198 |
+
if (response != null) {
|
| 199 |
+
return response;
|
| 200 |
+
}
|
| 201 |
+
throw error;
|
| 202 |
+
});
|
| 203 |
+
});
|
| 204 |
+
})
|
| 205 |
+
);
|
| 206 |
+
}
|
icons/Icon-192.png
ADDED
|
|
icons/Icon-512.png
ADDED
|
|
icons/Icon-maskable-192.png
ADDED
|
|
icons/Icon-maskable-512.png
ADDED
|
|
index.html
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html>
|
| 3 |
+
<head>
|
| 4 |
+
<!--
|
| 5 |
+
If you are serving your web app in a path other than the root, change the
|
| 6 |
+
href value below to reflect the base path you are serving from.
|
| 7 |
+
|
| 8 |
+
The path provided below has to start and end with a slash "/" in order for
|
| 9 |
+
it to work correctly.
|
| 10 |
+
|
| 11 |
+
For more details:
|
| 12 |
+
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
|
| 13 |
+
|
| 14 |
+
This is a placeholder for base href that will be replaced by the value of
|
| 15 |
+
the `--base-href` argument provided to `flutter build`.
|
| 16 |
+
-->
|
| 17 |
+
<base href="/">
|
| 18 |
+
|
| 19 |
+
<meta charset="UTF-8">
|
| 20 |
+
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
| 21 |
+
<meta name="description" content="A new Flutter project.">
|
| 22 |
+
|
| 23 |
+
<!-- iOS meta tags & icons -->
|
| 24 |
+
<meta name="mobile-web-app-capable" content="yes">
|
| 25 |
+
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
| 26 |
+
<meta name="apple-mobile-web-app-title" content="hackathon_frontend">
|
| 27 |
+
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
| 28 |
+
|
| 29 |
+
<!-- Favicon -->
|
| 30 |
+
<link rel="icon" type="image/png" href="favicon.png"/>
|
| 31 |
+
|
| 32 |
+
<title>hackathon_frontend</title>
|
| 33 |
+
<link rel="manifest" href="manifest.json">
|
| 34 |
+
</head>
|
| 35 |
+
<body>
|
| 36 |
+
<script src="flutter_bootstrap.js" async></script>
|
| 37 |
+
</body>
|
| 38 |
+
</html>
|
main.dart.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
manifest.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "hackathon_frontend",
|
| 3 |
+
"short_name": "hackathon_frontend",
|
| 4 |
+
"start_url": ".",
|
| 5 |
+
"display": "standalone",
|
| 6 |
+
"background_color": "#0175C2",
|
| 7 |
+
"theme_color": "#0175C2",
|
| 8 |
+
"description": "A new Flutter project.",
|
| 9 |
+
"orientation": "portrait-primary",
|
| 10 |
+
"prefer_related_applications": false,
|
| 11 |
+
"icons": [
|
| 12 |
+
{
|
| 13 |
+
"src": "icons/Icon-192.png",
|
| 14 |
+
"sizes": "192x192",
|
| 15 |
+
"type": "image/png"
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"src": "icons/Icon-512.png",
|
| 19 |
+
"sizes": "512x512",
|
| 20 |
+
"type": "image/png"
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"src": "icons/Icon-maskable-192.png",
|
| 24 |
+
"sizes": "192x192",
|
| 25 |
+
"type": "image/png",
|
| 26 |
+
"purpose": "maskable"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"src": "icons/Icon-maskable-512.png",
|
| 30 |
+
"sizes": "512x512",
|
| 31 |
+
"type": "image/png",
|
| 32 |
+
"purpose": "maskable"
|
| 33 |
+
}
|
| 34 |
+
]
|
| 35 |
+
}
|
version.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"app_name":"wikilingo_frontend","version":"1.0.0","build_number":"1","package_name":"wikilingo_frontend"}
|