@volverjs/ui-vue 0.0.10-beta.75 → 0.0.10-beta.76

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.
Files changed (95) hide show
  1. package/README.md +8 -8
  2. package/bin/icons.cjs +1 -1
  3. package/bin/icons.js +3 -3
  4. package/dist/components/VvAccordion/VvAccordion.es.js +9 -9
  5. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  6. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +14 -15
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  8. package/dist/components/VvAction/VvAction.es.js +10 -13
  9. package/dist/components/VvAction/VvAction.umd.js +1 -1
  10. package/dist/components/VvAlert/VvAlert.es.js +19 -19
  11. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  12. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +19 -19
  13. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  14. package/dist/components/VvAvatar/VvAvatar.es.js +1 -1
  15. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  16. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +7 -8
  17. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  18. package/dist/components/VvBadge/VvBadge.es.js +1 -1
  19. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  20. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +12 -18
  21. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  22. package/dist/components/VvButton/VvButton.es.js +32 -38
  23. package/dist/components/VvButton/VvButton.umd.js +1 -1
  24. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +1 -1
  25. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  26. package/dist/components/VvCard/VvCard.es.js +1 -1
  27. package/dist/components/VvCard/VvCard.umd.js +1 -1
  28. package/dist/components/VvCheckbox/VvCheckbox.es.js +10 -12
  29. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  30. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +15 -20
  31. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  32. package/dist/components/VvCombobox/VvCombobox.es.js +266 -285
  33. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  34. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +22 -14
  35. package/dist/components/VvCombobox/index.d.ts +22 -0
  36. package/dist/components/VvDialog/VvDialog.es.js +5 -7
  37. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  38. package/dist/components/VvDropdown/VvDropdown.es.js +10 -15
  39. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  40. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +2 -2
  41. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +2 -2
  42. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +11 -14
  43. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  44. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  45. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  46. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +1 -1
  47. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  48. package/dist/components/VvIcon/VvIcon.es.js +5 -5
  49. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  50. package/dist/components/VvInputFile/VvInputFile.es.js +6829 -72
  51. package/dist/components/VvInputFile/VvInputFile.umd.js +7 -1
  52. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +1 -1
  53. package/dist/components/VvInputText/VvInputText.es.js +54 -66
  54. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  55. package/dist/components/VvInputText/VvInputText.vue.d.ts +1 -1
  56. package/dist/components/VvNav/VvNav.es.js +16 -21
  57. package/dist/components/VvNav/VvNav.umd.js +1 -1
  58. package/dist/components/VvNavItem/VvNavItem.es.js +10 -13
  59. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  60. package/dist/components/VvNavSeparator/VvNavSeparator.umd.js +1 -1
  61. package/dist/components/VvProgress/VvProgress.es.js +1 -1
  62. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  63. package/dist/components/VvRadio/VvRadio.es.js +10 -12
  64. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  65. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +15 -20
  66. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  67. package/dist/components/VvSelect/VvSelect.es.js +27 -30
  68. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  69. package/dist/components/VvSelect/VvSelect.vue.d.ts +3 -3
  70. package/dist/components/VvTab/VvTab.es.js +18 -25
  71. package/dist/components/VvTab/VvTab.umd.js +1 -1
  72. package/dist/components/VvTextarea/VvTextarea.es.js +47 -57
  73. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  74. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +1 -1
  75. package/dist/components/VvTooltip/VvTooltip.es.js +1 -1
  76. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  77. package/dist/components/index.es.js +7349 -628
  78. package/dist/components/index.umd.js +7 -1
  79. package/dist/composables/index.es.js +1787 -16
  80. package/dist/composables/index.umd.js +7 -1
  81. package/dist/directives/index.es.js +1782 -15
  82. package/dist/directives/index.umd.js +7 -1
  83. package/dist/directives/v-contextmenu.es.js +1781 -14
  84. package/dist/directives/v-contextmenu.umd.js +7 -1
  85. package/dist/directives/v-tooltip.es.js +1 -1
  86. package/dist/directives/v-tooltip.umd.js +1 -1
  87. package/dist/icons.es.js +3 -3
  88. package/dist/icons.umd.js +1 -1
  89. package/dist/index.es.js +9 -12
  90. package/dist/index.umd.js +1 -1
  91. package/dist/resolvers/unplugin.es.js +1 -1
  92. package/dist/resolvers/unplugin.umd.js +1 -1
  93. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +2 -2
  94. package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
  95. package/package.json +35 -32
@@ -1,6 +1,5 @@
1
1
  import { reactive, computed, unref, getCurrentInstance, onMounted, onUnmounted, ref } from "vue";
2
2
  import { wrap } from "comlink";
3
- import "pica";
4
3
  const DEFAULT_ALERT_GROUP = "default";
5
4
  reactive(
6
5
  /* @__PURE__ */ new Map([
@@ -18,12 +17,10 @@ function useDropdownContextmenu(dropdownEl, targetEl) {
18
17
  const target = computed(() => unref(targetEl));
19
18
  if (target && getCurrentInstance()) {
20
19
  onMounted(() => {
21
- var _a;
22
- (_a = target.value) == null ? void 0 : _a.addEventListener("contextmenu", onContextmenu, false);
20
+ target.value?.addEventListener("contextmenu", onContextmenu, false);
23
21
  });
24
22
  onUnmounted(() => {
25
- var _a;
26
- (_a = target.value) == null ? void 0 : _a.removeEventListener("contextmenu", onContextmenu);
23
+ target.value?.removeEventListener("contextmenu", onContextmenu);
27
24
  });
28
25
  }
29
26
  return { x, y, getBoundingClientRect, onContextmenu, onScroll };
@@ -89,15 +86,1788 @@ function useDropdownVirtualElement(dropdownEl) {
89
86
  }
90
87
  return { x, y, getBoundingClientRect, onScroll };
91
88
  }
92
- const jsContent = '!function(){"use strict";var t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],e=e=>{let n=0;for(let r=0;r<e.length;r++){let a=e[r];n=83*n+t.indexOf(a)}return n},n=(e,n)=>{var r="";for(let a=1;a<=n;a++){let o=Math.floor(e)/Math.pow(83,n-a)%83;r+=t[Math.floor(o)]}return r},r=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},a=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(12.92*e*255+.5):Math.trunc(255*(1.055*Math.pow(e,.4166666666666667)-.055)+.5)},o=(t,e)=>(t=>t<0?-1:1)(t)*Math.pow(Math.abs(t),e),s=class extends Error{constructor(t){super(t),this.name="ValidationError",this.message=t}},i=t=>{if(!t||t.length<6)throw new s("The blurhash string must be at least 6 characters");let n=e(t[0]),r=Math.floor(n/9)+1,a=n%9+1;if(t.length!==4+2*a*r)throw new s(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*a*r}`)},l=t=>{let e=t>>8&255,n=255&t;return[r(t>>16),r(e),r(n)]},c=(t,e)=>{let n=Math.floor(t/361),r=Math.floor(t/19)%19,a=t%19;return[o((n-9)/9,2)*e,o((r-9)/9,2)*e,o((a-9)/9,2)*e]},h=(t,n,r,o)=>{i(t),o|=1;let s=e(t[0]),h=Math.floor(s/9)+1,u=s%9+1,f=(e(t[1])+1)/166,p=new Array(u*h);for(let a=0;a<p.length;a++)if(0===a){let n=e(t.substring(2,6));p[a]=l(n)}else{let n=e(t.substring(4+2*a,6+2*a));p[a]=c(n,f*o)}let m=4*n,g=new Uint8ClampedArray(m*r);for(let e=0;e<r;e++)for(let t=0;t<n;t++){let o=0,s=0,i=0;for(let a=0;a<h;a++)for(let l=0;l<u;l++){let c=Math.cos(Math.PI*t*l/n)*Math.cos(Math.PI*e*a/r),h=p[l+a*u];o+=h[0]*c,s+=h[1]*c,i+=h[2]*c}let l=a(o),c=a(s),f=a(i);g[4*t+0+e*m]=l,g[4*t+1+e*m]=c,g[4*t+2+e*m]=f,g[4*t+3+e*m]=255}return g},u=(t,e,n,a)=>{let o=0,s=0,i=0,l=4*e;for(let h=0;h<e;h++){let e=4*h;for(let c=0;c<n;c++){let n=e+c*l,u=a(h,c);o+=u*r(t[n]),s+=u*r(t[n+1]),i+=u*r(t[n+2])}}let c=1/(e*n);return[o*c,s*c,i*c]},f=(t,e,r,i,l)=>{if(i<1||i>9||l<1||l>9)throw new s("BlurHash must have between 1 and 9 components");if(e*r*4!==t.length)throw new s("Width and height must match the pixels array");let c=[];for(let n=0;n<l;n++)for(let a=0;a<i;a++){let o=0==a&&0==n?1:2,s=u(t,e,r,((t,s)=>o*Math.cos(Math.PI*a*t/e)*Math.cos(Math.PI*n*s/r)));c.push(s)}let h,f=c[0],p=c.slice(1),m="";if(m+=n(i-1+9*(l-1),1),p.length>0){let t=Math.max(...p.map((t=>Math.max(...t)))),e=Math.floor(Math.max(0,Math.min(82,Math.floor(166*t-.5))));h=(e+1)/166,m+=n(e,1)}else h=1,m+=n(0,1);return m+=n((t=>(a(t[0])<<16)+(a(t[1])<<8)+a(t[2]))(f),4),p.forEach((t=>{m+=n(((t,e)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[0]/e,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[1]/e,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[2]/e,.5)+9.5)))))(t,h),2)})),m};\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst p=Symbol("Comlink.proxy"),m=Symbol("Comlink.endpoint"),g=Symbol("Comlink.releaseProxy"),M=Symbol("Comlink.finalizer"),d=Symbol("Comlink.thrown"),y=t=>"object"==typeof t&&null!==t||"function"==typeof t,w=new Map([["proxy",{canHandle:t=>y(t)&&t[p],serialize(t){const{port1:e,port2:n}=new MessageChannel;return b(t,e),[n,[n]]},deserialize:t=>(t.start(),function(t,e){const n=new Map;return t.addEventListener("message",(function(t){const{data:e}=t;if(!e||!e.id)return;const r=n.get(e.id);if(r)try{r(e)}finally{n.delete(e.id)}})),P(t,n,[],e)}(t))}],["throw",{canHandle:t=>y(t)&&d in t,serialize({value:t}){let e;return e=t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[e,[]]},deserialize(t){if(t.isError)throw Object.assign(new Error(t.value.message),t.value);throw t.value}}]]);function b(t,e=globalThis,n=["*"]){e.addEventListener("message",(function r(a){if(!a||!a.data)return;if(!function(t,e){for(const n of t){if(e===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}return!1}(n,a.origin))return void console.warn(`Invalid origin \'${a.origin}\' for comlink proxy`);const{id:o,type:s,path:i}=Object.assign({path:[]},a.data),l=(a.data.argumentList||[]).map(L);let c;try{const e=i.slice(0,-1).reduce(((t,e)=>t[e]),t),n=i.reduce(((t,e)=>t[e]),t);switch(s){case"GET":c=n;break;case"SET":e[i.slice(-1)[0]]=L(a.data.value),c=!0;break;case"APPLY":c=n.apply(e,l);break;case"CONSTRUCT":c=function(t){return Object.assign(t,{[p]:!0})}(new n(...l));break;case"ENDPOINT":{const{port1:e,port2:n}=new MessageChannel;b(t,n),c=function(t,e){return T.set(t,e),t}(e,[e])}break;case"RELEASE":c=void 0;break;default:return}}catch(h){c={value:h,[d]:0}}Promise.resolve(c).catch((t=>({value:t,[d]:0}))).then((n=>{const[a,i]=R(n);e.postMessage(Object.assign(Object.assign({},a),{id:o}),i),"RELEASE"===s&&(e.removeEventListener("message",r),E(e),M in t&&"function"==typeof t[M]&&t[M]())})).catch((t=>{const[n,r]=R({value:new TypeError("Unserializable return value"),[d]:0});e.postMessage(Object.assign(Object.assign({},n),{id:o}),r)}))})),e.start&&e.start()}function E(t){(function(t){return"MessagePort"===t.constructor.name})(t)&&t.close()}function v(t){if(t)throw new Error("Proxy has been released and is not useable")}function S(t){return O(t,new Map,{type:"RELEASE"}).then((()=>{E(t)}))}const x=new WeakMap,k="FinalizationRegistry"in globalThis&&new FinalizationRegistry((t=>{const e=(x.get(t)||0)-1;x.set(t,e),0===e&&S(t)}));function P(t,e,n=[],r=function(){}){let a=!1;const o=new Proxy(r,{get(r,s){if(v(a),s===g)return()=>{!function(t){k&&k.unregister(t)}(o),S(t),e.clear(),a=!0};if("then"===s){if(0===n.length)return{then:()=>o};const r=O(t,e,{type:"GET",path:n.map((t=>t.toString()))}).then(L);return r.then.bind(r)}return P(t,e,[...n,s])},set(r,o,s){v(a);const[i,l]=R(s);return O(t,e,{type:"SET",path:[...n,o].map((t=>t.toString())),value:i},l).then(L)},apply(r,o,s){v(a);const i=n[n.length-1];if(i===m)return O(t,e,{type:"ENDPOINT"}).then(L);if("bind"===i)return P(t,e,n.slice(0,-1));const[l,c]=A(s);return O(t,e,{type:"APPLY",path:n.map((t=>t.toString())),argumentList:l},c).then(L)},construct(r,o){v(a);const[s,i]=A(o);return O(t,e,{type:"CONSTRUCT",path:n.map((t=>t.toString())),argumentList:s},i).then(L)}});return function(t,e){const n=(x.get(e)||0)+1;x.set(e,n),k&&k.register(t,e,t)}(o,t),o}function A(t){const e=t.map(R);return[e.map((t=>t[0])),(n=e.map((t=>t[1])),Array.prototype.concat.apply([],n))];var n}const T=new WeakMap;function R(t){for(const[e,n]of w)if(n.canHandle(t)){const[r,a]=n.serialize(t);return[{type:"HANDLER",name:e,value:r},a]}return[{type:"RAW",value:t},T.get(t)||[]]}function L(t){switch(t.type){case"HANDLER":return w.get(t.name).deserialize(t.value);case"RAW":return t.value}}function O(t,e,n,r){return new Promise((a=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");e.set(o,a),t.start&&t.start(),t.postMessage(Object.assign({id:o},n),r)}))}b({ValidationError:s,encode:f,decode:h,isBlurhashValid:t=>{try{i(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}}})}();\n';
93
- const blob = typeof self !== "undefined" && self.Blob && new Blob([jsContent], { type: "text/javascript;charset=utf-8" });
89
+ function commonjsRequire(path) {
90
+ throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
91
+ }
92
+ var pica = { exports: {} };
93
+ /*!
94
+
95
+ pica
96
+ https://github.com/nodeca/pica
97
+
98
+ */
99
+ var hasRequiredPica;
100
+ function requirePica() {
101
+ if (hasRequiredPica) return pica.exports;
102
+ hasRequiredPica = 1;
103
+ (function(module, exports) {
104
+ (function(f) {
105
+ {
106
+ module.exports = f();
107
+ }
108
+ })(function() {
109
+ return (/* @__PURE__ */ function() {
110
+ function r(e, n, t) {
111
+ function o(i2, f) {
112
+ if (!n[i2]) {
113
+ if (!e[i2]) {
114
+ var c = "function" == typeof commonjsRequire && commonjsRequire;
115
+ if (!f && c) return c(i2, true);
116
+ if (u) return u(i2, true);
117
+ var a = new Error("Cannot find module '" + i2 + "'");
118
+ throw a.code = "MODULE_NOT_FOUND", a;
119
+ }
120
+ var p = n[i2] = { exports: {} };
121
+ e[i2][0].call(p.exports, function(r2) {
122
+ var n2 = e[i2][1][r2];
123
+ return o(n2 || r2);
124
+ }, p, p.exports, r, e, n, t);
125
+ }
126
+ return n[i2].exports;
127
+ }
128
+ for (var u = "function" == typeof commonjsRequire && commonjsRequire, i = 0; i < t.length; i++) o(t[i]);
129
+ return o;
130
+ }
131
+ return r;
132
+ }())({ 1: [function(_dereq_, module2, exports2) {
133
+ var Multimath = _dereq_("multimath");
134
+ var mm_unsharp_mask = _dereq_("./mm_unsharp_mask");
135
+ var mm_resize = _dereq_("./mm_resize");
136
+ function MathLib(requested_features) {
137
+ var __requested_features = requested_features || [];
138
+ var features = {
139
+ js: __requested_features.indexOf("js") >= 0,
140
+ wasm: __requested_features.indexOf("wasm") >= 0
141
+ };
142
+ Multimath.call(this, features);
143
+ this.features = {
144
+ js: features.js,
145
+ wasm: features.wasm && this.has_wasm()
146
+ };
147
+ this.use(mm_unsharp_mask);
148
+ this.use(mm_resize);
149
+ }
150
+ MathLib.prototype = Object.create(Multimath.prototype);
151
+ MathLib.prototype.constructor = MathLib;
152
+ MathLib.prototype.resizeAndUnsharp = function resizeAndUnsharp(options, cache) {
153
+ var result = this.resize(options, cache);
154
+ if (options.unsharpAmount) {
155
+ this.unsharp_mask(result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold);
156
+ }
157
+ return result;
158
+ };
159
+ module2.exports = MathLib;
160
+ }, { "./mm_resize": 4, "./mm_unsharp_mask": 9, "multimath": 19 }], 2: [function(_dereq_, module2, exports2) {
161
+ function clampTo8(i) {
162
+ return i < 0 ? 0 : i > 255 ? 255 : i;
163
+ }
164
+ function clampNegative(i) {
165
+ return i >= 0 ? i : 0;
166
+ }
167
+ function convolveHor(src, dest, srcW, srcH, destW, filters) {
168
+ var r, g, b, a;
169
+ var filterPtr, filterShift, filterSize;
170
+ var srcPtr, srcY, destX, filterVal;
171
+ var srcOffset = 0, destOffset = 0;
172
+ for (srcY = 0; srcY < srcH; srcY++) {
173
+ filterPtr = 0;
174
+ for (destX = 0; destX < destW; destX++) {
175
+ filterShift = filters[filterPtr++];
176
+ filterSize = filters[filterPtr++];
177
+ srcPtr = srcOffset + filterShift * 4 | 0;
178
+ r = g = b = a = 0;
179
+ for (; filterSize > 0; filterSize--) {
180
+ filterVal = filters[filterPtr++];
181
+ a = a + filterVal * src[srcPtr + 3] | 0;
182
+ b = b + filterVal * src[srcPtr + 2] | 0;
183
+ g = g + filterVal * src[srcPtr + 1] | 0;
184
+ r = r + filterVal * src[srcPtr] | 0;
185
+ srcPtr = srcPtr + 4 | 0;
186
+ }
187
+ dest[destOffset + 3] = clampNegative(a >> 7);
188
+ dest[destOffset + 2] = clampNegative(b >> 7);
189
+ dest[destOffset + 1] = clampNegative(g >> 7);
190
+ dest[destOffset] = clampNegative(r >> 7);
191
+ destOffset = destOffset + srcH * 4 | 0;
192
+ }
193
+ destOffset = (srcY + 1) * 4 | 0;
194
+ srcOffset = (srcY + 1) * srcW * 4 | 0;
195
+ }
196
+ }
197
+ function convolveVert(src, dest, srcW, srcH, destW, filters) {
198
+ var r, g, b, a;
199
+ var filterPtr, filterShift, filterSize;
200
+ var srcPtr, srcY, destX, filterVal;
201
+ var srcOffset = 0, destOffset = 0;
202
+ for (srcY = 0; srcY < srcH; srcY++) {
203
+ filterPtr = 0;
204
+ for (destX = 0; destX < destW; destX++) {
205
+ filterShift = filters[filterPtr++];
206
+ filterSize = filters[filterPtr++];
207
+ srcPtr = srcOffset + filterShift * 4 | 0;
208
+ r = g = b = a = 0;
209
+ for (; filterSize > 0; filterSize--) {
210
+ filterVal = filters[filterPtr++];
211
+ a = a + filterVal * src[srcPtr + 3] | 0;
212
+ b = b + filterVal * src[srcPtr + 2] | 0;
213
+ g = g + filterVal * src[srcPtr + 1] | 0;
214
+ r = r + filterVal * src[srcPtr] | 0;
215
+ srcPtr = srcPtr + 4 | 0;
216
+ }
217
+ r >>= 7;
218
+ g >>= 7;
219
+ b >>= 7;
220
+ a >>= 7;
221
+ dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14);
222
+ dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14);
223
+ dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14);
224
+ dest[destOffset] = clampTo8(r + (1 << 13) >> 14);
225
+ destOffset = destOffset + srcH * 4 | 0;
226
+ }
227
+ destOffset = (srcY + 1) * 4 | 0;
228
+ srcOffset = (srcY + 1) * srcW * 4 | 0;
229
+ }
230
+ }
231
+ function convolveHorWithPre(src, dest, srcW, srcH, destW, filters) {
232
+ var r, g, b, a, alpha;
233
+ var filterPtr, filterShift, filterSize;
234
+ var srcPtr, srcY, destX, filterVal;
235
+ var srcOffset = 0, destOffset = 0;
236
+ for (srcY = 0; srcY < srcH; srcY++) {
237
+ filterPtr = 0;
238
+ for (destX = 0; destX < destW; destX++) {
239
+ filterShift = filters[filterPtr++];
240
+ filterSize = filters[filterPtr++];
241
+ srcPtr = srcOffset + filterShift * 4 | 0;
242
+ r = g = b = a = 0;
243
+ for (; filterSize > 0; filterSize--) {
244
+ filterVal = filters[filterPtr++];
245
+ alpha = src[srcPtr + 3];
246
+ a = a + filterVal * alpha | 0;
247
+ b = b + filterVal * src[srcPtr + 2] * alpha | 0;
248
+ g = g + filterVal * src[srcPtr + 1] * alpha | 0;
249
+ r = r + filterVal * src[srcPtr] * alpha | 0;
250
+ srcPtr = srcPtr + 4 | 0;
251
+ }
252
+ b = b / 255 | 0;
253
+ g = g / 255 | 0;
254
+ r = r / 255 | 0;
255
+ dest[destOffset + 3] = clampNegative(a >> 7);
256
+ dest[destOffset + 2] = clampNegative(b >> 7);
257
+ dest[destOffset + 1] = clampNegative(g >> 7);
258
+ dest[destOffset] = clampNegative(r >> 7);
259
+ destOffset = destOffset + srcH * 4 | 0;
260
+ }
261
+ destOffset = (srcY + 1) * 4 | 0;
262
+ srcOffset = (srcY + 1) * srcW * 4 | 0;
263
+ }
264
+ }
265
+ function convolveVertWithPre(src, dest, srcW, srcH, destW, filters) {
266
+ var r, g, b, a;
267
+ var filterPtr, filterShift, filterSize;
268
+ var srcPtr, srcY, destX, filterVal;
269
+ var srcOffset = 0, destOffset = 0;
270
+ for (srcY = 0; srcY < srcH; srcY++) {
271
+ filterPtr = 0;
272
+ for (destX = 0; destX < destW; destX++) {
273
+ filterShift = filters[filterPtr++];
274
+ filterSize = filters[filterPtr++];
275
+ srcPtr = srcOffset + filterShift * 4 | 0;
276
+ r = g = b = a = 0;
277
+ for (; filterSize > 0; filterSize--) {
278
+ filterVal = filters[filterPtr++];
279
+ a = a + filterVal * src[srcPtr + 3] | 0;
280
+ b = b + filterVal * src[srcPtr + 2] | 0;
281
+ g = g + filterVal * src[srcPtr + 1] | 0;
282
+ r = r + filterVal * src[srcPtr] | 0;
283
+ srcPtr = srcPtr + 4 | 0;
284
+ }
285
+ r >>= 7;
286
+ g >>= 7;
287
+ b >>= 7;
288
+ a >>= 7;
289
+ a = clampTo8(a + (1 << 13) >> 14);
290
+ if (a > 0) {
291
+ r = r * 255 / a | 0;
292
+ g = g * 255 / a | 0;
293
+ b = b * 255 / a | 0;
294
+ }
295
+ dest[destOffset + 3] = a;
296
+ dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14);
297
+ dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14);
298
+ dest[destOffset] = clampTo8(r + (1 << 13) >> 14);
299
+ destOffset = destOffset + srcH * 4 | 0;
300
+ }
301
+ destOffset = (srcY + 1) * 4 | 0;
302
+ srcOffset = (srcY + 1) * srcW * 4 | 0;
303
+ }
304
+ }
305
+ module2.exports = {
306
+ convolveHor,
307
+ convolveVert,
308
+ convolveHorWithPre,
309
+ convolveVertWithPre
310
+ };
311
+ }, {}], 3: [function(_dereq_, module2, exports2) {
312
+ module2.exports = "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";
313
+ }, {}], 4: [function(_dereq_, module2, exports2) {
314
+ module2.exports = {
315
+ name: "resize",
316
+ fn: _dereq_("./resize"),
317
+ wasm_fn: _dereq_("./resize_wasm"),
318
+ wasm_src: _dereq_("./convolve_wasm_base64")
319
+ };
320
+ }, { "./convolve_wasm_base64": 3, "./resize": 5, "./resize_wasm": 8 }], 5: [function(_dereq_, module2, exports2) {
321
+ var createFilters = _dereq_("./resize_filter_gen");
322
+ var _require = _dereq_("./convolve"), convolveHor = _require.convolveHor, convolveVert = _require.convolveVert, convolveHorWithPre = _require.convolveHorWithPre, convolveVertWithPre = _require.convolveVertWithPre;
323
+ function hasAlpha(src, width, height) {
324
+ var ptr = 3, len = width * height * 4 | 0;
325
+ while (ptr < len) {
326
+ if (src[ptr] !== 255) return true;
327
+ ptr = ptr + 4 | 0;
328
+ }
329
+ return false;
330
+ }
331
+ function resetAlpha(dst, width, height) {
332
+ var ptr = 3, len = width * height * 4 | 0;
333
+ while (ptr < len) {
334
+ dst[ptr] = 255;
335
+ ptr = ptr + 4 | 0;
336
+ }
337
+ }
338
+ module2.exports = function resize(options) {
339
+ var src = options.src;
340
+ var srcW = options.width;
341
+ var srcH = options.height;
342
+ var destW = options.toWidth;
343
+ var destH = options.toHeight;
344
+ var scaleX = options.scaleX || options.toWidth / options.width;
345
+ var scaleY = options.scaleY || options.toHeight / options.height;
346
+ var offsetX = options.offsetX || 0;
347
+ var offsetY = options.offsetY || 0;
348
+ var dest = options.dest || new Uint8Array(destW * destH * 4);
349
+ var filter = typeof options.filter === "undefined" ? "mks2013" : options.filter;
350
+ var filtersX = createFilters(filter, srcW, destW, scaleX, offsetX), filtersY = createFilters(filter, srcH, destH, scaleY, offsetY);
351
+ var tmp = new Uint16Array(destW * srcH * 4);
352
+ if (hasAlpha(src, srcW, srcH)) {
353
+ convolveHorWithPre(src, tmp, srcW, srcH, destW, filtersX);
354
+ convolveVertWithPre(tmp, dest, srcH, destW, destH, filtersY);
355
+ } else {
356
+ convolveHor(src, tmp, srcW, srcH, destW, filtersX);
357
+ convolveVert(tmp, dest, srcH, destW, destH, filtersY);
358
+ resetAlpha(dest, destW, destH);
359
+ }
360
+ return dest;
361
+ };
362
+ }, { "./convolve": 2, "./resize_filter_gen": 6 }], 6: [function(_dereq_, module2, exports2) {
363
+ var FILTER_INFO = _dereq_("./resize_filter_info");
364
+ var FIXED_FRAC_BITS = 14;
365
+ function toFixedPoint(num) {
366
+ return Math.round(num * ((1 << FIXED_FRAC_BITS) - 1));
367
+ }
368
+ module2.exports = function resizeFilterGen(filter, srcSize, destSize, scale, offset) {
369
+ var filterFunction = FILTER_INFO.filter[filter].fn;
370
+ var scaleInverted = 1 / scale;
371
+ var scaleClamped = Math.min(1, scale);
372
+ var srcWindow = FILTER_INFO.filter[filter].win / scaleClamped;
373
+ var destPixel, srcPixel, srcFirst, srcLast, filterElementSize, floatFilter, fxpFilter, total, pxl, idx, floatVal, filterTotal, filterVal;
374
+ var leftNotEmpty, rightNotEmpty, filterShift, filterSize;
375
+ var maxFilterElementSize = Math.floor((srcWindow + 1) * 2);
376
+ var packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);
377
+ var packedFilterPtr = 0;
378
+ var slowCopy = !packedFilter.subarray || !packedFilter.set;
379
+ for (destPixel = 0; destPixel < destSize; destPixel++) {
380
+ srcPixel = (destPixel + 0.5) * scaleInverted + offset;
381
+ srcFirst = Math.max(0, Math.floor(srcPixel - srcWindow));
382
+ srcLast = Math.min(srcSize - 1, Math.ceil(srcPixel + srcWindow));
383
+ filterElementSize = srcLast - srcFirst + 1;
384
+ floatFilter = new Float32Array(filterElementSize);
385
+ fxpFilter = new Int16Array(filterElementSize);
386
+ total = 0;
387
+ for (pxl = srcFirst, idx = 0; pxl <= srcLast; pxl++, idx++) {
388
+ floatVal = filterFunction((pxl + 0.5 - srcPixel) * scaleClamped);
389
+ total += floatVal;
390
+ floatFilter[idx] = floatVal;
391
+ }
392
+ filterTotal = 0;
393
+ for (idx = 0; idx < floatFilter.length; idx++) {
394
+ filterVal = floatFilter[idx] / total;
395
+ filterTotal += filterVal;
396
+ fxpFilter[idx] = toFixedPoint(filterVal);
397
+ }
398
+ fxpFilter[destSize >> 1] += toFixedPoint(1 - filterTotal);
399
+ leftNotEmpty = 0;
400
+ while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) {
401
+ leftNotEmpty++;
402
+ }
403
+ if (leftNotEmpty < fxpFilter.length) {
404
+ rightNotEmpty = fxpFilter.length - 1;
405
+ while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) {
406
+ rightNotEmpty--;
407
+ }
408
+ filterShift = srcFirst + leftNotEmpty;
409
+ filterSize = rightNotEmpty - leftNotEmpty + 1;
410
+ packedFilter[packedFilterPtr++] = filterShift;
411
+ packedFilter[packedFilterPtr++] = filterSize;
412
+ if (!slowCopy) {
413
+ packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);
414
+ packedFilterPtr += filterSize;
415
+ } else {
416
+ for (idx = leftNotEmpty; idx <= rightNotEmpty; idx++) {
417
+ packedFilter[packedFilterPtr++] = fxpFilter[idx];
418
+ }
419
+ }
420
+ } else {
421
+ packedFilter[packedFilterPtr++] = 0;
422
+ packedFilter[packedFilterPtr++] = 0;
423
+ }
424
+ }
425
+ return packedFilter;
426
+ };
427
+ }, { "./resize_filter_info": 7 }], 7: [function(_dereq_, module2, exports2) {
428
+ var filter = {
429
+ // Nearest neibor
430
+ box: {
431
+ win: 0.5,
432
+ fn: function fn(x) {
433
+ if (x < 0) x = -x;
434
+ return x < 0.5 ? 1 : 0;
435
+ }
436
+ },
437
+ // // Hamming
438
+ hamming: {
439
+ win: 1,
440
+ fn: function fn(x) {
441
+ if (x < 0) x = -x;
442
+ if (x >= 1) {
443
+ return 0;
444
+ }
445
+ if (x < 11920929e-14) {
446
+ return 1;
447
+ }
448
+ var xpi = x * Math.PI;
449
+ return Math.sin(xpi) / xpi * (0.54 + 0.46 * Math.cos(xpi / 1));
450
+ }
451
+ },
452
+ // Lanczos, win = 2
453
+ lanczos2: {
454
+ win: 2,
455
+ fn: function fn(x) {
456
+ if (x < 0) x = -x;
457
+ if (x >= 2) {
458
+ return 0;
459
+ }
460
+ if (x < 11920929e-14) {
461
+ return 1;
462
+ }
463
+ var xpi = x * Math.PI;
464
+ return Math.sin(xpi) / xpi * Math.sin(xpi / 2) / (xpi / 2);
465
+ }
466
+ },
467
+ // Lanczos, win = 3
468
+ lanczos3: {
469
+ win: 3,
470
+ fn: function fn(x) {
471
+ if (x < 0) x = -x;
472
+ if (x >= 3) {
473
+ return 0;
474
+ }
475
+ if (x < 11920929e-14) {
476
+ return 1;
477
+ }
478
+ var xpi = x * Math.PI;
479
+ return Math.sin(xpi) / xpi * Math.sin(xpi / 3) / (xpi / 3);
480
+ }
481
+ },
482
+ // Magic Kernel Sharp 2013, win = 2.5
483
+ // http://johncostella.com/magic/
484
+ mks2013: {
485
+ win: 2.5,
486
+ fn: function fn(x) {
487
+ if (x < 0) x = -x;
488
+ if (x >= 2.5) {
489
+ return 0;
490
+ }
491
+ if (x >= 1.5) {
492
+ return -0.125 * (x - 2.5) * (x - 2.5);
493
+ }
494
+ if (x >= 0.5) {
495
+ return 0.25 * (4 * x * x - 11 * x + 7);
496
+ }
497
+ return 1.0625 - 1.75 * x * x;
498
+ }
499
+ }
500
+ };
501
+ module2.exports = {
502
+ filter,
503
+ // Legacy mapping
504
+ f2q: {
505
+ box: 0,
506
+ hamming: 1,
507
+ lanczos2: 2,
508
+ lanczos3: 3
509
+ },
510
+ q2f: ["box", "hamming", "lanczos2", "lanczos3"]
511
+ };
512
+ }, {}], 8: [function(_dereq_, module2, exports2) {
513
+ var createFilters = _dereq_("./resize_filter_gen");
514
+ function hasAlpha(src, width, height) {
515
+ var ptr = 3, len = width * height * 4 | 0;
516
+ while (ptr < len) {
517
+ if (src[ptr] !== 255) return true;
518
+ ptr = ptr + 4 | 0;
519
+ }
520
+ return false;
521
+ }
522
+ function resetAlpha(dst, width, height) {
523
+ var ptr = 3, len = width * height * 4 | 0;
524
+ while (ptr < len) {
525
+ dst[ptr] = 255;
526
+ ptr = ptr + 4 | 0;
527
+ }
528
+ }
529
+ function asUint8Array(src) {
530
+ return new Uint8Array(src.buffer, 0, src.byteLength);
531
+ }
532
+ var IS_LE = true;
533
+ try {
534
+ IS_LE = new Uint32Array(new Uint8Array([1, 0, 0, 0]).buffer)[0] === 1;
535
+ } catch (__) {
536
+ }
537
+ function copyInt16asLE(src, target, target_offset) {
538
+ if (IS_LE) {
539
+ target.set(asUint8Array(src), target_offset);
540
+ return;
541
+ }
542
+ for (var ptr = target_offset, i = 0; i < src.length; i++) {
543
+ var data = src[i];
544
+ target[ptr++] = data & 255;
545
+ target[ptr++] = data >> 8 & 255;
546
+ }
547
+ }
548
+ module2.exports = function resize_wasm(options) {
549
+ var src = options.src;
550
+ var srcW = options.width;
551
+ var srcH = options.height;
552
+ var destW = options.toWidth;
553
+ var destH = options.toHeight;
554
+ var scaleX = options.scaleX || options.toWidth / options.width;
555
+ var scaleY = options.scaleY || options.toHeight / options.height;
556
+ var offsetX = options.offsetX || 0;
557
+ var offsetY = options.offsetY || 0;
558
+ var dest = options.dest || new Uint8Array(destW * destH * 4);
559
+ var filter = typeof options.filter === "undefined" ? "mks2013" : options.filter;
560
+ var filtersX = createFilters(filter, srcW, destW, scaleX, offsetX), filtersY = createFilters(filter, srcH, destH, scaleY, offsetY);
561
+ var src_offset = 0;
562
+ var src_size = Math.max(src.byteLength, dest.byteLength);
563
+ var tmp_offset = this.__align(src_offset + src_size);
564
+ var tmp_size = srcH * destW * 4 * 2;
565
+ var filtersX_offset = this.__align(tmp_offset + tmp_size);
566
+ var filtersY_offset = this.__align(filtersX_offset + filtersX.byteLength);
567
+ var alloc_bytes = filtersY_offset + filtersY.byteLength;
568
+ var instance = this.__instance("resize", alloc_bytes);
569
+ var mem = new Uint8Array(this.__memory.buffer);
570
+ var mem32 = new Uint32Array(this.__memory.buffer);
571
+ var src32 = new Uint32Array(src.buffer);
572
+ mem32.set(src32);
573
+ copyInt16asLE(filtersX, mem, filtersX_offset);
574
+ copyInt16asLE(filtersY, mem, filtersY_offset);
575
+ var fn = instance.exports.convolveHV || instance.exports._convolveHV;
576
+ if (hasAlpha(src, srcW, srcH)) {
577
+ fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 1);
578
+ } else {
579
+ fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 0);
580
+ resetAlpha(dest, destW, destH);
581
+ }
582
+ var dest32 = new Uint32Array(dest.buffer);
583
+ dest32.set(new Uint32Array(this.__memory.buffer, 0, destH * destW));
584
+ return dest;
585
+ };
586
+ }, { "./resize_filter_gen": 6 }], 9: [function(_dereq_, module2, exports2) {
587
+ module2.exports = {
588
+ name: "unsharp_mask",
589
+ fn: _dereq_("./unsharp_mask"),
590
+ wasm_fn: _dereq_("./unsharp_mask_wasm"),
591
+ wasm_src: _dereq_("./unsharp_mask_wasm_base64")
592
+ };
593
+ }, { "./unsharp_mask": 10, "./unsharp_mask_wasm": 11, "./unsharp_mask_wasm_base64": 12 }], 10: [function(_dereq_, module2, exports2) {
594
+ var glur_mono16 = _dereq_("glur/mono16");
595
+ function hsv_v16(img, width, height) {
596
+ var size = width * height;
597
+ var out = new Uint16Array(size);
598
+ var r, g, b, max;
599
+ for (var i = 0; i < size; i++) {
600
+ r = img[4 * i];
601
+ g = img[4 * i + 1];
602
+ b = img[4 * i + 2];
603
+ max = r >= g && r >= b ? r : g >= b && g >= r ? g : b;
604
+ out[i] = max << 8;
605
+ }
606
+ return out;
607
+ }
608
+ module2.exports = function unsharp(img, width, height, amount, radius, threshold) {
609
+ var v1, v2, vmul;
610
+ var diff, iTimes4;
611
+ if (amount === 0 || radius < 0.5) {
612
+ return;
613
+ }
614
+ if (radius > 2) {
615
+ radius = 2;
616
+ }
617
+ var brightness = hsv_v16(img, width, height);
618
+ var blured = new Uint16Array(brightness);
619
+ glur_mono16(blured, width, height, radius);
620
+ var amountFp = amount / 100 * 4096 + 0.5 | 0;
621
+ var thresholdFp = threshold << 8;
622
+ var size = width * height;
623
+ for (var i = 0; i < size; i++) {
624
+ v1 = brightness[i];
625
+ diff = v1 - blured[i];
626
+ if (Math.abs(diff) >= thresholdFp) {
627
+ v2 = v1 + (amountFp * diff + 2048 >> 12);
628
+ v2 = v2 > 65280 ? 65280 : v2;
629
+ v2 = v2 < 0 ? 0 : v2;
630
+ v1 = v1 !== 0 ? v1 : 1;
631
+ vmul = (v2 << 12) / v1 | 0;
632
+ iTimes4 = i * 4;
633
+ img[iTimes4] = img[iTimes4] * vmul + 2048 >> 12;
634
+ img[iTimes4 + 1] = img[iTimes4 + 1] * vmul + 2048 >> 12;
635
+ img[iTimes4 + 2] = img[iTimes4 + 2] * vmul + 2048 >> 12;
636
+ }
637
+ }
638
+ };
639
+ }, { "glur/mono16": 18 }], 11: [function(_dereq_, module2, exports2) {
640
+ module2.exports = function unsharp(img, width, height, amount, radius, threshold) {
641
+ if (amount === 0 || radius < 0.5) {
642
+ return;
643
+ }
644
+ if (radius > 2) {
645
+ radius = 2;
646
+ }
647
+ var pixels = width * height;
648
+ var img_bytes_cnt = pixels * 4;
649
+ var hsv_bytes_cnt = pixels * 2;
650
+ var blur_bytes_cnt = pixels * 2;
651
+ var blur_line_byte_cnt = Math.max(width, height) * 4;
652
+ var blur_coeffs_byte_cnt = 8 * 4;
653
+ var img_offset = 0;
654
+ var hsv_offset = img_bytes_cnt;
655
+ var blur_offset = hsv_offset + hsv_bytes_cnt;
656
+ var blur_tmp_offset = blur_offset + blur_bytes_cnt;
657
+ var blur_line_offset = blur_tmp_offset + blur_bytes_cnt;
658
+ var blur_coeffs_offset = blur_line_offset + blur_line_byte_cnt;
659
+ var instance = this.__instance("unsharp_mask", img_bytes_cnt + hsv_bytes_cnt + blur_bytes_cnt * 2 + blur_line_byte_cnt + blur_coeffs_byte_cnt, {
660
+ exp: Math.exp
661
+ });
662
+ var img32 = new Uint32Array(img.buffer);
663
+ var mem32 = new Uint32Array(this.__memory.buffer);
664
+ mem32.set(img32);
665
+ var fn = instance.exports.hsv_v16 || instance.exports._hsv_v16;
666
+ fn(img_offset, hsv_offset, width, height);
667
+ fn = instance.exports.blurMono16 || instance.exports._blurMono16;
668
+ fn(hsv_offset, blur_offset, blur_tmp_offset, blur_line_offset, blur_coeffs_offset, width, height, radius);
669
+ fn = instance.exports.unsharp || instance.exports._unsharp;
670
+ fn(img_offset, img_offset, hsv_offset, blur_offset, width, height, amount, threshold);
671
+ img32.set(new Uint32Array(this.__memory.buffer, 0, pixels));
672
+ };
673
+ }, {}], 12: [function(_dereq_, module2, exports2) {
674
+ module2.exports = "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";
675
+ }, {}], 13: [function(_dereq_, module2, exports2) {
676
+ var GC_INTERVAL = 100;
677
+ function Pool(create, idle) {
678
+ this.create = create;
679
+ this.available = [];
680
+ this.acquired = {};
681
+ this.lastId = 1;
682
+ this.timeoutId = 0;
683
+ this.idle = idle || 2e3;
684
+ }
685
+ Pool.prototype.acquire = function() {
686
+ var _this = this;
687
+ var resource;
688
+ if (this.available.length !== 0) {
689
+ resource = this.available.pop();
690
+ } else {
691
+ resource = this.create();
692
+ resource.id = this.lastId++;
693
+ resource.release = function() {
694
+ return _this.release(resource);
695
+ };
696
+ }
697
+ this.acquired[resource.id] = resource;
698
+ return resource;
699
+ };
700
+ Pool.prototype.release = function(resource) {
701
+ var _this2 = this;
702
+ delete this.acquired[resource.id];
703
+ resource.lastUsed = Date.now();
704
+ this.available.push(resource);
705
+ if (this.timeoutId === 0) {
706
+ this.timeoutId = setTimeout(function() {
707
+ return _this2.gc();
708
+ }, GC_INTERVAL);
709
+ }
710
+ };
711
+ Pool.prototype.gc = function() {
712
+ var _this3 = this;
713
+ var now = Date.now();
714
+ this.available = this.available.filter(function(resource) {
715
+ if (now - resource.lastUsed > _this3.idle) {
716
+ resource.destroy();
717
+ return false;
718
+ }
719
+ return true;
720
+ });
721
+ if (this.available.length !== 0) {
722
+ this.timeoutId = setTimeout(function() {
723
+ return _this3.gc();
724
+ }, GC_INTERVAL);
725
+ } else {
726
+ this.timeoutId = 0;
727
+ }
728
+ };
729
+ module2.exports = Pool;
730
+ }, {}], 14: [function(_dereq_, module2, exports2) {
731
+ var MIN_INNER_TILE_SIZE = 2;
732
+ module2.exports = function createStages(fromWidth, fromHeight, toWidth, toHeight, srcTileSize, destTileBorder) {
733
+ var scaleX = toWidth / fromWidth;
734
+ var scaleY = toHeight / fromHeight;
735
+ var minScale = (2 * destTileBorder + MIN_INNER_TILE_SIZE + 1) / srcTileSize;
736
+ if (minScale > 0.5) return [[toWidth, toHeight]];
737
+ var stageCount = Math.ceil(Math.log(Math.min(scaleX, scaleY)) / Math.log(minScale));
738
+ if (stageCount <= 1) return [[toWidth, toHeight]];
739
+ var result = [];
740
+ for (var i = 0; i < stageCount; i++) {
741
+ var width = Math.round(Math.pow(Math.pow(fromWidth, stageCount - i - 1) * Math.pow(toWidth, i + 1), 1 / stageCount));
742
+ var height = Math.round(Math.pow(Math.pow(fromHeight, stageCount - i - 1) * Math.pow(toHeight, i + 1), 1 / stageCount));
743
+ result.push([width, height]);
744
+ }
745
+ return result;
746
+ };
747
+ }, {}], 15: [function(_dereq_, module2, exports2) {
748
+ var PIXEL_EPSILON = 1e-5;
749
+ function pixelFloor(x) {
750
+ var nearest = Math.round(x);
751
+ if (Math.abs(x - nearest) < PIXEL_EPSILON) {
752
+ return nearest;
753
+ }
754
+ return Math.floor(x);
755
+ }
756
+ function pixelCeil(x) {
757
+ var nearest = Math.round(x);
758
+ if (Math.abs(x - nearest) < PIXEL_EPSILON) {
759
+ return nearest;
760
+ }
761
+ return Math.ceil(x);
762
+ }
763
+ module2.exports = function createRegions(options) {
764
+ var scaleX = options.toWidth / options.width;
765
+ var scaleY = options.toHeight / options.height;
766
+ var innerTileWidth = pixelFloor(options.srcTileSize * scaleX) - 2 * options.destTileBorder;
767
+ var innerTileHeight = pixelFloor(options.srcTileSize * scaleY) - 2 * options.destTileBorder;
768
+ if (innerTileWidth < 1 || innerTileHeight < 1) {
769
+ throw new Error("Internal error in pica: target tile width/height is too small.");
770
+ }
771
+ var x, y;
772
+ var innerX, innerY, toTileWidth, toTileHeight;
773
+ var tiles = [];
774
+ var tile;
775
+ for (innerY = 0; innerY < options.toHeight; innerY += innerTileHeight) {
776
+ for (innerX = 0; innerX < options.toWidth; innerX += innerTileWidth) {
777
+ x = innerX - options.destTileBorder;
778
+ if (x < 0) {
779
+ x = 0;
780
+ }
781
+ toTileWidth = innerX + innerTileWidth + options.destTileBorder - x;
782
+ if (x + toTileWidth >= options.toWidth) {
783
+ toTileWidth = options.toWidth - x;
784
+ }
785
+ y = innerY - options.destTileBorder;
786
+ if (y < 0) {
787
+ y = 0;
788
+ }
789
+ toTileHeight = innerY + innerTileHeight + options.destTileBorder - y;
790
+ if (y + toTileHeight >= options.toHeight) {
791
+ toTileHeight = options.toHeight - y;
792
+ }
793
+ tile = {
794
+ toX: x,
795
+ toY: y,
796
+ toWidth: toTileWidth,
797
+ toHeight: toTileHeight,
798
+ toInnerX: innerX,
799
+ toInnerY: innerY,
800
+ toInnerWidth: innerTileWidth,
801
+ toInnerHeight: innerTileHeight,
802
+ offsetX: x / scaleX - pixelFloor(x / scaleX),
803
+ offsetY: y / scaleY - pixelFloor(y / scaleY),
804
+ scaleX,
805
+ scaleY,
806
+ x: pixelFloor(x / scaleX),
807
+ y: pixelFloor(y / scaleY),
808
+ width: pixelCeil(toTileWidth / scaleX),
809
+ height: pixelCeil(toTileHeight / scaleY)
810
+ };
811
+ tiles.push(tile);
812
+ }
813
+ }
814
+ return tiles;
815
+ };
816
+ }, {}], 16: [function(_dereq_, module2, exports2) {
817
+ function objClass(obj) {
818
+ return Object.prototype.toString.call(obj);
819
+ }
820
+ module2.exports.isCanvas = function isCanvas(element) {
821
+ var cname = objClass(element);
822
+ return cname === "[object HTMLCanvasElement]" || cname === "[object OffscreenCanvas]" || cname === "[object Canvas]";
823
+ };
824
+ module2.exports.isImage = function isImage(element) {
825
+ return objClass(element) === "[object HTMLImageElement]";
826
+ };
827
+ module2.exports.isImageBitmap = function isImageBitmap(element) {
828
+ return objClass(element) === "[object ImageBitmap]";
829
+ };
830
+ module2.exports.limiter = function limiter(concurrency) {
831
+ var active = 0, queue = [];
832
+ function roll() {
833
+ if (active < concurrency && queue.length) {
834
+ active++;
835
+ queue.shift()();
836
+ }
837
+ }
838
+ return function limit(fn) {
839
+ return new Promise(function(resolve, reject) {
840
+ queue.push(function() {
841
+ fn().then(function(result) {
842
+ resolve(result);
843
+ active--;
844
+ roll();
845
+ }, function(err) {
846
+ reject(err);
847
+ active--;
848
+ roll();
849
+ });
850
+ });
851
+ roll();
852
+ });
853
+ };
854
+ };
855
+ module2.exports.cib_quality_name = function cib_quality_name(num) {
856
+ switch (num) {
857
+ case 0:
858
+ return "pixelated";
859
+ case 1:
860
+ return "low";
861
+ case 2:
862
+ return "medium";
863
+ }
864
+ return "high";
865
+ };
866
+ module2.exports.cib_support = function cib_support(createCanvas) {
867
+ return Promise.resolve().then(function() {
868
+ if (typeof createImageBitmap === "undefined") {
869
+ return false;
870
+ }
871
+ var c = createCanvas(100, 100);
872
+ return createImageBitmap(c, 0, 0, 100, 100, {
873
+ resizeWidth: 10,
874
+ resizeHeight: 10,
875
+ resizeQuality: "high"
876
+ }).then(function(bitmap) {
877
+ var status = bitmap.width === 10;
878
+ bitmap.close();
879
+ c = null;
880
+ return status;
881
+ });
882
+ })["catch"](function() {
883
+ return false;
884
+ });
885
+ };
886
+ module2.exports.worker_offscreen_canvas_support = function worker_offscreen_canvas_support() {
887
+ return new Promise(function(resolve, reject) {
888
+ if (typeof OffscreenCanvas === "undefined") {
889
+ resolve(false);
890
+ return;
891
+ }
892
+ function workerPayload(self2) {
893
+ if (typeof createImageBitmap === "undefined") {
894
+ self2.postMessage(false);
895
+ return;
896
+ }
897
+ Promise.resolve().then(function() {
898
+ var canvas = new OffscreenCanvas(10, 10);
899
+ var ctx = canvas.getContext("2d");
900
+ ctx.rect(0, 0, 1, 1);
901
+ return createImageBitmap(canvas, 0, 0, 1, 1);
902
+ }).then(function() {
903
+ return self2.postMessage(true);
904
+ }, function() {
905
+ return self2.postMessage(false);
906
+ });
907
+ }
908
+ var code = btoa("(".concat(workerPayload.toString(), ")(self);"));
909
+ var w = new Worker("data:text/javascript;base64,".concat(code));
910
+ w.onmessage = function(ev) {
911
+ return resolve(ev.data);
912
+ };
913
+ w.onerror = reject;
914
+ }).then(function(result) {
915
+ return result;
916
+ }, function() {
917
+ return false;
918
+ });
919
+ };
920
+ module2.exports.can_use_canvas = function can_use_canvas(createCanvas) {
921
+ var usable = false;
922
+ try {
923
+ var canvas = createCanvas(2, 1);
924
+ var ctx = canvas.getContext("2d");
925
+ var d = ctx.createImageData(2, 1);
926
+ d.data[0] = 12;
927
+ d.data[1] = 23;
928
+ d.data[2] = 34;
929
+ d.data[3] = 255;
930
+ d.data[4] = 45;
931
+ d.data[5] = 56;
932
+ d.data[6] = 67;
933
+ d.data[7] = 255;
934
+ ctx.putImageData(d, 0, 0);
935
+ d = null;
936
+ d = ctx.getImageData(0, 0, 2, 1);
937
+ if (d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255) {
938
+ usable = true;
939
+ }
940
+ } catch (err) {
941
+ }
942
+ return usable;
943
+ };
944
+ module2.exports.cib_can_use_region = function cib_can_use_region() {
945
+ return new Promise(function(resolve) {
946
+ if (typeof Image === "undefined" || typeof createImageBitmap === "undefined") {
947
+ resolve(false);
948
+ return;
949
+ }
950
+ var image = new Image();
951
+ image.src = "data:image/jpeg;base64,/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRcZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRAf/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z";
952
+ image.onload = function() {
953
+ createImageBitmap(image, 0, 0, image.width, image.height).then(function(bitmap) {
954
+ if (bitmap.width === image.width && bitmap.height === image.height) {
955
+ resolve(true);
956
+ } else {
957
+ resolve(false);
958
+ }
959
+ }, function() {
960
+ return resolve(false);
961
+ });
962
+ };
963
+ image.onerror = function() {
964
+ return resolve(false);
965
+ };
966
+ });
967
+ };
968
+ }, {}], 17: [function(_dereq_, module2, exports2) {
969
+ module2.exports = function() {
970
+ var MathLib = _dereq_("./mathlib");
971
+ var mathLib;
972
+ onmessage = function onmessage2(ev) {
973
+ var tileOpts = ev.data.opts;
974
+ if (!tileOpts.src && tileOpts.srcBitmap) {
975
+ var canvas = new OffscreenCanvas(tileOpts.width, tileOpts.height);
976
+ var ctx = canvas.getContext("2d");
977
+ ctx.drawImage(tileOpts.srcBitmap, 0, 0);
978
+ tileOpts.src = ctx.getImageData(0, 0, tileOpts.width, tileOpts.height).data;
979
+ canvas.width = canvas.height = 0;
980
+ canvas = null;
981
+ tileOpts.srcBitmap.close();
982
+ tileOpts.srcBitmap = null;
983
+ }
984
+ if (!mathLib) mathLib = new MathLib(ev.data.features);
985
+ var data = mathLib.resizeAndUnsharp(tileOpts);
986
+ {
987
+ postMessage({
988
+ data
989
+ }, [data.buffer]);
990
+ }
991
+ };
992
+ };
993
+ }, { "./mathlib": 1 }], 18: [function(_dereq_, module2, exports2) {
994
+ var a0, a1, a2, a3, b1, b2, left_corner, right_corner;
995
+ function gaussCoef(sigma) {
996
+ if (sigma < 0.5) {
997
+ sigma = 0.5;
998
+ }
999
+ var a = Math.exp(0.726 * 0.726) / sigma, g1 = Math.exp(-a), g2 = Math.exp(-2 * a), k = (1 - g1) * (1 - g1) / (1 + 2 * a * g1 - g2);
1000
+ a0 = k;
1001
+ a1 = k * (a - 1) * g1;
1002
+ a2 = k * (a + 1) * g1;
1003
+ a3 = -k * g2;
1004
+ b1 = 2 * g1;
1005
+ b2 = -g2;
1006
+ left_corner = (a0 + a1) / (1 - b1 - b2);
1007
+ right_corner = (a2 + a3) / (1 - b1 - b2);
1008
+ return new Float32Array([a0, a1, a2, a3, b1, b2, left_corner, right_corner]);
1009
+ }
1010
+ function convolveMono16(src, out, line, coeff, width, height) {
1011
+ var prev_src, curr_src, curr_out, prev_out, prev_prev_out;
1012
+ var src_index, out_index, line_index;
1013
+ var i, j;
1014
+ var coeff_a0, coeff_a1, coeff_b1, coeff_b2;
1015
+ for (i = 0; i < height; i++) {
1016
+ src_index = i * width;
1017
+ out_index = i;
1018
+ line_index = 0;
1019
+ prev_src = src[src_index];
1020
+ prev_prev_out = prev_src * coeff[6];
1021
+ prev_out = prev_prev_out;
1022
+ coeff_a0 = coeff[0];
1023
+ coeff_a1 = coeff[1];
1024
+ coeff_b1 = coeff[4];
1025
+ coeff_b2 = coeff[5];
1026
+ for (j = 0; j < width; j++) {
1027
+ curr_src = src[src_index];
1028
+ curr_out = curr_src * coeff_a0 + prev_src * coeff_a1 + prev_out * coeff_b1 + prev_prev_out * coeff_b2;
1029
+ prev_prev_out = prev_out;
1030
+ prev_out = curr_out;
1031
+ prev_src = curr_src;
1032
+ line[line_index] = prev_out;
1033
+ line_index++;
1034
+ src_index++;
1035
+ }
1036
+ src_index--;
1037
+ line_index--;
1038
+ out_index += height * (width - 1);
1039
+ prev_src = src[src_index];
1040
+ prev_prev_out = prev_src * coeff[7];
1041
+ prev_out = prev_prev_out;
1042
+ curr_src = prev_src;
1043
+ coeff_a0 = coeff[2];
1044
+ coeff_a1 = coeff[3];
1045
+ for (j = width - 1; j >= 0; j--) {
1046
+ curr_out = curr_src * coeff_a0 + prev_src * coeff_a1 + prev_out * coeff_b1 + prev_prev_out * coeff_b2;
1047
+ prev_prev_out = prev_out;
1048
+ prev_out = curr_out;
1049
+ prev_src = curr_src;
1050
+ curr_src = src[src_index];
1051
+ out[out_index] = line[line_index] + prev_out;
1052
+ src_index--;
1053
+ line_index--;
1054
+ out_index -= height;
1055
+ }
1056
+ }
1057
+ }
1058
+ function blurMono16(src, width, height, radius) {
1059
+ if (!radius) {
1060
+ return;
1061
+ }
1062
+ var out = new Uint16Array(src.length), tmp_line = new Float32Array(Math.max(width, height));
1063
+ var coeff = gaussCoef(radius);
1064
+ convolveMono16(src, out, tmp_line, coeff, width, height);
1065
+ convolveMono16(out, src, tmp_line, coeff, height, width);
1066
+ }
1067
+ module2.exports = blurMono16;
1068
+ }, {}], 19: [function(_dereq_, module2, exports2) {
1069
+ var assign = _dereq_("object-assign");
1070
+ var base64decode = _dereq_("./lib/base64decode");
1071
+ var hasWebAssembly = _dereq_("./lib/wa_detect");
1072
+ var DEFAULT_OPTIONS = {
1073
+ js: true,
1074
+ wasm: true
1075
+ };
1076
+ function MultiMath(options) {
1077
+ if (!(this instanceof MultiMath)) return new MultiMath(options);
1078
+ var opts = assign({}, DEFAULT_OPTIONS, options || {});
1079
+ this.options = opts;
1080
+ this.__cache = {};
1081
+ this.__init_promise = null;
1082
+ this.__modules = opts.modules || {};
1083
+ this.__memory = null;
1084
+ this.__wasm = {};
1085
+ this.__isLE = new Uint32Array(new Uint8Array([1, 0, 0, 0]).buffer)[0] === 1;
1086
+ if (!this.options.js && !this.options.wasm) {
1087
+ throw new Error('mathlib: at least "js" or "wasm" should be enabled');
1088
+ }
1089
+ }
1090
+ MultiMath.prototype.has_wasm = hasWebAssembly;
1091
+ MultiMath.prototype.use = function(module3) {
1092
+ this.__modules[module3.name] = module3;
1093
+ if (this.options.wasm && this.has_wasm() && module3.wasm_fn) {
1094
+ this[module3.name] = module3.wasm_fn;
1095
+ } else {
1096
+ this[module3.name] = module3.fn;
1097
+ }
1098
+ return this;
1099
+ };
1100
+ MultiMath.prototype.init = function() {
1101
+ if (this.__init_promise) return this.__init_promise;
1102
+ if (!this.options.js && this.options.wasm && !this.has_wasm()) {
1103
+ return Promise.reject(new Error(`mathlib: only "wasm" was enabled, but it's not supported`));
1104
+ }
1105
+ var self2 = this;
1106
+ this.__init_promise = Promise.all(Object.keys(self2.__modules).map(function(name) {
1107
+ var module3 = self2.__modules[name];
1108
+ if (!self2.options.wasm || !self2.has_wasm() || !module3.wasm_fn) return null;
1109
+ if (self2.__wasm[name]) return null;
1110
+ return WebAssembly.compile(self2.__base64decode(module3.wasm_src)).then(function(m) {
1111
+ self2.__wasm[name] = m;
1112
+ });
1113
+ })).then(function() {
1114
+ return self2;
1115
+ });
1116
+ return this.__init_promise;
1117
+ };
1118
+ MultiMath.prototype.__base64decode = base64decode;
1119
+ MultiMath.prototype.__reallocate = function mem_grow_to(bytes) {
1120
+ if (!this.__memory) {
1121
+ this.__memory = new WebAssembly.Memory({
1122
+ initial: Math.ceil(bytes / (64 * 1024))
1123
+ });
1124
+ return this.__memory;
1125
+ }
1126
+ var mem_size = this.__memory.buffer.byteLength;
1127
+ if (mem_size < bytes) {
1128
+ this.__memory.grow(Math.ceil((bytes - mem_size) / (64 * 1024)));
1129
+ }
1130
+ return this.__memory;
1131
+ };
1132
+ MultiMath.prototype.__instance = function instance(name, memsize, env_extra) {
1133
+ if (memsize) this.__reallocate(memsize);
1134
+ if (!this.__wasm[name]) {
1135
+ var module3 = this.__modules[name];
1136
+ this.__wasm[name] = new WebAssembly.Module(this.__base64decode(module3.wasm_src));
1137
+ }
1138
+ if (!this.__cache[name]) {
1139
+ var env_base = {
1140
+ memoryBase: 0,
1141
+ memory: this.__memory,
1142
+ tableBase: 0,
1143
+ table: new WebAssembly.Table({ initial: 0, element: "anyfunc" })
1144
+ };
1145
+ this.__cache[name] = new WebAssembly.Instance(this.__wasm[name], {
1146
+ env: assign(env_base, env_extra || {})
1147
+ });
1148
+ }
1149
+ return this.__cache[name];
1150
+ };
1151
+ MultiMath.prototype.__align = function align(number, base) {
1152
+ base = base || 8;
1153
+ var reminder = number % base;
1154
+ return number + (reminder ? base - reminder : 0);
1155
+ };
1156
+ module2.exports = MultiMath;
1157
+ }, { "./lib/base64decode": 20, "./lib/wa_detect": 21, "object-assign": 22 }], 20: [function(_dereq_, module2, exports2) {
1158
+ var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1159
+ module2.exports = function base64decode(str) {
1160
+ var input = str.replace(/[\r\n=]/g, ""), max = input.length;
1161
+ var out = new Uint8Array(max * 3 >> 2);
1162
+ var bits = 0;
1163
+ var ptr = 0;
1164
+ for (var idx = 0; idx < max; idx++) {
1165
+ if (idx % 4 === 0 && idx) {
1166
+ out[ptr++] = bits >> 16 & 255;
1167
+ out[ptr++] = bits >> 8 & 255;
1168
+ out[ptr++] = bits & 255;
1169
+ }
1170
+ bits = bits << 6 | BASE64_MAP.indexOf(input.charAt(idx));
1171
+ }
1172
+ var tailbits = max % 4 * 6;
1173
+ if (tailbits === 0) {
1174
+ out[ptr++] = bits >> 16 & 255;
1175
+ out[ptr++] = bits >> 8 & 255;
1176
+ out[ptr++] = bits & 255;
1177
+ } else if (tailbits === 18) {
1178
+ out[ptr++] = bits >> 10 & 255;
1179
+ out[ptr++] = bits >> 2 & 255;
1180
+ } else if (tailbits === 12) {
1181
+ out[ptr++] = bits >> 4 & 255;
1182
+ }
1183
+ return out;
1184
+ };
1185
+ }, {}], 21: [function(_dereq_, module2, exports2) {
1186
+ var wa;
1187
+ module2.exports = function hasWebAssembly() {
1188
+ if (typeof wa !== "undefined") return wa;
1189
+ wa = false;
1190
+ if (typeof WebAssembly === "undefined") return wa;
1191
+ try {
1192
+ var bin = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 6, 1, 96, 1, 127, 1, 127, 3, 2, 1, 0, 5, 3, 1, 0, 1, 7, 8, 1, 4, 116, 101, 115, 116, 0, 0, 10, 16, 1, 14, 0, 32, 0, 65, 1, 54, 2, 0, 32, 0, 40, 2, 0, 11]);
1193
+ var module3 = new WebAssembly.Module(bin);
1194
+ var instance = new WebAssembly.Instance(module3, {});
1195
+ if (instance.exports.test(4) !== 0) wa = true;
1196
+ return wa;
1197
+ } catch (__) {
1198
+ }
1199
+ return wa;
1200
+ };
1201
+ }, {}], 22: [function(_dereq_, module2, exports2) {
1202
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
1203
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1204
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
1205
+ function toObject(val) {
1206
+ if (val === null || val === void 0) {
1207
+ throw new TypeError("Object.assign cannot be called with null or undefined");
1208
+ }
1209
+ return Object(val);
1210
+ }
1211
+ function shouldUseNative() {
1212
+ try {
1213
+ if (!Object.assign) {
1214
+ return false;
1215
+ }
1216
+ var test1 = new String("abc");
1217
+ test1[5] = "de";
1218
+ if (Object.getOwnPropertyNames(test1)[0] === "5") {
1219
+ return false;
1220
+ }
1221
+ var test2 = {};
1222
+ for (var i = 0; i < 10; i++) {
1223
+ test2["_" + String.fromCharCode(i)] = i;
1224
+ }
1225
+ var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
1226
+ return test2[n];
1227
+ });
1228
+ if (order2.join("") !== "0123456789") {
1229
+ return false;
1230
+ }
1231
+ var test3 = {};
1232
+ "abcdefghijklmnopqrst".split("").forEach(function(letter) {
1233
+ test3[letter] = letter;
1234
+ });
1235
+ if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
1236
+ return false;
1237
+ }
1238
+ return true;
1239
+ } catch (err) {
1240
+ return false;
1241
+ }
1242
+ }
1243
+ module2.exports = shouldUseNative() ? Object.assign : function(target, source) {
1244
+ var from;
1245
+ var to = toObject(target);
1246
+ var symbols;
1247
+ for (var s = 1; s < arguments.length; s++) {
1248
+ from = Object(arguments[s]);
1249
+ for (var key in from) {
1250
+ if (hasOwnProperty.call(from, key)) {
1251
+ to[key] = from[key];
1252
+ }
1253
+ }
1254
+ if (getOwnPropertySymbols) {
1255
+ symbols = getOwnPropertySymbols(from);
1256
+ for (var i = 0; i < symbols.length; i++) {
1257
+ if (propIsEnumerable.call(from, symbols[i])) {
1258
+ to[symbols[i]] = from[symbols[i]];
1259
+ }
1260
+ }
1261
+ }
1262
+ }
1263
+ return to;
1264
+ };
1265
+ }, {}], 23: [function(_dereq_, module2, exports2) {
1266
+ var bundleFn = arguments[3];
1267
+ var sources = arguments[4];
1268
+ var cache = arguments[5];
1269
+ var stringify = JSON.stringify;
1270
+ module2.exports = function(fn, options) {
1271
+ var wkey;
1272
+ var cacheKeys = Object.keys(cache);
1273
+ for (var i = 0, l = cacheKeys.length; i < l; i++) {
1274
+ var key = cacheKeys[i];
1275
+ var exp = cache[key].exports;
1276
+ if (exp === fn || exp && exp.default === fn) {
1277
+ wkey = key;
1278
+ break;
1279
+ }
1280
+ }
1281
+ if (!wkey) {
1282
+ wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
1283
+ var wcache = {};
1284
+ for (var i = 0, l = cacheKeys.length; i < l; i++) {
1285
+ var key = cacheKeys[i];
1286
+ wcache[key] = key;
1287
+ }
1288
+ sources[wkey] = [
1289
+ "function(require,module,exports){" + fn + "(self); }",
1290
+ wcache
1291
+ ];
1292
+ }
1293
+ var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);
1294
+ var scache = {};
1295
+ scache[wkey] = wkey;
1296
+ sources[skey] = [
1297
+ "function(require,module,exports){var f = require(" + stringify(wkey) + ");(f.default ? f.default : f)(self);}",
1298
+ scache
1299
+ ];
1300
+ var workerSources = {};
1301
+ resolveSources(skey);
1302
+ function resolveSources(key2) {
1303
+ workerSources[key2] = true;
1304
+ for (var depPath in sources[key2][1]) {
1305
+ var depKey = sources[key2][1][depPath];
1306
+ if (!workerSources[depKey]) {
1307
+ resolveSources(depKey);
1308
+ }
1309
+ }
1310
+ }
1311
+ var src = "(" + bundleFn + ")({" + Object.keys(workerSources).map(function(key2) {
1312
+ return stringify(key2) + ":[" + sources[key2][0] + "," + stringify(sources[key2][1]) + "]";
1313
+ }).join(",") + "},{},[" + stringify(skey) + "])";
1314
+ var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
1315
+ var blob2 = new Blob([src], { type: "text/javascript" });
1316
+ if (options && options.bare) {
1317
+ return blob2;
1318
+ }
1319
+ var workerUrl = URL.createObjectURL(blob2);
1320
+ var worker = new Worker(workerUrl);
1321
+ worker.objectURL = workerUrl;
1322
+ return worker;
1323
+ };
1324
+ }, {}], "/index.js": [function(_dereq_, module2, exports2) {
1325
+ function _slicedToArray(arr, i) {
1326
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1327
+ }
1328
+ function _nonIterableRest() {
1329
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1330
+ }
1331
+ function _unsupportedIterableToArray(o, minLen) {
1332
+ if (!o) return;
1333
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
1334
+ var n = Object.prototype.toString.call(o).slice(8, -1);
1335
+ if (n === "Object" && o.constructor) n = o.constructor.name;
1336
+ if (n === "Map" || n === "Set") return Array.from(o);
1337
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1338
+ }
1339
+ function _arrayLikeToArray(arr, len) {
1340
+ if (len == null || len > arr.length) len = arr.length;
1341
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
1342
+ arr2[i] = arr[i];
1343
+ }
1344
+ return arr2;
1345
+ }
1346
+ function _iterableToArrayLimit(arr, i) {
1347
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
1348
+ if (_i == null) return;
1349
+ var _arr = [];
1350
+ var _n = true;
1351
+ var _d = false;
1352
+ var _s, _e;
1353
+ try {
1354
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
1355
+ _arr.push(_s.value);
1356
+ if (i && _arr.length === i) break;
1357
+ }
1358
+ } catch (err) {
1359
+ _d = true;
1360
+ _e = err;
1361
+ } finally {
1362
+ try {
1363
+ if (!_n && _i["return"] != null) _i["return"]();
1364
+ } finally {
1365
+ if (_d) throw _e;
1366
+ }
1367
+ }
1368
+ return _arr;
1369
+ }
1370
+ function _arrayWithHoles(arr) {
1371
+ if (Array.isArray(arr)) return arr;
1372
+ }
1373
+ var assign = _dereq_("object-assign");
1374
+ var webworkify = _dereq_("webworkify");
1375
+ var MathLib = _dereq_("./lib/mathlib");
1376
+ var Pool = _dereq_("./lib/pool");
1377
+ var utils = _dereq_("./lib/utils");
1378
+ var worker = _dereq_("./lib/worker");
1379
+ var createStages = _dereq_("./lib/stepper");
1380
+ var createRegions = _dereq_("./lib/tiler");
1381
+ var filter_info = _dereq_("./lib/mm_resize/resize_filter_info");
1382
+ var singletones = {};
1383
+ var NEED_SAFARI_FIX = false;
1384
+ try {
1385
+ if (typeof navigator !== "undefined" && navigator.userAgent) {
1386
+ NEED_SAFARI_FIX = navigator.userAgent.indexOf("Safari") >= 0;
1387
+ }
1388
+ } catch (e) {
1389
+ }
1390
+ var concurrency = 1;
1391
+ if (typeof navigator !== "undefined") {
1392
+ concurrency = Math.min(navigator.hardwareConcurrency || 1, 4);
1393
+ }
1394
+ var DEFAULT_PICA_OPTS = {
1395
+ tile: 1024,
1396
+ concurrency,
1397
+ features: ["js", "wasm", "ww"],
1398
+ idle: 2e3,
1399
+ createCanvas: function createCanvas(width, height) {
1400
+ var tmpCanvas = document.createElement("canvas");
1401
+ tmpCanvas.width = width;
1402
+ tmpCanvas.height = height;
1403
+ return tmpCanvas;
1404
+ }
1405
+ };
1406
+ var DEFAULT_RESIZE_OPTS = {
1407
+ filter: "mks2013",
1408
+ unsharpAmount: 0,
1409
+ unsharpRadius: 0,
1410
+ unsharpThreshold: 0
1411
+ };
1412
+ var CAN_NEW_IMAGE_DATA = false;
1413
+ var CAN_CREATE_IMAGE_BITMAP = false;
1414
+ var CAN_USE_CANVAS_GET_IMAGE_DATA = false;
1415
+ var CAN_USE_OFFSCREEN_CANVAS = false;
1416
+ var CAN_USE_CIB_REGION_FOR_IMAGE = false;
1417
+ function workerFabric() {
1418
+ return {
1419
+ value: webworkify(worker),
1420
+ destroy: function destroy() {
1421
+ this.value.terminate();
1422
+ if (typeof window !== "undefined") {
1423
+ var url = window.URL || window.webkitURL || window.mozURL || window.msURL;
1424
+ if (url && url.revokeObjectURL && this.value.objectURL) {
1425
+ url.revokeObjectURL(this.value.objectURL);
1426
+ }
1427
+ }
1428
+ }
1429
+ };
1430
+ }
1431
+ function Pica(options) {
1432
+ if (!(this instanceof Pica)) return new Pica(options);
1433
+ this.options = assign({}, DEFAULT_PICA_OPTS, options || {});
1434
+ var limiter_key = "lk_".concat(this.options.concurrency);
1435
+ this.__limit = singletones[limiter_key] || utils.limiter(this.options.concurrency);
1436
+ if (!singletones[limiter_key]) singletones[limiter_key] = this.__limit;
1437
+ this.features = {
1438
+ js: false,
1439
+ // pure JS implementation, can be disabled for testing
1440
+ wasm: false,
1441
+ // webassembly implementation for heavy functions
1442
+ cib: false,
1443
+ // resize via createImageBitmap (only FF at this moment)
1444
+ ww: false
1445
+ // webworkers
1446
+ };
1447
+ this.__workersPool = null;
1448
+ this.__requested_features = [];
1449
+ this.__mathlib = null;
1450
+ }
1451
+ Pica.prototype.init = function() {
1452
+ var _this = this;
1453
+ if (this.__initPromise) return this.__initPromise;
1454
+ if (typeof ImageData !== "undefined" && typeof Uint8ClampedArray !== "undefined") {
1455
+ try {
1456
+ new ImageData(new Uint8ClampedArray(400), 10, 10);
1457
+ CAN_NEW_IMAGE_DATA = true;
1458
+ } catch (__) {
1459
+ }
1460
+ }
1461
+ if (typeof ImageBitmap !== "undefined") {
1462
+ if (ImageBitmap.prototype && ImageBitmap.prototype.close) {
1463
+ CAN_CREATE_IMAGE_BITMAP = true;
1464
+ } else {
1465
+ this.debug("ImageBitmap does not support .close(), disabled");
1466
+ }
1467
+ }
1468
+ var features = this.options.features.slice();
1469
+ if (features.indexOf("all") >= 0) {
1470
+ features = ["cib", "wasm", "js", "ww"];
1471
+ }
1472
+ this.__requested_features = features;
1473
+ this.__mathlib = new MathLib(features);
1474
+ if (features.indexOf("ww") >= 0) {
1475
+ if (typeof window !== "undefined" && "Worker" in window) {
1476
+ try {
1477
+ var wkr = _dereq_("webworkify")(function() {
1478
+ });
1479
+ wkr.terminate();
1480
+ this.features.ww = true;
1481
+ var wpool_key = "wp_".concat(JSON.stringify(this.options));
1482
+ if (singletones[wpool_key]) {
1483
+ this.__workersPool = singletones[wpool_key];
1484
+ } else {
1485
+ this.__workersPool = new Pool(workerFabric, this.options.idle);
1486
+ singletones[wpool_key] = this.__workersPool;
1487
+ }
1488
+ } catch (__) {
1489
+ }
1490
+ }
1491
+ }
1492
+ var initMath = this.__mathlib.init().then(function(mathlib) {
1493
+ assign(_this.features, mathlib.features);
1494
+ });
1495
+ var checkCibResize;
1496
+ if (!CAN_CREATE_IMAGE_BITMAP) {
1497
+ checkCibResize = Promise.resolve(false);
1498
+ } else {
1499
+ checkCibResize = utils.cib_support(this.options.createCanvas).then(function(status) {
1500
+ if (_this.features.cib && features.indexOf("cib") < 0) {
1501
+ _this.debug("createImageBitmap() resize supported, but disabled by config");
1502
+ return;
1503
+ }
1504
+ if (features.indexOf("cib") >= 0) _this.features.cib = status;
1505
+ });
1506
+ }
1507
+ CAN_USE_CANVAS_GET_IMAGE_DATA = utils.can_use_canvas(this.options.createCanvas);
1508
+ var checkOffscreenCanvas;
1509
+ if (CAN_CREATE_IMAGE_BITMAP && CAN_NEW_IMAGE_DATA && features.indexOf("ww") !== -1) {
1510
+ checkOffscreenCanvas = utils.worker_offscreen_canvas_support();
1511
+ } else {
1512
+ checkOffscreenCanvas = Promise.resolve(false);
1513
+ }
1514
+ checkOffscreenCanvas = checkOffscreenCanvas.then(function(result) {
1515
+ CAN_USE_OFFSCREEN_CANVAS = result;
1516
+ });
1517
+ var checkCibRegion = utils.cib_can_use_region().then(function(result) {
1518
+ CAN_USE_CIB_REGION_FOR_IMAGE = result;
1519
+ });
1520
+ this.__initPromise = Promise.all([initMath, checkCibResize, checkOffscreenCanvas, checkCibRegion]).then(function() {
1521
+ return _this;
1522
+ });
1523
+ return this.__initPromise;
1524
+ };
1525
+ Pica.prototype.__invokeResize = function(tileOpts, opts) {
1526
+ var _this2 = this;
1527
+ opts.__mathCache = opts.__mathCache || {};
1528
+ return Promise.resolve().then(function() {
1529
+ if (!_this2.features.ww) {
1530
+ return {
1531
+ data: _this2.__mathlib.resizeAndUnsharp(tileOpts, opts.__mathCache)
1532
+ };
1533
+ }
1534
+ return new Promise(function(resolve, reject) {
1535
+ var w = _this2.__workersPool.acquire();
1536
+ if (opts.cancelToken) opts.cancelToken["catch"](function(err) {
1537
+ return reject(err);
1538
+ });
1539
+ w.value.onmessage = function(ev) {
1540
+ w.release();
1541
+ if (ev.data.err) reject(ev.data.err);
1542
+ else resolve(ev.data);
1543
+ };
1544
+ var transfer = [];
1545
+ if (tileOpts.src) transfer.push(tileOpts.src.buffer);
1546
+ if (tileOpts.srcBitmap) transfer.push(tileOpts.srcBitmap);
1547
+ w.value.postMessage({
1548
+ opts: tileOpts,
1549
+ features: _this2.__requested_features,
1550
+ preload: {
1551
+ wasm_nodule: _this2.__mathlib.__
1552
+ }
1553
+ }, transfer);
1554
+ });
1555
+ });
1556
+ };
1557
+ Pica.prototype.__extractTileData = function(tile, from, opts, stageEnv, extractTo) {
1558
+ if (this.features.ww && CAN_USE_OFFSCREEN_CANVAS && // createImageBitmap doesn't work for images (Image, ImageBitmap) with Exif orientation in Chrome,
1559
+ // can use canvas because canvas doesn't have orientation;
1560
+ // see https://bugs.chromium.org/p/chromium/issues/detail?id=1220671
1561
+ (utils.isCanvas(from) || CAN_USE_CIB_REGION_FOR_IMAGE)) {
1562
+ this.debug("Create tile for OffscreenCanvas");
1563
+ return createImageBitmap(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height).then(function(bitmap) {
1564
+ extractTo.srcBitmap = bitmap;
1565
+ return extractTo;
1566
+ });
1567
+ }
1568
+ if (utils.isCanvas(from)) {
1569
+ if (!stageEnv.srcCtx) stageEnv.srcCtx = from.getContext("2d");
1570
+ this.debug("Get tile pixel data");
1571
+ extractTo.src = stageEnv.srcCtx.getImageData(tile.x, tile.y, tile.width, tile.height).data;
1572
+ return extractTo;
1573
+ }
1574
+ this.debug("Draw tile imageBitmap/image to temporary canvas");
1575
+ var tmpCanvas = this.options.createCanvas(tile.width, tile.height);
1576
+ var tmpCtx = tmpCanvas.getContext("2d");
1577
+ tmpCtx.globalCompositeOperation = "copy";
1578
+ tmpCtx.drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);
1579
+ this.debug("Get tile pixel data");
1580
+ extractTo.src = tmpCtx.getImageData(0, 0, tile.width, tile.height).data;
1581
+ tmpCanvas.width = tmpCanvas.height = 0;
1582
+ return extractTo;
1583
+ };
1584
+ Pica.prototype.__landTileData = function(tile, result, stageEnv) {
1585
+ var toImageData;
1586
+ this.debug("Convert raw rgba tile result to ImageData");
1587
+ if (result.bitmap) {
1588
+ stageEnv.toCtx.drawImage(result.bitmap, tile.toX, tile.toY);
1589
+ return null;
1590
+ }
1591
+ if (CAN_NEW_IMAGE_DATA) {
1592
+ toImageData = new ImageData(new Uint8ClampedArray(result.data), tile.toWidth, tile.toHeight);
1593
+ } else {
1594
+ toImageData = stageEnv.toCtx.createImageData(tile.toWidth, tile.toHeight);
1595
+ if (toImageData.data.set) {
1596
+ toImageData.data.set(result.data);
1597
+ } else {
1598
+ for (var i = toImageData.data.length - 1; i >= 0; i--) {
1599
+ toImageData.data[i] = result.data[i];
1600
+ }
1601
+ }
1602
+ }
1603
+ this.debug("Draw tile");
1604
+ if (NEED_SAFARI_FIX) {
1605
+ stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth + 1e-5, tile.toInnerHeight + 1e-5);
1606
+ } else {
1607
+ stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth, tile.toInnerHeight);
1608
+ }
1609
+ return null;
1610
+ };
1611
+ Pica.prototype.__tileAndResize = function(from, to, opts) {
1612
+ var _this3 = this;
1613
+ var stageEnv = {
1614
+ srcCtx: null,
1615
+ srcImageBitmap: null,
1616
+ isImageBitmapReused: false,
1617
+ toCtx: null
1618
+ };
1619
+ var processTile = function processTile2(tile) {
1620
+ return _this3.__limit(function() {
1621
+ if (opts.canceled) return opts.cancelToken;
1622
+ var tileOpts = {
1623
+ width: tile.width,
1624
+ height: tile.height,
1625
+ toWidth: tile.toWidth,
1626
+ toHeight: tile.toHeight,
1627
+ scaleX: tile.scaleX,
1628
+ scaleY: tile.scaleY,
1629
+ offsetX: tile.offsetX,
1630
+ offsetY: tile.offsetY,
1631
+ filter: opts.filter,
1632
+ unsharpAmount: opts.unsharpAmount,
1633
+ unsharpRadius: opts.unsharpRadius,
1634
+ unsharpThreshold: opts.unsharpThreshold
1635
+ };
1636
+ _this3.debug("Invoke resize math");
1637
+ return Promise.resolve(tileOpts).then(function(tileOpts2) {
1638
+ return _this3.__extractTileData(tile, from, opts, stageEnv, tileOpts2);
1639
+ }).then(function(tileOpts2) {
1640
+ _this3.debug("Invoke resize math");
1641
+ return _this3.__invokeResize(tileOpts2, opts);
1642
+ }).then(function(result) {
1643
+ if (opts.canceled) return opts.cancelToken;
1644
+ stageEnv.srcImageData = null;
1645
+ return _this3.__landTileData(tile, result, stageEnv);
1646
+ });
1647
+ });
1648
+ };
1649
+ return Promise.resolve().then(function() {
1650
+ stageEnv.toCtx = to.getContext("2d");
1651
+ if (utils.isCanvas(from)) return null;
1652
+ if (utils.isImageBitmap(from)) {
1653
+ stageEnv.srcImageBitmap = from;
1654
+ stageEnv.isImageBitmapReused = true;
1655
+ return null;
1656
+ }
1657
+ if (utils.isImage(from)) {
1658
+ if (!CAN_CREATE_IMAGE_BITMAP) return null;
1659
+ _this3.debug("Decode image via createImageBitmap");
1660
+ return createImageBitmap(from).then(function(imageBitmap) {
1661
+ stageEnv.srcImageBitmap = imageBitmap;
1662
+ })["catch"](function(e) {
1663
+ return null;
1664
+ });
1665
+ }
1666
+ throw new Error('Pica: ".from" should be Image, Canvas or ImageBitmap');
1667
+ }).then(function() {
1668
+ if (opts.canceled) return opts.cancelToken;
1669
+ _this3.debug("Calculate tiles");
1670
+ var regions = createRegions({
1671
+ width: opts.width,
1672
+ height: opts.height,
1673
+ srcTileSize: _this3.options.tile,
1674
+ toWidth: opts.toWidth,
1675
+ toHeight: opts.toHeight,
1676
+ destTileBorder: opts.__destTileBorder
1677
+ });
1678
+ var jobs = regions.map(function(tile) {
1679
+ return processTile(tile);
1680
+ });
1681
+ function cleanup(stageEnv2) {
1682
+ if (stageEnv2.srcImageBitmap) {
1683
+ if (!stageEnv2.isImageBitmapReused) stageEnv2.srcImageBitmap.close();
1684
+ stageEnv2.srcImageBitmap = null;
1685
+ }
1686
+ }
1687
+ _this3.debug("Process tiles");
1688
+ return Promise.all(jobs).then(function() {
1689
+ _this3.debug("Finished!");
1690
+ cleanup(stageEnv);
1691
+ return to;
1692
+ }, function(err) {
1693
+ cleanup(stageEnv);
1694
+ throw err;
1695
+ });
1696
+ });
1697
+ };
1698
+ Pica.prototype.__processStages = function(stages, from, to, opts) {
1699
+ var _this4 = this;
1700
+ if (opts.canceled) return opts.cancelToken;
1701
+ var _stages$shift = stages.shift(), _stages$shift2 = _slicedToArray(_stages$shift, 2), toWidth = _stages$shift2[0], toHeight = _stages$shift2[1];
1702
+ var isLastStage = stages.length === 0;
1703
+ var filter;
1704
+ if (isLastStage || filter_info.q2f.indexOf(opts.filter) < 0) filter = opts.filter;
1705
+ else if (opts.filter === "box") filter = "box";
1706
+ else filter = "hamming";
1707
+ opts = assign({}, opts, {
1708
+ toWidth,
1709
+ toHeight,
1710
+ filter
1711
+ });
1712
+ var tmpCanvas;
1713
+ if (!isLastStage) {
1714
+ tmpCanvas = this.options.createCanvas(toWidth, toHeight);
1715
+ }
1716
+ return this.__tileAndResize(from, isLastStage ? to : tmpCanvas, opts).then(function() {
1717
+ if (isLastStage) return to;
1718
+ opts.width = toWidth;
1719
+ opts.height = toHeight;
1720
+ return _this4.__processStages(stages, tmpCanvas, to, opts);
1721
+ }).then(function(res) {
1722
+ if (tmpCanvas) {
1723
+ tmpCanvas.width = tmpCanvas.height = 0;
1724
+ }
1725
+ return res;
1726
+ });
1727
+ };
1728
+ Pica.prototype.__resizeViaCreateImageBitmap = function(from, to, opts) {
1729
+ var _this5 = this;
1730
+ var toCtx = to.getContext("2d");
1731
+ this.debug("Resize via createImageBitmap()");
1732
+ return createImageBitmap(from, {
1733
+ resizeWidth: opts.toWidth,
1734
+ resizeHeight: opts.toHeight,
1735
+ resizeQuality: utils.cib_quality_name(filter_info.f2q[opts.filter])
1736
+ }).then(function(imageBitmap) {
1737
+ if (opts.canceled) return opts.cancelToken;
1738
+ if (!opts.unsharpAmount) {
1739
+ toCtx.drawImage(imageBitmap, 0, 0);
1740
+ imageBitmap.close();
1741
+ toCtx = null;
1742
+ _this5.debug("Finished!");
1743
+ return to;
1744
+ }
1745
+ _this5.debug("Unsharp result");
1746
+ var tmpCanvas = _this5.options.createCanvas(opts.toWidth, opts.toHeight);
1747
+ var tmpCtx = tmpCanvas.getContext("2d");
1748
+ tmpCtx.drawImage(imageBitmap, 0, 0);
1749
+ imageBitmap.close();
1750
+ var iData = tmpCtx.getImageData(0, 0, opts.toWidth, opts.toHeight);
1751
+ _this5.__mathlib.unsharp_mask(iData.data, opts.toWidth, opts.toHeight, opts.unsharpAmount, opts.unsharpRadius, opts.unsharpThreshold);
1752
+ toCtx.putImageData(iData, 0, 0);
1753
+ tmpCanvas.width = tmpCanvas.height = 0;
1754
+ iData = tmpCtx = tmpCanvas = toCtx = null;
1755
+ _this5.debug("Finished!");
1756
+ return to;
1757
+ });
1758
+ };
1759
+ Pica.prototype.resize = function(from, to, options) {
1760
+ var _this6 = this;
1761
+ this.debug("Start resize...");
1762
+ var opts = assign({}, DEFAULT_RESIZE_OPTS);
1763
+ if (!isNaN(options)) {
1764
+ opts = assign(opts, {
1765
+ quality: options
1766
+ });
1767
+ } else if (options) {
1768
+ opts = assign(opts, options);
1769
+ }
1770
+ opts.toWidth = to.width;
1771
+ opts.toHeight = to.height;
1772
+ opts.width = from.naturalWidth || from.width;
1773
+ opts.height = from.naturalHeight || from.height;
1774
+ if (Object.prototype.hasOwnProperty.call(opts, "quality")) {
1775
+ if (opts.quality < 0 || opts.quality > 3) {
1776
+ throw new Error("Pica: .quality should be [0..3], got ".concat(opts.quality));
1777
+ }
1778
+ opts.filter = filter_info.q2f[opts.quality];
1779
+ }
1780
+ if (to.width === 0 || to.height === 0) {
1781
+ return Promise.reject(new Error("Invalid output size: ".concat(to.width, "x").concat(to.height)));
1782
+ }
1783
+ if (opts.unsharpRadius > 2) opts.unsharpRadius = 2;
1784
+ opts.canceled = false;
1785
+ if (opts.cancelToken) {
1786
+ opts.cancelToken = opts.cancelToken.then(function(data) {
1787
+ opts.canceled = true;
1788
+ throw data;
1789
+ }, function(err) {
1790
+ opts.canceled = true;
1791
+ throw err;
1792
+ });
1793
+ }
1794
+ var DEST_TILE_BORDER = 3;
1795
+ opts.__destTileBorder = Math.ceil(Math.max(DEST_TILE_BORDER, 2.5 * opts.unsharpRadius | 0));
1796
+ return this.init().then(function() {
1797
+ if (opts.canceled) return opts.cancelToken;
1798
+ if (_this6.features.cib) {
1799
+ if (filter_info.q2f.indexOf(opts.filter) >= 0) {
1800
+ return _this6.__resizeViaCreateImageBitmap(from, to, opts);
1801
+ }
1802
+ _this6.debug("cib is enabled, but not supports provided filter, fallback to manual math");
1803
+ }
1804
+ if (!CAN_USE_CANVAS_GET_IMAGE_DATA) {
1805
+ var err = new Error("Pica: cannot use getImageData on canvas, make sure fingerprinting protection isn't enabled");
1806
+ err.code = "ERR_GET_IMAGE_DATA";
1807
+ throw err;
1808
+ }
1809
+ var stages = createStages(opts.width, opts.height, opts.toWidth, opts.toHeight, _this6.options.tile, opts.__destTileBorder);
1810
+ return _this6.__processStages(stages, from, to, opts);
1811
+ });
1812
+ };
1813
+ Pica.prototype.resizeBuffer = function(options) {
1814
+ var _this7 = this;
1815
+ var opts = assign({}, DEFAULT_RESIZE_OPTS, options);
1816
+ if (Object.prototype.hasOwnProperty.call(opts, "quality")) {
1817
+ if (opts.quality < 0 || opts.quality > 3) {
1818
+ throw new Error("Pica: .quality should be [0..3], got ".concat(opts.quality));
1819
+ }
1820
+ opts.filter = filter_info.q2f[opts.quality];
1821
+ }
1822
+ return this.init().then(function() {
1823
+ return _this7.__mathlib.resizeAndUnsharp(opts);
1824
+ });
1825
+ };
1826
+ Pica.prototype.toBlob = function(canvas, mimeType, quality) {
1827
+ mimeType = mimeType || "image/png";
1828
+ return new Promise(function(resolve) {
1829
+ if (canvas.toBlob) {
1830
+ canvas.toBlob(function(blob2) {
1831
+ return resolve(blob2);
1832
+ }, mimeType, quality);
1833
+ return;
1834
+ }
1835
+ if (canvas.convertToBlob) {
1836
+ resolve(canvas.convertToBlob({
1837
+ type: mimeType,
1838
+ quality
1839
+ }));
1840
+ return;
1841
+ }
1842
+ var asString = atob(canvas.toDataURL(mimeType, quality).split(",")[1]);
1843
+ var len = asString.length;
1844
+ var asBuffer = new Uint8Array(len);
1845
+ for (var i = 0; i < len; i++) {
1846
+ asBuffer[i] = asString.charCodeAt(i);
1847
+ }
1848
+ resolve(new Blob([asBuffer], {
1849
+ type: mimeType
1850
+ }));
1851
+ });
1852
+ };
1853
+ Pica.prototype.debug = function() {
1854
+ };
1855
+ module2.exports = Pica;
1856
+ }, { "./lib/mathlib": 1, "./lib/mm_resize/resize_filter_info": 7, "./lib/pool": 13, "./lib/stepper": 14, "./lib/tiler": 15, "./lib/utils": 16, "./lib/worker": 17, "object-assign": 22, "webworkify": 23 }] }, {}, [])("/index.js");
1857
+ });
1858
+ })(pica);
1859
+ return pica.exports;
1860
+ }
1861
+ requirePica();
1862
+ const jsContent = '!function(){"use strict";var t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],e=e=>{let n=0;for(let r=0;r<e.length;r++){let a=e[r];n=83*n+t.indexOf(a)}return n},n=(e,n)=>{var r="";for(let a=1;a<=n;a++){let o=Math.floor(e)/Math.pow(83,n-a)%83;r+=t[Math.floor(o)]}return r},r=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},a=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(12.92*e*255+.5):Math.trunc(255*(1.055*Math.pow(e,.4166666666666667)-.055)+.5)},o=(t,e)=>(t=>t<0?-1:1)(t)*Math.pow(Math.abs(t),e),s=class extends Error{constructor(t){super(t),this.name="ValidationError",this.message=t}},i=t=>{if(!t||t.length<6)throw new s("The blurhash string must be at least 6 characters");let n=e(t[0]),r=Math.floor(n/9)+1,a=n%9+1;if(t.length!==4+2*a*r)throw new s(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*a*r}`)},l=t=>{let e=t>>8&255,n=255&t;return[r(t>>16),r(e),r(n)]},c=(t,e)=>{let n=Math.floor(t/361),r=Math.floor(t/19)%19,a=t%19;return[o((n-9)/9,2)*e,o((r-9)/9,2)*e,o((a-9)/9,2)*e]},h=(t,n,r,o)=>{i(t),o|=1;let s=e(t[0]),h=Math.floor(s/9)+1,u=s%9+1,f=(e(t[1])+1)/166,p=new Array(u*h);for(let a=0;a<p.length;a++)if(0===a){let n=e(t.substring(2,6));p[a]=l(n)}else{let n=e(t.substring(4+2*a,6+2*a));p[a]=c(n,f*o)}let m=4*n,g=new Uint8ClampedArray(m*r);for(let e=0;e<r;e++)for(let t=0;t<n;t++){let o=0,s=0,i=0;for(let a=0;a<h;a++)for(let l=0;l<u;l++){let c=Math.cos(Math.PI*t*l/n)*Math.cos(Math.PI*e*a/r),h=p[l+a*u];o+=h[0]*c,s+=h[1]*c,i+=h[2]*c}let l=a(o),c=a(s),f=a(i);g[4*t+0+e*m]=l,g[4*t+1+e*m]=c,g[4*t+2+e*m]=f,g[4*t+3+e*m]=255}return g},u=(t,e,n,a)=>{let o=0,s=0,i=0,l=4*e;for(let h=0;h<e;h++){let e=4*h;for(let c=0;c<n;c++){let n=e+c*l,u=a(h,c);o+=u*r(t[n]),s+=u*r(t[n+1]),i+=u*r(t[n+2])}}let c=1/(e*n);return[o*c,s*c,i*c]},f=(t,e,r,i,l)=>{if(i<1||i>9||l<1||l>9)throw new s("BlurHash must have between 1 and 9 components");if(e*r*4!==t.length)throw new s("Width and height must match the pixels array");let c=[];for(let n=0;n<l;n++)for(let a=0;a<i;a++){let o=0==a&&0==n?1:2,s=u(t,e,r,(t,s)=>o*Math.cos(Math.PI*a*t/e)*Math.cos(Math.PI*n*s/r));c.push(s)}let h,f=c[0],p=c.slice(1),m="";if(m+=n(i-1+9*(l-1),1),p.length>0){let t=Math.max(...p.map(t=>Math.max(...t))),e=Math.floor(Math.max(0,Math.min(82,Math.floor(166*t-.5))));h=(e+1)/166,m+=n(e,1)}else h=1,m+=n(0,1);return m+=n((t=>(a(t[0])<<16)+(a(t[1])<<8)+a(t[2]))(f),4),p.forEach(t=>{m+=n(((t,e)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[0]/e,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[1]/e,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*o(t[2]/e,.5)+9.5)))))(t,h),2)}),m};\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst p=Symbol("Comlink.proxy"),m=Symbol("Comlink.endpoint"),g=Symbol("Comlink.releaseProxy"),M=Symbol("Comlink.finalizer"),d=Symbol("Comlink.thrown"),y=t=>"object"==typeof t&&null!==t||"function"==typeof t,w=new Map([["proxy",{canHandle:t=>y(t)&&t[p],serialize(t){const{port1:e,port2:n}=new MessageChannel;return b(t,e),[n,[n]]},deserialize:t=>(t.start(),function(t,e){const n=new Map;return t.addEventListener("message",function(t){const{data:e}=t;if(!e||!e.id)return;const r=n.get(e.id);if(r)try{r(e)}finally{n.delete(e.id)}}),P(t,n,[],e)}(t))}],["throw",{canHandle:t=>y(t)&&d in t,serialize({value:t}){let e;return e=t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[e,[]]},deserialize(t){if(t.isError)throw Object.assign(new Error(t.value.message),t.value);throw t.value}}]]);function b(t,e=globalThis,n=["*"]){e.addEventListener("message",function r(a){if(!a||!a.data)return;if(!function(t,e){for(const n of t){if(e===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(e))return!0}return!1}(n,a.origin))return void console.warn(`Invalid origin \'${a.origin}\' for comlink proxy`);const{id:o,type:s,path:i}=Object.assign({path:[]},a.data),l=(a.data.argumentList||[]).map(L);let c;try{const e=i.slice(0,-1).reduce((t,e)=>t[e],t),n=i.reduce((t,e)=>t[e],t);switch(s){case"GET":c=n;break;case"SET":e[i.slice(-1)[0]]=L(a.data.value),c=!0;break;case"APPLY":c=n.apply(e,l);break;case"CONSTRUCT":c=function(t){return Object.assign(t,{[p]:!0})}(new n(...l));break;case"ENDPOINT":{const{port1:e,port2:n}=new MessageChannel;b(t,n),c=function(t,e){return T.set(t,e),t}(e,[e])}break;case"RELEASE":c=void 0;break;default:return}}catch(h){c={value:h,[d]:0}}Promise.resolve(c).catch(t=>({value:t,[d]:0})).then(n=>{const[a,i]=R(n);e.postMessage(Object.assign(Object.assign({},a),{id:o}),i),"RELEASE"===s&&(e.removeEventListener("message",r),E(e),M in t&&"function"==typeof t[M]&&t[M]())}).catch(t=>{const[n,r]=R({value:new TypeError("Unserializable return value"),[d]:0});e.postMessage(Object.assign(Object.assign({},n),{id:o}),r)})}),e.start&&e.start()}function E(t){(function(t){return"MessagePort"===t.constructor.name})(t)&&t.close()}function v(t){if(t)throw new Error("Proxy has been released and is not useable")}function S(t){return O(t,new Map,{type:"RELEASE"}).then(()=>{E(t)})}const x=new WeakMap,k="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{const e=(x.get(t)||0)-1;x.set(t,e),0===e&&S(t)});function P(t,e,n=[],r=function(){}){let a=!1;const o=new Proxy(r,{get(r,s){if(v(a),s===g)return()=>{!function(t){k&&k.unregister(t)}(o),S(t),e.clear(),a=!0};if("then"===s){if(0===n.length)return{then:()=>o};const r=O(t,e,{type:"GET",path:n.map(t=>t.toString())}).then(L);return r.then.bind(r)}return P(t,e,[...n,s])},set(r,o,s){v(a);const[i,l]=R(s);return O(t,e,{type:"SET",path:[...n,o].map(t=>t.toString()),value:i},l).then(L)},apply(r,o,s){v(a);const i=n[n.length-1];if(i===m)return O(t,e,{type:"ENDPOINT"}).then(L);if("bind"===i)return P(t,e,n.slice(0,-1));const[l,c]=A(s);return O(t,e,{type:"APPLY",path:n.map(t=>t.toString()),argumentList:l},c).then(L)},construct(r,o){v(a);const[s,i]=A(o);return O(t,e,{type:"CONSTRUCT",path:n.map(t=>t.toString()),argumentList:s},i).then(L)}});return function(t,e){const n=(x.get(e)||0)+1;x.set(e,n),k&&k.register(t,e,t)}(o,t),o}function A(t){const e=t.map(R);return[e.map(t=>t[0]),(n=e.map(t=>t[1]),Array.prototype.concat.apply([],n))];var n}const T=new WeakMap;function R(t){for(const[e,n]of w)if(n.canHandle(t)){const[r,a]=n.serialize(t);return[{type:"HANDLER",name:e,value:r},a]}return[{type:"RAW",value:t},T.get(t)||[]]}function L(t){switch(t.type){case"HANDLER":return w.get(t.name).deserialize(t.value);case"RAW":return t.value}}function O(t,e,n,r){return new Promise(a=>{const o=new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-");e.set(o,a),t.start&&t.start(),t.postMessage(Object.assign({id:o},n),r)})}b({ValidationError:s,encode:f,decode:h,isBlurhashValid:t=>{try{i(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}}})}();\n';
1863
+ const blob = typeof self !== "undefined" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", jsContent], { type: "text/javascript;charset=utf-8" });
94
1864
  function WorkerWrapper(options) {
95
1865
  let objURL;
96
1866
  try {
97
1867
  objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);
98
1868
  if (!objURL) throw "";
99
1869
  const worker = new Worker(objURL, {
100
- name: options == null ? void 0 : options.name
1870
+ name: options?.name
101
1871
  });
102
1872
  worker.addEventListener("error", () => {
103
1873
  (self.URL || self.webkitURL).revokeObjectURL(objURL);
@@ -107,11 +1877,9 @@ function WorkerWrapper(options) {
107
1877
  return new Worker(
108
1878
  "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent),
109
1879
  {
110
- name: options == null ? void 0 : options.name
1880
+ name: options?.name
111
1881
  }
112
1882
  );
113
- } finally {
114
- objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL);
115
1883
  }
116
1884
  }
117
1885
  wrap(new WorkerWrapper());
@@ -133,11 +1901,10 @@ const contextmenu = {
133
1901
  el.additionalData = { onContextmenu, onScroll, scrollContainerEl };
134
1902
  },
135
1903
  beforeUnmount(el) {
136
- var _a, _b, _c;
137
- if ((_a = el == null ? void 0 : el.additionalData) == null ? void 0 : _a.onContextmenu) {
1904
+ if (el?.additionalData?.onContextmenu) {
138
1905
  el.removeEventListener("contextmenu", el.additionalData.onContextmenu);
139
1906
  }
140
- if (((_b = el == null ? void 0 : el.additionalData) == null ? void 0 : _b.onScroll) && ((_c = el == null ? void 0 : el.additionalData) == null ? void 0 : _c.scrollContainerEl)) {
1907
+ if (el?.additionalData?.onScroll && el?.additionalData?.scrollContainerEl) {
141
1908
  el.additionalData.scrollContainerEl.removeEventListener("scroll", el.additionalData.onScroll);
142
1909
  }
143
1910
  }