shaderpad 1.0.0-beta.27 → 1.0.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/plugins/save.d.mts
CHANGED
|
@@ -2,12 +2,12 @@ import ShaderPad, { PluginContext } from '../index.mjs';
|
|
|
2
2
|
|
|
3
3
|
declare module '../index' {
|
|
4
4
|
interface ShaderPad {
|
|
5
|
-
save(filename: string): Promise<void>;
|
|
5
|
+
save(filename: string, text?: string): Promise<void>;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
declare function save(): (shaderPad: ShaderPad, context: PluginContext) => void;
|
|
9
9
|
type WithSave<T extends ShaderPad> = T & {
|
|
10
|
-
save(filename: string): Promise<void>;
|
|
10
|
+
save(filename: string, text?: string): Promise<void>;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export { type WithSave, save as default };
|
package/dist/plugins/save.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import ShaderPad, { PluginContext } from '../index.js';
|
|
|
2
2
|
|
|
3
3
|
declare module '../index' {
|
|
4
4
|
interface ShaderPad {
|
|
5
|
-
save(filename: string): Promise<void>;
|
|
5
|
+
save(filename: string, text?: string): Promise<void>;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
declare function save(): (shaderPad: ShaderPad, context: PluginContext) => void;
|
|
9
9
|
type WithSave<T extends ShaderPad> = T & {
|
|
10
|
-
save(filename: string): Promise<void>;
|
|
10
|
+
save(filename: string, text?: string): Promise<void>;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export { type WithSave, save as default };
|
package/dist/plugins/save.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(a,e)=>{for(var t in e)d(a,t,{get:e[t],enumerable:!0})},w=(a,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!p.call(a,n)&&n!==t&&d(a,n,{get:()=>e[n],enumerable:!(o=g(e,n))||o.enumerable});return a};var f=a=>w(d({},"__esModule",{value:!0}),a);var x={};u(x,{default:()=>P});module.exports=f(x);function v(){return function(a,e){let{gl:t,canvas:o}=e,n=document.createElement("a");a.save=async function(r,c){if(t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLES,0,6),r&&!`${r}`.toLowerCase().endsWith(".png")&&(r=`${r}.png`),r=r||"export.png","ongesturechange"in window)try{let i=await new Promise(l=>o.toBlob(l,"image/png")),s={files:[new File([i],r,{type:i.type})]};if(c&&(s.text=c),navigator.canShare?.(s)){await navigator.share(s);return}}catch(i){console.warn("Web Share API failed:",i)}else n.download=r,n.href=o.toDataURL(),n.click()}}}var P=v;
|
|
2
2
|
//# sourceMappingURL=save.js.map
|
package/dist/plugins/save.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string, text?: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string, text?: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tconst shareData: ShareData = { files: [file] };\n\t\t\t\t\tif (text) shareData.text = text;\n\n\t\t\t\t\tif (navigator.canShare?.(shareData)) {\n\t\t\t\t\t\tawait navigator.share(shareData);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string, text?: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAQA,SAASI,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkBC,EAAe,CAQ1E,GAPAJ,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAME,EAAa,MAAM,IAAI,QAAQC,GACpCL,EAAO,OAAOK,EAAyB,WAAW,CACnD,EAGMC,EAAuB,CAAE,MAAO,CAFzB,IAAI,KAAK,CAACF,CAAI,EAAGF,EAAU,CAAE,KAAME,EAAK,IAAK,CAAC,CAEhB,CAAE,EAG7C,GAFID,IAAMG,EAAU,KAAOH,GAEvB,UAAU,WAAWG,CAAS,EAAG,CACpC,MAAM,UAAU,MAAMA,CAAS,EAC/B,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAN,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOP,EAAQE","names":["save_exports","__export","save_default","__toCommonJS","save","shaderPad","context","gl","canvas","downloadLink","filename","text","blob","resolve","shareData","error"]}
|
package/dist/plugins/save.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function l(){return function(s,d){let{gl:a,canvas:o}=d,n=document.createElement("a");s.save=async function(e,i){if(a.clear(a.COLOR_BUFFER_BIT),a.drawArrays(a.TRIANGLES,0,6),e&&!`${e}`.toLowerCase().endsWith(".png")&&(e=`${e}.png`),e=e||"export.png","ongesturechange"in window)try{let t=await new Promise(c=>o.toBlob(c,"image/png")),r={files:[new File([t],e,{type:t.type})]};if(i&&(r.text=i),navigator.canShare?.(r)){await navigator.share(r);return}}catch(t){console.warn("Web Share API failed:",t)}else n.download=e,n.href=o.toDataURL(),n.click()}}}var h=l;export{h as default};
|
|
2
2
|
//# sourceMappingURL=save.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string, text?: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string, text?: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tconst shareData: ShareData = { files: [file] };\n\t\t\t\t\tif (text) shareData.text = text;\n\n\t\t\t\t\tif (navigator.canShare?.(shareData)) {\n\t\t\t\t\t\tawait navigator.share(shareData);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string, text?: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"AAQA,SAASA,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkBC,EAAe,CAQ1E,GAPAJ,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAME,EAAa,MAAM,IAAI,QAAQC,GACpCL,EAAO,OAAOK,EAAyB,WAAW,CACnD,EAGMC,EAAuB,CAAE,MAAO,CAFzB,IAAI,KAAK,CAACF,CAAI,EAAGF,EAAU,CAAE,KAAME,EAAK,IAAK,CAAC,CAEhB,CAAE,EAG7C,GAFID,IAAMG,EAAU,KAAOH,GAEvB,UAAU,WAAWG,CAAS,EAAG,CACpC,MAAM,UAAU,MAAMA,CAAS,EAC/B,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAN,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOO,EAAQZ","names":["save","shaderPad","context","gl","canvas","downloadLink","filename","text","blob","resolve","shareData","error","save_default"]}
|