@plaso-infi/whiteboard-sdk 0.0.13 → 0.1.0

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.
@@ -1,6 +1,40 @@
1
1
  type DocumentType = 'ppt' | 'pdf' | 'excel' | 'word';
2
2
  type FileType = 'image' | 'document' | 'video' | 'audio';
3
3
 
4
+ type WebsdkEngineType = {
5
+ customFoldableTools?: SdkPluginSlotType[];
6
+ };
7
+ /** 在使用画布插件提供给外部的插件 UI 容器,如果需要插件在画布右上方出现功能入口,可以参考本类型声明来书写你的插件代码 */
8
+ type SdkPluginSlotType = {
9
+ /** 画布 svg 通用使用规范名称 */
10
+ icon: string;
11
+ /** 插件名称,会给予 hover tooltip 展示字段名 */
12
+ name: string;
13
+ /** 插件 key,需要保证唯一 */
14
+ key: string;
15
+ /**
16
+ * 可以基于画布自带的 popup 面板进行插件内容的承载;在给入这个配置组件后,
17
+ * 在画布点击插件入口时,会自动弹出 popup 来承载这个配置组件
18
+ */
19
+ SubWinContent?: React.FC<{
20
+ closeSubWin: CB;
21
+ } & any>;
22
+ };
23
+ interface InfiSdkPluginType {
24
+ pluginId: string;
25
+ /** 插件初始化逻辑,可以选择在这里加载 SdkPluginSlotType 来在画布右上角显示你的插件 */
26
+ init(): void;
27
+ /** 插件销毁逻辑,该方法在画布销毁时会被自动执行 */
28
+ destroy(): void;
29
+ }
30
+ interface ISdkPluginConstructor {
31
+ new (websdkEngine: WebsdkEngineType): InfiSdkPluginType;
32
+ }
33
+ type InfiWebSdkPlugin = {
34
+ pluginConstructor: ISdkPluginConstructor;
35
+ beforeInit?: (plugin: InfiSdkPluginType) => void;
36
+ };
37
+
4
38
  type Viewbox = {
5
39
  left: number;
6
40
  top: number;
@@ -189,11 +223,12 @@ interface GetSdkInstanceConfigs {
189
223
  };
190
224
  customizeUploaders?: CustomizeUploader;
191
225
  /**
192
- * 各项功能开关
193
- *
226
+ * 画布内各项功能开关:可以显示/隐藏部分功能的 UI 入口
194
227
  * - toolbarConfig:用于配置左侧工具栏中显示的工具,不配置时显示默认工具
195
228
  */
196
229
  toolbarWidgetsConfigs?: ToolBarWidgetsConfigsT;
230
+ /** 向画布内注入拆件能力,插件可以在画布内部显示, */
231
+ plugins?: InfiWebSdkPlugin[];
197
232
  }
198
233
  type CustomizeUploader = {
199
234
  loaders: {
@@ -246,4 +281,4 @@ declare function getDocumentType(ext: string): DocumentType | undefined;
246
281
 
247
282
  declare const FULL_TOOLBAR_CONFIG: Record<ToolBarType, boolean>;
248
283
 
249
- export { type CustomizeUploader, FULL_TOOLBAR_CONFIG, type GetSdkInstanceConfigs, type InfiWebsdkInstanceType, type ToolBarType, InfiWebsdk as default, getDocumentType, getFileType };
284
+ export { type CustomizeUploader, FULL_TOOLBAR_CONFIG, type GetSdkInstanceConfigs, type InfiSdkPluginType, type InfiWebSdkPlugin, type InfiWebsdkInstanceType, type SdkPluginSlotType, type ToolBarType, type WebsdkEngineType, InfiWebsdk as default, getDocumentType, getFileType };
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{F as FULL_TOOLBAR_CONFIG,I as default,d as getDocumentType,a as getFileType}from"./index-f3e6f2ef.js";
1
+ export{F as FULL_TOOLBAR_CONFIG,I as default,a as getDocumentType,g as getFileType}from"./index-d2b67f88.js";import"react";import"react-dom";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plaso-infi/whiteboard-sdk",
3
- "version": "0.0.13",
3
+ "version": "0.1.0",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -13,6 +13,8 @@
13
13
  "author": "",
14
14
  "license": "ISC",
15
15
  "devDependencies": {
16
+ "react": "^17.0.2",
17
+ "react-dom": "^17.0.2",
16
18
  "@babel/plugin-transform-runtime": "^7.23.2",
17
19
  "@babel/preset-env": "^7.23.2",
18
20
  "@plaso-infi/whiteboard-ext-tools": "^0.0.1",
@@ -53,17 +55,16 @@
53
55
  "vite-plugin-external": "^4.0.1"
54
56
  },
55
57
  "dependencies": {
56
- "@plasosdk/upime-sdk": "file:.yalc/@plasosdk/upime-sdk",
58
+ "@plasosdk/upime-sdk": "4.6.6",
57
59
  "agora-rtc-sdk-ng": "^4.18.3",
58
- "antd": "^5.9.2",
59
60
  "axios": "^1.5.0",
60
61
  "crypto-js": "^4.1.1",
61
- "hls.js": "^1.4.12",
62
- "react": "^17.0.2",
63
- "react-dom": "^17.0.2"
62
+ "hls.js": "^1.4.12"
64
63
  },
65
64
  "peerDependencies": {
66
- "ali-oss": "^6.17.1"
65
+ "ali-oss": "^6.17.1",
66
+ "react": "^17.0.2",
67
+ "react-dom": "^17.0.2"
67
68
  },
68
69
  "files": [
69
70
  "dist",
@@ -76,4 +77,4 @@
76
77
  ]
77
78
  },
78
79
  "gitHead": "e0e4a9609e2123403fdcc80004d55f14f19896dc"
79
- }
80
+ }
@@ -1 +0,0 @@
1
- "use strict";var t=require("./index-3cce7b93.js"),e={exports:{}};e.exports=function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=86)}({17:function(t,e,r){var n,i;void 0===(i="function"==typeof(n=function(){function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var r=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return r=t,n=[{key:"getFirstMatch",value:function(t,e){var r=e.match(t);return r&&r.length>0&&r[1]||""}},{key:"getSecondMatch",value:function(t,e){var r=e.match(t);return r&&r.length>1&&r[2]||""}},{key:"matchAndReturnConst",value:function(t,e,r){if(t.test(e))return r}},{key:"getWindowsVersionName",value:function(t){switch(t){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}},{key:"getAndroidVersionName",value:function(t){var e=t.split(".").splice(0,2).map((function(t){return parseInt(t,10)||0}));if(e.push(0),!(1===e[0]&&e[1]<5))return 1===e[0]&&e[1]<6?"Cupcake":1===e[0]&&e[1]>=6?"Donut":2===e[0]&&e[1]<2?"Eclair":2===e[0]&&2===e[1]?"Froyo":2===e[0]&&e[1]>2?"Gingerbread":3===e[0]?"Honeycomb":4===e[0]&&e[1]<1?"Ice Cream Sandwich":4===e[0]&&e[1]<4?"Jelly Bean":4===e[0]&&e[1]>=4?"KitKat":5===e[0]?"Lollipop":6===e[0]?"Marshmallow":7===e[0]?"Nougat":8===e[0]?"Oreo":void 0}},{key:"getVersionPrecision",value:function(t){return t.split(".").length}},{key:"compareVersions",value:function(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=t.getVersionPrecision(e),o=t.getVersionPrecision(r),s=Math.max(i,o),u=0,a=t.map([e,r],(function(e){var r=s-t.getVersionPrecision(e),n=e+new Array(r+1).join(".0");return t.map(n.split("."),(function(t){return new Array(20-t.length).join("0")+t})).reverse()}));for(n&&(u=s-Math.min(i,o)),s-=1;s>=u;){if(a[0][s]>a[1][s])return 1;if(a[0][s]===a[1][s]){if(s===u)return 0;s-=1}else if(a[0][s]<a[1][s])return-1}}},{key:"map",value:function(t,e){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(t,e);for(r=0;r<t.length;r+=1)n.push(e(t[r]));return n}}],null&&e(r.prototype,null),n&&e(r,n),t;var r,n}();t.exports=r})?n.apply(e,[]):n)||(t.exports=i)},86:function(t,e,r){var n,i,o;i=[e,r(87)],void 0===(o="function"==typeof(n=function(r,n){function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var o;Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,n=(o=n)&&o.__esModule?o:{default:o};var s=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return e=t,r=[{key:"getParser",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof t)throw new Error("UserAgent should be a string");return new n.default(t,e)}},{key:"parse",value:function(t){return new n.default(t).getResult()}}],null&&i(e.prototype,null),r&&i(e,r),t;var e,r}();r.default=s,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)},87:function(t,e,r){var n,i,o;i=[e,r(88),r(89),r(90),r(91),r(17)],void 0===(o="function"==typeof(n=function(r,n,i,o,s,u){function a(t){return t&&t.__esModule?t:{default:t}}function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,n=a(n),i=a(i),o=a(o),s=a(s);var l=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==r&&this.parse()}return e=t,(r=[{key:"getUA",value:function(){return this._ua}},{key:"test",value:function(t){return t.test(this._ua)}},{key:"parseBrowser",value:function(){var t=this;this.parsedResult.browser={};var e=n.default.find((function(e){if("function"==typeof e.test)return e.test(t);if(e.test instanceof Array)return e.test.some((function(e){return t.test(e)}));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}},{key:"getBrowser",value:function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}},{key:"getBrowserName",value:function(t){return t?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}},{key:"getBrowserVersion",value:function(){return this.getBrowser().version}},{key:"getOS",value:function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}},{key:"parseOS",value:function(){var t=this;this.parsedResult.os={};var e=i.default.find((function(e){if("function"==typeof e.test)return e.test(t);if(e.test instanceof Array)return e.test.some((function(e){return t.test(e)}));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}},{key:"getOSName",value:function(t){var e=this.getOS().name;return t?String(e).toLowerCase()||"":e||""}},{key:"getOSVersion",value:function(){return this.getOS().version}},{key:"getPlatform",value:function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}},{key:"getPlatformType",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.getPlatform().type;return t?String(e).toLowerCase()||"":e||""}},{key:"parsePlatform",value:function(){var t=this;this.parsedResult.platform={};var e=o.default.find((function(e){if("function"==typeof e.test)return e.test(t);if(e.test instanceof Array)return e.test.some((function(e){return t.test(e)}));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}},{key:"getEngine",value:function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}},{key:"getEngineName",value:function(t){return t?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}},{key:"parseEngine",value:function(){var t=this;this.parsedResult.engine={};var e=s.default.find((function(e){if("function"==typeof e.test)return e.test(t);if(e.test instanceof Array)return e.test.some((function(e){return t.test(e)}));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}},{key:"parse",value:function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}},{key:"getResult",value:function(){return Object.assign({},this.parsedResult)}},{key:"satisfies",value:function(t){var e=this,r={},n=0,i={},o=0;if(Object.keys(t).forEach((function(e){var s=t[e];"string"==typeof s?(i[e]=s,o+=1):"object"===d(s)&&(r[e]=s,n+=1)})),n>0){var s=Object.keys(r),u=s.find((function(t){return e.isOS(t)}));if(u){var a=this.satisfies(r[u]);if(void 0!==a)return a}var c=s.find((function(t){return e.isPlatform(t)}));if(c){var l=this.satisfies(r[c]);if(void 0!==l)return l}}if(o>0){var f=Object.keys(i).find((function(t){return e.isBrowser(t)}));if(void 0!==f)return this.compareVersion(i[f])}}},{key:"isBrowser",value:function(t){return this.getBrowserName(!0)===String(t).toLowerCase()}},{key:"compareVersion",value:function(t){var e=[0],r=t,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===t[0]||"<"===t[0]?(r=t.substr(1),"="===t[1]?(n=!0,r=t.substr(2)):e=[],">"===t[0]?e.push(1):e.push(-1)):"="===t[0]?r=t.substr(1):"~"===t[0]&&(n=!0,r=t.substr(1)),e.indexOf((0,u.compareVersions)(i,r,n))>-1}},{key:"isOS",value:function(t){return this.getOSName(!0)===String(t).toLowerCase()}},{key:"isPlatform",value:function(t){return this.getPlatformType(!0)===String(t).toLowerCase()}},{key:"isEngine",value:function(t){return this.getEngineName(!0)===String(t).toLowerCase()}},{key:"is",value:function(t){return this.isBrowser(t)||this.isOS(t)||this.isPlatform(t)}},{key:"some",value:function(){var t=this;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).some((function(e){return t.is(e)}))}}])&&c(e.prototype,r),t;var e,r}();r.default=l,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)},88:function(t,e,r){var n,i,o;i=[e,r(17)],void 0===(o="function"==typeof(n=function(r,n){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(t){var e={name:"Googlebot"},r=(0,n.getFirstMatch)(/googlebot\/(\d+(\.\d+))/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/opera/i],describe:function(t){var e={name:"Opera"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:opera)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/opr\/|opios/i],describe:function(t){var e={name:"Opera"},r=(0,n.getFirstMatch)(/(?:opr|opios)[\s\/](\S+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/SamsungBrowser/i],describe:function(t){var e={name:"Samsung Internet for Android"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:SamsungBrowser)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/Whale/i],describe:function(t){var e={name:"NAVER Whale Browser"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/MZBrowser/i],describe:function(t){var e={name:"MZ Browser"},r=(0,n.getFirstMatch)(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/focus/i],describe:function(t){var e={name:"Focus"},r=(0,n.getFirstMatch)(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/swing/i],describe:function(t){var e={name:"Swing"},r=(0,n.getFirstMatch)(/(?:swing)[\s\/](\d+(?:\.\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/coast/i],describe:function(t){var e={name:"Opera Coast"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:coast)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/yabrowser/i],describe:function(t){var e={name:"Yandex Browser"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:yabrowser)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/ucbrowser/i],describe:function(t){var e={name:"UC Browser"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:ucbrowser)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/Maxthon|mxios/i],describe:function(t){var e={name:"Maxthon"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:Maxthon|mxios)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/epiphany/i],describe:function(t){var e={name:"Epiphany"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:epiphany)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/puffin/i],describe:function(t){var e={name:"Puffin"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:puffin)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/sleipnir/i],describe:function(t){var e={name:"Sleipnir"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:sleipnir)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/k-meleon/i],describe:function(t){var e={name:"K-Meleon"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/(?:k-meleon)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/micromessenger/i],describe:function(t){var e={name:"WeChat"},r=(0,n.getFirstMatch)(/(?:micromessenger)[\s\/](\d+(\.?_?\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/msie|trident/i],describe:function(t){var e={name:"Internet Explorer"},r=(0,n.getFirstMatch)(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/edg([ea]|ios)/i],describe:function(t){var e={name:"Microsoft Edge"},r=(0,n.getSecondMatch)(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/vivaldi/i],describe:function(t){var e={name:"Vivaldi"},r=(0,n.getFirstMatch)(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/seamonkey/i],describe:function(t){var e={name:"SeaMonkey"},r=(0,n.getFirstMatch)(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/sailfish/i],describe:function(t){var e={name:"Sailfish"},r=(0,n.getFirstMatch)(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return r&&(e.version=r),e}},{test:[/silk/i],describe:function(t){var e={name:"Amazon Silk"},r=(0,n.getFirstMatch)(/silk\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/phantom/i],describe:function(t){var e={name:"PhantomJS"},r=(0,n.getFirstMatch)(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/slimerjs/i],describe:function(t){var e={name:"SlimerJS"},r=(0,n.getFirstMatch)(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var e={name:"BlackBerry"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e={name:"WebOS Browser"},r=(0,n.getFirstMatch)(i,t)||(0,n.getFirstMatch)(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/bada/i],describe:function(t){var e={name:"Bada"},r=(0,n.getFirstMatch)(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/tizen/i],describe:function(t){var e={name:"Tizen"},r=(0,n.getFirstMatch)(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/qupzilla/i],describe:function(t){var e={name:"QupZilla"},r=(0,n.getFirstMatch)(/(?:qupzilla)[\s\/](\d+(\.?_?\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var e={name:"Firefox"},r=(0,n.getFirstMatch)(/(?:firefox|iceweasel|fxios)[\s\/](\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/chromium/i],describe:function(t){var e={name:"Chromium"},r=(0,n.getFirstMatch)(/(?:chromium)[\s\/](\d+(\.?_?\d+)+)/i,t)||(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/chrome|crios|crmo/i],describe:function(t){var e={name:"Chrome"},r=(0,n.getFirstMatch)(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:function(t){var e=!t.test(/like android/i),r=t.test(/android/i);return e&&r},describe:function(t){var e={name:"Android Browser"},r=(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/safari|applewebkit/i],describe:function(t){var e={name:"Safari"},r=(0,n.getFirstMatch)(i,t);return r&&(e.version=r),e}},{test:[/.*/i],describe:function(t){return{name:(0,n.getFirstMatch)(/^(.*)\/(.*) /,t),version:(0,n.getSecondMatch)(/^(.*)\/(.*) /,t)}}}];r.default=o,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)},89:function(t,e,r){var n,i,o;i=[e,r(17)],void 0===(o="function"==typeof(n=function(r,n){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=[{test:[/windows phone/i],describe:function(t){return{name:"Windows Phone",version:(0,n.getFirstMatch)(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t)}}},{test:[/windows/i],describe:function(t){var e=(0,n.getFirstMatch)(/Windows ((NT|XP)( \d\d?.\d)?)/i,t);return{name:"Windows",version:e,versionName:(0,n.getWindowsVersionName)(e)}}},{test:[/macintosh/i],describe:function(t){return{name:"macOS",version:(0,n.getFirstMatch)(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,".")}}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){return{name:"iOS",version:(0,n.getFirstMatch)(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".")}}},{test:function(t){var e=!t.test(/like android/i),r=t.test(/android/i);return e&&r},describe:function(t){var e=(0,n.getFirstMatch)(/android[\s\/-](\d+(\.\d+)*)/i,t),r=(0,n.getAndroidVersionName)(e),i={name:"Android",version:e};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var e=(0,n.getFirstMatch)(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),r={name:"WebOS"};return e&&e.length&&(r.version=e),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){return{name:"BlackBerry",version:(0,n.getFirstMatch)(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||(0,n.getFirstMatch)(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||(0,n.getFirstMatch)(/\bbb(\d+)/i,t)}}},{test:[/bada/i],describe:function(t){return{name:"Bada",version:(0,n.getFirstMatch)(/bada\/(\d+(\.\d+)*)/i,t)}}},{test:[/tizen/i],describe:function(t){return{name:"Tizen",version:(0,n.getFirstMatch)(/tizen[\/\s](\d+(\.\d+)*)/i,t)}}},{test:[/linux/i],describe:function(){return{name:"Linux"}}},{test:[/CrOS/],describe:function(){return{name:"Chrome OS"}}}];r.default=i,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)},90:function(t,e,r){var n,i,o;i=[e,r(17)],void 0===(o="function"==typeof(n=function(r,n){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i="tablet",o="mobile",s="desktop",u=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(t){var e=(0,n.getFirstMatch)(/(can-l01)/i,t)&&"Nova",r={type:o,vendor:"Huawei"};return e&&(r.model=e),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:i,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:i,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:i,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:i,vendor:"Amazon"}}},{test:[/tablet/i],describe:function(){return{type:i}}},{test:function(t){var e=t.test(/ipod|iphone/i),r=t.test(/like (ipod|iphone)/i);return e&&!r},describe:function(t){var e=(0,n.getFirstMatch)(/(ipod|iphone)/i,t);return{type:o,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:o}}},{test:function(t){return"blackberry"===t.getBrowserName(!0)},describe:function(){return{type:o,vendor:"BlackBerry"}}},{test:function(t){return"bada"===t.getBrowserName(!0)},describe:function(){return{type:o}}},{test:function(t){return"windows phone"===t.getBrowserName()},describe:function(){return{type:o,vendor:"Microsoft"}}},{test:function(t){var e=Number(String(t.getOSVersion()).split(".")[0]);return"android"===t.getOSName(!0)&&e>=3},describe:function(){return{type:i}}},{test:function(t){return"android"===t.getOSName(!0)},describe:function(){return{type:o}}},{test:function(t){return"macos"===t.getOSName(!0)},describe:function(){return{type:s,vendor:"Apple"}}},{test:function(t){return"windows"===t.getOSName(!0)},describe:function(){return{type:s}}},{test:function(t){return"linux"===t.getOSName(!0)},describe:function(){return{type:s}}}];r.default=u,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)},91:function(t,e,r){var n,i,o;i=[e,r(17)],void 0===(o="function"==typeof(n=function(r,n){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=[{test:function(t){return"microsoft edge"===t.getBrowserName(!0)},describe:function(t){return{name:"EdgeHTML",version:(0,n.getFirstMatch)(/edge\/(\d+(\.?_?\d+)+)/i,t)}}},{test:[/trident/i],describe:function(t){var e={name:"Trident"},r=(0,n.getFirstMatch)(/trident\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:function(t){return t.test(/presto/i)},describe:function(t){var e={name:"Presto"},r=(0,n.getFirstMatch)(/presto\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:function(t){var e=t.test(/gecko/i),r=t.test(/like gecko/i);return e&&!r},describe:function(t){var e={name:"Gecko"},r=(0,n.getFirstMatch)(/gecko\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:"Blink"}}},{test:[/(apple)?webkit/i],describe:function(t){var e={name:"WebKit"},r=(0,n.getFirstMatch)(/webkit\/(\d+(\.?_?\d+)+)/i,t);return r&&(e.version=r),e}}];r.default=i,t.exports=e.default})?n.apply(e,i):n)||(t.exports=o)}});var r=[{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"054c-05c4-Wireless Controller",friendlyName:"PS4",browser:"Firefox",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Microsoft Edge",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 05c4)",friendlyName:"PS4",browser:"Opera",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Chrome",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Pro Controller (STANDARD GAMEPAD Vendor: 057e Product: 2009)",friendlyName:"Switch Pro",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox One Wired Controller (STANDARD GAMEPAD Vendor: 045e Product: 02d1)",friendlyName:"Xbox One",browser:"Chrome",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Chrome",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"45e-2d1-Xbox One Wired Controller",friendlyName:"Xbox One",browser:"Firefox",os:"macOS",buttons:{button_1:11,button_2:12,button_3:13,button_4:14,shoulder_top_left:8,shoulder_top_right:9,select:5,start:4,stick_button_left:6,stick_button_right:7,d_pad_up:0,d_pad_down:1,d_pad_left:2,d_pad_right:3,vendor:10}},{id:"xinput",friendlyName:"Xbox One",browser:"Firefox",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Microsoft Edge",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"Xbox One Wired Controller (STANDARD GAMEPAD Vendor: 045e Product: 02d1)",friendlyName:"Xbox One",browser:"Opera",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15,vendor:16}},{id:"Xbox 360 Controller (XInput STANDARD GAMEPAD)",friendlyName:"Xbox One",browser:"Opera",os:"Windows",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,shoulder_bottom_left:6,shoulder_bottom_right:7,select:8,start:9,stick_button_left:10,stick_button_right:11,d_pad_up:12,d_pad_down:13,d_pad_left:14,d_pad_right:15}},{id:"45e-2d1-Xbox One Wired Controller",friendlyName:"Xbox One",browser:"Safari",os:"macOS",buttons:{button_1:0,button_2:1,button_3:2,button_4:3,shoulder_top_left:4,shoulder_top_right:5,select:9,start:8,stick_button_left:6,stick_button_right:7,d_pad_up:11,d_pad_down:12,d_pad_left:13,d_pad_right:14,vendor:10}}],n=t.Eo(e.exports).getParser(window.navigator.userAgent);exports.Gamepad=function(){var e=this;this._requestAnimation=0,this._previousGamepadsState=[],this.listeners=[],this.start=function(){e._requestAnimation=window.requestAnimationFrame(e.tick)},this.stop=function(){window.cancelAnimationFrame(e._requestAnimation)},this.on=function(t,r,n){e.listeners[e.listeners.length]={type:t,id:r,callback:n}},this.off=function(t,r){e.listeners[e.listeners.length].splice(e.listeners.findIndex((function(e){return e.type===t&&e.id===r})),1)},this.tick=function(){var i=[].slice.call(window.navigator.getGamepads()).filter((function(t){return t})).map((function(e){var i=e.id,o=e.index,s=e.buttons,u=e.axes,a=r.find((function(t){return t.id===i&&t.browser===n.getBrowserName()&&t.os===n.getOSName()}));if(!a)throw new Error("".concat(i," not supported by gamepad.js"));return{id:i,index:o,buttons:Object.keys(a.buttons).reduce((function(e,r){var n;return t.b(t.b({},e),((n={})[r]=s[a.buttons[r]],n))}),{}),axes:u,mapping:a}}));i.map((function(t){var r=e._previousGamepadsState.find((function(e){var r=e.index;return t.index===r}));e.listeners.filter((function(e){var r=e.id;return t.buttons[r]})).filter((function(e){var n=e.type,i=e.id;switch(n){case"pressed":return t.buttons[i].pressed&&(!r||!r.buttons[i].pressed);case"held":return t.buttons[i].pressed;case"released":return!t.buttons[i].pressed&&r&&r.buttons[i].pressed;default:return!1}})).map((function(e){var r=e.callback,n=e.id;return r({id:n,gamepadIndex:t.index,value:t.buttons[n].value})}))})),i.map((function(t){e.listeners.filter((function(t){return"axes"===t.type})).filter((function(e){var r=e.id;return Math.abs(t.axes[r])>.1})).map((function(e){var r=e.callback,n=e.id;return r({id:n,gamepadIndex:t.index,value:t.axes[n]})}))})),e._previousGamepadsState=i,e._requestAnimation=window.requestAnimationFrame(e.tick)}};