OSDN Git Service

v3.3.5 Stable
authorAoichaan0513 <aoichaan0513@gmail.com>
Thu, 27 Jun 2019 18:16:15 +0000 (03:16 +0900)
committerAoichaan0513 <aoichaan0513@gmail.com>
Thu, 27 Jun 2019 18:16:15 +0000 (03:16 +0900)
・エラーページの修正
・SSL通信で証明書名等が設定されていないときの undefined を修正
・アプリ風にWebページを開く機能を追加 (その他メニュー -> アプリ -> アプリ を起動) (実装完了時にはアプリをインストールする形にする予定)
・ライブラリの更新
・その他バグ・不具合の修正

app/electron/WindowManager.js
app/langs/en.js
app/langs/ja.js
app/package.json
app/pages/credits.html
app/pages/static/ErrorPage.js
app/src/App.js
app/src/Pages/ErrorPage.jsx
app/src/Windows/ApplicationWindow.js [new file with mode: 0644]
app/src/Windows/BrowserWindow.js
package.json

index 5071216..ea46ae8 100644 (file)
@@ -389,6 +389,10 @@ module.exports = class WindowManager {
         ipcMain.on('window-add', (e, args) => {
             this.addWindow(args.isPrivate);
         });
+        
+        ipcMain.on('appWindow-add', (e, args) => {
+            this.addAppWindow(args.url);
+        });
 
         ipcMain.on('window-fullScreen', (e, args) => {
             this.addWindow(args.isPrivate);
@@ -573,10 +577,41 @@ module.exports = class WindowManager {
         this.windows.set(id, window);
 
         if (process.argv != undefined) {
-            //  window.webContents.send(`browserView-add-${id}`, { url: process.argv[process.argv.length - 1] });
+            //  window.webContents.send(`tab-add-${id}`, { url: process.argv[process.argv.length - 1] });
         }
     }
 
+    addAppWindow = (url = config.get('homePage.defaultPage')) => {
+        loadSessionAndProtocol();
+        loadFilters();
+
+        const { width, height, x, y } = config.get('window.bounds');
+        const window = getBaseWindow(config.get('window.isMaximized') ? 1110 : width, config.get('window.isMaximized') ? 680 : height, 500, 360, x, y, !config.get('design.isCustomTitlebar'));
+
+        const id = `appWindow-${window.id}`;
+
+        config.get('window.isMaximized') && window.maximize();
+
+        const startUrl = process.env.ELECTRON_START_URL || format({
+            pathname: path.join(__dirname, '/../build/index.html'), // 警告:このファイルを移動する場合ここの相対パスの指定に注意してください
+            protocol: 'file:',
+            slashes: true,
+            hash: `/app/${id}/${encodeURIComponent(url)}`,
+        });
+
+        window.loadURL(startUrl);
+
+        window.once('ready-to-show', () => { window.show() });
+
+        window.on('closed', () => { this.windows.delete(id) });
+        window.on('close', (e) => {delete views[id]; });
+
+        window.on('focus', () => { window.webContents.send(`window-focus-${id}`, {}) });
+        window.on('blur', () => { window.webContents.send(`window-blur-${id}`, {}) });
+
+        this.windows.set(id, window);
+    }
+
     registerListeners = (id) => {
         ipcMain.on(`window-fullScreen-${id}`, (e, args) => {
             const window = this.windows.get(id);
@@ -585,19 +620,19 @@ module.exports = class WindowManager {
             this.fixBounds(id, (floatingWindows.indexOf(id) != -1));
         });
 
-        ipcMain.on(`browserView-add-${id}`, (e, args) => {
+        ipcMain.on(`tab-add-${id}`, (e, args) => {
             this.addView(id, args.url, args.isActive);
         });
 
-        ipcMain.on(`browserView-remove-${id}`, (e, args) => {
+        ipcMain.on(`tab-remove-${id}`, (e, args) => {
             this.removeView(id, args.id);
         });
 
-        ipcMain.on(`browserView-select-${id}`, (e, args) => {
+        ipcMain.on(`tab-select-${id}`, (e, args) => {
             this.selectView(id, args.id);
         });
 
-        ipcMain.on(`browserView-get-${id}`, (e, args) => {
+        ipcMain.on(`tab-get-${id}`, (e, args) => {
             let datas = [];
 
             views[id].map((item) => {
@@ -605,7 +640,7 @@ module.exports = class WindowManager {
 
                 datas.push({ id: item.view.webContents.id, title: item.view.webContents.getTitle(), url, icon: this.getFavicon(url), color: '#0a84ff', isBookmarked: false });
             });
-            e.sender.send(`browserView-get-${id}`, { views: datas });
+            e.sender.send(`tab-get-${id}`, { views: datas });
         });
     
         ipcMain.on(`browserView-goBack-${id}`, (e, args) => {
@@ -921,7 +956,7 @@ module.exports = class WindowManager {
                 this.updateNavigationState(windowId, item.view);
                 this.updateViewState(windowId, item.view);
 
-                window.webContents.send(`browserView-select-${windowId}`, { id });
+                window.webContents.send(`tab-select-${windowId}`, { id });
                 this.fixBounds(windowId, (floatingWindows.indexOf(windowId) != -1));
             }
         });
@@ -933,7 +968,7 @@ module.exports = class WindowManager {
 
         window.setBrowserView(item.view);
         window.setTitle(`${item.view.webContents.getTitle()} - ${pkg.name}`);
-        window.webContents.send(`browserView-select-${windowId}`, { id: item.id });
+        window.webContents.send(`tab-select-${windowId}`, { id: item.id });
         this.fixBounds(windowId, (floatingWindows.indexOf(windowId) != -1));
     }
 
@@ -945,7 +980,7 @@ module.exports = class WindowManager {
             datas.push({ id: views[windowId][i].view.webContents.id, title: views[windowId][i].view.webContents.getTitle(), url: url, icon: this.getFavicon(url) });
         }
         const window = this.windows.get(windowId);
-        window.webContents.send(`browserView-get-${windowId}`, { views: datas });
+        window.webContents.send(`tab-get-${windowId}`, { views: datas });
     }
 
     addTab = (windowId, url = config.get('homePage.defaultPage'), isActive = true) => {
@@ -1618,7 +1653,7 @@ module.exports = class WindowManager {
         views[windowId].push({ id, view, isNotificationBar: false });
 
         if (isActive) {
-            window.webContents.send(`browserView-select-${windowId}`, { id: id });
+            window.webContents.send(`tab-select-${windowId}`, { id: id });
             window.setBrowserView(view);
         }
 
index 44ed7a8..2cb24bc 100644 (file)
@@ -83,6 +83,10 @@ module.exports = {
         },
         view: {
             errorMessage: {
+                UNDEFINED: {
+                    title: '不明なエラーが発生しました', 
+                    description: '不明なエラーが発生しました。エラーの説明等がまだ翻訳されていないときに表示されます。'
+                },
                 FILE_NOT_FOUND: {
                     title: 'ファイル・ディレクトリが見つかりませんでした',
                     description: '指定されたパスにファイル・ディレクトリが見つかりませんでした。\nパスが間違っていないかを確認してください。\n再試行するには、ページを再読み込みしてください。'
index bc97be8..f2a5fda 100644 (file)
@@ -83,6 +83,10 @@ module.exports = {
         },
         view: {
             errorMessage: {
+                UNDEFINED: {
+                    title: '不明なエラーが発生しました', 
+                    description: '不明なエラーが発生しました。エラーの説明等がまだ翻訳されていないときに表示されます。'
+                },
                 FILE_NOT_FOUND: {
                     title: 'ファイル・ディレクトリが見つかりませんでした',
                     description: '指定されたパスにファイル・ディレクトリが見つかりませんでした。\nパスが間違っていないかを確認してください。\n再試行するには、ページを再読み込みしてください。'
index 6db9a82..4eed18b 100644 (file)
@@ -1,7 +1,7 @@
 {
        "name": "Flast",
        "description": "Cross-platform browser based on Chromium.",
-       "version": "3.2.1",
+       "version": "3.3.5",
        "flast_channel": "Stable",
        "flast_package_id": "org.aoichaan0513.Flast",
        "private": true,
@@ -60,7 +60,7 @@
        },
        "devDependencies": {
                "@babel/plugin-proposal-class-properties": "7.4.4",
-               "electron": "5.0.4",
+               "electron": "5.0.6",
                "electron-packager": "13.1.1",
                "log-update": "3.2.0",
                "npm-run-all": "4.1.5",
index 113d1b3..49e1856 100644 (file)
                         </ul>
                         <li>Styled-Components</li>
                         <br><br><br>
-                        <li><h3>🐬&🍊</h3></li>
+                        <li><h1>🐬&🍊</h1></li>
                     </ul>
                 </div>
             </div>
index 81bba59..ba18b53 100644 (file)
@@ -84,4 +84,4 @@ function Gt(e){return!0==(null!=(t=e)&&"object"==typeof t&&!1===Array.isArray(t)
  * Copyright (c) 2014-2017, Jon Schlinkert.
  * Released under the MIT License.
  */
-var t}function Bt(e){var t,n;return!1!==Gt(e)&&("function"==typeof(t=e.constructor)&&(!1!==Gt(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}var $t=["xs","sm","md","lg","xl"];function qt(e,t,n){var r;return oe()({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oe()({paddingLeft:t(2),paddingRight:t(2)},n,Jt()({},e.up("sm"),oe()({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(r={minHeight:56},Jt()(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Jt()(r,e.up("sm"),{minHeight:64}),r)},n)}var Kt={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Qt={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Zt={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},Xt={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},en={black:"#000",white:"#fff"};function tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<t?t:e>n?n:e}function nn(e){if(e.type)return e;if("#"===e.charAt(0))return nn(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map(function(e){return e+e})),n?"rgb(".concat(n.map(function(e){return parseInt(e,16)}).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error(["Material-UI: unsupported `".concat(e,"` color."),"We support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()."].join("\n"));var r=e.substring(t+1,e.length-1).split(",");return{type:n,values:r=r.map(function(e){return parseFloat(e)})}}function rn(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map(function(e,t){return t<3?parseInt(e,10):e}):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function an(e){var t="hsl"===(e=nn(e)).type?nn(function(e){var t=(e=nn(e)).values,n=t[0],r=t[1]/100,a=t[2]/100,i=r*Math.min(a,1-a),o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return a-i*Math.max(Math.min(t-3,9-t,1),-1)},s="rgb",u=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return"hsla"===e.type&&(s+="a",u.push(t[3])),rn({type:s,values:u})}(e)).values:e.values;return t=t.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function on(e,t){return e=nn(e),t=tn(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,rn(e)}function sn(e,t){if(e=nn(e),t=tn(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return rn(e)}function un(e,t){if(e=nn(e),t=tn(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return rn(e)}var ln={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:en.white,default:Zt[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.08)",hoverOpacity:.08,selected:"rgba(0, 0, 0, 0.14)",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)"}},dn={text:{primary:en.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:Zt[800],default:"#303030"},action:{active:en.white,hover:"rgba(255, 255, 255, 0.1)",hoverOpacity:.1,selected:"rgba(255, 255, 255, 0.2)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"}};function cn(e,t,n,r){e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=un(e.main,r):"dark"===t&&(e.dark=sn(e.main,1.5*r)))}function mn(e){var t=e.primary,n=void 0===t?{light:Kt[300],main:Kt[500],dark:Kt[700]}:t,r=e.secondary,a=void 0===r?{light:Qt.A200,main:Qt.A400,dark:Qt.A700}:r,i=e.error,o=void 0===i?{light:Xt[300],main:Xt[500],dark:Xt[700]}:i,s=e.type,u=void 0===s?"light":s,l=e.contrastThreshold,d=void 0===l?3:l,c=e.tonalOffset,m=void 0===c?.2:c,_=ue()(e,["primary","secondary","error","type","contrastThreshold","tonalOffset"]);function f(e){return function(e,t){var n=an(e),r=an(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}(e,dn.text.primary)>=d?dn.text.primary:ln.text.primary}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;return!(e=oe()({},e)).main&&e[t]&&(e.main=e[t]),cn(e,"light",n,m),cn(e,"dark",r,m),e.contrastText||(e.contrastText=f(e.main)),e}var p={dark:dn,light:ln};return Wt()(oe()({common:en,type:u,primary:h(n),secondary:h(a,"A400","A200","A700"),error:h(o),grey:Zt,contrastThreshold:d,getContrastText:f,augmentColor:h,tonalOffset:m},p[u]),_,{clone:!1})}function _n(e){return Math.round(1e5*e)/1e5}var fn={textTransform:"uppercase"},hn='"Roboto", "Helvetica", "Arial", sans-serif';function pn(e,t){var n="function"==typeof t?t(e):t,r=n.fontFamily,a=void 0===r?hn:r,i=n.fontSize,o=void 0===i?14:i,s=n.fontWeightLight,u=void 0===s?300:s,l=n.fontWeightRegular,d=void 0===l?400:l,c=n.fontWeightMedium,m=void 0===c?500:c,_=n.fontWeightBold,f=void 0===_?700:_,h=n.htmlFontSize,p=void 0===h?16:h,y=n.allVariants,M=ue()(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants"]),g=o/14,v=function(e){return"".concat(e/p*g,"rem")},L=function(e,t,n,r,i){return oe()({fontFamily:a,fontWeight:e,fontSize:v(t),lineHeight:n},a===hn?{letterSpacing:"".concat(_n(r/t),"em")}:{},i,y)},k={h1:L(u,96,1,-1.5),h2:L(u,60,1,-.5),h3:L(d,48,1.04,0),h4:L(d,34,1.17,.25),h5:L(d,24,1.33,0),h6:L(m,20,1.6,.15),subtitle1:L(d,16,1.75,.15),subtitle2:L(m,14,1.57,.1),body1:L(d,16,1.5,.15),body2:L(d,14,1.43,.15),button:L(m,14,1.75,.4,fn),caption:L(d,12,1.66,.4),overline:L(d,12,2.66,1,fn)};return Wt()(oe()({htmlFontSize:p,pxToRem:v,round:_n,fontFamily:a,fontSize:o,fontWeightLight:u,fontWeightRegular:d,fontWeightMedium:m,fontWeightBold:f},k),M,{clone:!1})}var yn=.2,Mn=.14,gn=.12;function vn(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(yn,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(Mn,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(gn,")")].join(",")}var Ln=["none",vn(0,1,3,0,0,1,1,0,0,2,1,-1),vn(0,1,5,0,0,2,2,0,0,3,1,-2),vn(0,1,8,0,0,3,4,0,0,3,3,-2),vn(0,2,4,-1,0,4,5,0,0,1,10,0),vn(0,3,5,-1,0,5,8,0,0,1,14,0),vn(0,3,5,-1,0,6,10,0,0,1,18,0),vn(0,4,5,-2,0,7,10,1,0,2,16,1),vn(0,5,5,-3,0,8,10,1,0,3,14,2),vn(0,5,6,-3,0,9,12,1,0,3,16,2),vn(0,6,6,-3,0,10,14,1,0,4,18,3),vn(0,6,7,-4,0,11,15,1,0,4,20,3),vn(0,7,8,-4,0,12,17,2,0,5,22,4),vn(0,7,8,-4,0,13,19,2,0,5,24,4),vn(0,7,9,-4,0,14,21,2,0,5,26,4),vn(0,8,9,-5,0,15,22,2,0,6,28,5),vn(0,8,10,-5,0,16,24,2,0,6,30,5),vn(0,8,11,-5,0,17,26,2,0,6,32,5),vn(0,9,11,-5,0,18,28,2,0,7,34,6),vn(0,9,12,-6,0,19,29,2,0,7,36,6),vn(0,10,13,-6,0,20,31,3,0,8,38,7),vn(0,10,13,-6,0,21,33,3,0,8,40,7),vn(0,10,14,-6,0,22,35,3,0,8,42,7),vn(0,11,14,-7,0,23,36,3,0,9,44,8),vn(0,11,15,-7,0,24,38,3,0,9,46,8)],kn={borderRadius:4};var Yn={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},bn={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195},wn=function(e){return"".concat(Math.round(e),"ms")},Tn={easing:Yn,duration:bn,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?bn.standard:n,a=t.easing,i=void 0===a?Yn.easeInOut:a,o=t.delay,s=void 0===o?0:o;ue()(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map(function(e){return"".concat(e," ").concat("string"==typeof r?r:wn(r)," ").concat(i," ").concat("string"==typeof s?s:wn(s))}).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}},Dn={mobileStepper:1e3,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};var Sn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,a=void 0===r?{}:r,i=e.palette,o=void 0===i?{}:i,s=e.shadows,u=e.spacing,l=e.typography,d=void 0===l?{}:l,c=ue()(e,["breakpoints","mixins","palette","shadows","spacing","typography"]),m=mn(o),_=function(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,a=void 0===r?"px":r,i=e.step,o=void 0===i?5:i,s=ue()(e,["values","unit","step"]);function u(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(a,")")}function l(e,t){var r=$t.indexOf(t)+1;return r===$t.length?u(e):"@media (min-width:".concat(n[e]).concat(a,") and ")+"(max-width:".concat(n[$t[r]]-o/100).concat(a,")")}return oe()({keys:$t,values:n,up:u,down:function(e){var t=$t.indexOf(e)+1,r=n[$t[t]];return t===$t.length?u("xs"):"@media (max-width:".concat(("number"==typeof r&&t>0?r:e)-o/100).concat(a,")")},between:l,only:function(e){return l(e,e)},width:function(e){return n[e]}},s)}(n),f=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(t.mui)return t;e="function"==typeof t?t:function(e){return t*e};var n=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return 0===n.length?e(1):1===n.length?e(n[0]):n.map(function(t){var n=e(t);return"number"==typeof n?"".concat(n,"px"):n}).join(" ")};return Object.defineProperty(n,"unit",{get:function(){return t}}),n.mui=!0,n}(u);return oe()({breakpoints:_,direction:"ltr",mixins:qt(_,f,a),overrides:{},palette:m,props:{},shadows:s||Ln,typography:pn(m,d),spacing:f},Wt()({shape:kn,transitions:Tn,zIndex:Dn},c,{isMergeableObject:Bt}))}();var xn=function(e,t){return Ut(e,oe()({defaultTheme:Sn},t))};function jn(e){var t,n,r="";if(e)if("object"==typeof e)if(e.push)for(t=0;t<e.length;t++)e[t]&&(n=jn(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(n=jn(t))&&(r&&(r+=" "),r+=n);else"boolean"==typeof e||e.call||(r&&(r+=" "),r+=e);return r}var Hn=function(){for(var e,t=0,n="";t<arguments.length;)(e=jn(arguments[t++]))&&(n&&(n+=" "),n+=e);return n},Pn=[0,1,2,3,4,5,6,7,8,9,10],En=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12];var On=a.a.forwardRef(function(e,t){var n=e.alignContent,r=void 0===n?"stretch":n,i=e.alignItems,o=void 0===i?"stretch":i,s=e.classes,u=e.className,l=e.component,d=void 0===l?"div":l,c=e.container,m=void 0!==c&&c,_=e.direction,f=void 0===_?"row":_,h=e.item,p=void 0!==h&&h,y=e.justify,M=void 0===y?"flex-start":y,g=e.lg,v=void 0!==g&&g,L=e.md,k=void 0!==L&&L,Y=e.sm,b=void 0!==Y&&Y,w=e.spacing,T=void 0===w?0:w,D=e.wrap,S=void 0===D?"wrap":D,x=e.xl,j=void 0!==x&&x,H=e.xs,P=void 0!==H&&H,E=e.zeroMinWidth,O=void 0!==E&&E,C=ue()(e,["alignContent","alignItems","classes","className","component","container","direction","item","justify","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),A=Hn(s.root,u,m&&[s.container,0!==T&&s["spacing-xs-".concat(String(T))]],p&&s.item,O&&s.zeroMinWidth,"row"!==f&&s["direction-xs-".concat(String(f))],"wrap"!==S&&s["wrap-xs-".concat(String(S))],"stretch"!==o&&s["align-items-xs-".concat(String(o))],"stretch"!==r&&s["align-content-xs-".concat(String(r))],"flex-start"!==M&&s["justify-xs-".concat(String(M))],!1!==P&&s["grid-xs-".concat(String(P))],!1!==b&&s["grid-sm-".concat(String(b))],!1!==k&&s["grid-md-".concat(String(k))],!1!==v&&s["grid-lg-".concat(String(v))],!1!==j&&s["grid-xl-".concat(String(j))]);return a.a.createElement(d,oe()({className:A,ref:t},C))});var Cn=xn(function(e){return oe()({root:{},container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-xs-center":{justifyContent:"center"},"justify-xs-flex-end":{justifyContent:"flex-end"},"justify-xs-space-between":{justifyContent:"space-between"},"justify-xs-space-around":{justifyContent:"space-around"},"justify-xs-space-evenly":{justifyContent:"space-evenly"}},function(e,t){var n={};return Pn.forEach(function(r){var a=e.spacing(r);0!==a&&(n["spacing-".concat(t,"-").concat(r)]={margin:-a/2,width:"calc(100% + ".concat(a,"px)"),"& > $item":{padding:a/2}})}),n}(e,"xs"),$t.reduce(function(t,n){return function(e,t,n){var r={};En.forEach(function(e){var t="grid-".concat(n,"-").concat(e);if(!0!==e)if("auto"!==e){var a="".concat(Math.round(e/12*1e8)/1e6,"%");r[t]={flexBasis:a,flexGrow:0,maxWidth:a}}else r[t]={flexBasis:"auto",flexGrow:0,maxWidth:"none"};else r[t]={flexBasis:0,flexGrow:1,maxWidth:"100%"}}),"xs"===n?oe()(e,r):e[t.breakpoints.up(n)]=r}(t,e,n),t},{}))},{name:"MuiGrid"})(On);function An(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Wn={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},Fn=a.a.forwardRef(function(e,t){var n=e.align,r=void 0===n?"inherit":n,i=e.classes,o=e.className,s=e.color,u=void 0===s?"initial":s,l=e.component,d=e.display,c=void 0===d?"initial":d,m=e.gutterBottom,_=void 0!==m&&m,f=e.noWrap,h=void 0!==f&&f,p=e.paragraph,y=void 0!==p&&p,M=(e.theme,e.variant),g=void 0===M?"body1":M,v=e.variantMapping,L=void 0===v?Wn:v,k=ue()(e,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","theme","variant","variantMapping"]),Y=l||(y?"p":L[g]||Wn[g])||"span";return a.a.createElement(Y,oe()({className:Hn(i.root,o,"inherit"!==g&&i[g],"initial"!==u&&i["color".concat(An(u))],h&&i.noWrap,_&&i.gutterBottom,y&&i.paragraph,"inherit"!==r&&i["align".concat(An(r))],"initial"!==c&&i["display".concat(An(c))]),ref:t},k))}),Rn=xn(function(e){return{root:{margin:0},body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}},{name:"MuiTypography",withTheme:!0})(Fn),zn=a.a.forwardRef(function(e,t){var n=e.absolute,r=void 0!==n&&n,i=e.classes,o=e.className,s=e.component,u=void 0===s?"hr":s,l=e.light,d=void 0!==l&&l,c=e.variant,m=void 0===c?"fullWidth":c,_=ue()(e,["absolute","classes","className","component","light","variant"]);return"li"!==u||_.role||(_.role="separator"),a.a.createElement(u,oe()({className:Hn(i.root,o,"inset"===m&&i.inset,"middle"===m&&i.middle,r&&i.absolute,d&&i.light),ref:t},_))}),Nn=xn(function(e){return{root:{height:1,margin:0,border:"none",flexShrink:0,backgroundColor:e.palette.divider},absolute:{position:"absolute",bottom:0,left:0,width:"100%"},inset:{marginLeft:72},light:{backgroundColor:on(e.palette.divider,.08)},middle:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}}},{name:"MuiDivider"})(zn),In=n(12),Un=n.n(In);function Vn(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function Jn(e,t){return a.a.useMemo(function(){return null==e&&null==t?null:function(n){Vn(e,n),Vn(t,n)}},[e,t])}var Gn="undefined"!=typeof window?a.a.useLayoutEffect:a.a.useEffect;var Bn=function(e){var t=e.children,n=e.defer,r=void 0!==n&&n,i=e.fallback,o=void 0===i?null:i,s=a.a.useState(!1),u=Un()(s,2),l=u[0],d=u[1];return Gn(function(){r||d(!0)},[r]),a.a.useEffect(function(){r&&d(!0)},[r]),a.a.createElement(a.a.Fragment,null,l?t:o)},$n=!0,qn=!1,Kn=null,Qn={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function Zn(){$n=!0}function Xn(){$n=!1}function er(){"hidden"===this.visibilityState&&qn&&($n=!0)}function tr(e){var t,n,r,a=e.target;try{return a.matches(":focus-visible")}catch(e){}return $n||(n=(t=a).type,!("INPUT"!==(r=t.tagName)||!Qn[n]||t.readOnly)||"TEXTAREA"===r&&!t.readOnly||!!t.isContentEditable)}function nr(){qn=!0,window.clearTimeout(Kn),Kn=window.setTimeout(function(){qn=!1,window.clearTimeout(Kn)},100)}function rr(){return{isFocusVisible:tr,onBlurVisible:nr,ref:a.a.useCallback(function(e){var t,n=ae.a.findDOMNode(e);null!=n&&((t=n.ownerDocument).addEventListener("keydown",Zn,!0),t.addEventListener("mousedown",Xn,!0),t.addEventListener("pointerdown",Xn,!0),t.addEventListener("touchstart",Xn,!0),t.addEventListener("visibilitychange",er,!0))},[])}}var ar=n(151),ir=n.n(ar),or=n(152),sr=n.n(or),ur=n(153),lr=n.n(ur),dr=n(154),cr=n.n(dr),mr=n(155),_r=n.n(mr),fr=n(156),hr=n.n(fr),pr=n(14),yr=a.a.createContext(null);function Mr(e,t){var n=Object.create(null);return e&&r.Children.map(e,function(e){return e}).forEach(function(e){n[e.key]=function(e){return t&&Object(r.isValidElement)(e)?t(e):e}(e)}),n}function gr(e,t,n){return null!=n[t]?n[t]:e.props[t]}function vr(e,t,n){var a=Mr(e.children),i=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,a=Object.create(null),i=[];for(var o in e)o in t?i.length&&(a[o]=i,i=[]):i.push(o);var s={};for(var u in t){if(a[u])for(r=0;r<a[u].length;r++){var l=a[u][r];s[a[u][r]]=n(l)}s[u]=n(u)}for(r=0;r<i.length;r++)s[i[r]]=n(i[r]);return s}(t,a);return Object.keys(i).forEach(function(o){var s=i[o];if(Object(r.isValidElement)(s)){var u=o in t,l=o in a,d=t[o],c=Object(r.isValidElement)(d)&&!d.props.in;!l||u&&!c?l||!u||c?l&&u&&Object(r.isValidElement)(d)&&(i[o]=Object(r.cloneElement)(s,{onExited:n.bind(null,s),in:d.props.in,exit:gr(s,"exit",e),enter:gr(s,"enter",e)})):i[o]=Object(r.cloneElement)(s,{in:!1}):i[o]=Object(r.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:gr(s,"exit",e),enter:gr(s,"enter",e)})}}),i}var Lr=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},kr=function(e){function t(t,n){var r,a=(r=e.call(this,t,n)||this).handleExited.bind(Object(pr.a)(Object(pr.a)(r)));return r.state={contextValue:{isMounting:!0},handleExited:a,firstRender:!0},r}Object(i.a)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,a,i=t.children,o=t.handleExited;return{children:t.firstRender?(n=e,a=o,Mr(n.children,function(e){return Object(r.cloneElement)(e,{onExited:a.bind(null,e),in:!0,appear:gr(e,"appear",n),enter:gr(e,"enter",n),exit:gr(e,"exit",n)})})):vr(e,i,o),firstRender:!1}},n.handleExited=function(e,t){var n=Mr(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=Object(d.a)({},t.children);return delete n[e.key],{children:n}}))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=N(e,["component","childFactory"]),i=this.state.contextValue,o=Lr(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?a.a.createElement(yr.Provider,{value:i},o):a.a.createElement(yr.Provider,{value:i},a.a.createElement(t,r,o))},t}(a.a.Component);kr.propTypes={},kr.defaultProps={component:"div",childFactory:function(e){return e}};var Yr=kr,br=!1,wr="unmounted",Tr="exited",Dr="entering",Sr="entered",xr=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var a,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(a=Tr,r.appearStatus=Dr):a=Sr:a=t.unmountOnExit||t.mountOnEnter?wr:Tr,r.state={status:a},r.nextCallback=null,r}Object(i.a)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===wr?{status:Tr}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Dr&&n!==Sr&&(t=Dr):n!==Dr&&n!==Sr||(t="exiting")}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=ae.a.findDOMNode(this);t===Dr?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===Tr&&this.setState({status:wr})},n.performEnter=function(e,t){var n=this,r=this.props.enter,a=this.context?this.context.isMounting:t,i=this.getTimeouts(),o=a?i.appear:i.enter;!t&&!r||br?this.safeSetState({status:Sr},function(){n.props.onEntered(e)}):(this.props.onEnter(e,a),this.safeSetState({status:Dr},function(){n.props.onEntering(e,a),n.onTransitionEnd(e,o,function(){n.safeSetState({status:Sr},function(){n.props.onEntered(e,a)})})}))},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n&&!br?(this.props.onExit(e),this.safeSetState({status:"exiting"},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:Tr},function(){t.props.onExited(e)})})})):this.safeSetState({status:Tr},function(){t.props.onExited(e)})},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;e&&!r?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===wr)return null;var t=this.props,n=t.children,r=N(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return a.a.createElement(yr.Provider,{value:null},n(e,r));var i=a.a.Children.only(n);return a.a.createElement(yr.Provider,{value:null},a.a.cloneElement(i,r))},t}(a.a.Component);function jr(){}xr.contextType=yr,xr.propTypes={},xr.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:jr,onEntering:jr,onEntered:jr,onExit:jr,onExiting:jr,onExited:jr},xr.UNMOUNTED=0,xr.EXITED=1,xr.ENTERING=2,xr.ENTERED=3,xr.EXITING=4;var Hr=xr;var Pr=function(e){var t=e.classes,n=e.className,r=e.pulsate,i=void 0!==r&&r,o=e.rippleX,s=e.rippleY,u=e.rippleSize,l=ue()(e,["classes","className","pulsate","rippleX","rippleY","rippleSize"]),d=a.a.useState(!1),c=Un()(d,2),m=c[0],_=c[1],f=a.a.useState(!1),h=Un()(f,2),p=h[0],y=h[1],M=Hn(t.ripple,n,m&&t.rippleVisible,i&&t.ripplePulsate),g={width:u,height:u,top:-u/2+s,left:-u/2+o},v=Hn(t.child,p&&t.childLeaving,i&&t.childPulsate);return a.a.createElement(Hr,oe()({onEnter:function(){_(!0)},onExit:function(){y(!0)}},l),a.a.createElement("span",{className:M,style:g},a.a.createElement("span",{className:v})))},Er=550,Or=80,Cr=function(e){function t(){var e,n;sr()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return(n=cr()(this,(e=_r()(t)).call.apply(e,[this].concat(i)))).state={nextKey:0,ripples:[]},n.container=a.a.createRef(),n.pulsate=function(){n.start({},{pulsate:!0})},n.start=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,a=t.pulsate,i=void 0!==a&&a,o=t.center,s=void 0===o?n.props.center||t.pulsate:o,u=t.fakeElement,l=void 0!==u&&u;if("mousedown"===e.type&&n.ignoringMouseDown)n.ignoringMouseDown=!1;else{"touchstart"===e.type&&(n.ignoringMouseDown=!0);var d,c,m,_=l?null:n.container.current,f=_?_.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(s||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)d=Math.round(f.width/2),c=Math.round(f.height/2);else{var h=e.clientX?e.clientX:e.touches[0].clientX,p=e.clientY?e.clientY:e.touches[0].clientY;d=Math.round(h-f.left),c=Math.round(p-f.top)}if(s)(m=Math.sqrt((2*Math.pow(f.width,2)+Math.pow(f.height,2))/3))%2==0&&(m+=1);else{var y=2*Math.max(Math.abs((_?_.clientWidth:0)-d),d)+2,M=2*Math.max(Math.abs((_?_.clientHeight:0)-c),c)+2;m=Math.sqrt(Math.pow(y,2)+Math.pow(M,2))}e.touches?(n.startTimerCommit=function(){n.startCommit({pulsate:i,rippleX:d,rippleY:c,rippleSize:m,cb:r})},n.startTimer=setTimeout(function(){n.startTimerCommit&&(n.startTimerCommit(),n.startTimerCommit=null)},Or)):n.startCommit({pulsate:i,rippleX:d,rippleY:c,rippleSize:m,cb:r})}},n.startCommit=function(e){var t=e.pulsate,r=e.rippleX,i=e.rippleY,o=e.rippleSize,s=e.cb;n.setState(function(e){return{nextKey:e.nextKey+1,ripples:[].concat(ir()(e.ripples),[a.a.createElement(Pr,{key:e.nextKey,classes:n.props.classes,timeout:{exit:Er,enter:Er},pulsate:t,rippleX:r,rippleY:i,rippleSize:o})])}},s)},n.stop=function(e,t){clearTimeout(n.startTimer);var r=n.state.ripples;if("touchend"===e.type&&n.startTimerCommit)return e.persist(),n.startTimerCommit(),n.startTimerCommit=null,void(n.startTimer=setTimeout(function(){n.stop(e,t)}));n.startTimerCommit=null,r&&r.length&&n.setState({ripples:r.slice(1)},t)},n}return hr()(t,e),lr()(t,[{key:"componentWillUnmount",value:function(){clearTimeout(this.startTimer)}},{key:"render",value:function(){var e=this.props,t=(e.center,e.classes),n=e.className,r=ue()(e,["center","classes","className"]);return a.a.createElement("span",oe()({className:Hn(t.root,n),ref:this.container},r),a.a.createElement(Yr,{component:null,enter:!0,exit:!0},this.state.ripples))}}]),t}(a.a.PureComponent);Cr.defaultProps={center:!1};var Ar=xn(function(e){return{root:{display:"block",position:"absolute",overflow:"hidden",borderRadius:"inherit",width:"100%",height:"100%",left:0,top:0,pointerEvents:"none",zIndex:0},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"mui-ripple-enter ".concat(Er,"ms ").concat(e.transitions.easing.easeInOut),animationName:"$mui-ripple-enter"},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"mui-ripple-exit ".concat(Er,"ms ").concat(e.transitions.easing.easeInOut),animationName:"$mui-ripple-exit"},childPulsate:{position:"absolute",left:0,top:0,animation:"mui-ripple-pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite"),animationName:"$mui-ripple-pulsate"},"@keyframes mui-ripple-enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes mui-ripple-exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes mui-ripple-pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}},{flip:!1,name:"MuiTouchRipple"})(Cr),Wr="undefined"!=typeof window?a.a.useLayoutEffect:a.a.useEffect;function Fr(e){var t=a.a.useRef(e);return Wr(function(){t.current=e}),a.a.useCallback(function(e){return(0,t.current)(e)},[])}var Rr=a.a.forwardRef(function(e,t){var n=e.action,r=e.buttonRef,i=e.centerRipple,o=void 0!==i&&i,s=e.children,u=e.classes,l=e.className,d=e.component,c=void 0===d?"button":d,m=e.disabled,_=e.disableRipple,f=void 0!==_&&_,h=e.disableTouchRipple,p=void 0!==h&&h,y=e.focusRipple,M=void 0!==y&&y,g=e.focusVisibleClassName,v=e.onBlur,L=e.onClick,k=e.onFocus,Y=e.onFocusVisible,b=e.onKeyDown,w=e.onKeyUp,T=e.onMouseDown,D=e.onMouseLeave,S=e.onMouseUp,x=e.onTouchEnd,j=e.onTouchMove,H=e.onTouchStart,P=e.tabIndex,E=void 0===P?0:P,O=e.TouchRippleProps,C=e.type,A=void 0===C?"button":C,W=ue()(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","type"]),F=a.a.useRef(null);var R=a.a.useRef(null),z=a.a.useState(!1),N=Un()(z,2),I=N[0],U=N[1];m&&I&&U(!1);var V=rr(),J=V.isFocusVisible,G=V.onBlurVisible,B=V.ref;function $(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p;return Fr(function(r){return t&&t(r),!(r.defaultPrevented||n)&&R.current&&R.current[e](r),!0})}a.a.useImperativeHandle(n,function(){return{focusVisible:function(){U(!0),F.current.focus()}}},[]),a.a.useEffect(function(){I&&M&&!f&&R.current.pulsate()},[f,M,I]);var q=$("start",T),K=$("stop",S),Q=$("stop",function(e){I&&e.preventDefault(),D&&D(e)}),Z=$("start",H),X=$("stop",x),ee=$("stop",j),te=$("stop",function(e){I&&(G(e),U(!1)),v&&v(e)},!1),ne=Fr(function(e){m||(F.current||(F.current=e.currentTarget),J(e)&&(U(!0),Y&&Y(e)),k&&k(e))}),re=a.a.useRef(!1),ie=Fr(function(e){M&&!re.current&&I&&R.current&&" "===e.key&&(re.current=!0,e.persist(),R.current.stop(e,function(){R.current.start(e)})),b&&b(e);var t=ae.a.findDOMNode(F.current);e.target!==e.currentTarget||!c||"button"===c||" "!==e.key&&"Enter"!==e.key||"A"===t.tagName&&t.href||(e.preventDefault(),L&&L(e))}),se=Fr(function(e){M&&" "===e.key&&R.current&&I&&(re.current=!1,e.persist(),R.current.stop(e,function(){R.current.pulsate(e)})),w&&w(e)}),le=Hn(u.root,l,I&&[u.focusVisible,g],m&&u.disabled),de=c;"button"===de&&W.href&&(de="a");var ce={};"button"===de?(ce.type=A,ce.disabled=m):(ce.role="button",ce["aria-disabled"]=m);var me=Jn(r,t),_e=Jn(B,F),fe=Jn(me,_e);return a.a.createElement(de,oe()({className:le,onBlur:te,onClick:L,onFocus:ne,onKeyDown:ie,onKeyUp:se,onMouseDown:q,onMouseLeave:Q,onMouseUp:K,onTouchEnd:X,onTouchMove:ee,onTouchStart:Z,ref:fe,tabIndex:m?-1:E},ce,W),s,f||m?null:a.a.createElement(Bn,null,a.a.createElement(Ar,oe()({ref:R,center:o},O))))}),zr=xn({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:"none",border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(Rr),Nr=a.a.forwardRef(function(e,t){var n=e.children,r=e.classes,i=e.className,o=e.color,s=void 0===o?"default":o,u=e.component,l=void 0===u?"button":u,d=e.disabled,c=void 0!==d&&d,m=e.disableFocusRipple,_=void 0!==m&&m,f=e.focusVisibleClassName,h=e.fullWidth,p=void 0!==h&&h,y=e.size,M=void 0===y?"medium":y,g=e.type,v=void 0===g?"button":g,L=e.variant,k=void 0===L?"text":L,Y=ue()(e,["children","classes","className","color","component","disabled","disableFocusRipple","focusVisibleClassName","fullWidth","size","type","variant"]),b="text"===k,w="outlined"===k,T="contained"===k,D="primary"===s,S="secondary"===s,x=Hn(r.root,i,b&&[r.text,D&&r.textPrimary,S&&r.textSecondary],w&&[r.outlined,D&&r.outlinedPrimary,S&&r.outlinedSecondary],T&&[r.contained,D&&r.containedPrimary,S&&r.containedSecondary],"medium"!==M&&r["size".concat(An(M))],c&&r.disabled,p&&r.fullWidth,"inherit"===s&&r.colorInherit);return a.a.createElement(zr,oe()({className:x,component:l,disabled:c,focusRipple:!_,focusVisibleClassName:Hn(r.focusVisible,f),ref:t,type:v},Y),a.a.createElement("span",{className:r.label},n))}),Ir=xn(function(e){return{root:oe()({lineHeight:1.75},e.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:e.shape.borderRadius,color:e.palette.text.primary,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:on(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:e.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:on(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:on(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlined:{padding:"5px 16px",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(on(e.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.primary.main),backgroundColor:on(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(on(e.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.secondary.main),backgroundColor:on(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},contained:{color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],boxShadow:e.shadows[2],"&$focusVisible":{boxShadow:e.shadows[6]},"&:active":{boxShadow:e.shadows[8]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground},"&:hover":{backgroundColor:e.palette.grey.A100,"@media (hover: none)":{backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}}},containedPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},containedSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},sizeSmall:{padding:"4px 8px",fontSize:e.typography.pxToRem(13)},sizeLarge:{padding:"8px 24px",fontSize:e.typography.pxToRem(15)},fullWidth:{width:"100%"}}},{name:"MuiButton"})(Nr);function Ur(e){return(Ur="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Jr(e){return(Jr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Gr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Br(e,t){return(Br=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var $r=function(e){function t(e){var n,r,a,i,o,s;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,n=!(a=Jr(t).call(this,e))||"object"!==Ur(a)&&"function"!=typeof a?Gr(r):a,i=Gr(n),s=function(){},(o="componentDidMount")in i?Object.defineProperty(i,o,{value:s,enumerable:!0,configurable:!0,writable:!0}):i[o]=s,n.state={},n.lang=window.getLanguageFile(),n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Br(e,t)}(t,r["Component"]),n=t,(i=[{key:"render",value:function(){var e=this;this.props.classes;return a.a.createElement(Cn,{container:!0,style:{height:"100%"},direction:"row",justify:"center",alignItems:"center"},a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"initial"}},a.a.createElement(Cn,{container:!0,direction:"row",justify:"center",alignItems:"center"},a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"initial",padding:8}},a.a.createElement(Rn,{variant:"h5",component:"h3",style:{marginBottom:15}},this.lang.window.view.errorMessage[String(this.props.match.params.error).replace("ERR_","")].title),String(this.lang.window.view.errorMessage[String(this.props.match.params.error).replace("ERR_","")].description).split("\n").map(function(e){return a.a.createElement(Rn,{component:"p"},e)}),a.a.createElement(Rn,{variant:"body2",color:"textSecondary",style:{marginTop:8},gutterBottom:!0},this.props.match.params.error)),a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"75%"}},a.a.createElement(Nn,null)),a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"75%",padding:8}},a.a.createElement("div",{style:{justifyContent:"flex-end",display:"flex"}},a.a.createElement(Ir,{variant:"text",color:"primary",style:{marginRight:5},onClick:function(t){window.location.href=decodeURIComponent(e.props.match.params.url)}},"再読み込み"),a.a.createElement(Ir,{variant:"contained",color:"primary",style:{marginLeft:8},onClick:function(e){window.history.back(),window.history.back()}},"前のページに戻る"))))))}}])&&Vr(n.prototype,i),o&&Vr(n,o),t}();$r.propTypes={classes:l.a.object.isRequired};var qr=xn(function(e){return{root:{padding:e.spacing(3,2)}}})($r);Object(re.render)(a.a.createElement(function(){return a.a.createElement(ne,null,a.a.createElement(K,{exact:!0,path:"/:error/:url",component:qr}))},null),document.getElementById("app"))}]);
\ No newline at end of file
+var t}function Bt(e){var t,n;return!1!==Gt(e)&&("function"==typeof(t=e.constructor)&&(!1!==Gt(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}var $t=["xs","sm","md","lg","xl"];function qt(e,t,n){var r;return oe()({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oe()({paddingLeft:t(2),paddingRight:t(2)},n,Jt()({},e.up("sm"),oe()({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(r={minHeight:56},Jt()(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Jt()(r,e.up("sm"),{minHeight:64}),r)},n)}var Kt={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Qt={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Zt={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},Xt={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},en={black:"#000",white:"#fff"};function tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<t?t:e>n?n:e}function nn(e){if(e.type)return e;if("#"===e.charAt(0))return nn(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map(function(e){return e+e})),n?"rgb(".concat(n.map(function(e){return parseInt(e,16)}).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error(["Material-UI: unsupported `".concat(e,"` color."),"We support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()."].join("\n"));var r=e.substring(t+1,e.length-1).split(",");return{type:n,values:r=r.map(function(e){return parseFloat(e)})}}function rn(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map(function(e,t){return t<3?parseInt(e,10):e}):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function an(e){var t="hsl"===(e=nn(e)).type?nn(function(e){var t=(e=nn(e)).values,n=t[0],r=t[1]/100,a=t[2]/100,i=r*Math.min(a,1-a),o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return a-i*Math.max(Math.min(t-3,9-t,1),-1)},s="rgb",u=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return"hsla"===e.type&&(s+="a",u.push(t[3])),rn({type:s,values:u})}(e)).values:e.values;return t=t.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function on(e,t){return e=nn(e),t=tn(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,rn(e)}function sn(e,t){if(e=nn(e),t=tn(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return rn(e)}function un(e,t){if(e=nn(e),t=tn(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return rn(e)}var ln={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:en.white,default:Zt[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.08)",hoverOpacity:.08,selected:"rgba(0, 0, 0, 0.14)",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)"}},dn={text:{primary:en.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:Zt[800],default:"#303030"},action:{active:en.white,hover:"rgba(255, 255, 255, 0.1)",hoverOpacity:.1,selected:"rgba(255, 255, 255, 0.2)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"}};function cn(e,t,n,r){e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=un(e.main,r):"dark"===t&&(e.dark=sn(e.main,1.5*r)))}function mn(e){var t=e.primary,n=void 0===t?{light:Kt[300],main:Kt[500],dark:Kt[700]}:t,r=e.secondary,a=void 0===r?{light:Qt.A200,main:Qt.A400,dark:Qt.A700}:r,i=e.error,o=void 0===i?{light:Xt[300],main:Xt[500],dark:Xt[700]}:i,s=e.type,u=void 0===s?"light":s,l=e.contrastThreshold,d=void 0===l?3:l,c=e.tonalOffset,m=void 0===c?.2:c,_=ue()(e,["primary","secondary","error","type","contrastThreshold","tonalOffset"]);function f(e){return function(e,t){var n=an(e),r=an(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}(e,dn.text.primary)>=d?dn.text.primary:ln.text.primary}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;return!(e=oe()({},e)).main&&e[t]&&(e.main=e[t]),cn(e,"light",n,m),cn(e,"dark",r,m),e.contrastText||(e.contrastText=f(e.main)),e}var p={dark:dn,light:ln};return Wt()(oe()({common:en,type:u,primary:h(n),secondary:h(a,"A400","A200","A700"),error:h(o),grey:Zt,contrastThreshold:d,getContrastText:f,augmentColor:h,tonalOffset:m},p[u]),_,{clone:!1})}function _n(e){return Math.round(1e5*e)/1e5}var fn={textTransform:"uppercase"},hn='"Roboto", "Helvetica", "Arial", sans-serif';function pn(e,t){var n="function"==typeof t?t(e):t,r=n.fontFamily,a=void 0===r?hn:r,i=n.fontSize,o=void 0===i?14:i,s=n.fontWeightLight,u=void 0===s?300:s,l=n.fontWeightRegular,d=void 0===l?400:l,c=n.fontWeightMedium,m=void 0===c?500:c,_=n.fontWeightBold,f=void 0===_?700:_,h=n.htmlFontSize,p=void 0===h?16:h,y=n.allVariants,M=ue()(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants"]),g=o/14,v=function(e){return"".concat(e/p*g,"rem")},L=function(e,t,n,r,i){return oe()({fontFamily:a,fontWeight:e,fontSize:v(t),lineHeight:n},a===hn?{letterSpacing:"".concat(_n(r/t),"em")}:{},i,y)},k={h1:L(u,96,1,-1.5),h2:L(u,60,1,-.5),h3:L(d,48,1.04,0),h4:L(d,34,1.17,.25),h5:L(d,24,1.33,0),h6:L(m,20,1.6,.15),subtitle1:L(d,16,1.75,.15),subtitle2:L(m,14,1.57,.1),body1:L(d,16,1.5,.15),body2:L(d,14,1.43,.15),button:L(m,14,1.75,.4,fn),caption:L(d,12,1.66,.4),overline:L(d,12,2.66,1,fn)};return Wt()(oe()({htmlFontSize:p,pxToRem:v,round:_n,fontFamily:a,fontSize:o,fontWeightLight:u,fontWeightRegular:d,fontWeightMedium:m,fontWeightBold:f},k),M,{clone:!1})}var yn=.2,Mn=.14,gn=.12;function vn(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(yn,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(Mn,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(gn,")")].join(",")}var Ln=["none",vn(0,1,3,0,0,1,1,0,0,2,1,-1),vn(0,1,5,0,0,2,2,0,0,3,1,-2),vn(0,1,8,0,0,3,4,0,0,3,3,-2),vn(0,2,4,-1,0,4,5,0,0,1,10,0),vn(0,3,5,-1,0,5,8,0,0,1,14,0),vn(0,3,5,-1,0,6,10,0,0,1,18,0),vn(0,4,5,-2,0,7,10,1,0,2,16,1),vn(0,5,5,-3,0,8,10,1,0,3,14,2),vn(0,5,6,-3,0,9,12,1,0,3,16,2),vn(0,6,6,-3,0,10,14,1,0,4,18,3),vn(0,6,7,-4,0,11,15,1,0,4,20,3),vn(0,7,8,-4,0,12,17,2,0,5,22,4),vn(0,7,8,-4,0,13,19,2,0,5,24,4),vn(0,7,9,-4,0,14,21,2,0,5,26,4),vn(0,8,9,-5,0,15,22,2,0,6,28,5),vn(0,8,10,-5,0,16,24,2,0,6,30,5),vn(0,8,11,-5,0,17,26,2,0,6,32,5),vn(0,9,11,-5,0,18,28,2,0,7,34,6),vn(0,9,12,-6,0,19,29,2,0,7,36,6),vn(0,10,13,-6,0,20,31,3,0,8,38,7),vn(0,10,13,-6,0,21,33,3,0,8,40,7),vn(0,10,14,-6,0,22,35,3,0,8,42,7),vn(0,11,14,-7,0,23,36,3,0,9,44,8),vn(0,11,15,-7,0,24,38,3,0,9,46,8)],kn={borderRadius:4};var Yn={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},bn={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195},wn=function(e){return"".concat(Math.round(e),"ms")},Tn={easing:Yn,duration:bn,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?bn.standard:n,a=t.easing,i=void 0===a?Yn.easeInOut:a,o=t.delay,s=void 0===o?0:o;ue()(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map(function(e){return"".concat(e," ").concat("string"==typeof r?r:wn(r)," ").concat(i," ").concat("string"==typeof s?s:wn(s))}).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}},Dn={mobileStepper:1e3,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};var Sn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,a=void 0===r?{}:r,i=e.palette,o=void 0===i?{}:i,s=e.shadows,u=e.spacing,l=e.typography,d=void 0===l?{}:l,c=ue()(e,["breakpoints","mixins","palette","shadows","spacing","typography"]),m=mn(o),_=function(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,a=void 0===r?"px":r,i=e.step,o=void 0===i?5:i,s=ue()(e,["values","unit","step"]);function u(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(a,")")}function l(e,t){var r=$t.indexOf(t)+1;return r===$t.length?u(e):"@media (min-width:".concat(n[e]).concat(a,") and ")+"(max-width:".concat(n[$t[r]]-o/100).concat(a,")")}return oe()({keys:$t,values:n,up:u,down:function(e){var t=$t.indexOf(e)+1,r=n[$t[t]];return t===$t.length?u("xs"):"@media (max-width:".concat(("number"==typeof r&&t>0?r:e)-o/100).concat(a,")")},between:l,only:function(e){return l(e,e)},width:function(e){return n[e]}},s)}(n),f=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(t.mui)return t;e="function"==typeof t?t:function(e){return t*e};var n=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return 0===n.length?e(1):1===n.length?e(n[0]):n.map(function(t){var n=e(t);return"number"==typeof n?"".concat(n,"px"):n}).join(" ")};return Object.defineProperty(n,"unit",{get:function(){return t}}),n.mui=!0,n}(u);return oe()({breakpoints:_,direction:"ltr",mixins:qt(_,f,a),overrides:{},palette:m,props:{},shadows:s||Ln,typography:pn(m,d),spacing:f},Wt()({shape:kn,transitions:Tn,zIndex:Dn},c,{isMergeableObject:Bt}))}();var xn=function(e,t){return Ut(e,oe()({defaultTheme:Sn},t))};function jn(e){var t,n,r="";if(e)if("object"==typeof e)if(e.push)for(t=0;t<e.length;t++)e[t]&&(n=jn(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(n=jn(t))&&(r&&(r+=" "),r+=n);else"boolean"==typeof e||e.call||(r&&(r+=" "),r+=e);return r}var Hn=function(){for(var e,t=0,n="";t<arguments.length;)(e=jn(arguments[t++]))&&(n&&(n+=" "),n+=e);return n},Pn=[0,1,2,3,4,5,6,7,8,9,10],En=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12];var On=a.a.forwardRef(function(e,t){var n=e.alignContent,r=void 0===n?"stretch":n,i=e.alignItems,o=void 0===i?"stretch":i,s=e.classes,u=e.className,l=e.component,d=void 0===l?"div":l,c=e.container,m=void 0!==c&&c,_=e.direction,f=void 0===_?"row":_,h=e.item,p=void 0!==h&&h,y=e.justify,M=void 0===y?"flex-start":y,g=e.lg,v=void 0!==g&&g,L=e.md,k=void 0!==L&&L,Y=e.sm,b=void 0!==Y&&Y,w=e.spacing,T=void 0===w?0:w,D=e.wrap,S=void 0===D?"wrap":D,x=e.xl,j=void 0!==x&&x,H=e.xs,P=void 0!==H&&H,E=e.zeroMinWidth,O=void 0!==E&&E,C=ue()(e,["alignContent","alignItems","classes","className","component","container","direction","item","justify","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),A=Hn(s.root,u,m&&[s.container,0!==T&&s["spacing-xs-".concat(String(T))]],p&&s.item,O&&s.zeroMinWidth,"row"!==f&&s["direction-xs-".concat(String(f))],"wrap"!==S&&s["wrap-xs-".concat(String(S))],"stretch"!==o&&s["align-items-xs-".concat(String(o))],"stretch"!==r&&s["align-content-xs-".concat(String(r))],"flex-start"!==M&&s["justify-xs-".concat(String(M))],!1!==P&&s["grid-xs-".concat(String(P))],!1!==b&&s["grid-sm-".concat(String(b))],!1!==k&&s["grid-md-".concat(String(k))],!1!==v&&s["grid-lg-".concat(String(v))],!1!==j&&s["grid-xl-".concat(String(j))]);return a.a.createElement(d,oe()({className:A,ref:t},C))});var Cn=xn(function(e){return oe()({root:{},container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-xs-center":{justifyContent:"center"},"justify-xs-flex-end":{justifyContent:"flex-end"},"justify-xs-space-between":{justifyContent:"space-between"},"justify-xs-space-around":{justifyContent:"space-around"},"justify-xs-space-evenly":{justifyContent:"space-evenly"}},function(e,t){var n={};return Pn.forEach(function(r){var a=e.spacing(r);0!==a&&(n["spacing-".concat(t,"-").concat(r)]={margin:-a/2,width:"calc(100% + ".concat(a,"px)"),"& > $item":{padding:a/2}})}),n}(e,"xs"),$t.reduce(function(t,n){return function(e,t,n){var r={};En.forEach(function(e){var t="grid-".concat(n,"-").concat(e);if(!0!==e)if("auto"!==e){var a="".concat(Math.round(e/12*1e8)/1e6,"%");r[t]={flexBasis:a,flexGrow:0,maxWidth:a}}else r[t]={flexBasis:"auto",flexGrow:0,maxWidth:"none"};else r[t]={flexBasis:0,flexGrow:1,maxWidth:"100%"}}),"xs"===n?oe()(e,r):e[t.breakpoints.up(n)]=r}(t,e,n),t},{}))},{name:"MuiGrid"})(On);function An(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Wn={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},Fn=a.a.forwardRef(function(e,t){var n=e.align,r=void 0===n?"inherit":n,i=e.classes,o=e.className,s=e.color,u=void 0===s?"initial":s,l=e.component,d=e.display,c=void 0===d?"initial":d,m=e.gutterBottom,_=void 0!==m&&m,f=e.noWrap,h=void 0!==f&&f,p=e.paragraph,y=void 0!==p&&p,M=(e.theme,e.variant),g=void 0===M?"body1":M,v=e.variantMapping,L=void 0===v?Wn:v,k=ue()(e,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","theme","variant","variantMapping"]),Y=l||(y?"p":L[g]||Wn[g])||"span";return a.a.createElement(Y,oe()({className:Hn(i.root,o,"inherit"!==g&&i[g],"initial"!==u&&i["color".concat(An(u))],h&&i.noWrap,_&&i.gutterBottom,y&&i.paragraph,"inherit"!==r&&i["align".concat(An(r))],"initial"!==c&&i["display".concat(An(c))]),ref:t},k))}),Rn=xn(function(e){return{root:{margin:0},body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}},{name:"MuiTypography",withTheme:!0})(Fn),zn=a.a.forwardRef(function(e,t){var n=e.absolute,r=void 0!==n&&n,i=e.classes,o=e.className,s=e.component,u=void 0===s?"hr":s,l=e.light,d=void 0!==l&&l,c=e.variant,m=void 0===c?"fullWidth":c,_=ue()(e,["absolute","classes","className","component","light","variant"]);return"li"!==u||_.role||(_.role="separator"),a.a.createElement(u,oe()({className:Hn(i.root,o,"inset"===m&&i.inset,"middle"===m&&i.middle,r&&i.absolute,d&&i.light),ref:t},_))}),Nn=xn(function(e){return{root:{height:1,margin:0,border:"none",flexShrink:0,backgroundColor:e.palette.divider},absolute:{position:"absolute",bottom:0,left:0,width:"100%"},inset:{marginLeft:72},light:{backgroundColor:on(e.palette.divider,.08)},middle:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}}},{name:"MuiDivider"})(zn),In=n(12),Un=n.n(In);function Vn(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function Jn(e,t){return a.a.useMemo(function(){return null==e&&null==t?null:function(n){Vn(e,n),Vn(t,n)}},[e,t])}var Gn="undefined"!=typeof window?a.a.useLayoutEffect:a.a.useEffect;var Bn=function(e){var t=e.children,n=e.defer,r=void 0!==n&&n,i=e.fallback,o=void 0===i?null:i,s=a.a.useState(!1),u=Un()(s,2),l=u[0],d=u[1];return Gn(function(){r||d(!0)},[r]),a.a.useEffect(function(){r&&d(!0)},[r]),a.a.createElement(a.a.Fragment,null,l?t:o)},$n=!0,qn=!1,Kn=null,Qn={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function Zn(){$n=!0}function Xn(){$n=!1}function er(){"hidden"===this.visibilityState&&qn&&($n=!0)}function tr(e){var t,n,r,a=e.target;try{return a.matches(":focus-visible")}catch(e){}return $n||(n=(t=a).type,!("INPUT"!==(r=t.tagName)||!Qn[n]||t.readOnly)||"TEXTAREA"===r&&!t.readOnly||!!t.isContentEditable)}function nr(){qn=!0,window.clearTimeout(Kn),Kn=window.setTimeout(function(){qn=!1,window.clearTimeout(Kn)},100)}function rr(){return{isFocusVisible:tr,onBlurVisible:nr,ref:a.a.useCallback(function(e){var t,n=ae.a.findDOMNode(e);null!=n&&((t=n.ownerDocument).addEventListener("keydown",Zn,!0),t.addEventListener("mousedown",Xn,!0),t.addEventListener("pointerdown",Xn,!0),t.addEventListener("touchstart",Xn,!0),t.addEventListener("visibilitychange",er,!0))},[])}}var ar=n(151),ir=n.n(ar),or=n(152),sr=n.n(or),ur=n(153),lr=n.n(ur),dr=n(154),cr=n.n(dr),mr=n(155),_r=n.n(mr),fr=n(156),hr=n.n(fr),pr=n(14),yr=a.a.createContext(null);function Mr(e,t){var n=Object.create(null);return e&&r.Children.map(e,function(e){return e}).forEach(function(e){n[e.key]=function(e){return t&&Object(r.isValidElement)(e)?t(e):e}(e)}),n}function gr(e,t,n){return null!=n[t]?n[t]:e.props[t]}function vr(e,t,n){var a=Mr(e.children),i=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,a=Object.create(null),i=[];for(var o in e)o in t?i.length&&(a[o]=i,i=[]):i.push(o);var s={};for(var u in t){if(a[u])for(r=0;r<a[u].length;r++){var l=a[u][r];s[a[u][r]]=n(l)}s[u]=n(u)}for(r=0;r<i.length;r++)s[i[r]]=n(i[r]);return s}(t,a);return Object.keys(i).forEach(function(o){var s=i[o];if(Object(r.isValidElement)(s)){var u=o in t,l=o in a,d=t[o],c=Object(r.isValidElement)(d)&&!d.props.in;!l||u&&!c?l||!u||c?l&&u&&Object(r.isValidElement)(d)&&(i[o]=Object(r.cloneElement)(s,{onExited:n.bind(null,s),in:d.props.in,exit:gr(s,"exit",e),enter:gr(s,"enter",e)})):i[o]=Object(r.cloneElement)(s,{in:!1}):i[o]=Object(r.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:gr(s,"exit",e),enter:gr(s,"enter",e)})}}),i}var Lr=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},kr=function(e){function t(t,n){var r,a=(r=e.call(this,t,n)||this).handleExited.bind(Object(pr.a)(Object(pr.a)(r)));return r.state={contextValue:{isMounting:!0},handleExited:a,firstRender:!0},r}Object(i.a)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,a,i=t.children,o=t.handleExited;return{children:t.firstRender?(n=e,a=o,Mr(n.children,function(e){return Object(r.cloneElement)(e,{onExited:a.bind(null,e),in:!0,appear:gr(e,"appear",n),enter:gr(e,"enter",n),exit:gr(e,"exit",n)})})):vr(e,i,o),firstRender:!1}},n.handleExited=function(e,t){var n=Mr(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=Object(d.a)({},t.children);return delete n[e.key],{children:n}}))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=N(e,["component","childFactory"]),i=this.state.contextValue,o=Lr(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?a.a.createElement(yr.Provider,{value:i},o):a.a.createElement(yr.Provider,{value:i},a.a.createElement(t,r,o))},t}(a.a.Component);kr.propTypes={},kr.defaultProps={component:"div",childFactory:function(e){return e}};var Yr=kr,br=!1,wr="unmounted",Tr="exited",Dr="entering",Sr="entered",xr=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var a,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(a=Tr,r.appearStatus=Dr):a=Sr:a=t.unmountOnExit||t.mountOnEnter?wr:Tr,r.state={status:a},r.nextCallback=null,r}Object(i.a)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===wr?{status:Tr}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Dr&&n!==Sr&&(t=Dr):n!==Dr&&n!==Sr||(t="exiting")}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=ae.a.findDOMNode(this);t===Dr?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===Tr&&this.setState({status:wr})},n.performEnter=function(e,t){var n=this,r=this.props.enter,a=this.context?this.context.isMounting:t,i=this.getTimeouts(),o=a?i.appear:i.enter;!t&&!r||br?this.safeSetState({status:Sr},function(){n.props.onEntered(e)}):(this.props.onEnter(e,a),this.safeSetState({status:Dr},function(){n.props.onEntering(e,a),n.onTransitionEnd(e,o,function(){n.safeSetState({status:Sr},function(){n.props.onEntered(e,a)})})}))},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n&&!br?(this.props.onExit(e),this.safeSetState({status:"exiting"},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:Tr},function(){t.props.onExited(e)})})})):this.safeSetState({status:Tr},function(){t.props.onExited(e)})},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;e&&!r?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===wr)return null;var t=this.props,n=t.children,r=N(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return a.a.createElement(yr.Provider,{value:null},n(e,r));var i=a.a.Children.only(n);return a.a.createElement(yr.Provider,{value:null},a.a.cloneElement(i,r))},t}(a.a.Component);function jr(){}xr.contextType=yr,xr.propTypes={},xr.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:jr,onEntering:jr,onEntered:jr,onExit:jr,onExiting:jr,onExited:jr},xr.UNMOUNTED=0,xr.EXITED=1,xr.ENTERING=2,xr.ENTERED=3,xr.EXITING=4;var Hr=xr;var Pr=function(e){var t=e.classes,n=e.className,r=e.pulsate,i=void 0!==r&&r,o=e.rippleX,s=e.rippleY,u=e.rippleSize,l=ue()(e,["classes","className","pulsate","rippleX","rippleY","rippleSize"]),d=a.a.useState(!1),c=Un()(d,2),m=c[0],_=c[1],f=a.a.useState(!1),h=Un()(f,2),p=h[0],y=h[1],M=Hn(t.ripple,n,m&&t.rippleVisible,i&&t.ripplePulsate),g={width:u,height:u,top:-u/2+s,left:-u/2+o},v=Hn(t.child,p&&t.childLeaving,i&&t.childPulsate);return a.a.createElement(Hr,oe()({onEnter:function(){_(!0)},onExit:function(){y(!0)}},l),a.a.createElement("span",{className:M,style:g},a.a.createElement("span",{className:v})))},Er=550,Or=80,Cr=function(e){function t(){var e,n;sr()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return(n=cr()(this,(e=_r()(t)).call.apply(e,[this].concat(i)))).state={nextKey:0,ripples:[]},n.container=a.a.createRef(),n.pulsate=function(){n.start({},{pulsate:!0})},n.start=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,a=t.pulsate,i=void 0!==a&&a,o=t.center,s=void 0===o?n.props.center||t.pulsate:o,u=t.fakeElement,l=void 0!==u&&u;if("mousedown"===e.type&&n.ignoringMouseDown)n.ignoringMouseDown=!1;else{"touchstart"===e.type&&(n.ignoringMouseDown=!0);var d,c,m,_=l?null:n.container.current,f=_?_.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(s||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)d=Math.round(f.width/2),c=Math.round(f.height/2);else{var h=e.clientX?e.clientX:e.touches[0].clientX,p=e.clientY?e.clientY:e.touches[0].clientY;d=Math.round(h-f.left),c=Math.round(p-f.top)}if(s)(m=Math.sqrt((2*Math.pow(f.width,2)+Math.pow(f.height,2))/3))%2==0&&(m+=1);else{var y=2*Math.max(Math.abs((_?_.clientWidth:0)-d),d)+2,M=2*Math.max(Math.abs((_?_.clientHeight:0)-c),c)+2;m=Math.sqrt(Math.pow(y,2)+Math.pow(M,2))}e.touches?(n.startTimerCommit=function(){n.startCommit({pulsate:i,rippleX:d,rippleY:c,rippleSize:m,cb:r})},n.startTimer=setTimeout(function(){n.startTimerCommit&&(n.startTimerCommit(),n.startTimerCommit=null)},Or)):n.startCommit({pulsate:i,rippleX:d,rippleY:c,rippleSize:m,cb:r})}},n.startCommit=function(e){var t=e.pulsate,r=e.rippleX,i=e.rippleY,o=e.rippleSize,s=e.cb;n.setState(function(e){return{nextKey:e.nextKey+1,ripples:[].concat(ir()(e.ripples),[a.a.createElement(Pr,{key:e.nextKey,classes:n.props.classes,timeout:{exit:Er,enter:Er},pulsate:t,rippleX:r,rippleY:i,rippleSize:o})])}},s)},n.stop=function(e,t){clearTimeout(n.startTimer);var r=n.state.ripples;if("touchend"===e.type&&n.startTimerCommit)return e.persist(),n.startTimerCommit(),n.startTimerCommit=null,void(n.startTimer=setTimeout(function(){n.stop(e,t)}));n.startTimerCommit=null,r&&r.length&&n.setState({ripples:r.slice(1)},t)},n}return hr()(t,e),lr()(t,[{key:"componentWillUnmount",value:function(){clearTimeout(this.startTimer)}},{key:"render",value:function(){var e=this.props,t=(e.center,e.classes),n=e.className,r=ue()(e,["center","classes","className"]);return a.a.createElement("span",oe()({className:Hn(t.root,n),ref:this.container},r),a.a.createElement(Yr,{component:null,enter:!0,exit:!0},this.state.ripples))}}]),t}(a.a.PureComponent);Cr.defaultProps={center:!1};var Ar=xn(function(e){return{root:{display:"block",position:"absolute",overflow:"hidden",borderRadius:"inherit",width:"100%",height:"100%",left:0,top:0,pointerEvents:"none",zIndex:0},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"mui-ripple-enter ".concat(Er,"ms ").concat(e.transitions.easing.easeInOut),animationName:"$mui-ripple-enter"},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"mui-ripple-exit ".concat(Er,"ms ").concat(e.transitions.easing.easeInOut),animationName:"$mui-ripple-exit"},childPulsate:{position:"absolute",left:0,top:0,animation:"mui-ripple-pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite"),animationName:"$mui-ripple-pulsate"},"@keyframes mui-ripple-enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes mui-ripple-exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes mui-ripple-pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}},{flip:!1,name:"MuiTouchRipple"})(Cr),Wr="undefined"!=typeof window?a.a.useLayoutEffect:a.a.useEffect;function Fr(e){var t=a.a.useRef(e);return Wr(function(){t.current=e}),a.a.useCallback(function(e){return(0,t.current)(e)},[])}var Rr=a.a.forwardRef(function(e,t){var n=e.action,r=e.buttonRef,i=e.centerRipple,o=void 0!==i&&i,s=e.children,u=e.classes,l=e.className,d=e.component,c=void 0===d?"button":d,m=e.disabled,_=e.disableRipple,f=void 0!==_&&_,h=e.disableTouchRipple,p=void 0!==h&&h,y=e.focusRipple,M=void 0!==y&&y,g=e.focusVisibleClassName,v=e.onBlur,L=e.onClick,k=e.onFocus,Y=e.onFocusVisible,b=e.onKeyDown,w=e.onKeyUp,T=e.onMouseDown,D=e.onMouseLeave,S=e.onMouseUp,x=e.onTouchEnd,j=e.onTouchMove,H=e.onTouchStart,P=e.tabIndex,E=void 0===P?0:P,O=e.TouchRippleProps,C=e.type,A=void 0===C?"button":C,W=ue()(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","type"]),F=a.a.useRef(null);var R=a.a.useRef(null),z=a.a.useState(!1),N=Un()(z,2),I=N[0],U=N[1];m&&I&&U(!1);var V=rr(),J=V.isFocusVisible,G=V.onBlurVisible,B=V.ref;function $(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p;return Fr(function(r){return t&&t(r),!(r.defaultPrevented||n)&&R.current&&R.current[e](r),!0})}a.a.useImperativeHandle(n,function(){return{focusVisible:function(){U(!0),F.current.focus()}}},[]),a.a.useEffect(function(){I&&M&&!f&&R.current.pulsate()},[f,M,I]);var q=$("start",T),K=$("stop",S),Q=$("stop",function(e){I&&e.preventDefault(),D&&D(e)}),Z=$("start",H),X=$("stop",x),ee=$("stop",j),te=$("stop",function(e){I&&(G(e),U(!1)),v&&v(e)},!1),ne=Fr(function(e){m||(F.current||(F.current=e.currentTarget),J(e)&&(U(!0),Y&&Y(e)),k&&k(e))}),re=a.a.useRef(!1),ie=Fr(function(e){M&&!re.current&&I&&R.current&&" "===e.key&&(re.current=!0,e.persist(),R.current.stop(e,function(){R.current.start(e)})),b&&b(e);var t=ae.a.findDOMNode(F.current);e.target!==e.currentTarget||!c||"button"===c||" "!==e.key&&"Enter"!==e.key||"A"===t.tagName&&t.href||(e.preventDefault(),L&&L(e))}),se=Fr(function(e){M&&" "===e.key&&R.current&&I&&(re.current=!1,e.persist(),R.current.stop(e,function(){R.current.pulsate(e)})),w&&w(e)}),le=Hn(u.root,l,I&&[u.focusVisible,g],m&&u.disabled),de=c;"button"===de&&W.href&&(de="a");var ce={};"button"===de?(ce.type=A,ce.disabled=m):(ce.role="button",ce["aria-disabled"]=m);var me=Jn(r,t),_e=Jn(B,F),fe=Jn(me,_e);return a.a.createElement(de,oe()({className:le,onBlur:te,onClick:L,onFocus:ne,onKeyDown:ie,onKeyUp:se,onMouseDown:q,onMouseLeave:Q,onMouseUp:K,onTouchEnd:X,onTouchMove:ee,onTouchStart:Z,ref:fe,tabIndex:m?-1:E},ce,W),s,f||m?null:a.a.createElement(Bn,null,a.a.createElement(Ar,oe()({ref:R,center:o},O))))}),zr=xn({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:"none",border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(Rr),Nr=a.a.forwardRef(function(e,t){var n=e.children,r=e.classes,i=e.className,o=e.color,s=void 0===o?"default":o,u=e.component,l=void 0===u?"button":u,d=e.disabled,c=void 0!==d&&d,m=e.disableFocusRipple,_=void 0!==m&&m,f=e.focusVisibleClassName,h=e.fullWidth,p=void 0!==h&&h,y=e.size,M=void 0===y?"medium":y,g=e.type,v=void 0===g?"button":g,L=e.variant,k=void 0===L?"text":L,Y=ue()(e,["children","classes","className","color","component","disabled","disableFocusRipple","focusVisibleClassName","fullWidth","size","type","variant"]),b="text"===k,w="outlined"===k,T="contained"===k,D="primary"===s,S="secondary"===s,x=Hn(r.root,i,b&&[r.text,D&&r.textPrimary,S&&r.textSecondary],w&&[r.outlined,D&&r.outlinedPrimary,S&&r.outlinedSecondary],T&&[r.contained,D&&r.containedPrimary,S&&r.containedSecondary],"medium"!==M&&r["size".concat(An(M))],c&&r.disabled,p&&r.fullWidth,"inherit"===s&&r.colorInherit);return a.a.createElement(zr,oe()({className:x,component:l,disabled:c,focusRipple:!_,focusVisibleClassName:Hn(r.focusVisible,f),ref:t,type:v},Y),a.a.createElement("span",{className:r.label},n))}),Ir=xn(function(e){return{root:oe()({lineHeight:1.75},e.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:e.shape.borderRadius,color:e.palette.text.primary,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:on(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:e.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:on(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:on(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlined:{padding:"5px 16px",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(on(e.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.primary.main),backgroundColor:on(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(on(e.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.secondary.main),backgroundColor:on(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},contained:{color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],boxShadow:e.shadows[2],"&$focusVisible":{boxShadow:e.shadows[6]},"&:active":{boxShadow:e.shadows[8]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground},"&:hover":{backgroundColor:e.palette.grey.A100,"@media (hover: none)":{backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}}},containedPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},containedSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},sizeSmall:{padding:"4px 8px",fontSize:e.typography.pxToRem(13)},sizeLarge:{padding:"8px 24px",fontSize:e.typography.pxToRem(15)},fullWidth:{width:"100%"}}},{name:"MuiButton"})(Nr);function Ur(e){return(Ur="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Jr(e){return(Jr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Gr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Br(e,t){return(Br=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var $r=function(e){function t(e){var n,r,a,i,o,s;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,n=!(a=Jr(t).call(this,e))||"object"!==Ur(a)&&"function"!=typeof a?Gr(r):a,i=Gr(n),s=function(){},(o="componentDidMount")in i?Object.defineProperty(i,o,{value:s,enumerable:!0,configurable:!0,writable:!0}):i[o]=s,n.state={},n.lang=window.getLanguageFile(),n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Br(e,t)}(t,r["Component"]),n=t,(i=[{key:"render",value:function(){var e=this;this.props.classes;return a.a.createElement(Cn,{container:!0,style:{height:"100%"},direction:"row",justify:"center",alignItems:"center"},a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"initial"}},a.a.createElement(Cn,{container:!0,direction:"row",justify:"center",alignItems:"center"},a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"initial",padding:8}},a.a.createElement(Rn,{variant:"h5",component:"h3",style:{marginBottom:15}},void 0!==this.props.match.params.error&&null!==this.props.match.params.error?this.lang.window.view.errorMessage[String(this.props.match.params.error).replace("ERR_","")].title:this.lang.window.view.errorMessage.UNDEFINED.title),String(void 0!==this.props.match.params.error&&null!==this.props.match.params.error?this.lang.window.view.errorMessage[String(this.props.match.params.error).replace("ERR_","")].description:this.lang.window.view.errorMessage.UNDEFINED.description).split("\n").map(function(e){return a.a.createElement(Rn,{component:"p"},e)}),a.a.createElement(Rn,{variant:"body2",color:"textSecondary",style:{marginTop:8},gutterBottom:!0},this.props.match.params.error)),a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"75%"}},a.a.createElement(Nn,null)),a.a.createElement(Cn,{item:!0,xs:12,style:{flexBasis:"75%",padding:8}},a.a.createElement("div",{style:{justifyContent:"flex-end",display:"flex"}},a.a.createElement(Ir,{variant:"text",color:"primary",style:{marginRight:5},onClick:function(t){window.location.href=decodeURIComponent(e.props.match.params.url)}},"再読み込み"),a.a.createElement(Ir,{variant:"contained",color:"primary",style:{marginLeft:8},onClick:function(e){window.history.back(),window.history.back()}},"前のページに戻る"))))))}}])&&Vr(n.prototype,i),o&&Vr(n,o),t}();$r.propTypes={classes:l.a.object.isRequired};var qr=xn(function(e){return{root:{padding:e.spacing(3,2)}}})($r);Object(re.render)(a.a.createElement(function(){return a.a.createElement(ne,null,a.a.createElement(K,{exact:!0,path:"/:error/:url",component:qr}))},null),document.getElementById("app"))}]);
\ No newline at end of file
index 472989a..e7d7b58 100644 (file)
@@ -4,6 +4,8 @@ import { HashRouter, Route, Switch } from "react-router-dom";
 import BrowserWindow from './Windows/BrowserWindow';
 import AuthenticationWindow from './Windows/AuthenticationWindow';
 
+import ApplicationWindow from './Windows/ApplicationWindow';
+
 class App extends Component {
        render() {
                return (
@@ -11,6 +13,7 @@ class App extends Component {
                                <div>
                                        <Route exact path='/window/:windowId' component={BrowserWindow} />
                                        <Route path='/authentication' component={AuthenticationWindow} />
+                                       <Route path='/app/:windowId/:url' component={ApplicationWindow} />
                                </div>
                        </HashRouter>
                );
index 4c8f775..6c4e4d3 100644 (file)
@@ -34,8 +34,8 @@ class ErrorPage extends Component {
                 <Grid item xs={12} style={{ flexBasis: 'initial' }}>
                     <Grid container direction="row" justify="center" alignItems="center">
                         <Grid item xs={12} style={{ flexBasis: 'initial', padding: 8 }}>
-                            <Typography variant="h5" component="h3" style={{ marginBottom: 15 }}>{this.lang.window.view.errorMessage[String(this.props.match.params.error).replace('ERR_', '')].title}</Typography>
-                            {String(this.lang.window.view.errorMessage[String(this.props.match.params.error).replace('ERR_', '')].description).split('\n').map((text) => {
+                            <Typography variant="h5" component="h3" style={{ marginBottom: 15 }}>{this.props.match.params.error !== undefined && this.props.match.params.error !== null ? this.lang.window.view.errorMessage[String(this.props.match.params.error).replace('ERR_', '')].title : this.lang.window.view.errorMessage.UNDEFINED.title}</Typography>
+                            {String(this.props.match.params.error !== undefined && this.props.match.params.error !== null ? this.lang.window.view.errorMessage[String(this.props.match.params.error).replace('ERR_', '')].description : this.lang.window.view.errorMessage.UNDEFINED.description).split('\n').map((text) => {
                                 return (
                                     <Typography component="p">{text}</Typography>
                                 );
diff --git a/app/src/Windows/ApplicationWindow.js b/app/src/Windows/ApplicationWindow.js
new file mode 100644 (file)
index 0000000..39a8c7a
--- /dev/null
@@ -0,0 +1,190 @@
+import React, { Component } from 'react';
+import { findDOMNode } from 'react-dom';
+import Tippy from '@tippy.js/react';
+import Sortable from 'sortablejs';
+
+import Window from './Components/Window';
+import WindowButtons from './Components/WindowButtons';
+import WindowButton from './Components/WindowButton';
+import WindowContent from './Components/WindowContent';
+import Titlebar from './Components/Titlebar';
+import Tabs from './Components/Tabs';
+import { TabContainer, Tab, TabIcon, TabTitle, TabStatusIcon, TabCloseButton } from './Components/Tab';
+import TabButton from './Components/TabButton';
+import TabContent from './Components/TabContent';
+import Toolbar from './Components/Toolbar';
+import { ToolbarButton, ToolbarButtonBadge } from './Components/ToolbarButton';
+import ToolbarDivider from './Components/ToolbarDivider';
+import { ToolbarTextBoxWrapper, ToolbarTextBox } from './Components/ToolbarTextBox';
+import BookmarkBar from './Components/BookmarkBar';
+import ContentWrapper from './Components/ContentWrapper';
+
+import WindowMinimizeIcon from './Resources/windows/minimize.svg';
+import WindowMaximizeIcon from './Resources/windows/maximize.svg';
+import WindowCloseIcon from './Resources/windows/close.svg';
+
+import DarkBackIcon from './Resources/dark/arrow_back.svg';
+import LightBackIcon from './Resources/light/arrow_back.svg';
+import DarkForwardIcon from './Resources/dark/arrow_forward.svg';
+import LightForwardIcon from './Resources/light/arrow_forward.svg';
+
+import BackInActiveIcon from './Resources/inactive/arrow_back.svg';
+import ForwardInActiveIcon from './Resources/inactive/arrow_forward.svg';
+
+import DarkReloadIcon from './Resources/dark/reload.svg';
+import LightReloadIcon from './Resources/light/reload.svg';
+import DarkHomeIcon from './Resources/dark/home.svg';
+import LightHomeIcon from './Resources/light/home.svg';
+
+import DarkInfomationIcon from './Resources/dark/info.svg';
+import LightInfomationIcon from './Resources/light/info.svg';
+
+import DarkSecureIcon from './Resources/dark/secure.svg';
+import LightSecureIcon from './Resources/light/secure.svg';
+import DarkInSecureIcon from './Resources/dark/insecure.svg';
+import LightInSecureIcon from './Resources/light/insecure.svg';
+
+import DarkStarIcon from './Resources/dark/star.svg';
+import LightStarIcon from './Resources/light/star.svg';
+import DarkStarFilledIcon from './Resources/dark/star-filled.svg';
+import LightStarFilledIcon from './Resources/light/star-filled.svg';
+
+import DarkFeedbackIcon from './Resources/dark/feedback.svg';
+import LightFeedbackIcon from './Resources/light/feedback.svg';
+import DarkAccountIcon from './Resources/dark/account.svg';
+import LightAccountIcon from './Resources/light/account.svg';
+
+import DarkShieldIcon from './Resources/dark/shield.svg';
+import LightShieldIcon from './Resources/light/shield.svg';
+
+import DarkMoreIcon from './Resources/dark/more.svg';
+import LightMoreIcon from './Resources/light/more.svg';
+
+import DarkPublicIcon from './Resources/dark/public.svg';
+import LightPublicIcon from './Resources/light/public.svg';
+
+import DarkAddIcon from './Resources/dark/add.svg';
+import LightAddIcon from './Resources/light/add.svg';
+import DarkCloseIcon from './Resources/dark/close.svg';
+import LightCloseIcon from './Resources/light/close.svg';
+import DarkAudioIcon from './Resources/dark/audio.svg';
+import LightAudioIcon from './Resources/light/audio.svg';
+
+import 'tippy.js/themes/light.css';
+import 'tippy.js/themes/light-border.css';
+import 'tippy.js/themes/google.css';
+import 'tippy.js/themes/translucent.css';
+
+import isURL from '../Utils/isURL';
+
+const { remote, ipcRenderer, shell } = window.require('electron');
+const { app, systemPreferences, Menu, MenuItem, dialog } = remote;
+
+const pkg = window.require(`${app.getAppPath()}/package.json`);
+const protocolStr = 'flast';
+const fileProtocolStr = `${protocolStr}-file`;
+
+const platform = window.require('electron-platform');
+const { parse, format } = window.require('url');
+const path = window.require('path');
+const process = window.require('process');
+
+const Config = window.require('electron-store');
+const config = new Config();
+
+const lang = window.require(`${app.getAppPath()}/langs/${config.get('language')}`);
+
+class ApplicationWindow extends Component {
+       constructor(props) {
+               super(props);
+
+               ipcRenderer.on(`window-focus-${this.props.match.params.windowId}`, (e, args) => {
+                       this.forceUpdate();
+               });
+               ipcRenderer.on(`window-blur-${this.props.match.params.windowId}`, (e, args) => {
+                       this.forceUpdate();
+               });
+
+               ipcRenderer.on('window-change-settings', (e, args) => {
+                       this.forceUpdate();
+               });
+       }
+
+       componentDidMount = () => {
+               let webView = this.webView;
+
+               webView.addEventListener('did-finish-load', (e) => {
+                       document.title = webView.getTitle();
+                       this.forceUpdate();
+               }, false);
+
+               webView.addEventListener('page-title-updated', (e) => {
+                       document.title = webView.getTitle();
+                       this.forceUpdate();
+               }, false);
+
+               webView.addEventListener('new-window', (e) => {
+                       webView.getWebContents().loadURL(e.url);
+               });
+       }
+
+       getForegroundColor = (hexColor) => {
+               var r = parseInt(hexColor.substr(1, 2), 16);
+               var g = parseInt(hexColor.substr(3, 2), 16);
+               var b = parseInt(hexColor.substr(5, 2), 16);
+
+               return ((((r * 299) + (g * 587) + (b * 114)) / 1000) < 128) ? '#ffffff' : '#000000';
+       }
+
+       isDarkModeOrPrivateMode = () => {
+               return config.get('design.isDarkTheme') || String(this.props.match.params.windowId).startsWith('private');
+       }
+
+       isDarkModeOrPrivateMode = (lightMode, darkMode) => {
+               return !(config.get('design.isDarkTheme') || String(this.props.match.params.windowId).startsWith('private')) ? lightMode : darkMode;
+       }
+
+       render() {
+               return (
+                       <Window isCustomTitlebar={config.get('design.isCustomTitlebar')}>
+                               <Titlebar isActive={remote.getCurrentWindow().isFocused()} color={platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535'}>
+                                       <WindowButtons isCustomTitlebar={config.get('design.isCustomTitlebar')} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)}>
+                                               <WindowButton isClose={true} isMinimize={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.close} onClick={() => { this.closeWindow(); }} />
+                                               <WindowButton isClose={false} isMinimize={true} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.minimize} onClick={() => { remote.getCurrentWindow().minimize(); }} />
+                                               <WindowButton isClose={false} isMinimize={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={remote.getCurrentWindow().isMaximized() ? lang.window.titleBar.buttons.maximize.restore : lang.window.titleBar.buttons.maximize.maximize} onClick={() => { remote.getCurrentWindow().isMaximized() ? remote.getCurrentWindow().unmaximize() : remote.getCurrentWindow().maximize(); this.forceUpdate(); }} />
+                                       </WindowButtons>
+                                       <Toolbar style={{ width: 'fit-content', height: '100%', background: 'transparent', border: 'none', WebkitAppRegion: 'no-drag' }} isDarkModeOrPrivateMode={config.get('design.isDarkTheme')}>
+                                               <ToolbarButton isDarkModeOrPrivateMode={config.get('design.isDarkTheme')} style={{ height: 'auto' }} src={DarkBackIcon} size={24}
+                                                       isShowing={true} isRight={false} isMarginLeft={true} isEnabled={this.webView != undefined ? this.webView.getWebContents().canGoBack() : false} title={lang.window.toolBar.back} onClick={() => { this.webView.getWebContents().goBack(); this.forceUpdate(); }} />
+                                               <ToolbarButton isDarkModeOrPrivateMode={config.get('design.isDarkTheme')} style={{ height: 'auto' }} src={DarkForwardIcon} size={24}
+                                                       isShowing={this.webView != undefined ? this.webView.getWebContents().canGoForward() : false} isRight={false} isMarginLeft={false} isEnabled={this.webView != undefined ? this.webView.getWebContents().canGoForward() : false} title={lang.window.toolBar.forward} onClick={() => { this.webView.getWebContents().goForward(); this.forceUpdate(); }} />
+                                               <ToolbarButton isDarkModeOrPrivateMode={config.get('design.isDarkTheme')} style={{ height: 'auto' }} src={this.webView != undefined && this.webView.getWebContents().isLoadingMainFrame() ? DarkCloseIcon : DarkReloadIcon} size={24}
+                                                       isShowing={true} isRight={false} isMarginLeft={false} isEnabled={true} title={this.webView != undefined && this.webView.getWebContents().isLoadingMainFrame() ? lang.window.toolBar.reload.stop : lang.window.toolBar.reload.reload} onClick={() => { if (this.webView.getWebContents().isLoadingMainFrame()) { this.webView.getWebContents().stop(); } else { this.webView.getWebContents().reload(); } this.forceUpdate(); }} />
+                                       </Toolbar>
+                                       <WindowButtons isCustomTitlebar={config.get('design.isCustomTitlebar')} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)}>
+                                               <WindowButton isClose={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.minimize} onClick={() => { remote.getCurrentWindow().minimize(); }}>
+                                                       <svg name="TitleBarMinimize" width="12" height="12" viewBox="0 0 12 12" fill={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
+                                                               <rect width="10" height="1" x="1" y="6" />
+                                                       </svg>
+                                               </WindowButton>
+                                               <WindowButton isClose={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={remote.getCurrentWindow().isMaximized() ? lang.window.titleBar.buttons.maximize.restore : lang.window.titleBar.buttons.maximize.maximize} onClick={() => { remote.getCurrentWindow().isMaximized() ? remote.getCurrentWindow().unmaximize() : remote.getCurrentWindow().maximize(); this.forceUpdate(); }}>
+                                                       <svg name="TitleBarMaximize" width="12" height="12" viewBox="0 0 12 12" stroke={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
+                                                               <rect fill="none" width="9" height="9" x="1.5" y="1.5" />
+                                                       </svg>
+                                               </WindowButton>
+                                               <WindowButton isClose={true} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.close} onClick={() => { remote.getCurrentWindow().close(); }}>
+                                                       <svg name="TitleBarClose" width="12" height="12" viewBox="0 0 12 12" fill={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
+                                                               <polygon fill-rule="evenodd" points="11 1.576 6.583 6 11 10.424 10.424 11 6 6.583 1.576 11 1 10.424 5.417 6 1 1.576 1.576 1 6 5.417 10.424 1" />
+                                                       </svg>
+                                               </WindowButton>
+                                       </WindowButtons>
+                               </Titlebar>
+                               <WindowContent>
+                                       <webview ref={ref => { this.webView = ref; }} style={{ height: '100%' }} src={decodeURIComponent(this.props.match.params.url)} preload={`${app.getAppPath()}/electron/Preload`} />
+                               </WindowContent>
+                       </Window>
+               );
+       }
+}
+
+export default ApplicationWindow;
\ No newline at end of file
index 5460bd3..63ba5f4 100644 (file)
@@ -92,7 +92,7 @@ const process = window.require('process');
 const Config = window.require('electron-store');
 const config = new Config();
 
-const lang = window.require(`${app.getAppPath()}/langs/${config.get('language')}.js`);
+const lang = window.require(`${app.getAppPath()}/langs/${config.get('language')}`);
 
 class BrowserView extends Component {
        constructor(props) {
@@ -330,18 +330,18 @@ class BrowserView extends Component {
 
        certificate = () => {
                const toolTip = findDOMNode(this.infomationTooltip)._tippy;
-               if (this.state.certificate.type === 'Internal')
+               if (this.state.certificate.type === 'Internal') {
                        toolTip.setContent(lang.window.toolBar.addressBar.info.clicked.internal);
-               if (this.state.certificate.type === 'Secure')
-                       toolTip.setContent(`<span style="color: green;">${this.state.certificate !== undefined ? `${this.state.certificate.title} [${this.state.certificate.country}]` : lang.window.toolBar.addressBar.info.clicked.secure}</span>`);
-               if (this.state.certificate.type === 'InSecure')
+               } else if (this.state.certificate.type === 'Secure') {
+                       toolTip.setContent(`<span style="color: green;">${this.state.certificate.title !== undefined && this.state.certificate.country !== undefined ? `${this.state.certificate.title} [${this.state.certificate.country}]` : lang.window.toolBar.addressBar.info.clicked.secure}</span>`);
+               } else if (this.state.certificate.type === 'InSecure') {
                        toolTip.setContent(`<span style="color: red;">${lang.window.toolBar.addressBar.info.clicked.insecure}</span>`);
-               if (toolTip.popperChildren.content !== undefined && toolTip.popperChildren.content !== null) {
-                       toolTip.show();
-                       setTimeout(() => {
-                               toolTip.hide();
-                       }, 1000 * 3);
                }
+
+               toolTip.show();
+               setTimeout(() => {
+                       toolTip.hide();
+               }, 1000 * 3);
        }
 
        bookMark = () => {
@@ -439,6 +439,11 @@ class BrowserView extends Component {
                                                icon: `${app.getAppPath()}/static/apps.png`,
                                                click: () => { this.props.addTab(`${protocolStr}://apps/`); }
                                        },
+                                       {
+                                               label: String(lang.window.toolBar.menu.menus.app.run).replace(/{title}/, lang.window.toolBar.menu.menus.app.name),
+                                               icon: `${app.getAppPath()}/static/apps.png`,
+                                               click: () => { ipcRenderer.send(`appWindow-add`, { url: this.state.viewUrl }); }
+                                       },
                                        { type: 'separator' },
                                        {
                                                label: lang.window.toolBar.menu.menus.app.store,
@@ -504,7 +509,7 @@ class BrowserView extends Component {
                                                isShowing={true} isRight={false} isMarginLeft={false} isEnabled={true} title={!this.state.isLoading ? lang.window.toolBar.reload.reload : lang.window.toolBar.reload.stop} onClick={() => { this.reload(); }} />
                                        <ToolbarButton isDarkModeOrPrivateMode={config.get('design.isDarkTheme') || String(this.props.windowId).startsWith('private')} src={this.isDarkModeOrPrivateMode.bind(this, LightHomeIcon, DarkHomeIcon)} size={24}
                                                isShowing={config.get('design.isHomeButton')} isRight={false} isMarginLeft={false} isEnabled={true} title={lang.window.toolBar.home} onClick={() => { this.goHome(); }} />
-                                       <ToolbarTextBoxWrapper isDarkModeOrPrivateMode={config.get('design.isDarkTheme') || String(this.props.windowId).startsWith('private')} buttonCount={config.get('design.isHomeButton') ? 6 : 5}>
+                                       <ToolbarTextBoxWrapper isDarkModeOrPrivateMode={config.get('design.isDarkTheme') || String(this.props.windowId).startsWith('private')}>
                                                <Tippy ref={ref => { this.infomationTooltip = ref; }} theme={config.get('design.isDarkTheme') || String(this.props.windowId).startsWith('private') ? 'dark' : 'light'} placement="right" arrow={true} trigger="manual">
                                                        <ToolbarButton src={this.state.certificate !== undefined && this.state.certificate !== null && (this.state.certificate.type === 'Internal' || this.state.certificate.type === 'Secure') ? this.isDarkModeOrPrivateMode.bind(this, LightSecureIcon, DarkSecureIcon) : this.isDarkModeOrPrivateMode.bind(this, LightInSecureIcon, DarkInSecureIcon)} size={12}
                                                                isShowing={true} isRight={false} isMarginLeft={true} isEnabled={true} title={lang.window.toolBar.addressBar.info.name} onClick={() => { this.certificate(); }} />
@@ -559,11 +564,11 @@ class BrowserWindow extends Component {
                        this.addTab(args.url);
                });
 
-               ipcRenderer.on(`browserView-get-${this.props.match.params.windowId}`, (e, args) => {
+               ipcRenderer.on(`tab-get-${this.props.match.params.windowId}`, (e, args) => {
                        this.setState({ tabs: args.views });
                });
 
-               ipcRenderer.on(`browserView-select-${this.props.match.params.windowId}`, (e, args) => {
+               ipcRenderer.on(`tab-select-${this.props.match.params.windowId}`, (e, args) => {
                        this.setState({ current: args.id });
                });
        }
@@ -605,18 +610,18 @@ class BrowserWindow extends Component {
        }
 
        getTabs = () => {
-               ipcRenderer.send(`browserView-get-${this.props.match.params.windowId}`, {});
+               ipcRenderer.send(`tab-get-${this.props.match.params.windowId}`, {});
        }
 
        addTab = (url = (config.get('homePage.isDefaultHomePage') ? `${protocolStr}://home/` : config.get('homePage.defaultPage'))) => {
-               ipcRenderer.send(`browserView-add-${this.props.match.params.windowId}`, { url, isActive: true });
-               ipcRenderer.send(`browserView-get-${this.props.match.params.windowId}`, {});
+               ipcRenderer.send(`tab-add-${this.props.match.params.windowId}`, { url, isActive: true });
+               ipcRenderer.send(`tab-get-${this.props.match.params.windowId}`, {});
                this.setState({ current: this.state.tabs.length });
        }
 
        removeTab = (i) => {
-               ipcRenderer.send(`browserView-remove-${this.props.match.params.windowId}`, { id: i });
-               ipcRenderer.send(`browserView-get-${this.props.match.params.windowId}`, {});
+               ipcRenderer.send(`tab-remove-${this.props.match.params.windowId}`, { id: i });
+               ipcRenderer.send(`tab-get-${this.props.match.params.windowId}`, {});
 
                this.forceUpdate();
                if ((this.state.tabs.length - 1) < 1) {
@@ -625,7 +630,7 @@ class BrowserWindow extends Component {
        }
 
        updateTab = () => {
-               ipcRenderer.send(`browserView-get-${this.props.match.params.windowId}`, {});
+               ipcRenderer.send(`tab-get-${this.props.match.params.windowId}`, {});
        }
 
        getForegroundColor = (hexColor) => {
@@ -685,7 +690,7 @@ class BrowserWindow extends Component {
                                                <TabContainer ref={ref => { this.tabContainer = ref; }}>
                                                        {this.state.tabs.map((tab, i) => {
                                                                return (
-                                                                       <Tab isDarkModeOrPrivateMode={config.get('design.isDarkTheme') || String(this.props.match.params.windowId).startsWith('private')} isActive={tab.id === this.state.current} isFixed={tab.fixed} accentColor={tab.color} onClick={() => { ipcRenderer.send(`browserView-select-${this.props.match.params.windowId}`, { id: tab.id }); this.forceUpdate(); }} onContextMenu={this.handleContextMenu.bind(this, tab.id)}>
+                                                                       <Tab isDarkModeOrPrivateMode={config.get('design.isDarkTheme') || String(this.props.match.params.windowId).startsWith('private')} isActive={tab.id === this.state.current} isFixed={tab.fixed} accentColor={tab.color} onClick={() => { ipcRenderer.send(`tab-select-${this.props.match.params.windowId}`, { id: tab.id }); this.forceUpdate(); }} onContextMenu={this.handleContextMenu.bind(this, tab.id)}>
                                                                                <TabIcon src={tab.icon !== undefined ? tab.icon : (config.get('design.isDarkTheme') || String(this.props.match.params.windowId).startsWith('private') ? DarkPublicIcon : LightPublicIcon)} width={18} height={18} />
                                                                                <TabTitle color={this.getForegroundColor(!config.get('design.isDarkTheme') || !String(this.props.match.params.windowId).startsWith('private') ? (platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535') : '#353535')} isAudioPlaying={tab.isAudioPlaying} isFixed={tab.fixed} title={tab.title}>{tab.title}</TabTitle>
                                                                                <TabCloseButton isActive={tab.id === this.state.current} isFixed={tab.fixed} isRight={true} src={this.isDarkModeOrPrivateMode.bind(this, LightCloseIcon, DarkCloseIcon)} size={14} title={lang.window.titleBar.tab.close} onClick={() => { this.removeTab(tab.id); this.forceUpdate(); }} />
@@ -697,17 +702,17 @@ class BrowserWindow extends Component {
                                        </Tabs>
                                        <WindowButtons isCustomTitlebar={config.get('design.isCustomTitlebar')} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)}>
                                                <WindowButton isClose={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.minimize} onClick={() => { remote.getCurrentWindow().minimize(); }}>
-                                                       <svg name="TitleBarMinimize" width="12" height="12" viewBox="0 0 12 12" fill={String(this.props.match.params.windowId).startsWith('private') ? '#ffffff' : '#000000'}>
+                                                       <svg name="TitleBarMinimize" width="12" height="12" viewBox="0 0 12 12" fill={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
                                                                <rect width="10" height="1" x="1" y="6" />
                                                        </svg>
                                                </WindowButton>
                                                <WindowButton isClose={false} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={remote.getCurrentWindow().isMaximized() ? lang.window.titleBar.buttons.maximize.restore : lang.window.titleBar.buttons.maximize.maximize} onClick={() => { remote.getCurrentWindow().isMaximized() ? remote.getCurrentWindow().unmaximize() : remote.getCurrentWindow().maximize(); this.forceUpdate(); }}>
-                                                       <svg name="TitleBarMaximize" width="12" height="12" viewBox="0 0 12 12" stroke={String(this.props.match.params.windowId).startsWith('private') ? '#ffffff' : '#000000'}>
+                                                       <svg name="TitleBarMaximize" width="12" height="12" viewBox="0 0 12 12" stroke={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
                                                                <rect fill="none" width="9" height="9" x="1.5" y="1.5" />
                                                        </svg>
                                                </WindowButton>
                                                <WindowButton isClose={true} isWindowsOrLinux={platform.isWin32 || !(platform.isWin32 && platform.isDarwin)} title={lang.window.titleBar.buttons.close} onClick={() => { this.closeWindow(); }}>
-                                                       <svg name="TitleBarClose" width="12" height="12" viewBox="0 0 12 12" fill={String(this.props.match.params.windowId).startsWith('private') ? '#ffffff' : '#000000'}>
+                                                       <svg name="TitleBarClose" width="12" height="12" viewBox="0 0 12 12" fill={this.getForegroundColor(platform.isWin32 || platform.isDarwin ? `#${systemPreferences.getAccentColor()}` : '#353535')}>
                                                                <polygon fill-rule="evenodd" points="11 1.576 6.583 6 11 10.424 10.424 11 6 6.583 1.576 11 1 10.424 5.417 6 1 1.576 1.576 1 6 5.417 10.424 1" />
                                                        </svg>
                                                </WindowButton>
index 293f1d2..a56e7bb 100644 (file)
@@ -1,7 +1,7 @@
 {
        "name": "Flast",
        "description": "Cross-platform browser based on Chromium.",
-       "version": "3.2.1",
+       "version": "3.3.5",
        "flast_channel": "Stable",
        "flast_package_id": "org.aoichaan0513.Flast",
        "private": true,