diff --git a/electron-builder.yml b/electron-builder.yml
index 29809bb43..138b10625 100644
--- a/electron-builder.yml
+++ b/electron-builder.yml
@@ -4,6 +4,11 @@ appId: app.ytmd
files:
- '**/*'
- '!LICENSE.md'
+ - '!CODE_OF_CONDUCT.md'
+ - '!CONTRIBUTING.md'
+ - '!README.md'
+ - '!STORE_VARIABLES.md'
+ - '!.prettierrc.json'
- '!package.json'
- '!package-lock.json'
- '!.cache'
@@ -13,14 +18,14 @@ electronDownload:
cache: '.cache/electron-builder/'
win:
- icon: assets
+ icon: src/assets
publish:
provider: generic
url: 'https://dl.ytmdesktop.app/win'
channel: latest
linux:
- icon: assets
+ icon: src/assets
category: AudioVideo
publish:
provider: generic
diff --git a/electron-builder64.yml b/electron-builder64.yml
index db140ef68..58df392c5 100644
--- a/electron-builder64.yml
+++ b/electron-builder64.yml
@@ -4,6 +4,11 @@ appId: app.ytmd
files:
- '**/*'
- '!LICENSE.md'
+ - '!CODE_OF_CONDUCT.md'
+ - '!CONTRIBUTING.md'
+ - '!README.md'
+ - '!STORE_VARIABLES.md'
+ - '!.prettierrc.json'
- '!package.json'
- '!package-lock.json'
- '!.cache'
@@ -13,14 +18,14 @@ electronDownload:
cache: '.cache/electron-builder/'
win:
- icon: assets
+ icon: src/assets
publish:
provider: generic
url: 'https://dl.ytmdesktop.app/win'
channel: latest
mac:
- icon: assets
+ icon: src/assets
category: public.app-category.music
darkModeSupport: true
target:
@@ -31,7 +36,7 @@ mac:
channel: latest
linux:
- icon: assets
+ icon: src/assets
category: AudioVideo
publish:
provider: generic
diff --git a/icons_for_shiny_tray.js b/icons_for_shiny_tray.js
deleted file mode 100644
index ecdf9e5f7..000000000
--- a/icons_for_shiny_tray.js
+++ /dev/null
@@ -1,26 +0,0 @@
-const icons = new Image(); // icons for YTMD
-icons.src = 'data:image/png;base64,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'
-
-const pause = new Image(); // Pause icon for dark mode
-pause.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJ3aGl0ZSIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+';
-
-const play = new Image(); // Play icon for dark mode
-play.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=';
-
-const pause_w = new Image(); // Pause icon for bright mode
-pause_w.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJibGFjayIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+';
-const play_w = new Image(); // Play icon for bright mode
-play_w.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=';
-
-const dark = {
- "pause": pause,
- "play": play,
- "icons": icons
-};
-const bright = {
- "pause": pause_w,
- "play": play_w,
- "icons": icons
-};
-exports.dark = dark;
-exports.bright = bright;
\ No newline at end of file
diff --git a/main.js b/main.js
index 7815e5871..51870e3fe 100644
--- a/main.js
+++ b/main.js
@@ -1,4 +1,4 @@
-require('./utils/defaultSettings')
+require('./src/utils/defaultSettings')
const {
app,
@@ -13,25 +13,25 @@ const {
shell,
} = require('electron')
const path = require('path')
-const __ = require('./providers/translateProvider')
const isDev = require('electron-is-dev')
const ClipboardWatcher = require('electron-clipboard-watcher')
const electronLocalshortcut = require('electron-localshortcut')
-const assetsProvider = require('./providers/assetsProvider')
-const scrobblerProvider = require('./providers/scrobblerProvider')
-const { statusBarMenu } = require('./providers/templateProvider')
-const settingsProvider = require('./providers/settingsProvider')
-const infoPlayerProvider = require('./providers/infoPlayerProvider')
-const rainmeterNowPlaying = require('./providers/rainmeterNowPlaying')
-const companionServer = require('./providers/companionServer')
-const discordRPC = require('./providers/discordRpcProvider')
-const mprisProvider = require('./providers/mprisProvider')
-
-const { calcYTViewSize } = require('./utils/calcYTViewSize')
-const { isWindows, isMac, isLinux } = require('./utils/systemInfo')
-const { checkWindowPosition, doBehavior } = require('./utils/window')
-const fileSystem = require('./utils/fileSystem')
+const __ = require('./src/providers/translateProvider')
+const assetsProvider = require('./src/providers/assetsProvider')
+const scrobblerProvider = require('./src/providers/scrobblerProvider')
+const { statusBarMenu } = require('./src/providers/templateProvider')
+const settingsProvider = require('./src/providers/settingsProvider')
+const infoPlayerProvider = require('./src/providers/infoPlayerProvider')
+const rainmeterNowPlaying = require('./src/providers/rainmeterNowPlaying')
+const companionServer = require('./src/providers/companionServer')
+const discordRPC = require('./src/providers/discordRpcProvider')
+const mprisProvider = require('./src/providers/mprisProvider')
+
+const { calcYTViewSize } = require('./src/utils/calcYTViewSize')
+const { isWindows, isMac, isLinux } = require('./src/utils/systemInfo')
+const { checkWindowPosition, doBehavior } = require('./src/utils/window')
+const fileSystem = require('./src/utils/fileSystem')
/* Variables =========================================================================== */
let mainWindow,
@@ -65,6 +65,10 @@ let windowConfig = {
}
global.sharedObj = { title: 'N/A', paused: true }
+
+let iconDefault = assetsProvider.getIcon('favicon')
+let iconPlay = assetsProvider.getIcon('favicon_play')
+let iconPause = assetsProvider.getIcon('favicon_pause')
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@@ -147,7 +151,7 @@ function createWindow() {
}
browserWindowConfig = {
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
width: mainWindowParams.width,
height: mainWindowParams.height,
minWidth: 300,
@@ -199,14 +203,17 @@ function createWindow() {
webPreferences: {
nodeIntegration: true,
webviewTag: true,
- preload: path.join(app.getAppPath(), '/utils/injectControls.js'),
+ preload: path.join(
+ app.getAppPath(),
+ '/src/utils/injectControls.js'
+ ),
},
})
mainWindow.loadFile(
path.join(
- __dirname,
- './pages/shared/window-buttons/window-buttons.html'
+ app.getAppPath(),
+ '/src/pages/shared/window-buttons/window-buttons.html'
),
{ search: 'page=home/home&title=YouTube Music' }
)
@@ -378,30 +385,15 @@ function createWindow() {
!mainWindow.isFocused() &&
settingsProvider.get('settings-show-notifications')
) {
- tray.balloon(
- title,
- author,
- cover,
- assetsProvider.getIcon('favicon')
- )
+ tray.balloon(title, author, cover, iconDefault)
}
}
if (!isMac() && !settingsProvider.get('settings-shiny-tray')) {
if (playerInfo.isPaused) {
- tray.updateTrayIcon(
- path.join(
- app.getAppPath(),
- assetsProvider.getIcon('favicon_pause')
- )
- )
+ tray.updateTrayIcon(path.join(app.getAppPath(), iconPause))
} else {
- tray.updateTrayIcon(
- path.join(
- app.getAppPath(),
- assetsProvider.getIcon('favicon_play')
- )
- )
+ tray.updateTrayIcon(path.join(app.getAppPath(), iconPlay))
}
}
}
@@ -729,7 +721,7 @@ function createWindow() {
} else {
settings = new BrowserWindow({
title: __.trans('LABEL_SETTINGS'),
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
modal: false,
frame: windowConfig.frame,
titleBarStyle: windowConfig.titleBarStyle,
@@ -751,8 +743,8 @@ function createWindow() {
settings.loadFile(
path.join(
- __dirname,
- './pages/shared/window-buttons/window-buttons.html'
+ app.getAppPath(),
+ '/src/pages/shared/window-buttons/window-buttons.html'
),
{
search:
@@ -769,7 +761,7 @@ function createWindow() {
function windowMiniplayer() {
miniplayer = new BrowserWindow({
title: __.trans('LABEL_MINIPLAYER'),
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
modal: false,
frame: false,
center: false,
@@ -787,7 +779,7 @@ function createWindow() {
})
miniplayer.loadFile(
- path.join(app.getAppPath(), '/pages/miniplayer/miniplayer.html')
+ path.join(app.getAppPath(), '/src/pages/miniplayer/miniplayer.html')
)
switch (settingsProvider.get('settings-miniplayer-size')) {
@@ -850,7 +842,7 @@ function createWindow() {
function windowLastFmLogin() {
const lastfm = new BrowserWindow({
//parent: mainWindow,
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
modal: false,
frame: windowConfig.frame,
titleBarStyle: windowConfig.titleBarStyle,
@@ -872,7 +864,7 @@ function createWindow() {
lastfm.loadFile(
path.join(
__dirname,
- './pages/shared/window-buttons/window-buttons.html'
+ './src/pages/shared/window-buttons/window-buttons.html'
),
{
search:
@@ -883,7 +875,7 @@ function createWindow() {
function windowThemeEditor() {
const editor = new BrowserWindow({
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
frame: windowConfig.frame,
titleBarStyle: windowConfig.titleBarStyle,
center: true,
@@ -902,7 +894,7 @@ function createWindow() {
editor.loadFile(
path.join(
__dirname,
- './pages/shared/window-buttons/window-buttons.html'
+ './src/pages/shared/window-buttons/window-buttons.html'
),
{
search:
@@ -916,6 +908,7 @@ function createWindow() {
lyrics.show()
} else {
lyrics = new BrowserWindow({
+ icon: iconDefault,
frame: windowConfig.frame,
titleBarStyle: windowConfig.titleBarStyle,
center: true,
@@ -923,7 +916,6 @@ function createWindow() {
backgroundColor: '#232323',
width: 700,
height: 800,
- icon: assetsProvider.getIcon('favicon'),
webPreferences: {
nodeIntegration: true,
webviewTag: true,
@@ -938,7 +930,7 @@ function createWindow() {
lyrics.loadFile(
path.join(
__dirname,
- './pages/shared/window-buttons/window-buttons.html'
+ './src/pages/shared/window-buttons/window-buttons.html'
),
{
search:
@@ -974,6 +966,7 @@ function createWindow() {
const width = 800
const settings = new BrowserWindow({
// parent: mainWindow,
+ icon: iconDefault,
skipTaskbar: false,
frame: windowConfig.frame,
titleBarStyle: windowConfig.titleBarStyle,
@@ -986,7 +979,6 @@ function createWindow() {
webPreferences: {
nodeIntegration: false,
},
- icon: assetsProvider.getIcon('favicon'),
autoHideMenuBar: true,
})
settings.loadURL('companionUrl')
@@ -994,7 +986,7 @@ function createWindow() {
function windowGuest() {
const incognitoWindow = new BrowserWindow({
- icon: assetsProvider.getIcon('favicon'),
+ icon: iconDefault,
width: mainWindowParams.width,
height: mainWindowParams.height,
minWidth: 300,
@@ -1220,7 +1212,7 @@ if (!gotTheLock) {
createWindow()
- tray.createTray(mainWindow, assetsProvider.getIcon('favicon'))
+ tray.createTray(mainWindow, iconDefault)
ipcMain.on('updated-tray-image', function(event, payload) {
if (settingsProvider.get('settings-shiny-tray'))
@@ -1365,10 +1357,10 @@ function loadCustomPageScript() {
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
-const mediaControl = require('./providers/mediaProvider')
-const tray = require('./providers/trayProvider')
-const updater = require('./providers/updateProvider')
-const analytics = require('./providers/analyticsProvider')
+const mediaControl = require('./src/providers/mediaProvider')
+const tray = require('./src/providers/trayProvider')
+const updater = require('./src/providers/updateProvider')
+const analytics = require('./src/providers/analyticsProvider')
analytics.setEvent('main', 'start', 'v' + app.getVersion(), app.getVersion())
analytics.setEvent('main', 'os', process.platform, process.platform)
diff --git a/package-lock.json b/package-lock.json
index c7bd56612..7263cffcb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -720,6 +720,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz",
"integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==",
+ "optional": true,
"requires": {
"node-gyp-build": "~3.7.0"
}
@@ -2655,11 +2656,6 @@
"escape-string-regexp": "^4.0.0"
}
},
- "materialize-css": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-1.0.0.tgz",
- "integrity": "sha512-4/oecXl8y/1i8RDZvyvwAICyqwNoKU4or5uf8uoAd74k76KzZ0Llym4zhJ5lLNUskcqjO0AuMcvNyDkpz8Z6zw=="
- },
"math-interval-parser": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz",
@@ -2830,7 +2826,8 @@
"node-gyp-build": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz",
- "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w=="
+ "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==",
+ "optional": true
},
"node-vibrant": {
"version": "3.1.5",
@@ -7689,6 +7686,7 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz",
"integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==",
+ "optional": true,
"requires": {
"node-gyp-build": "~3.7.0"
}
diff --git a/package.json b/package.json
index 8ae5b4bf6..5d657e3a8 100644
--- a/package.json
+++ b/package.json
@@ -7,10 +7,10 @@
"start": "npx electron .",
"pack": "npx electron-builder --dir",
"pack:x64": "npm run pack -- --x64 --config electron-builder64.yml",
- "dist": "npx electron-builder",
+ "dist": "npx electron-builder --dir",
"dist:x64": "npm run dist -- --x64 --config electron-builder64.yml",
- "publish:win": "build --win -p always --config electron-builder64.yml",
- "publish:mac": "build --mac -p always --config electron-builder64.yml",
+ "publish:win": "electron-builder --win -p always --config electron-builder64.yml",
+ "publish:mac": "electron-builder --mac -p always --config electron-builder64.yml",
"publish:lin": "electron-builder --linux -p always --config electron-builder64.yml"
},
"repository": "https://github.com/ytmdesktop/ytmdesktop",
@@ -34,7 +34,6 @@
},
"dependencies": {
"ace-builds": "^1.4.8",
- "bufferutil": "^4.0.1",
"discord-rpc": "^3.1.0",
"electron-canvas-to-buffer": "^2.0.0",
"electron-clipboard-watcher": "^1.0.1",
@@ -47,7 +46,6 @@
"i18n": "^0.8.5",
"image-to-base64": "^2.1.0",
"js-base64": "^2.5.1",
- "materialize-css": "^1.0.0",
"node-vibrant": "^3.1.5",
"npx": "^10.2.2",
"prettier": "^1.19.1",
@@ -56,11 +54,12 @@
"request": "^2.88.0",
"scribble": "0.0.5",
"socket.io": "^2.3.0",
- "utf-8-validate": "^5.0.2",
"ws": "^7.2.1"
},
"optionalDependencies": {
"@nodert-win10/windows.media.playback": "^0.2.96",
- "mpris-service": "^2.1.0"
+ "bufferutil": "^4.0.1",
+ "mpris-service": "^2.1.0",
+ "utf-8-validate": "^5.0.2"
}
}
diff --git a/pages/editor/editor.html b/pages/editor/editor.html
deleted file mode 100644
index dd6b1a87e..000000000
--- a/pages/editor/editor.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- save
-
-
-
-
-
-
diff --git a/pages/home/home.html b/pages/home/home.html
deleted file mode 100644
index c216392af..000000000
--- a/pages/home/home.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- YouTube Music
-
-
-
-
-
-
-
-
-
-
-
- signal_wifi_off
-
-
-
-
-
-
diff --git a/pages/miniplayer/miniplayer.html b/pages/miniplayer/miniplayer.html
deleted file mode 100644
index 64a94eab8..000000000
--- a/pages/miniplayer/miniplayer.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
- YouTube Music
-
-
-
-
-
-
-
-
-
-
- drag_indicator
-
-
- layers
-
-
- launch
-
-
-
-
- Title
-
-
-
- Author
-
-
-
- 0:00 / 0:00
-
-
-
-
- thumb_down
-
-
- skip_previous
-
-
- play_arrow
-
-
- skip_next
-
-
- thumb_up
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/settings/last-fm-login.html b/pages/settings/last-fm-login.html
deleted file mode 100644
index 4877d9159..000000000
--- a/pages/settings/last-fm-login.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/settings/mac_shiny.html b/pages/settings/mac_shiny.html
deleted file mode 100644
index e59af4504..000000000
--- a/pages/settings/mac_shiny.html
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-
-
- Settings
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- YTMDesktop App
-
- |
-
-
-
-
- Play / Pause
- |
-
-
-
- Previous Track
- |
-
-
-
- Next Track
- |
-
-
-
- Lyrics
- |
-
-
-
- Settings
- |
-
-
-
-
- Exit
- |
-
-
-
-
-
-
-
-
-
-
-
diff --git a/providers/discordRpcProvider.js b/providers/discordRpcProvider.js
deleted file mode 100644
index 1b3ba1e6c..000000000
--- a/providers/discordRpcProvider.js
+++ /dev/null
@@ -1,71 +0,0 @@
-const clientId = "495666957501071390";
-const RPC = require("discord-rpc");
-const startTimestamp = new Date();
-var client;
-
-var _isStarted;
-
-function isStarted() {
- return _isStarted;
-}
-
-function _setIsStarted(value) {
- _isStarted = value;
-}
-
-function start() {
- client = new RPC.Client({ transport: "ipc" });
-
- client.on("ready", () => {
- _setIsStarted(true);
- });
-
- client.login({ clientId }).catch(() => {
- if (!isStarted()) {
- setTimeout(function() {
- // console.log('trying to connect')
- start();
- }, 10000);
- }
- });
-
- client.on("disconnected", () => {
- _setIsStarted(false);
- start();
- });
-}
-
-function stop() {
- client.destroy();
- _setIsStarted(false);
-}
-
-function setActivity(info) {
- if (isStarted() && info.track.title) {
- var now = Date.now();
- client
- .setActivity({
- details: info.track.title,
- state: info.track.author,
- startTimestamp: now + info.player.seekbarCurrentPosition * 1000,
- endTimestamp:
- now +
- (info.track.duration - info.player.seekbarCurrentPosition) * 1000,
- largeImageKey: "ytm_logo_512",
- smallImageKey: info.player.isPaused
- ? "discordrpc-pause"
- : "discordrpc-play",
- instance: false
- })
- .catch(err => {
- console.log(err);
- });
- }
-}
-
-module.exports = {
- isStarted: isStarted,
- start: start,
- stop: stop,
- setActivity: setActivity
-};
diff --git a/providers/translateProvider.js b/providers/translateProvider.js
deleted file mode 100644
index fee4847a3..000000000
--- a/providers/translateProvider.js
+++ /dev/null
@@ -1,59 +0,0 @@
-const i18n = require("i18n");
-const settingsProvider = require("./settingsProvider");
-
-const defaultLocale = settingsProvider.get("settings-app-language", "en");
-
-i18n.configure({
- locales: ["en", "pt"],
- directory: __dirname + "/../locales",
- defaultLocale: defaultLocale
-});
-
-function setLocale(locale) {
- i18n.setLocale(locale);
-}
-
-function trans(id, params) {
- params = typeof params !== "undefined" ? params : {};
- try {
- let tmp = i18n.__(id, params);
- if (tmp === id) {
- return i18n.__({ phrase: id, locale: "en" }, params); // fallback to english
- } else {
- return tmp;
- }
- } catch (_) {
- return i18n.__({ phrase: id, locale: "en" }, params); // fallback to english
- }
-}
-
-function translateHelper() {
- const prefix = "i18n_";
- var items = [];
- var i18n_items = document.getElementsByTagName("*");
- for (var i = 0; i < i18n_items.length; i++) {
- //omitting undefined null check for brevity
- if (
- i18n_items[i].getAttribute("i18n") &&
- i18n_items[i].getAttribute("i18n").lastIndexOf(prefix, 0) === 0
- ) {
- items.push([
- i18n_items[i].getAttribute("i18n").replace("i18n_", ""),
- i18n_items[i]
- ]);
- }
- }
- return items;
-}
-
-function loadi18n() {
- translateHelper().forEach(([i18n, element]) => {
- element.innerHTML = trans(i18n);
- });
-}
-
-module.exports = {
- setLocale: setLocale,
- trans: trans,
- loadi18n: loadi18n
-};
diff --git a/assets/css/material_icons.css b/src/assets/css/material_icons.css
similarity index 100%
rename from assets/css/material_icons.css
rename to src/assets/css/material_icons.css
diff --git a/src/assets/css/materialize.min.css b/src/assets/css/materialize.min.css
new file mode 100644
index 000000000..74b1741b6
--- /dev/null
+++ b/src/assets/css/materialize.min.css
@@ -0,0 +1,13 @@
+/*!
+ * Materialize v1.0.0 (http://materializecss.com)
+ * Copyright 2014-2017 Materialize
+ * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
+ */
+.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:rgba(0,0,0,0) !important}.transparent-text{color:rgba(0,0,0,0) !important}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}button,input,optgroup,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default)>li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.clearfix{clear:both}.z-depth-0{-webkit-box-shadow:none !important;box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-small,.btn-floating,.dropdown-content,.collapsible,.sidenav{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-small:hover,.btn-floating:hover{-webkit-box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2);box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3);box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{-webkit-box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2);box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2)}.z-depth-4{-webkit-box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2);box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2)}.z-depth-5,.modal{-webkit-box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2);box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2)}.hoverable{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s}.hoverable:hover{-webkit-box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax-container .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax-container .parallax img{opacity:0;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 1201px){.hide-on-extra-large-only{display:none !important}}@media only screen and (min-width: 1201px){.show-on-extra-large{display:block !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;color:#fff;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table;border-collapse:collapse;border-spacing:0}table.striped tr{border-bottom:none}table.striped>tbody>tr:nth-child(odd){background-color:rgba(242,242,242,0.5)}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:rgba(242,242,242,0.5)}table.centered thead tr th,table.centered tbody tr td{text-align:center}tr{border-bottom:1px solid rgba(0,0,0,0.12)}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{border-bottom:none;padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid rgba(0,0,0,0.12)}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar:not(.circle-clipper)>.circle,.collection .collection-item.avatar :not(.circle-clipper)>.circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;-webkit-transition:.25s;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;-webkit-box-sizing:border-box;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px;-webkit-font-smoothing:auto}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-left:auto}.sidenav span.badge{margin-top:calc(24px - 11px)}table span.badge{display:inline-block;float:none;margin-left:auto}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.col .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width: 1201px){.row .col.xl1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.xl7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.sidenav-trigger{display:none}}nav .sidenav-trigger{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .sidenav-trigger i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{-webkit-transition:background-color .3s;transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{-webkit-transition:background-color .3s;transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-small,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-small>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;-webkit-box-shadow:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);-webkit-transition:color .3s;transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.sidenav-trigger,nav a.sidenav-trigger i{height:64px;line-height:64px}.navbar-fixed{height:64px}}a{text-decoration:none}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.3}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.8rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:2.3733333333rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.9466666667rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.52rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:1.0933333333rem 0 .656rem 0}h6{font-size:1.15rem;line-height:110%;margin:.7666666667rem 0 .46rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light{font-weight:300}.thin{font-weight:200}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{-webkit-transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .2s !important;transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);position:relative;padding:16px 24px}.card .card-action:last-child{border-radius:0 0 2px 2px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;-webkit-transition:color .3s ease;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;cursor:default}.toast .toast-action{color:#eeff41;font-weight:500;margin-right:-25px;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;-webkit-transition:color .28s ease, background-color .28s ease;transition:color .28s ease, background-color .28s ease}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:rgba(246,178,181,0.2);outline:none}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.4);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden;background-color:#323232}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-small,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.disabled.btn-small,.btn-floating.disabled,.btn-large.disabled,.btn-small.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-small:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-small:disabled,.btn-flat:disabled,.btn[disabled],.btn-large[disabled],.btn-small[disabled],.btn-floating[disabled],.btn-large[disabled],.btn-small[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;-webkit-box-shadow:none;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.disabled.btn-small:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-small.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-small,.btn-floating,.btn-large,.btn-small,.btn-flat{font-size:14px;outline:0}.btn i,.btn-large i,.btn-small i,.btn-floating i,.btn-large i,.btn-small i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-small:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover,.btn-small:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px;padding:0}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.btn-small{width:32.4px;height:32.4px}.btn-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-floating.btn-small i{line-height:32.4px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:997}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.direction-left,.fixed-action-btn.direction-right{padding:0 0 0 15px}.fixed-action-btn.direction-left ul,.fixed-action-btn.direction-right ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.direction-left ul li,.fixed-action-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fixed-action-btn.direction-right{padding:0 15px 0 0}.fixed-action-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fixed-action-btn.direction-right ul li{margin:7.5px 0 0 15px}.fixed-action-btn.direction-bottom{padding:0 0 15px 0}.fixed-action-btn.direction-bottom ul{top:64px;bottom:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.fixed-action-btn.direction-bottom ul li{margin:15px 0 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0;z-index:1}.fixed-action-btn.toolbar ul li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;-webkit-transition:none;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{-webkit-box-shadow:none;box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s}.btn-flat:focus,.btn-flat:hover{-webkit-box-shadow:none;box-shadow:none}.btn-flat:focus{background-color:rgba(0,0,0,0.1)}.btn-flat.disabled,.btn-flat.btn-flat[disabled]{background-color:transparent !important;color:#b3b2b2 !important;cursor:default}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;overflow-y:auto;opacity:0;position:absolute;left:0;top:0;z-index:9999;-webkit-transform-origin:0 0;transform-origin:0 0}.dropdown-content:focus{outline:0}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left}.dropdown-content li:hover,.dropdown-content li.active{background-color:#eee}.dropdown-content li:focus{outline:none}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}body.keyboard-focused .dropdown-content li:focus{background-color:#dadada}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px;-webkit-transform:none;transform:none}.dropdown-trigger{cursor:pointer}/*!
+ * Waves v0.6.0
+ * http://fian.my.id/Waves
+ *
+ * Copyright 2014 Alfiana E. Sibuea and other contributors
+ * Released under the MIT license
+ * https://github.com/fians/Waves/blob/master/LICENSE
+ */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;-webkit-transition:.3s ease-out;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all 0.7s ease-out;transition:all 0.7s ease-out;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{-webkit-transition:none !important;transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, white 100%, black 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}.modal:focus{outline:none}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%;text-align:right}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-small,.modal .modal-footer .btn-flat{margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-25%;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:1.5;padding:1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header:focus{outline:0}.collapsible-header i{width:2rem;font-size:1.6rem;display:inline-block;text-align:center;margin-right:1rem}.keyboard-focused .collapsible-header:focus{background-color:#eee}.collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2rem}.sidenav .collapsible,.sidenav.fixed .collapsible{border:none;-webkit-box-shadow:none;box-shadow:none}.sidenav .collapsible li,.sidenav.fixed .collapsible li{padding:0}.sidenav .collapsible-header,.sidenav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.sidenav .collapsible-header:hover,.sidenav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.sidenav .collapsible-header i,.sidenav.fixed .collapsible-header i{line-height:inherit}.sidenav .collapsible-body,.sidenav.fixed .collapsible-body{border:0;background-color:#fff}.sidenav .collapsible-body li a,.sidenav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;-webkit-box-shadow:none;box-shadow:none}.collapsible.popout>li{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;-webkit-transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip:focus{outline:none;background-color:#26a69a;color:#fff}.chip>img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;-webkit-box-shadow:none;box-shadow:none;margin:0 0 8px 0;min-height:45px;outline:none;-webkit-transition:all .3s;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:16px;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;-webkit-box-shadow:none !important;box-shadow:none !important}.chips .autocomplete-content{margin-top:0;margin-bottom:0}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;-webkit-transition:opacity .4s;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}::-ms-input-placeholder{color:#d1d1d1}::placeholder{color:#d1d1d1}input:not([type]),input[type=text]:not(.browser-default),input[type=password]:not(.browser-default),input[type=email]:not(.browser-default),input[type=url]:not(.browser-default),input[type=time]:not(.browser-default),input[type=date]:not(.browser-default),input[type=datetime]:not(.browser-default),input[type=datetime-local]:not(.browser-default),input[type=tel]:not(.browser-default),input[type=number]:not(.browser-default),input[type=search]:not(.browser-default),textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-transition:border .3s, -webkit-box-shadow .3s;transition:border .3s, -webkit-box-shadow .3s;transition:box-shadow .3s, border .3s;transition:box-shadow .3s, border .3s, -webkit-box-shadow .3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:not(.browser-default):disabled,input[type=text]:not(.browser-default)[readonly="readonly"],input[type=password]:not(.browser-default):disabled,input[type=password]:not(.browser-default)[readonly="readonly"],input[type=email]:not(.browser-default):disabled,input[type=email]:not(.browser-default)[readonly="readonly"],input[type=url]:not(.browser-default):disabled,input[type=url]:not(.browser-default)[readonly="readonly"],input[type=time]:not(.browser-default):disabled,input[type=time]:not(.browser-default)[readonly="readonly"],input[type=date]:not(.browser-default):disabled,input[type=date]:not(.browser-default)[readonly="readonly"],input[type=datetime]:not(.browser-default):disabled,input[type=datetime]:not(.browser-default)[readonly="readonly"],input[type=datetime-local]:not(.browser-default):disabled,input[type=datetime-local]:not(.browser-default)[readonly="readonly"],input[type=tel]:not(.browser-default):disabled,input[type=tel]:not(.browser-default)[readonly="readonly"],input[type=number]:not(.browser-default):disabled,input[type=number]:not(.browser-default)[readonly="readonly"],input[type=search]:not(.browser-default):disabled,input[type=search]:not(.browser-default)[readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.42);border-bottom:1px dotted rgba(0,0,0,0.42)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:not(.browser-default):disabled+label,input[type=text]:not(.browser-default)[readonly="readonly"]+label,input[type=password]:not(.browser-default):disabled+label,input[type=password]:not(.browser-default)[readonly="readonly"]+label,input[type=email]:not(.browser-default):disabled+label,input[type=email]:not(.browser-default)[readonly="readonly"]+label,input[type=url]:not(.browser-default):disabled+label,input[type=url]:not(.browser-default)[readonly="readonly"]+label,input[type=time]:not(.browser-default):disabled+label,input[type=time]:not(.browser-default)[readonly="readonly"]+label,input[type=date]:not(.browser-default):disabled+label,input[type=date]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime]:not(.browser-default):disabled+label,input[type=datetime]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime-local]:not(.browser-default):disabled+label,input[type=datetime-local]:not(.browser-default)[readonly="readonly"]+label,input[type=tel]:not(.browser-default):disabled+label,input[type=tel]:not(.browser-default)[readonly="readonly"]+label,input[type=number]:not(.browser-default):disabled+label,input[type=number]:not(.browser-default)[readonly="readonly"]+label,input[type=search]:not(.browser-default):disabled+label,input[type=search]:not(.browser-default)[readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.42)}input:not([type]):focus:not([readonly]),input[type=text]:not(.browser-default):focus:not([readonly]),input[type=password]:not(.browser-default):focus:not([readonly]),input[type=email]:not(.browser-default):focus:not([readonly]),input[type=url]:not(.browser-default):focus:not([readonly]),input[type=time]:not(.browser-default):focus:not([readonly]),input[type=date]:not(.browser-default):focus:not([readonly]),input[type=datetime]:not(.browser-default):focus:not([readonly]),input[type=datetime-local]:not(.browser-default):focus:not([readonly]),input[type=tel]:not(.browser-default):focus:not([readonly]),input[type=number]:not(.browser-default):focus:not([readonly]),input[type=search]:not(.browser-default):focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:not(.browser-default):focus:not([readonly])+label,input[type=password]:not(.browser-default):focus:not([readonly])+label,input[type=email]:not(.browser-default):focus:not([readonly])+label,input[type=url]:not(.browser-default):focus:not([readonly])+label,input[type=time]:not(.browser-default):focus:not([readonly])+label,input[type=date]:not(.browser-default):focus:not([readonly])+label,input[type=datetime]:not(.browser-default):focus:not([readonly])+label,input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label,input[type=tel]:not(.browser-default):focus:not([readonly])+label,input[type=number]:not(.browser-default):focus:not([readonly])+label,input[type=search]:not(.browser-default):focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]):focus.valid ~ label,input[type=text]:not(.browser-default):focus.valid ~ label,input[type=password]:not(.browser-default):focus.valid ~ label,input[type=email]:not(.browser-default):focus.valid ~ label,input[type=url]:not(.browser-default):focus.valid ~ label,input[type=time]:not(.browser-default):focus.valid ~ label,input[type=date]:not(.browser-default):focus.valid ~ label,input[type=datetime]:not(.browser-default):focus.valid ~ label,input[type=datetime-local]:not(.browser-default):focus.valid ~ label,input[type=tel]:not(.browser-default):focus.valid ~ label,input[type=number]:not(.browser-default):focus.valid ~ label,input[type=search]:not(.browser-default):focus.valid ~ label,textarea.materialize-textarea:focus.valid ~ label{color:#4CAF50}input:not([type]):focus.invalid ~ label,input[type=text]:not(.browser-default):focus.invalid ~ label,input[type=password]:not(.browser-default):focus.invalid ~ label,input[type=email]:not(.browser-default):focus.invalid ~ label,input[type=url]:not(.browser-default):focus.invalid ~ label,input[type=time]:not(.browser-default):focus.invalid ~ label,input[type=date]:not(.browser-default):focus.invalid ~ label,input[type=datetime]:not(.browser-default):focus.invalid ~ label,input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,input[type=tel]:not(.browser-default):focus.invalid ~ label,input[type=number]:not(.browser-default):focus.invalid ~ label,input[type=search]:not(.browser-default):focus.invalid ~ label,textarea.materialize-textarea:focus.invalid ~ label{color:#F44336}input:not([type]).validate+label,input[type=text]:not(.browser-default).validate+label,input[type=password]:not(.browser-default).validate+label,input[type=email]:not(.browser-default).validate+label,input[type=url]:not(.browser-default).validate+label,input[type=time]:not(.browser-default).validate+label,input[type=date]:not(.browser-default).validate+label,input[type=datetime]:not(.browser-default).validate+label,input[type=datetime-local]:not(.browser-default).validate+label,input[type=tel]:not(.browser-default).validate+label,input[type=number]:not(.browser-default).validate+label,input[type=search]:not(.browser-default).validate+label,textarea.materialize-textarea.validate+label{width:100%}input.valid:not([type]),input.valid:not([type]):focus,input.valid[type=text]:not(.browser-default),input.valid[type=text]:not(.browser-default):focus,input.valid[type=password]:not(.browser-default),input.valid[type=password]:not(.browser-default):focus,input.valid[type=email]:not(.browser-default),input.valid[type=email]:not(.browser-default):focus,input.valid[type=url]:not(.browser-default),input.valid[type=url]:not(.browser-default):focus,input.valid[type=time]:not(.browser-default),input.valid[type=time]:not(.browser-default):focus,input.valid[type=date]:not(.browser-default),input.valid[type=date]:not(.browser-default):focus,input.valid[type=datetime]:not(.browser-default),input.valid[type=datetime]:not(.browser-default):focus,input.valid[type=datetime-local]:not(.browser-default),input.valid[type=datetime-local]:not(.browser-default):focus,input.valid[type=tel]:not(.browser-default),input.valid[type=tel]:not(.browser-default):focus,input.valid[type=number]:not(.browser-default),input.valid[type=number]:not(.browser-default):focus,input.valid[type=search]:not(.browser-default),input.valid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.valid,textarea.materialize-textarea.valid:focus,.select-wrapper.valid>input.select-dropdown{border-bottom:1px solid #4CAF50;-webkit-box-shadow:0 1px 0 0 #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input.invalid:not([type]),input.invalid:not([type]):focus,input.invalid[type=text]:not(.browser-default),input.invalid[type=text]:not(.browser-default):focus,input.invalid[type=password]:not(.browser-default),input.invalid[type=password]:not(.browser-default):focus,input.invalid[type=email]:not(.browser-default),input.invalid[type=email]:not(.browser-default):focus,input.invalid[type=url]:not(.browser-default),input.invalid[type=url]:not(.browser-default):focus,input.invalid[type=time]:not(.browser-default),input.invalid[type=time]:not(.browser-default):focus,input.invalid[type=date]:not(.browser-default),input.invalid[type=date]:not(.browser-default):focus,input.invalid[type=datetime]:not(.browser-default),input.invalid[type=datetime]:not(.browser-default):focus,input.invalid[type=datetime-local]:not(.browser-default),input.invalid[type=datetime-local]:not(.browser-default):focus,input.invalid[type=tel]:not(.browser-default),input.invalid[type=tel]:not(.browser-default):focus,input.invalid[type=number]:not(.browser-default),input.invalid[type=number]:not(.browser-default):focus,input.invalid[type=search]:not(.browser-default),input.invalid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.invalid,textarea.materialize-textarea.invalid:focus,.select-wrapper.invalid>input.select-dropdown,.select-wrapper.invalid>input.select-dropdown:focus{border-bottom:1px solid #F44336;-webkit-box-shadow:0 1px 0 0 #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).valid ~ .helper-text[data-success],input:not([type]):focus.valid ~ .helper-text[data-success],input:not([type]).invalid ~ .helper-text[data-error],input:not([type]):focus.invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],textarea.materialize-textarea.valid ~ .helper-text[data-success],textarea.materialize-textarea:focus.valid ~ .helper-text[data-success],textarea.materialize-textarea.invalid ~ .helper-text[data-error],textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error],.select-wrapper.valid .helper-text[data-success],.select-wrapper.invalid ~ .helper-text[data-error]{color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}input:not([type]).valid ~ .helper-text:after,input:not([type]):focus.valid ~ .helper-text:after,input[type=text]:not(.browser-default).valid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=password]:not(.browser-default).valid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=email]:not(.browser-default).valid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=url]:not(.browser-default).valid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=time]:not(.browser-default).valid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=date]:not(.browser-default).valid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=tel]:not(.browser-default).valid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=number]:not(.browser-default).valid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=search]:not(.browser-default).valid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,textarea.materialize-textarea.valid ~ .helper-text:after,textarea.materialize-textarea:focus.valid ~ .helper-text:after,.select-wrapper.valid ~ .helper-text:after{content:attr(data-success);color:#4CAF50}input:not([type]).invalid ~ .helper-text:after,input:not([type]):focus.invalid ~ .helper-text:after,input[type=text]:not(.browser-default).invalid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=password]:not(.browser-default).invalid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=email]:not(.browser-default).invalid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=url]:not(.browser-default).invalid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=time]:not(.browser-default).invalid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=date]:not(.browser-default).invalid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=number]:not(.browser-default).invalid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=search]:not(.browser-default).invalid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,textarea.materialize-textarea.invalid ~ .helper-text:after,textarea.materialize-textarea:focus.invalid ~ .helper-text:after,.select-wrapper.invalid ~ .helper-text:after{content:attr(data-error);color:#F44336}input:not([type])+label:after,input[type=text]:not(.browser-default)+label:after,input[type=password]:not(.browser-default)+label:after,input[type=email]:not(.browser-default)+label:after,input[type=url]:not(.browser-default)+label:after,input[type=time]:not(.browser-default)+label:after,input[type=date]:not(.browser-default)+label:after,input[type=datetime]:not(.browser-default)+label:after,input[type=datetime-local]:not(.browser-default)+label:after,input[type=tel]:not(.browser-default)+label:after,input[type=number]:not(.browser-default)+label:after,input[type=search]:not(.browser-default)+label:after,textarea.materialize-textarea+label:after,.select-wrapper+label:after{display:block;content:"";position:absolute;top:100%;left:0;opacity:0;-webkit-transition:.2s opacity ease-out, .2s color ease-out;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem;margin-bottom:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field>label{color:#9e9e9e;position:absolute;top:0;left:0;font-size:1rem;cursor:text;-webkit-transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:transform .2s ease-out, color .2s ease-out;transition:transform .2s ease-out, color .2s ease-out, -webkit-transform .2s ease-out;-webkit-transform-origin:0% 100%;transform-origin:0% 100%;text-align:initial;-webkit-transform:translateY(12px);transform:translateY(12px)}.input-field>label:not(.label-icon).active{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field>input[type]:-webkit-autofill:not(.browser-default):not([type="search"])+label,.input-field>input[type=date]:not(.browser-default)+label,.input-field>input[type=time]:not(.browser-default)+label{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field .helper-text{position:relative;min-height:18px;display:block;font-size:12px;color:rgba(0,0,0,0.54)}.input-field .helper-text::after{opacity:1;position:absolute;top:0;left:0}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;-webkit-transition:color .2s;transition:color .2s;top:.5rem}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .helper-text,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;-webkit-transition:.3s background-color;transition:.3s background-color}.nav-wrapper .input-field input[type=search]{height:inherit;padding-left:4rem;width:calc(100% - 4rem);border:0;-webkit-box-shadow:none;box-shadow:none}.input-field input[type=search]:focus:not(.browser-default){background-color:#fff;border:0;-webkit-box-shadow:none;box-shadow:none;color:#444}.input-field input[type=search]:focus:not(.browser-default)+label i,.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close,.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons{color:#444}.input-field input[type=search]+.label-icon{-webkit-transform:none;transform:none;left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;-webkit-transition:.3s color;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{line-height:normal;overflow-y:hidden;padding:.8rem 0 .8rem 0;resize:none;min-height:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.hiddendiv{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem;position:absolute;top:0;z-index:-1}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}.character-counter{min-height:18px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;opacity:0;pointer-events:none}[type="radio"]:not(:checked)+span,[type="radio"]:checked+span{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+span:before,[type="radio"]+span:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;transition:.28s ease}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after,[type="radio"]:checked+span:before,[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border-radius:50%}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+span:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+span:before{border:2px solid transparent}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border:2px solid #26a69a}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:after{background-color:#26a69a}[type="radio"]:checked+span:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+span:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+span:before{-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+span:before{border:2px solid rgba(0,0,0,0.42)}[type="radio"].with-gap:disabled:checked+span:after{border:none;background-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before,[type="radio"]:disabled:checked+span:before{background-color:transparent;border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled+span{color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before{border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:checked+span:after{background-color:rgba(0,0,0,0.42);border-color:#949494}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;opacity:0;pointer-events:none}[type="checkbox"]+span:not(.lever){position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="checkbox"]+span:not(.lever):before,[type="checkbox"]:not(.filled-in)+span:not(.lever):after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:3px;-webkit-transition:.2s;transition:.2s}[type="checkbox"]:not(.filled-in)+span:not(.lever):after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+span:not(.lever):before{border:none;background-color:rgba(0,0,0,0.42)}[type="checkbox"].tabbed:focus+span:not(.lever):after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+span:not(.lever):before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+span:before{border-right:2px solid rgba(0,0,0,0.42);border-bottom:2px solid rgba(0,0,0,0.42)}[type="checkbox"]:indeterminate+span:not(.lever):before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+span:not(.lever):before{border-right:2px solid rgba(0,0,0,0.42);background-color:transparent}[type="checkbox"].filled-in+span:not(.lever):after{border-radius:2px}[type="checkbox"].filled-in+span:not(.lever):before,[type="checkbox"].filled-in+span:not(.lever):after{content:'';left:0;position:absolute;-webkit-transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+span:not(.lever):before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+span:not(.lever):after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+span:not(.lever):after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):after{border-color:transparent;background-color:#949494}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):after{background-color:#949494;border-color:#949494}.switch,.switch *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:before,.switch label input[type=checkbox]:checked+.lever:after{left:18px}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a}.switch label .lever{content:"";display:inline-block;position:relative;width:36px;height:14px;background-color:rgba(0,0,0,0.38);border-radius:15px;margin-right:10px;-webkit-transition:background 0.3s ease;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:before,.switch label .lever:after{content:"";position:absolute;display:inline-block;width:20px;height:20px;border-radius:50%;left:0;top:-3px;-webkit-transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease}.switch label .lever:before{background-color:rgba(38,166,154,0.15)}.switch label .lever:after{background-color:#F1F1F1;-webkit-box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(38,166,154,0.15)}input[type=checkbox]:not(:disabled) ~ .lever:active:before,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default;background-color:rgba(0,0,0,0.12)}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#949494}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper.valid+label,.select-wrapper.invalid+label{width:100%;pointer-events:none}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.select-wrapper input.select-dropdown:focus{border-bottom:1px solid #26a69a}.select-wrapper .caret{position:absolute;right:0;top:0;bottom:0;margin:auto 0;z-index:0;fill:rgba(0,0,0,0.87)}.select-wrapper+label{position:absolute;top:-26px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.42)}.select-wrapper.disabled+label{color:rgba(0,0,0,0.42)}.select-wrapper.disabled .caret{fill:rgba(0,0,0,0.42)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.42);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}body.keyboard-focused .select-dropdown.dropdown-content li:focus{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li:hover{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li.selected{background-color:rgba(0,0,0,0.03)}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large,.file-field .btn-small{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.file-field input[type=file]::-webkit-file-upload-button{display:none}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;top:10px;left:0;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;margin-left:7px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;-webkit-appearance:none;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0}.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-moz-focus-inner{border:0}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s}.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:16px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:15px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:14px;border-left:2px solid #ee6e73}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,0.05)}.sidenav li>a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0,0.05)}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-flat,.sidenav li>a.btn-floating{margin:10px 15px}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-floating{color:#fff}.sidenav li>a.btn-flat{color:#343434}.sidenav li>a.btn:hover,.sidenav li>a.btn-large:hover,.sidenav li>a.btn-small:hover,.sidenav li>a.btn-large:hover{background-color:#2bbbad}.sidenav li>a.btn-floating:hover{background-color:#26a69a}.sidenav li>a>i,.sidenav li>a>[class^="mdi-"],.sidenav li>a li>a>[class*="mdi-"],.sidenav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.sidenav .divider{margin:8px 0 0 0}.sidenav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.sidenav .subheader:hover{background-color:transparent}.sidenav .user-view{position:relative;padding:32px 32px 0;margin-bottom:8px}.sidenav .user-view>a{height:auto;padding:0}.sidenav .user-view>a:hover{background-color:transparent}.sidenav .user-view .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.sidenav .user-view .circle,.sidenav .user-view .name,.sidenav .user-view .email{display:block}.sidenav .user-view .circle{height:64px;width:64px}.sidenav .user-view .name,.sidenav .user-view .email{font-size:14px;line-height:24px}.sidenav .user-view .name{margin-top:16px;font-weight:500}.sidenav .user-view .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.drag-target.right-aligned{right:0}.sidenav.sidenav-fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.sidenav.sidenav-fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.sidenav.sidenav-fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.sidenav-fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.sidenav>a{padding:0 16px}.sidenav .user-view{padding:16px 16px 0}}.sidenav .collapsible-body>ul:not(.collapsible)>li.active,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.sidenav .collapsible-body>ul:not(.collapsible)>li.active a,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.sidenav .collapsible-body{padding:0}.sidenav-overlay{position:fixed;top:0;left:0;right:0;opacity:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;display:none}.preloader-wrapper{display:inline-block;position:relative;width:50px;height:50px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{visibility:hidden;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item>img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.carousel.scrolling .carousel-item .materialboxed,.carousel .carousel-item:not(.active) .materialboxed{pointer-events:none}.tap-target-wrapper{width:800px;height:800px;position:fixed;z-index:1000;visibility:hidden;-webkit-transition:visibility 0s .3s;transition:visibility 0s .3s}.tap-target-wrapper.open{visibility:visible;-webkit-transition:visibility 0s;transition:visibility 0s}.tap-target-wrapper.open .tap-target{-webkit-transform:scale(1);transform:scale(1);opacity:.95;-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-wrapper.open .tap-target-wave::before{-webkit-transform:scale(1);transform:scale(1)}.tap-target-wrapper.open .tap-target-wave::after{visibility:visible;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;-webkit-transition:opacity .3s,
visibility 0s 1s,
-webkit-transform .3s;transition:opacity .3s,
visibility 0s 1s,
-webkit-transform .3s;transition:opacity .3s,
transform .3s,
visibility 0s 1s;transition:opacity .3s,
transform .3s,
visibility 0s 1s,
-webkit-transform .3s}.tap-target{position:absolute;font-size:1rem;border-radius:50%;background-color:#ee6e73;-webkit-box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);width:100%;height:100%;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-content{position:relative;display:table-cell}.tap-target-wave{position:absolute;border-radius:50%;z-index:10001}.tap-target-wave::before,.tap-target-wave::after{content:'';display:block;position:absolute;width:100%;height:100%;border-radius:50%;background-color:#ffffff}.tap-target-wave::before{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.tap-target-wave::after{visibility:hidden;-webkit-transition:opacity .3s,
visibility 0s,
-webkit-transform .3s;transition:opacity .3s,
visibility 0s,
-webkit-transform .3s;transition:opacity .3s,
transform .3s,
visibility 0s;transition:opacity .3s,
transform .3s,
visibility 0s,
-webkit-transform .3s;z-index:-1}.tap-target-origin{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:10002;position:absolute !important}.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small),.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small):hover{background:none}@media only screen and (max-width: 600px){.tap-target,.tap-target-wrapper{width:600px;height:600px}}.pulse{overflow:visible;position:relative}.pulse::before{content:'';display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:inherit;border-radius:inherit;-webkit-transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, transform .3s;transition:opacity .3s, transform .3s, -webkit-transform .3s;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;z-index:-1}@-webkit-keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.datepicker-modal{max-width:325px;min-width:300px;max-height:none}.datepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.datepicker-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:280px;margin:0 auto}.datepicker-controls .selects-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.datepicker-controls .select-wrapper input{border-bottom:none;text-align:center;margin:0}.datepicker-controls .select-wrapper input:focus{border-bottom:none}.datepicker-controls .select-wrapper .caret{display:none}.datepicker-controls .select-year input{width:50px}.datepicker-controls .select-month input{width:70px}.month-prev,.month-next{margin-top:4px;cursor:pointer;background-color:transparent;border:none}.datepicker-date-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;color:#fff;padding:20px 22px;font-weight:500}.datepicker-date-display .year-text{display:block;font-size:1.5rem;line-height:25px;color:rgba(255,255,255,0.7)}.datepicker-date-display .date-text{display:block;font-size:2.8rem;line-height:47px;font-weight:500}.datepicker-calendar-container{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.datepicker-table{width:280px;font-size:1rem;margin:0 auto}.datepicker-table thead{border-bottom:none}.datepicker-table th{padding:10px 5px;text-align:center}.datepicker-table tr{border:none}.datepicker-table abbr{text-decoration:none;color:#999}.datepicker-table td{border-radius:50%;padding:0}.datepicker-table td.is-today{color:#26a69a}.datepicker-table td.is-selected{background-color:#26a69a;color:#fff}.datepicker-table td.is-outside-current-month,.datepicker-table td.is-disabled{color:rgba(0,0,0,0.3);pointer-events:none}.datepicker-day-button{background-color:transparent;border:none;line-height:38px;display:block;width:100%;border-radius:50%;padding:0 5px;cursor:pointer;color:inherit}.datepicker-day-button:focus{background-color:rgba(43,161,150,0.25)}.datepicker-footer{width:280px;margin:0 auto;padding-bottom:5px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.datepicker-cancel,.datepicker-clear,.datepicker-today,.datepicker-done{color:#26a69a;padding:0 1rem}.datepicker-clear{color:#F44336}@media only screen and (min-width: 601px){.datepicker-modal{max-width:625px}.datepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.datepicker-date-display{-webkit-box-flex:0;-webkit-flex:0 1 270px;-ms-flex:0 1 270px;flex:0 1 270px}.datepicker-controls,.datepicker-table,.datepicker-footer{width:320px}.datepicker-day-button{line-height:44px}}.timepicker-modal{max-width:325px;max-height:none}.timepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.text-primary{color:#fff}.timepicker-digital-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;padding:10px;font-weight:300}.timepicker-text-container{font-size:4rem;font-weight:bold;text-align:center;color:rgba(255,255,255,0.6);font-weight:400;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-span-hours,.timepicker-span-minutes,.timepicker-span-am-pm div{cursor:pointer}.timepicker-span-hours{margin-right:3px}.timepicker-span-minutes{margin-left:3px}.timepicker-display-am-pm{font-size:1.3rem;position:absolute;right:1rem;bottom:1rem;font-weight:400}.timepicker-analog-display{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.timepicker-plate{background-color:#eee;border-radius:50%;width:270px;height:270px;overflow:visible;position:relative;margin:auto;margin-top:25px;margin-bottom:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-canvas,.timepicker-dial{position:absolute;left:0;right:0;top:0;bottom:0}.timepicker-minutes{visibility:hidden}.timepicker-tick{border-radius:50%;color:rgba(0,0,0,0.87);line-height:40px;text-align:center;width:40px;height:40px;position:absolute;cursor:pointer;font-size:15px}.timepicker-tick.active,.timepicker-tick:hover{background-color:rgba(38,166,154,0.25)}.timepicker-dial{-webkit-transition:opacity 350ms, -webkit-transform 350ms;transition:opacity 350ms, -webkit-transform 350ms;transition:transform 350ms, opacity 350ms;transition:transform 350ms, opacity 350ms, -webkit-transform 350ms}.timepicker-dial-out{opacity:0}.timepicker-dial-out.timepicker-hours{-webkit-transform:scale(1.1, 1.1);transform:scale(1.1, 1.1)}.timepicker-dial-out.timepicker-minutes{-webkit-transform:scale(0.8, 0.8);transform:scale(0.8, 0.8)}.timepicker-canvas{-webkit-transition:opacity 175ms;transition:opacity 175ms}.timepicker-canvas line{stroke:#26a69a;stroke-width:4;stroke-linecap:round}.timepicker-canvas-out{opacity:0.25}.timepicker-canvas-bearing{stroke:none;fill:#26a69a}.timepicker-canvas-bg{stroke:none;fill:#26a69a}.timepicker-footer{margin:0 auto;padding:5px 1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.timepicker-clear{color:#F44336}.timepicker-close{color:#26a69a}.timepicker-clear,.timepicker-close{padding:0 20px}@media only screen and (min-width: 601px){.timepicker-modal{max-width:600px}.timepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.timepicker-text-container{top:32%}.timepicker-display-am-pm{position:relative;right:auto;bottom:auto;text-align:center;margin-top:1.2rem}}
diff --git a/assets/css/styles.css b/src/assets/css/styles.css
similarity index 100%
rename from assets/css/styles.css
rename to src/assets/css/styles.css
diff --git a/assets/favicon.16x16.png b/src/assets/favicon.16x16.png
similarity index 100%
rename from assets/favicon.16x16.png
rename to src/assets/favicon.16x16.png
diff --git a/assets/favicon.256x256.png b/src/assets/favicon.256x256.png
similarity index 100%
rename from assets/favicon.256x256.png
rename to src/assets/favicon.256x256.png
diff --git a/assets/favicon.512x512.png b/src/assets/favicon.512x512.png
similarity index 100%
rename from assets/favicon.512x512.png
rename to src/assets/favicon.512x512.png
diff --git a/assets/favicon.icns b/src/assets/favicon.icns
similarity index 100%
rename from assets/favicon.icns
rename to src/assets/favicon.icns
diff --git a/assets/favicon.ico b/src/assets/favicon.ico
similarity index 100%
rename from assets/favicon.ico
rename to src/assets/favicon.ico
diff --git a/assets/favicon.png b/src/assets/favicon.png
similarity index 100%
rename from assets/favicon.png
rename to src/assets/favicon.png
diff --git a/assets/favicon_pause.icns b/src/assets/favicon_pause.icns
similarity index 100%
rename from assets/favicon_pause.icns
rename to src/assets/favicon_pause.icns
diff --git a/assets/favicon_pause.ico b/src/assets/favicon_pause.ico
similarity index 100%
rename from assets/favicon_pause.ico
rename to src/assets/favicon_pause.ico
diff --git a/assets/favicon_pause.png b/src/assets/favicon_pause.png
similarity index 100%
rename from assets/favicon_pause.png
rename to src/assets/favicon_pause.png
diff --git a/assets/favicon_play.icns b/src/assets/favicon_play.icns
similarity index 100%
rename from assets/favicon_play.icns
rename to src/assets/favicon_play.icns
diff --git a/assets/favicon_play.ico b/src/assets/favicon_play.ico
similarity index 100%
rename from assets/favicon_play.ico
rename to src/assets/favicon_play.ico
diff --git a/assets/favicon_play.png b/src/assets/favicon_play.png
similarity index 100%
rename from assets/favicon_play.png
rename to src/assets/favicon_play.png
diff --git a/assets/fonts/normal.woff2 b/src/assets/fonts/normal.woff2
similarity index 100%
rename from assets/fonts/normal.woff2
rename to src/assets/fonts/normal.woff2
diff --git a/assets/fonts/outlined.woff2 b/src/assets/fonts/outlined.woff2
similarity index 100%
rename from assets/fonts/outlined.woff2
rename to src/assets/fonts/outlined.woff2
diff --git a/assets/img/controls/pause-button.png b/src/assets/img/controls/pause-button.png
similarity index 100%
rename from assets/img/controls/pause-button.png
rename to src/assets/img/controls/pause-button.png
diff --git a/assets/img/controls/pause-button.psd b/src/assets/img/controls/pause-button.psd
similarity index 100%
rename from assets/img/controls/pause-button.psd
rename to src/assets/img/controls/pause-button.psd
diff --git a/assets/img/controls/play-button.png b/src/assets/img/controls/play-button.png
similarity index 100%
rename from assets/img/controls/play-button.png
rename to src/assets/img/controls/play-button.png
diff --git a/assets/img/controls/play-button.psd b/src/assets/img/controls/play-button.psd
similarity index 100%
rename from assets/img/controls/play-button.psd
rename to src/assets/img/controls/play-button.psd
diff --git a/assets/img/controls/play-next-button.png b/src/assets/img/controls/play-next-button.png
similarity index 100%
rename from assets/img/controls/play-next-button.png
rename to src/assets/img/controls/play-next-button.png
diff --git a/assets/img/controls/play-next-button.psd b/src/assets/img/controls/play-next-button.psd
similarity index 100%
rename from assets/img/controls/play-next-button.psd
rename to src/assets/img/controls/play-next-button.psd
diff --git a/assets/img/controls/play-previous-button.png b/src/assets/img/controls/play-previous-button.png
similarity index 100%
rename from assets/img/controls/play-previous-button.png
rename to src/assets/img/controls/play-previous-button.png
diff --git a/assets/img/controls/play-previous-button.psd b/src/assets/img/controls/play-previous-button.psd
similarity index 100%
rename from assets/img/controls/play-previous-button.psd
rename to src/assets/img/controls/play-previous-button.psd
diff --git a/assets/img/controls/thumbs-down-button-outline.png b/src/assets/img/controls/thumbs-down-button-outline.png
similarity index 100%
rename from assets/img/controls/thumbs-down-button-outline.png
rename to src/assets/img/controls/thumbs-down-button-outline.png
diff --git a/assets/img/controls/thumbs-down-button-outline.psd b/src/assets/img/controls/thumbs-down-button-outline.psd
similarity index 100%
rename from assets/img/controls/thumbs-down-button-outline.psd
rename to src/assets/img/controls/thumbs-down-button-outline.psd
diff --git a/assets/img/controls/thumbs-down-button.png b/src/assets/img/controls/thumbs-down-button.png
similarity index 100%
rename from assets/img/controls/thumbs-down-button.png
rename to src/assets/img/controls/thumbs-down-button.png
diff --git a/assets/img/controls/thumbs-down-button.psd b/src/assets/img/controls/thumbs-down-button.psd
similarity index 100%
rename from assets/img/controls/thumbs-down-button.psd
rename to src/assets/img/controls/thumbs-down-button.psd
diff --git a/assets/img/controls/thumbs-up-button-outline.png b/src/assets/img/controls/thumbs-up-button-outline.png
similarity index 100%
rename from assets/img/controls/thumbs-up-button-outline.png
rename to src/assets/img/controls/thumbs-up-button-outline.png
diff --git a/assets/img/controls/thumbs-up-button-outline.psd b/src/assets/img/controls/thumbs-up-button-outline.psd
similarity index 100%
rename from assets/img/controls/thumbs-up-button-outline.psd
rename to src/assets/img/controls/thumbs-up-button-outline.psd
diff --git a/assets/img/controls/thumbs-up-button.png b/src/assets/img/controls/thumbs-up-button.png
similarity index 100%
rename from assets/img/controls/thumbs-up-button.png
rename to src/assets/img/controls/thumbs-up-button.png
diff --git a/assets/img/controls/thumbs-up-button.psd b/src/assets/img/controls/thumbs-up-button.psd
similarity index 100%
rename from assets/img/controls/thumbs-up-button.psd
rename to src/assets/img/controls/thumbs-up-button.psd
diff --git a/assets/img/null.png b/src/assets/img/null.png
similarity index 100%
rename from assets/img/null.png
rename to src/assets/img/null.png
diff --git a/src/assets/js/materialize.min.js b/src/assets/js/materialize.min.js
new file mode 100644
index 000000000..840b4cd97
--- /dev/null
+++ b/src/assets/js/materialize.min.js
@@ -0,0 +1,12335 @@
+/*!
+ * Materialize v1.0.0 (http://materializecss.com)
+ * Copyright 2014-2017 Materialize
+ * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
+ */
+var _get = function t(e, i, n) {
+ null === e && (e = Function.prototype)
+ var s = Object.getOwnPropertyDescriptor(e, i)
+ if (void 0 === s) {
+ var o = Object.getPrototypeOf(e)
+ return null === o ? void 0 : t(o, i, n)
+ }
+ if ('value' in s) return s.value
+ var a = s.get
+ return void 0 !== a ? a.call(n) : void 0
+ },
+ _createClass = (function() {
+ function n(t, e) {
+ for (var i = 0; i < e.length; i++) {
+ var n = e[i]
+ ;(n.enumerable = n.enumerable || !1),
+ (n.configurable = !0),
+ 'value' in n && (n.writable = !0),
+ Object.defineProperty(t, n.key, n)
+ }
+ }
+ return function(t, e, i) {
+ return e && n(t.prototype, e), i && n(t, i), t
+ }
+ })()
+function _possibleConstructorReturn(t, e) {
+ if (!t)
+ throw new ReferenceError(
+ "this hasn't been initialised - super() hasn't been called"
+ )
+ return !e || ('object' != typeof e && 'function' != typeof e) ? t : e
+}
+function _inherits(t, e) {
+ if ('function' != typeof e && null !== e)
+ throw new TypeError(
+ 'Super expression must either be null or a function, not ' +
+ typeof e
+ )
+ ;(t.prototype = Object.create(e && e.prototype, {
+ constructor: {
+ value: t,
+ enumerable: !1,
+ writable: !0,
+ configurable: !0,
+ },
+ })),
+ e &&
+ (Object.setPrototypeOf
+ ? Object.setPrototypeOf(t, e)
+ : (t.__proto__ = e))
+}
+function _classCallCheck(t, e) {
+ if (!(t instanceof e))
+ throw new TypeError('Cannot call a class as a function')
+}
+window.cash = (function() {
+ var i,
+ o = document,
+ a = window,
+ t = Array.prototype,
+ r = t.slice,
+ n = t.filter,
+ s = t.push,
+ e = function() {},
+ h = function(t) {
+ return typeof t == typeof e && t.call
+ },
+ d = function(t) {
+ return 'string' == typeof t
+ },
+ l = /^#[\w-]*$/,
+ u = /^\.[\w-]*$/,
+ c = /<.+>/,
+ p = /^\w+$/
+ function v(t, e) {
+ e = e || o
+ var i = u.test(t)
+ ? e.getElementsByClassName(t.slice(1))
+ : p.test(t)
+ ? e.getElementsByTagName(t)
+ : e.querySelectorAll(t)
+ return i
+ }
+ function f(t) {
+ if (!i) {
+ var e = (i = o.implementation.createHTMLDocument(
+ null
+ )).createElement('base')
+ ;(e.href = o.location.href), i.head.appendChild(e)
+ }
+ return (i.body.innerHTML = t), i.body.childNodes
+ }
+ function m(t) {
+ 'loading' !== o.readyState
+ ? t()
+ : o.addEventListener('DOMContentLoaded', t)
+ }
+ function g(t, e) {
+ if (!t) return this
+ if (t.cash && t !== a) return t
+ var i,
+ n = t,
+ s = 0
+ if (d(t))
+ n = l.test(t)
+ ? o.getElementById(t.slice(1))
+ : c.test(t)
+ ? f(t)
+ : v(t, e)
+ else if (h(t)) return m(t), this
+ if (!n) return this
+ if (n.nodeType || n === a) (this[0] = n), (this.length = 1)
+ else for (i = this.length = n.length; s < i; s++) this[s] = n[s]
+ return this
+ }
+ function _(t, e) {
+ return new g(t, e)
+ }
+ var y = (_.fn = _.prototype = g.prototype = {
+ cash: !0,
+ length: 0,
+ push: s,
+ splice: t.splice,
+ map: t.map,
+ init: g,
+ })
+ function k(t, e) {
+ for (
+ var i = t.length, n = 0;
+ n < i && !1 !== e.call(t[n], t[n], n, t);
+ n++
+ );
+ }
+ function b(t, e) {
+ var i =
+ t &&
+ (t.matches ||
+ t.webkitMatchesSelector ||
+ t.mozMatchesSelector ||
+ t.msMatchesSelector ||
+ t.oMatchesSelector)
+ return !!i && i.call(t, e)
+ }
+ function w(e) {
+ return d(e)
+ ? b
+ : e.cash
+ ? function(t) {
+ return e.is(t)
+ }
+ : function(t, e) {
+ return t === e
+ }
+ }
+ function C(t) {
+ return _(
+ r.call(t).filter(function(t, e, i) {
+ return i.indexOf(t) === e
+ })
+ )
+ }
+ Object.defineProperty(y, 'constructor', { value: _ }),
+ (_.parseHTML = f),
+ (_.noop = e),
+ (_.isFunction = h),
+ (_.isString = d),
+ (_.extend = y.extend = function(t) {
+ t = t || {}
+ var e = r.call(arguments),
+ i = e.length,
+ n = 1
+ for (1 === e.length && ((t = this), (n = 0)); n < i; n++)
+ if (e[n])
+ for (var s in e[n])
+ e[n].hasOwnProperty(s) && (t[s] = e[n][s])
+ return t
+ }),
+ _.extend({
+ merge: function(t, e) {
+ for (var i = +e.length, n = t.length, s = 0; s < i; n++, s++)
+ t[n] = e[s]
+ return (t.length = n), t
+ },
+ each: k,
+ matches: b,
+ unique: C,
+ isArray: Array.isArray,
+ isNumeric: function(t) {
+ return !isNaN(parseFloat(t)) && isFinite(t)
+ },
+ })
+ var E = (_.uid = '_cash' + Date.now())
+ function M(t) {
+ return (t[E] = t[E] || {})
+ }
+ function O(t, e, i) {
+ return (M(t)[e] = i)
+ }
+ function x(t, e) {
+ var i = M(t)
+ return (
+ void 0 === i[e] &&
+ (i[e] = t.dataset ? t.dataset[e] : _(t).attr('data-' + e)),
+ i[e]
+ )
+ }
+ y.extend({
+ data: function(e, i) {
+ if (d(e))
+ return void 0 === i
+ ? x(this[0], e)
+ : this.each(function(t) {
+ return O(t, e, i)
+ })
+ for (var t in e) this.data(t, e[t])
+ return this
+ },
+ removeData: function(s) {
+ return this.each(function(t) {
+ return (
+ (i = s),
+ void ((n = M((e = t)))
+ ? delete n[i]
+ : e.dataset
+ ? delete e.dataset[i]
+ : _(e).removeAttr('data-' + name))
+ )
+ var e, i, n
+ })
+ },
+ })
+ var L = /\S+/g
+ function T(t) {
+ return d(t) && t.match(L)
+ }
+ function $(t, e) {
+ return t.classList
+ ? t.classList.contains(e)
+ : new RegExp('(^| )' + e + '( |$)', 'gi').test(t.className)
+ }
+ function B(t, e, i) {
+ t.classList
+ ? t.classList.add(e)
+ : i.indexOf(' ' + e + ' ') && (t.className += ' ' + e)
+ }
+ function D(t, e) {
+ t.classList
+ ? t.classList.remove(e)
+ : (t.className = t.className.replace(e, ''))
+ }
+ y.extend({
+ addClass: function(t) {
+ var n = T(t)
+ return n
+ ? this.each(function(e) {
+ var i = ' ' + e.className + ' '
+ k(n, function(t) {
+ B(e, t, i)
+ })
+ })
+ : this
+ },
+ attr: function(e, i) {
+ if (e) {
+ if (d(e))
+ return void 0 === i
+ ? this[0]
+ ? this[0].getAttribute
+ ? this[0].getAttribute(e)
+ : this[0][e]
+ : void 0
+ : this.each(function(t) {
+ t.setAttribute ? t.setAttribute(e, i) : (t[e] = i)
+ })
+ for (var t in e) this.attr(t, e[t])
+ return this
+ }
+ },
+ hasClass: function(t) {
+ var e = !1,
+ i = T(t)
+ return (
+ i &&
+ i.length &&
+ this.each(function(t) {
+ return !(e = $(t, i[0]))
+ }),
+ e
+ )
+ },
+ prop: function(e, i) {
+ if (d(e))
+ return void 0 === i
+ ? this[0][e]
+ : this.each(function(t) {
+ t[e] = i
+ })
+ for (var t in e) this.prop(t, e[t])
+ return this
+ },
+ removeAttr: function(e) {
+ return this.each(function(t) {
+ t.removeAttribute ? t.removeAttribute(e) : delete t[e]
+ })
+ },
+ removeClass: function(t) {
+ if (!arguments.length) return this.attr('class', '')
+ var i = T(t)
+ return i
+ ? this.each(function(e) {
+ k(i, function(t) {
+ D(e, t)
+ })
+ })
+ : this
+ },
+ removeProp: function(e) {
+ return this.each(function(t) {
+ delete t[e]
+ })
+ },
+ toggleClass: function(t, e) {
+ if (void 0 !== e) return this[e ? 'addClass' : 'removeClass'](t)
+ var n = T(t)
+ return n
+ ? this.each(function(e) {
+ var i = ' ' + e.className + ' '
+ k(n, function(t) {
+ $(e, t) ? D(e, t) : B(e, t, i)
+ })
+ })
+ : this
+ },
+ }),
+ y.extend({
+ add: function(t, e) {
+ return C(_.merge(this, _(t, e)))
+ },
+ each: function(t) {
+ return k(this, t), this
+ },
+ eq: function(t) {
+ return _(this.get(t))
+ },
+ filter: function(e) {
+ if (!e) return this
+ var i = h(e) ? e : w(e)
+ return _(
+ n.call(this, function(t) {
+ return i(t, e)
+ })
+ )
+ },
+ first: function() {
+ return this.eq(0)
+ },
+ get: function(t) {
+ return void 0 === t
+ ? r.call(this)
+ : t < 0
+ ? this[t + this.length]
+ : this[t]
+ },
+ index: function(t) {
+ var e = t ? _(t)[0] : this[0],
+ i = t
+ ? this
+ : _(e)
+ .parent()
+ .children()
+ return r.call(i).indexOf(e)
+ },
+ last: function() {
+ return this.eq(-1)
+ },
+ })
+ var S,
+ I,
+ A,
+ R,
+ H,
+ P,
+ W =
+ ((H = /(?:^\w|[A-Z]|\b\w)/g),
+ (P = /[\s-_]+/g),
+ function(t) {
+ return t
+ .replace(H, function(t, e) {
+ return t[0 === e ? 'toLowerCase' : 'toUpperCase']()
+ })
+ .replace(P, '')
+ }),
+ j =
+ ((S = {}),
+ (I = document),
+ (A = I.createElement('div')),
+ (R = A.style),
+ function(e) {
+ if (((e = W(e)), S[e])) return S[e]
+ var t = e.charAt(0).toUpperCase() + e.slice(1),
+ i = (
+ e +
+ ' ' +
+ ['webkit', 'moz', 'ms', 'o'].join(t + ' ') +
+ t
+ ).split(' ')
+ return (
+ k(i, function(t) {
+ if (t in R) return (S[t] = e = S[e] = t), !1
+ }),
+ S[e]
+ )
+ })
+ function F(t, e) {
+ return parseInt(a.getComputedStyle(t[0], null)[e], 10) || 0
+ }
+ function q(e, i, t) {
+ var n,
+ s = x(e, '_cashEvents'),
+ o = s && s[i]
+ o &&
+ (t
+ ? (e.removeEventListener(i, t),
+ 0 <= (n = o.indexOf(t)) && o.splice(n, 1))
+ : (k(o, function(t) {
+ e.removeEventListener(i, t)
+ }),
+ (o = [])))
+ }
+ function N(t, e) {
+ return (
+ '&' +
+ encodeURIComponent(t) +
+ '=' +
+ encodeURIComponent(e).replace(/%20/g, '+')
+ )
+ }
+ function z(t) {
+ var e,
+ i,
+ n,
+ s = t.type
+ if (!s) return null
+ switch (s.toLowerCase()) {
+ case 'select-one':
+ return 0 <= (n = (i = t).selectedIndex)
+ ? i.options[n].value
+ : null
+ case 'select-multiple':
+ return (
+ (e = []),
+ k(t.options, function(t) {
+ t.selected && e.push(t.value)
+ }),
+ e.length ? e : null
+ )
+ case 'radio':
+ case 'checkbox':
+ return t.checked ? t.value : null
+ default:
+ return t.value ? t.value : null
+ }
+ }
+ function V(e, i, n) {
+ var t = d(i)
+ t || !i.length
+ ? k(
+ e,
+ t
+ ? function(t) {
+ return t.insertAdjacentHTML(
+ n ? 'afterbegin' : 'beforeend',
+ i
+ )
+ }
+ : function(t, e) {
+ return (function(t, e, i) {
+ if (i) {
+ var n = t.childNodes[0]
+ t.insertBefore(e, n)
+ } else t.appendChild(e)
+ })(t, 0 === e ? i : i.cloneNode(!0), n)
+ }
+ )
+ : k(i, function(t) {
+ return V(e, t, n)
+ })
+ }
+ ;(_.prefixedProp = j),
+ (_.camelCase = W),
+ y.extend({
+ css: function(e, i) {
+ if (d(e))
+ return (
+ (e = j(e)),
+ 1 < arguments.length
+ ? this.each(function(t) {
+ return (t.style[e] = i)
+ })
+ : a.getComputedStyle(this[0])[e]
+ )
+ for (var t in e) this.css(t, e[t])
+ return this
+ },
+ }),
+ k(['Width', 'Height'], function(e) {
+ var t = e.toLowerCase()
+ ;(y[t] = function() {
+ return this[0].getBoundingClientRect()[t]
+ }),
+ (y['inner' + e] = function() {
+ return this[0]['client' + e]
+ }),
+ (y['outer' + e] = function(t) {
+ return (
+ this[0]['offset' + e] +
+ (t
+ ? F(
+ this,
+ 'margin' + ('Width' === e ? 'Left' : 'Top')
+ ) +
+ F(
+ this,
+ 'margin' +
+ ('Width' === e ? 'Right' : 'Bottom')
+ )
+ : 0)
+ )
+ })
+ }),
+ y.extend({
+ off: function(e, i) {
+ return this.each(function(t) {
+ return q(t, e, i)
+ })
+ },
+ on: function(a, i, r, l) {
+ var n
+ if (!d(a)) {
+ for (var t in a) this.on(t, i, a[t])
+ return this
+ }
+ return (
+ h(i) && ((r = i), (i = null)),
+ 'ready' === a
+ ? (m(r), this)
+ : (i &&
+ ((n = r),
+ (r = function(t) {
+ for (var e = t.target; !b(e, i); ) {
+ if (e === this || null === e)
+ return (e = !1)
+ e = e.parentNode
+ }
+ e && n.call(e, t)
+ })),
+ this.each(function(t) {
+ var e,
+ i,
+ n,
+ s,
+ o = r
+ l &&
+ (o = function() {
+ r.apply(this, arguments), q(t, a, o)
+ }),
+ (i = a),
+ (n = o),
+ ((s =
+ x((e = t), '_cashEvents') ||
+ O(e, '_cashEvents', {}))[i] = s[i] || []),
+ s[i].push(n),
+ e.addEventListener(i, n)
+ }))
+ )
+ },
+ one: function(t, e, i) {
+ return this.on(t, e, i, !0)
+ },
+ ready: m,
+ trigger: function(t, e) {
+ if (document.createEvent) {
+ var i = document.createEvent('HTMLEvents')
+ return (
+ i.initEvent(t, !0, !1),
+ (i = this.extend(i, e)),
+ this.each(function(t) {
+ return t.dispatchEvent(i)
+ })
+ )
+ }
+ },
+ }),
+ y.extend({
+ serialize: function() {
+ var s = ''
+ return (
+ k(this[0].elements || this, function(t) {
+ if (!t.disabled && 'FIELDSET' !== t.tagName) {
+ var e = t.name
+ switch (t.type.toLowerCase()) {
+ case 'file':
+ case 'reset':
+ case 'submit':
+ case 'button':
+ break
+ case 'select-multiple':
+ var i = z(t)
+ null !== i &&
+ k(i, function(t) {
+ s += N(e, t)
+ })
+ break
+ default:
+ var n = z(t)
+ null !== n && (s += N(e, n))
+ }
+ }
+ }),
+ s.substr(1)
+ )
+ },
+ val: function(e) {
+ return void 0 === e
+ ? z(this[0])
+ : this.each(function(t) {
+ return (t.value = e)
+ })
+ },
+ }),
+ y.extend({
+ after: function(t) {
+ return _(t).insertAfter(this), this
+ },
+ append: function(t) {
+ return V(this, t), this
+ },
+ appendTo: function(t) {
+ return V(_(t), this), this
+ },
+ before: function(t) {
+ return _(t).insertBefore(this), this
+ },
+ clone: function() {
+ return _(
+ this.map(function(t) {
+ return t.cloneNode(!0)
+ })
+ )
+ },
+ empty: function() {
+ return this.html(''), this
+ },
+ html: function(t) {
+ if (void 0 === t) return this[0].innerHTML
+ var e = t.nodeType ? t[0].outerHTML : t
+ return this.each(function(t) {
+ return (t.innerHTML = e)
+ })
+ },
+ insertAfter: function(t) {
+ var s = this
+ return (
+ _(t).each(function(t, e) {
+ var i = t.parentNode,
+ n = t.nextSibling
+ s.each(function(t) {
+ i.insertBefore(0 === e ? t : t.cloneNode(!0), n)
+ })
+ }),
+ this
+ )
+ },
+ insertBefore: function(t) {
+ var s = this
+ return (
+ _(t).each(function(e, i) {
+ var n = e.parentNode
+ s.each(function(t) {
+ n.insertBefore(0 === i ? t : t.cloneNode(!0), e)
+ })
+ }),
+ this
+ )
+ },
+ prepend: function(t) {
+ return V(this, t, !0), this
+ },
+ prependTo: function(t) {
+ return V(_(t), this, !0), this
+ },
+ remove: function() {
+ return this.each(function(t) {
+ if (t.parentNode) return t.parentNode.removeChild(t)
+ })
+ },
+ text: function(e) {
+ return void 0 === e
+ ? this[0].textContent
+ : this.each(function(t) {
+ return (t.textContent = e)
+ })
+ },
+ })
+ var X = o.documentElement
+ return (
+ y.extend({
+ position: function() {
+ var t = this[0]
+ return { left: t.offsetLeft, top: t.offsetTop }
+ },
+ offset: function() {
+ var t = this[0].getBoundingClientRect()
+ return {
+ top: t.top + a.pageYOffset - X.clientTop,
+ left: t.left + a.pageXOffset - X.clientLeft,
+ }
+ },
+ offsetParent: function() {
+ return _(this[0].offsetParent)
+ },
+ }),
+ y.extend({
+ children: function(e) {
+ var i = []
+ return (
+ this.each(function(t) {
+ s.apply(i, t.children)
+ }),
+ (i = C(i)),
+ e
+ ? i.filter(function(t) {
+ return b(t, e)
+ })
+ : i
+ )
+ },
+ closest: function(t) {
+ return !t || this.length < 1
+ ? _()
+ : this.is(t)
+ ? this.filter(t)
+ : this.parent().closest(t)
+ },
+ is: function(e) {
+ if (!e) return !1
+ var i = !1,
+ n = w(e)
+ return (
+ this.each(function(t) {
+ return !(i = n(t, e))
+ }),
+ i
+ )
+ },
+ find: function(e) {
+ if (!e || e.nodeType)
+ return _(e && this.has(e).length ? e : null)
+ var i = []
+ return (
+ this.each(function(t) {
+ s.apply(i, v(e, t))
+ }),
+ C(i)
+ )
+ },
+ has: function(e) {
+ var t = d(e)
+ ? function(t) {
+ return 0 !== v(e, t).length
+ }
+ : function(t) {
+ return t.contains(e)
+ }
+ return this.filter(t)
+ },
+ next: function() {
+ return _(this[0].nextElementSibling)
+ },
+ not: function(e) {
+ if (!e) return this
+ var i = w(e)
+ return this.filter(function(t) {
+ return !i(t, e)
+ })
+ },
+ parent: function() {
+ var e = []
+ return (
+ this.each(function(t) {
+ t && t.parentNode && e.push(t.parentNode)
+ }),
+ C(e)
+ )
+ },
+ parents: function(e) {
+ var i,
+ n = []
+ return (
+ this.each(function(t) {
+ for (
+ i = t;
+ i && i.parentNode && i !== o.body.parentNode;
+
+ )
+ (i = i.parentNode),
+ (!e || (e && b(i, e))) && n.push(i)
+ }),
+ C(n)
+ )
+ },
+ prev: function() {
+ return _(this[0].previousElementSibling)
+ },
+ siblings: function(t) {
+ var e = this.parent().children(t),
+ i = this[0]
+ return e.filter(function(t) {
+ return t !== i
+ })
+ },
+ }),
+ _
+ )
+})()
+var Component = (function() {
+ function s(t, e, i) {
+ _classCallCheck(this, s),
+ e instanceof Element ||
+ console.error(Error(e + ' is not an HTML Element'))
+ var n = t.getInstance(e)
+ n && n.destroy(), (this.el = e), (this.$el = cash(e))
+ }
+ return (
+ _createClass(s, null, [
+ {
+ key: 'init',
+ value: function(t, e, i) {
+ var n = null
+ if (e instanceof Element) n = new t(e, i)
+ else if (
+ e &&
+ (e.jquery || e.cash || e instanceof NodeList)
+ ) {
+ for (var s = [], o = 0; o < e.length; o++)
+ s.push(new t(e[o], i))
+ n = s
+ }
+ return n
+ },
+ },
+ ]),
+ s
+ )
+})()
+!(function(t) {
+ t.Package ? (M = {}) : (t.M = {}), (M.jQueryLoaded = !!t.jQuery)
+})(window),
+ 'function' == typeof define && define.amd
+ ? define('M', [], function() {
+ return M
+ })
+ : 'undefined' == typeof exports ||
+ exports.nodeType ||
+ ('undefined' != typeof module &&
+ !module.nodeType &&
+ module.exports &&
+ (exports = module.exports = M),
+ (exports.default = M)),
+ (M.version = '1.0.0'),
+ (M.keys = { TAB: 9, ENTER: 13, ESC: 27, ARROW_UP: 38, ARROW_DOWN: 40 }),
+ (M.tabPressed = !1),
+ (M.keyDown = !1)
+var docHandleKeydown = function(t) {
+ ;(M.keyDown = !0),
+ (t.which !== M.keys.TAB &&
+ t.which !== M.keys.ARROW_DOWN &&
+ t.which !== M.keys.ARROW_UP) ||
+ (M.tabPressed = !0)
+ },
+ docHandleKeyup = function(t) {
+ ;(M.keyDown = !1),
+ (t.which !== M.keys.TAB &&
+ t.which !== M.keys.ARROW_DOWN &&
+ t.which !== M.keys.ARROW_UP) ||
+ (M.tabPressed = !1)
+ },
+ docHandleFocus = function(t) {
+ M.keyDown && document.body.classList.add('keyboard-focused')
+ },
+ docHandleBlur = function(t) {
+ document.body.classList.remove('keyboard-focused')
+ }
+document.addEventListener('keydown', docHandleKeydown, !0),
+ document.addEventListener('keyup', docHandleKeyup, !0),
+ document.addEventListener('focus', docHandleFocus, !0),
+ document.addEventListener('blur', docHandleBlur, !0),
+ (M.initializeJqueryWrapper = function(n, s, o) {
+ jQuery.fn[s] = function(e) {
+ if (n.prototype[e]) {
+ var i = Array.prototype.slice.call(arguments, 1)
+ if ('get' === e.slice(0, 3)) {
+ var t = this.first()[0][o]
+ return t[e].apply(t, i)
+ }
+ return this.each(function() {
+ var t = this[o]
+ t[e].apply(t, i)
+ })
+ }
+ if ('object' == typeof e || !e) return n.init(this, e), this
+ jQuery.error('Method ' + e + ' does not exist on jQuery.' + s)
+ }
+ }),
+ (M.AutoInit = function(t) {
+ var e = t || document.body,
+ i = {
+ Autocomplete: e.querySelectorAll(
+ '.autocomplete:not(.no-autoinit)'
+ ),
+ Carousel: e.querySelectorAll('.carousel:not(.no-autoinit)'),
+ Chips: e.querySelectorAll('.chips:not(.no-autoinit)'),
+ Collapsible: e.querySelectorAll(
+ '.collapsible:not(.no-autoinit)'
+ ),
+ Datepicker: e.querySelectorAll('.datepicker:not(.no-autoinit)'),
+ Dropdown: e.querySelectorAll(
+ '.dropdown-trigger:not(.no-autoinit)'
+ ),
+ Materialbox: e.querySelectorAll(
+ '.materialboxed:not(.no-autoinit)'
+ ),
+ Modal: e.querySelectorAll('.modal:not(.no-autoinit)'),
+ Parallax: e.querySelectorAll('.parallax:not(.no-autoinit)'),
+ Pushpin: e.querySelectorAll('.pushpin:not(.no-autoinit)'),
+ ScrollSpy: e.querySelectorAll('.scrollspy:not(.no-autoinit)'),
+ FormSelect: e.querySelectorAll('select:not(.no-autoinit)'),
+ Sidenav: e.querySelectorAll('.sidenav:not(.no-autoinit)'),
+ Tabs: e.querySelectorAll('.tabs:not(.no-autoinit)'),
+ TapTarget: e.querySelectorAll('.tap-target:not(.no-autoinit)'),
+ Timepicker: e.querySelectorAll('.timepicker:not(.no-autoinit)'),
+ Tooltip: e.querySelectorAll('.tooltipped:not(.no-autoinit)'),
+ FloatingActionButton: e.querySelectorAll(
+ '.fixed-action-btn:not(.no-autoinit)'
+ ),
+ }
+ for (var n in i) {
+ M[n].init(i[n])
+ }
+ }),
+ (M.objectSelectorString = function(t) {
+ return (
+ (t.prop('tagName') || '') +
+ (t.attr('id') || '') +
+ (t.attr('class') || '')
+ ).replace(/\s/g, '')
+ }),
+ (M.guid = (function() {
+ function t() {
+ return Math.floor(65536 * (1 + Math.random()))
+ .toString(16)
+ .substring(1)
+ }
+ return function() {
+ return (
+ t() +
+ t() +
+ '-' +
+ t() +
+ '-' +
+ t() +
+ '-' +
+ t() +
+ '-' +
+ t() +
+ t() +
+ t()
+ )
+ }
+ })()),
+ (M.escapeHash = function(t) {
+ return t.replace(/(:|\.|\[|\]|,|=|\/)/g, '\\$1')
+ }),
+ (M.elementOrParentIsFixed = function(t) {
+ var e = $(t),
+ i = e.add(e.parents()),
+ n = !1
+ return (
+ i.each(function() {
+ if ('fixed' === $(this).css('position')) return !(n = !0)
+ }),
+ n
+ )
+ }),
+ (M.checkWithinContainer = function(t, e, i) {
+ var n = { top: !1, right: !1, bottom: !1, left: !1 },
+ s = t.getBoundingClientRect(),
+ o =
+ t === document.body
+ ? Math.max(s.bottom, window.innerHeight)
+ : s.bottom,
+ a = t.scrollLeft,
+ r = t.scrollTop,
+ l = e.left - a,
+ h = e.top - r
+ return (
+ (l < s.left + i || l < i) && (n.left = !0),
+ (l + e.width > s.right - i ||
+ l + e.width > window.innerWidth - i) &&
+ (n.right = !0),
+ (h < s.top + i || h < i) && (n.top = !0),
+ (h + e.height > o - i || h + e.height > window.innerHeight - i) &&
+ (n.bottom = !0),
+ n
+ )
+ }),
+ (M.checkPossibleAlignments = function(t, e, i, n) {
+ var s = {
+ top: !0,
+ right: !0,
+ bottom: !0,
+ left: !0,
+ spaceOnTop: null,
+ spaceOnRight: null,
+ spaceOnBottom: null,
+ spaceOnLeft: null,
+ },
+ o = 'visible' === getComputedStyle(e).overflow,
+ a = e.getBoundingClientRect(),
+ r = Math.min(a.height, window.innerHeight),
+ l = Math.min(a.width, window.innerWidth),
+ h = t.getBoundingClientRect(),
+ d = e.scrollLeft,
+ u = e.scrollTop,
+ c = i.left - d,
+ p = i.top - u,
+ v = i.top + h.height - u
+ return (
+ (s.spaceOnRight = o
+ ? window.innerWidth - (h.left + i.width)
+ : l - (c + i.width)),
+ s.spaceOnRight < 0 && (s.left = !1),
+ (s.spaceOnLeft = o ? h.right - i.width : c - i.width + h.width),
+ s.spaceOnLeft < 0 && (s.right = !1),
+ (s.spaceOnBottom = o
+ ? window.innerHeight - (h.top + i.height + n)
+ : r - (p + i.height + n)),
+ s.spaceOnBottom < 0 && (s.top = !1),
+ (s.spaceOnTop = o ? h.bottom - (i.height + n) : v - (i.height - n)),
+ s.spaceOnTop < 0 && (s.bottom = !1),
+ s
+ )
+ }),
+ (M.getOverflowParent = function(t) {
+ return null == t
+ ? null
+ : t === document.body || 'visible' !== getComputedStyle(t).overflow
+ ? t
+ : M.getOverflowParent(t.parentElement)
+ }),
+ (M.getIdFromTrigger = function(t) {
+ var e = t.getAttribute('data-target')
+ return e || (e = (e = t.getAttribute('href')) ? e.slice(1) : ''), e
+ }),
+ (M.getDocumentScrollTop = function() {
+ return (
+ window.pageYOffset ||
+ document.documentElement.scrollTop ||
+ document.body.scrollTop ||
+ 0
+ )
+ }),
+ (M.getDocumentScrollLeft = function() {
+ return (
+ window.pageXOffset ||
+ document.documentElement.scrollLeft ||
+ document.body.scrollLeft ||
+ 0
+ )
+ })
+var getTime =
+ Date.now ||
+ function() {
+ return new Date().getTime()
+ }
+M.throttle = function(i, n, s) {
+ var o = void 0,
+ a = void 0,
+ r = void 0,
+ l = null,
+ h = 0
+ s || (s = {})
+ var d = function() {
+ ;(h = !1 === s.leading ? 0 : getTime()),
+ (l = null),
+ (r = i.apply(o, a)),
+ (o = a = null)
+ }
+ return function() {
+ var t = getTime()
+ h || !1 !== s.leading || (h = t)
+ var e = n - (t - h)
+ return (
+ (o = this),
+ (a = arguments),
+ e <= 0
+ ? (clearTimeout(l),
+ (l = null),
+ (h = t),
+ (r = i.apply(o, a)),
+ (o = a = null))
+ : l || !1 === s.trailing || (l = setTimeout(d, e)),
+ r
+ )
+ }
+}
+var $jscomp = { scope: {} }
+;($jscomp.defineProperty =
+ 'function' == typeof Object.defineProperties
+ ? Object.defineProperty
+ : function(t, e, i) {
+ if (i.get || i.set)
+ throw new TypeError(
+ 'ES3 does not support getters and setters.'
+ )
+ t != Array.prototype && t != Object.prototype && (t[e] = i.value)
+ }),
+ ($jscomp.getGlobal = function(t) {
+ return 'undefined' != typeof window && window === t
+ ? t
+ : 'undefined' != typeof global && null != global
+ ? global
+ : t
+ }),
+ ($jscomp.global = $jscomp.getGlobal(this)),
+ ($jscomp.SYMBOL_PREFIX = 'jscomp_symbol_'),
+ ($jscomp.initSymbol = function() {
+ ;($jscomp.initSymbol = function() {}),
+ $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol)
+ }),
+ ($jscomp.symbolCounter_ = 0),
+ ($jscomp.Symbol = function(t) {
+ return $jscomp.SYMBOL_PREFIX + (t || '') + $jscomp.symbolCounter_++
+ }),
+ ($jscomp.initSymbolIterator = function() {
+ $jscomp.initSymbol()
+ var t = $jscomp.global.Symbol.iterator
+ t ||
+ (t = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol(
+ 'iterator'
+ )),
+ 'function' != typeof Array.prototype[t] &&
+ $jscomp.defineProperty(Array.prototype, t, {
+ configurable: !0,
+ writable: !0,
+ value: function() {
+ return $jscomp.arrayIterator(this)
+ },
+ }),
+ ($jscomp.initSymbolIterator = function() {})
+ }),
+ ($jscomp.arrayIterator = function(t) {
+ var e = 0
+ return $jscomp.iteratorPrototype(function() {
+ return e < t.length ? { done: !1, value: t[e++] } : { done: !0 }
+ })
+ }),
+ ($jscomp.iteratorPrototype = function(t) {
+ return (
+ $jscomp.initSymbolIterator(),
+ ((t = { next: t })[$jscomp.global.Symbol.iterator] = function() {
+ return this
+ }),
+ t
+ )
+ }),
+ ($jscomp.array = $jscomp.array || {}),
+ ($jscomp.iteratorFromArray = function(e, i) {
+ $jscomp.initSymbolIterator(), e instanceof String && (e += '')
+ var n = 0,
+ s = {
+ next: function() {
+ if (n < e.length) {
+ var t = n++
+ return { value: i(t, e[t]), done: !1 }
+ }
+ return (
+ (s.next = function() {
+ return { done: !0, value: void 0 }
+ }),
+ s.next()
+ )
+ },
+ }
+ return (
+ (s[Symbol.iterator] = function() {
+ return s
+ }),
+ s
+ )
+ }),
+ ($jscomp.polyfill = function(t, e, i, n) {
+ if (e) {
+ for (
+ i = $jscomp.global, t = t.split('.'), n = 0;
+ n < t.length - 1;
+ n++
+ ) {
+ var s = t[n]
+ s in i || (i[s] = {}), (i = i[s])
+ }
+ ;(e = e((n = i[(t = t[t.length - 1])]))) != n &&
+ null != e &&
+ $jscomp.defineProperty(i, t, {
+ configurable: !0,
+ writable: !0,
+ value: e,
+ })
+ }
+ }),
+ $jscomp.polyfill(
+ 'Array.prototype.keys',
+ function(t) {
+ return (
+ t ||
+ function() {
+ return $jscomp.iteratorFromArray(this, function(t) {
+ return t
+ })
+ }
+ )
+ },
+ 'es6-impl',
+ 'es3'
+ )
+var $jscomp$this = this
+;(M.anime = (function() {
+ function s(t) {
+ if (!B.col(t))
+ try {
+ return document.querySelectorAll(t)
+ } catch (t) {}
+ }
+ function b(t, e) {
+ for (
+ var i = t.length,
+ n = 2 <= arguments.length ? e : void 0,
+ s = [],
+ o = 0;
+ o < i;
+ o++
+ )
+ if (o in t) {
+ var a = t[o]
+ e.call(n, a, o, t) && s.push(a)
+ }
+ return s
+ }
+ function d(t) {
+ return t.reduce(function(t, e) {
+ return t.concat(B.arr(e) ? d(e) : e)
+ }, [])
+ }
+ function o(t) {
+ return B.arr(t)
+ ? t
+ : (B.str(t) && (t = s(t) || t),
+ t instanceof NodeList || t instanceof HTMLCollection
+ ? [].slice.call(t)
+ : [t])
+ }
+ function a(t, e) {
+ return t.some(function(t) {
+ return t === e
+ })
+ }
+ function r(t) {
+ var e,
+ i = {}
+ for (e in t) i[e] = t[e]
+ return i
+ }
+ function u(t, e) {
+ var i,
+ n = r(t)
+ for (i in t) n[i] = e.hasOwnProperty(i) ? e[i] : t[i]
+ return n
+ }
+ function c(t, e) {
+ var i,
+ n = r(t)
+ for (i in e) n[i] = B.und(t[i]) ? e[i] : t[i]
+ return n
+ }
+ function l(t) {
+ if (
+ (t = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(
+ t
+ ))
+ )
+ return t[2]
+ }
+ function h(t, e) {
+ return B.fnc(t) ? t(e.target, e.id, e.total) : t
+ }
+ function w(t, e) {
+ if (e in t.style)
+ return (
+ getComputedStyle(t).getPropertyValue(
+ e.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()
+ ) || '0'
+ )
+ }
+ function p(t, e) {
+ return B.dom(t) && a($, e)
+ ? 'transform'
+ : B.dom(t) && (t.getAttribute(e) || (B.svg(t) && t[e]))
+ ? 'attribute'
+ : B.dom(t) && 'transform' !== e && w(t, e)
+ ? 'css'
+ : null != t[e]
+ ? 'object'
+ : void 0
+ }
+ function v(t, e) {
+ switch (p(t, e)) {
+ case 'transform':
+ return (function(t, i) {
+ var e,
+ n =
+ -1 < (e = i).indexOf('translate') ||
+ 'perspective' === e
+ ? 'px'
+ : -1 < e.indexOf('rotate') ||
+ -1 < e.indexOf('skew')
+ ? 'deg'
+ : void 0,
+ n = -1 < i.indexOf('scale') ? 1 : 0 + n
+ if (!(t = t.style.transform)) return n
+ for (
+ var s = [], o = [], a = [], r = /(\w+)\((.+?)\)/g;
+ (s = r.exec(t));
+
+ )
+ o.push(s[1]), a.push(s[2])
+ return (t = b(a, function(t, e) {
+ return o[e] === i
+ })).length
+ ? t[0]
+ : n
+ })(t, e)
+ case 'css':
+ return w(t, e)
+ case 'attribute':
+ return t.getAttribute(e)
+ }
+ return t[e] || 0
+ }
+ function f(t, e) {
+ var i = /^(\*=|\+=|-=)/.exec(t)
+ if (!i) return t
+ var n = l(t) || 0
+ switch (
+ ((e = parseFloat(e)),
+ (t = parseFloat(t.replace(i[0], ''))),
+ i[0][0])
+ ) {
+ case '+':
+ return e + t + n
+ case '-':
+ return e - t + n
+ case '*':
+ return e * t + n
+ }
+ }
+ function m(t, e) {
+ return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))
+ }
+ function i(t) {
+ t = t.points
+ for (var e, i = 0, n = 0; n < t.numberOfItems; n++) {
+ var s = t.getItem(n)
+ 0 < n && (i += m(e, s)), (e = s)
+ }
+ return i
+ }
+ function g(t) {
+ if (t.getTotalLength) return t.getTotalLength()
+ switch (t.tagName.toLowerCase()) {
+ case 'circle':
+ return 2 * Math.PI * t.getAttribute('r')
+ case 'rect':
+ return (
+ 2 * t.getAttribute('width') + 2 * t.getAttribute('height')
+ )
+ case 'line':
+ return m(
+ { x: t.getAttribute('x1'), y: t.getAttribute('y1') },
+ { x: t.getAttribute('x2'), y: t.getAttribute('y2') }
+ )
+ case 'polyline':
+ return i(t)
+ case 'polygon':
+ var e = t.points
+ return i(t) + m(e.getItem(e.numberOfItems - 1), e.getItem(0))
+ }
+ }
+ function C(e, i) {
+ function t(t) {
+ return (
+ (t = void 0 === t ? 0 : t),
+ e.el.getPointAtLength(1 <= i + t ? i + t : 0)
+ )
+ }
+ var n = t(),
+ s = t(-1),
+ o = t(1)
+ switch (e.property) {
+ case 'x':
+ return n.x
+ case 'y':
+ return n.y
+ case 'angle':
+ return (180 * Math.atan2(o.y - s.y, o.x - s.x)) / Math.PI
+ }
+ }
+ function _(t, e) {
+ var i,
+ n = /-?\d*\.?\d+/g
+ if (((i = B.pth(t) ? t.totalLength : t), B.col(i)))
+ if (B.rgb(i)) {
+ var s = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i)
+ i = s ? 'rgba(' + s[1] + ',1)' : i
+ } else
+ i = B.hex(i)
+ ? (function(t) {
+ t = t.replace(
+ /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
+ function(t, e, i, n) {
+ return e + e + i + i + n + n
+ }
+ )
+ var e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(
+ t
+ )
+ t = parseInt(e[1], 16)
+ var i = parseInt(e[2], 16),
+ e = parseInt(e[3], 16)
+ return 'rgba(' + t + ',' + i + ',' + e + ',1)'
+ })(i)
+ : B.hsl(i)
+ ? (function(t) {
+ function e(t, e, i) {
+ return (
+ i < 0 && (i += 1),
+ 1 < i && --i,
+ i < 1 / 6
+ ? t + 6 * (e - t) * i
+ : i < 0.5
+ ? e
+ : i < 2 / 3
+ ? t + (e - t) * (2 / 3 - i) * 6
+ : t
+ )
+ }
+ var i =
+ /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(
+ t
+ ) ||
+ /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(
+ t
+ )
+ t = parseInt(i[1]) / 360
+ var n = parseInt(i[2]) / 100,
+ s = parseInt(i[3]) / 100,
+ i = i[4] || 1
+ if (0 == n) s = n = t = s
+ else {
+ var o = s < 0.5 ? s * (1 + n) : s + n - s * n,
+ a = 2 * s - o,
+ s = e(a, o, t + 1 / 3),
+ n = e(a, o, t)
+ t = e(a, o, t - 1 / 3)
+ }
+ return (
+ 'rgba(' +
+ 255 * s +
+ ',' +
+ 255 * n +
+ ',' +
+ 255 * t +
+ ',' +
+ i +
+ ')'
+ )
+ })(i)
+ : void 0
+ else
+ (s = (s = l(i)) ? i.substr(0, i.length - s.length) : i),
+ (i = e && !/\s/g.test(i) ? s + e : s)
+ return {
+ original: (i += ''),
+ numbers: i.match(n) ? i.match(n).map(Number) : [0],
+ strings: B.str(t) || e ? i.split(n) : [],
+ }
+ }
+ function y(t) {
+ return b((t = t ? d(B.arr(t) ? t.map(o) : o(t)) : []), function(
+ t,
+ e,
+ i
+ ) {
+ return i.indexOf(t) === e
+ })
+ }
+ function k(t, i) {
+ var e = r(i)
+ if (B.arr(t)) {
+ var n = t.length
+ 2 !== n || B.obj(t[0])
+ ? B.fnc(i.duration) || (e.duration = i.duration / n)
+ : (t = { value: t })
+ }
+ return o(t)
+ .map(function(t, e) {
+ return (
+ (e = e ? 0 : i.delay),
+ (t = B.obj(t) && !B.pth(t) ? t : { value: t }),
+ B.und(t.delay) && (t.delay = e),
+ t
+ )
+ })
+ .map(function(t) {
+ return c(t, e)
+ })
+ }
+ function E(o, a) {
+ var r
+ return o.tweens.map(function(t) {
+ var e = (t = (function(t, e) {
+ var i,
+ n = {}
+ for (i in t) {
+ var s = h(t[i], e)
+ B.arr(s) &&
+ 1 ===
+ (s = s.map(function(t) {
+ return h(t, e)
+ })).length &&
+ (s = s[0]),
+ (n[i] = s)
+ }
+ return (
+ (n.duration = parseFloat(n.duration)),
+ (n.delay = parseFloat(n.delay)),
+ n
+ )
+ })(t, a)).value,
+ i = v(a.target, o.name),
+ n = r ? r.to.original : i,
+ n = B.arr(e) ? e[0] : n,
+ s = f(B.arr(e) ? e[1] : e, n),
+ i = l(s) || l(n) || l(i)
+ return (
+ (t.from = _(n, i)),
+ (t.to = _(s, i)),
+ (t.start = r ? r.end : o.offset),
+ (t.end = t.start + t.delay + t.duration),
+ (t.easing = (function(t) {
+ return B.arr(t) ? D.apply(this, t) : S[t]
+ })(t.easing)),
+ (t.elasticity =
+ (1e3 - Math.min(Math.max(t.elasticity, 1), 999)) / 1e3),
+ (t.isPath = B.pth(e)),
+ (t.isColor = B.col(t.from.original)),
+ t.isColor && (t.round = 1),
+ (r = t)
+ )
+ })
+ }
+ function M(e, t, i, n) {
+ var s = 'delay' === e
+ return t.length
+ ? (s ? Math.min : Math.max).apply(
+ Math,
+ t.map(function(t) {
+ return t[e]
+ })
+ )
+ : s
+ ? n.delay
+ : i.offset + n.delay + n.duration
+ }
+ function n(t) {
+ var e,
+ i,
+ n,
+ s,
+ o = u(L, t),
+ a = u(T, t),
+ r =
+ ((i = t.targets),
+ (n = y(i)).map(function(t, e) {
+ return { target: t, id: e, total: n.length }
+ })),
+ l = [],
+ h = c(o, a)
+ for (e in t)
+ h.hasOwnProperty(e) ||
+ 'targets' === e ||
+ l.push({ name: e, offset: h.offset, tweens: k(t[e], a) })
+ return (
+ (s = l),
+ (t = b(
+ d(
+ r.map(function(n) {
+ return s.map(function(t) {
+ var e = p(n.target, t.name)
+ if (e) {
+ var i = E(t, n)
+ t = {
+ type: e,
+ property: t.name,
+ animatable: n,
+ tweens: i,
+ duration: i[i.length - 1].end,
+ delay: i[0].delay,
+ }
+ } else t = void 0
+ return t
+ })
+ })
+ ),
+ function(t) {
+ return !B.und(t)
+ }
+ )),
+ c(o, {
+ children: [],
+ animatables: r,
+ animations: t,
+ duration: M('duration', t, o, a),
+ delay: M('delay', t, o, a),
+ })
+ )
+ }
+ function O(t) {
+ function d() {
+ return (
+ window.Promise &&
+ new Promise(function(t) {
+ return (_ = t)
+ })
+ )
+ }
+ function u(t) {
+ return k.reversed ? k.duration - t : t
+ }
+ function c(e) {
+ for (var t = 0, i = {}, n = k.animations, s = n.length; t < s; ) {
+ var o = n[t],
+ a = o.animatable,
+ r = o.tweens,
+ l = r.length - 1,
+ h = r[l]
+ l &&
+ (h =
+ b(r, function(t) {
+ return e < t.end
+ })[0] || h)
+ for (
+ var r =
+ Math.min(
+ Math.max(e - h.start - h.delay, 0),
+ h.duration
+ ) / h.duration,
+ d = isNaN(r) ? 1 : h.easing(r, h.elasticity),
+ r = h.to.strings,
+ u = h.round,
+ l = [],
+ c = void 0,
+ c = h.to.numbers.length,
+ p = 0;
+ p < c;
+ p++
+ ) {
+ var v = void 0,
+ v = h.to.numbers[p],
+ f = h.from.numbers[p],
+ v = h.isPath ? C(h.value, d * v) : f + d * (v - f)
+ u && ((h.isColor && 2 < p) || (v = Math.round(v * u) / u)),
+ l.push(v)
+ }
+ if ((h = r.length))
+ for (c = r[0], d = 0; d < h; d++)
+ (u = r[d + 1]),
+ (p = l[d]),
+ isNaN(p) || (c = u ? c + (p + u) : c + (p + ' '))
+ else c = l[0]
+ I[o.type](a.target, o.property, c, i, a.id),
+ (o.currentValue = c),
+ t++
+ }
+ if ((t = Object.keys(i).length))
+ for (n = 0; n < t; n++)
+ x ||
+ (x = w(document.body, 'transform')
+ ? 'transform'
+ : '-webkit-transform'),
+ (k.animatables[n].target.style[x] = i[n].join(' '))
+ ;(k.currentTime = e), (k.progress = (e / k.duration) * 100)
+ }
+ function p(t) {
+ k[t] && k[t](k)
+ }
+ function v() {
+ k.remaining && !0 !== k.remaining && k.remaining--
+ }
+ function e(t) {
+ var e = k.duration,
+ i = k.offset,
+ n = i + k.delay,
+ s = k.currentTime,
+ o = k.reversed,
+ a = u(t)
+ if (k.children.length) {
+ var r = k.children,
+ l = r.length
+ if (a >= k.currentTime) for (var h = 0; h < l; h++) r[h].seek(a)
+ else for (; l--; ) r[l].seek(a)
+ }
+ ;(n <= a || !e) &&
+ (k.began || ((k.began = !0), p('begin')), p('run')),
+ i < a && a < e
+ ? c(a)
+ : (a <= i && 0 !== s && (c(0), o && v()),
+ ((e <= a && s !== e) || !e) && (c(e), o || v())),
+ p('update'),
+ e <= t &&
+ (k.remaining
+ ? ((m = f),
+ 'alternate' === k.direction &&
+ (k.reversed = !k.reversed))
+ : (k.pause(),
+ k.completed ||
+ ((k.completed = !0),
+ p('complete'),
+ 'Promise' in window && (_(), (y = d())))),
+ (g = 0))
+ }
+ t = void 0 === t ? {} : t
+ var f,
+ m,
+ g = 0,
+ _ = null,
+ y = d(),
+ k = n(t)
+ return (
+ (k.reset = function() {
+ var t = k.direction,
+ e = k.loop
+ for (
+ k.currentTime = 0,
+ k.progress = 0,
+ k.paused = !0,
+ k.began = !1,
+ k.completed = !1,
+ k.reversed = 'reverse' === t,
+ k.remaining = 'alternate' === t && 1 === e ? 2 : e,
+ c(0),
+ t = k.children.length;
+ t--;
+
+ )
+ k.children[t].reset()
+ }),
+ (k.tick = function(t) {
+ ;(f = t), m || (m = f), e((g + f - m) * O.speed)
+ }),
+ (k.seek = function(t) {
+ e(u(t))
+ }),
+ (k.pause = function() {
+ var t = A.indexOf(k)
+ ;-1 < t && A.splice(t, 1), (k.paused = !0)
+ }),
+ (k.play = function() {
+ k.paused &&
+ ((k.paused = !1),
+ (m = 0),
+ (g = u(k.currentTime)),
+ A.push(k),
+ R || H())
+ }),
+ (k.reverse = function() {
+ ;(k.reversed = !k.reversed), (m = 0), (g = u(k.currentTime))
+ }),
+ (k.restart = function() {
+ k.pause(), k.reset(), k.play()
+ }),
+ (k.finished = y),
+ k.reset(),
+ k.autoplay && k.play(),
+ k
+ )
+ }
+ var x,
+ L = {
+ update: void 0,
+ begin: void 0,
+ run: void 0,
+ complete: void 0,
+ loop: 1,
+ direction: 'normal',
+ autoplay: !0,
+ offset: 0,
+ },
+ T = {
+ duration: 1e3,
+ delay: 0,
+ easing: 'easeOutElastic',
+ elasticity: 500,
+ round: 0,
+ },
+ $ = 'translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective'.split(
+ ' '
+ ),
+ B = {
+ arr: function(t) {
+ return Array.isArray(t)
+ },
+ obj: function(t) {
+ return -1 < Object.prototype.toString.call(t).indexOf('Object')
+ },
+ pth: function(t) {
+ return B.obj(t) && t.hasOwnProperty('totalLength')
+ },
+ svg: function(t) {
+ return t instanceof SVGElement
+ },
+ dom: function(t) {
+ return t.nodeType || B.svg(t)
+ },
+ str: function(t) {
+ return 'string' == typeof t
+ },
+ fnc: function(t) {
+ return 'function' == typeof t
+ },
+ und: function(t) {
+ return void 0 === t
+ },
+ hex: function(t) {
+ return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)
+ },
+ rgb: function(t) {
+ return /^rgb/.test(t)
+ },
+ hsl: function(t) {
+ return /^hsl/.test(t)
+ },
+ col: function(t) {
+ return B.hex(t) || B.rgb(t) || B.hsl(t)
+ },
+ },
+ D = (function() {
+ function u(t, e, i) {
+ return (
+ (((1 - 3 * i + 3 * e) * t + (3 * i - 6 * e)) * t + 3 * e) *
+ t
+ )
+ }
+ return function(a, r, l, h) {
+ if (0 <= a && a <= 1 && 0 <= l && l <= 1) {
+ var d = new Float32Array(11)
+ if (a !== r || l !== h)
+ for (var t = 0; t < 11; ++t) d[t] = u(0.1 * t, a, l)
+ return function(t) {
+ if (a === r && l === h) return t
+ if (0 === t) return 0
+ if (1 === t) return 1
+ for (var e = 0, i = 1; 10 !== i && d[i] <= t; ++i)
+ e += 0.1
+ var i = e + ((t - d[--i]) / (d[i + 1] - d[i])) * 0.1,
+ n =
+ 3 * (1 - 3 * l + 3 * a) * i * i +
+ 2 * (3 * l - 6 * a) * i +
+ 3 * a
+ if (0.001 <= n) {
+ for (
+ e = 0;
+ e < 4 &&
+ 0 !=
+ (n =
+ 3 * (1 - 3 * l + 3 * a) * i * i +
+ 2 * (3 * l - 6 * a) * i +
+ 3 * a);
+ ++e
+ )
+ var s = u(i, a, l) - t, i = i - s / n
+ t = i
+ } else if (0 === n) t = i
+ else {
+ for (
+ var i = e, e = e + 0.1, o = 0;
+ 0 < (n = u((s = i + (e - i) / 2), a, l) - t)
+ ? (e = s)
+ : (i = s),
+ 1e-7 < Math.abs(n) && ++o < 10;
+
+ );
+ t = s
+ }
+ return u(t, r, h)
+ }
+ }
+ }
+ })(),
+ S = (function() {
+ function i(t, e) {
+ return 0 === t || 1 === t
+ ? t
+ : -Math.pow(2, 10 * (t - 1)) *
+ Math.sin(
+ (2 *
+ (t - 1 - (e / (2 * Math.PI)) * Math.asin(1)) *
+ Math.PI) /
+ e
+ )
+ }
+ var t,
+ n = 'Quad Cubic Quart Quint Sine Expo Circ Back Elastic'.split(
+ ' '
+ ),
+ e = {
+ In: [
+ [0.55, 0.085, 0.68, 0.53],
+ [0.55, 0.055, 0.675, 0.19],
+ [0.895, 0.03, 0.685, 0.22],
+ [0.755, 0.05, 0.855, 0.06],
+ [0.47, 0, 0.745, 0.715],
+ [0.95, 0.05, 0.795, 0.035],
+ [0.6, 0.04, 0.98, 0.335],
+ [0.6, -0.28, 0.735, 0.045],
+ i,
+ ],
+ Out: [
+ [0.25, 0.46, 0.45, 0.94],
+ [0.215, 0.61, 0.355, 1],
+ [0.165, 0.84, 0.44, 1],
+ [0.23, 1, 0.32, 1],
+ [0.39, 0.575, 0.565, 1],
+ [0.19, 1, 0.22, 1],
+ [0.075, 0.82, 0.165, 1],
+ [0.175, 0.885, 0.32, 1.275],
+ function(t, e) {
+ return 1 - i(1 - t, e)
+ },
+ ],
+ InOut: [
+ [0.455, 0.03, 0.515, 0.955],
+ [0.645, 0.045, 0.355, 1],
+ [0.77, 0, 0.175, 1],
+ [0.86, 0, 0.07, 1],
+ [0.445, 0.05, 0.55, 0.95],
+ [1, 0, 0, 1],
+ [0.785, 0.135, 0.15, 0.86],
+ [0.68, -0.55, 0.265, 1.55],
+ function(t, e) {
+ return t < 0.5
+ ? i(2 * t, e) / 2
+ : 1 - i(-2 * t + 2, e) / 2
+ },
+ ],
+ },
+ s = { linear: D(0.25, 0.25, 0.75, 0.75) },
+ o = {}
+ for (t in e)
+ (o.type = t),
+ e[o.type].forEach(
+ (function(i) {
+ return function(t, e) {
+ s['ease' + i.type + n[e]] = B.fnc(t)
+ ? t
+ : D.apply($jscomp$this, t)
+ }
+ })(o)
+ ),
+ (o = { type: o.type })
+ return s
+ })(),
+ I = {
+ css: function(t, e, i) {
+ return (t.style[e] = i)
+ },
+ attribute: function(t, e, i) {
+ return t.setAttribute(e, i)
+ },
+ object: function(t, e, i) {
+ return (t[e] = i)
+ },
+ transform: function(t, e, i, n, s) {
+ n[s] || (n[s] = []), n[s].push(e + '(' + i + ')')
+ },
+ },
+ A = [],
+ R = 0,
+ H = (function() {
+ function n() {
+ R = requestAnimationFrame(t)
+ }
+ function t(t) {
+ var e = A.length
+ if (e) {
+ for (var i = 0; i < e; ) A[i] && A[i].tick(t), i++
+ n()
+ } else cancelAnimationFrame(R), (R = 0)
+ }
+ return n
+ })()
+ return (
+ (O.version = '2.2.0'),
+ (O.speed = 1),
+ (O.running = A),
+ (O.remove = function(t) {
+ t = y(t)
+ for (var e = A.length; e--; )
+ for (var i = A[e], n = i.animations, s = n.length; s--; )
+ a(t, n[s].animatable.target) &&
+ (n.splice(s, 1), n.length || i.pause())
+ }),
+ (O.getValue = v),
+ (O.path = function(t, e) {
+ var i = B.str(t) ? s(t)[0] : t,
+ n = e || 100
+ return function(t) {
+ return { el: i, property: t, totalLength: g(i) * (n / 100) }
+ }
+ }),
+ (O.setDashoffset = function(t) {
+ var e = g(t)
+ return t.setAttribute('stroke-dasharray', e), e
+ }),
+ (O.bezier = D),
+ (O.easings = S),
+ (O.timeline = function(n) {
+ var s = O(n)
+ return (
+ s.pause(),
+ (s.duration = 0),
+ (s.add = function(t) {
+ return (
+ s.children.forEach(function(t) {
+ ;(t.began = !0), (t.completed = !0)
+ }),
+ o(t).forEach(function(t) {
+ var e = c(t, u(T, n || {}))
+ ;(e.targets = e.targets || n.targets),
+ (t = s.duration)
+ var i = e.offset
+ ;(e.autoplay = !1),
+ (e.direction = s.direction),
+ (e.offset = B.und(i) ? t : f(i, t)),
+ (s.began = !0),
+ (s.completed = !0),
+ s.seek(e.offset),
+ ((e = O(e)).began = !0),
+ (e.completed = !0),
+ e.duration > t && (s.duration = e.duration),
+ s.children.push(e)
+ }),
+ s.seek(0),
+ s.reset(),
+ s.autoplay && s.restart(),
+ s
+ )
+ }),
+ s
+ )
+ }),
+ (O.random = function(t, e) {
+ return Math.floor(Math.random() * (e - t + 1)) + t
+ }),
+ O
+ )
+})()),
+ (function(r, l) {
+ 'use strict'
+ var e = {
+ accordion: !0,
+ onOpenStart: void 0,
+ onOpenEnd: void 0,
+ onCloseStart: void 0,
+ onCloseEnd: void 0,
+ inDuration: 300,
+ outDuration: 300,
+ },
+ t = (function(t) {
+ function s(t, e) {
+ _classCallCheck(this, s)
+ var i = _possibleConstructorReturn(
+ this,
+ (s.__proto__ || Object.getPrototypeOf(s)).call(
+ this,
+ s,
+ t,
+ e
+ )
+ )
+ ;((i.el.M_Collapsible = i).options = r.extend(
+ {},
+ s.defaults,
+ e
+ )),
+ (i.$headers = i.$el
+ .children('li')
+ .children('.collapsible-header')),
+ i.$headers.attr('tabindex', 0),
+ i._setupEventHandlers()
+ var n = i.$el
+ .children('li.active')
+ .children('.collapsible-body')
+ return (
+ i.options.accordion
+ ? n.first().css('display', 'block')
+ : n.css('display', 'block'),
+ i
+ )
+ }
+ return (
+ _inherits(s, Component),
+ _createClass(
+ s,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.M_Collapsible = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ var e = this
+ ;(this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(
+ this
+ )),
+ (this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleCollapsibleClickBound
+ ),
+ this.$headers.each(function(t) {
+ t.addEventListener(
+ 'keydown',
+ e._handleCollapsibleKeydownBound
+ )
+ })
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ var e = this
+ this.el.removeEventListener(
+ 'click',
+ this._handleCollapsibleClickBound
+ ),
+ this.$headers.each(function(t) {
+ t.removeEventListener(
+ 'keydown',
+ e._handleCollapsibleKeydownBound
+ )
+ })
+ },
+ },
+ {
+ key: '_handleCollapsibleClick',
+ value: function(t) {
+ var e = r(t.target).closest(
+ '.collapsible-header'
+ )
+ if (t.target && e.length) {
+ var i = e.closest('.collapsible')
+ if (i[0] === this.el) {
+ var n = e.closest('li'),
+ s = i.children('li'),
+ o = n[0].classList.contains(
+ 'active'
+ ),
+ a = s.index(n)
+ o ? this.close(a) : this.open(a)
+ }
+ }
+ },
+ },
+ {
+ key: '_handleCollapsibleKeydown',
+ value: function(t) {
+ 13 === t.keyCode &&
+ this._handleCollapsibleClickBound(t)
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function(t) {
+ var e = this,
+ i = this.$el.children('li').eq(t)
+ if (i.length) {
+ var n = i.children('.collapsible-body')
+ l.remove(n[0]),
+ n.css({
+ display: 'block',
+ overflow: 'hidden',
+ height: 0,
+ paddingTop: '',
+ paddingBottom: '',
+ })
+ var s = n.css('padding-top'),
+ o = n.css('padding-bottom'),
+ a = n[0].scrollHeight
+ n.css({
+ paddingTop: 0,
+ paddingBottom: 0,
+ }),
+ l({
+ targets: n[0],
+ height: a,
+ paddingTop: s,
+ paddingBottom: o,
+ duration: this.options
+ .inDuration,
+ easing: 'easeInOutCubic',
+ complete: function(t) {
+ n.css({
+ overflow: '',
+ paddingTop: '',
+ paddingBottom: '',
+ height: '',
+ }),
+ 'function' ==
+ typeof e.options
+ .onOpenEnd &&
+ e.options.onOpenEnd.call(
+ e,
+ i[0]
+ )
+ },
+ })
+ }
+ },
+ },
+ {
+ key: '_animateOut',
+ value: function(t) {
+ var e = this,
+ i = this.$el.children('li').eq(t)
+ if (i.length) {
+ var n = i.children('.collapsible-body')
+ l.remove(n[0]),
+ n.css('overflow', 'hidden'),
+ l({
+ targets: n[0],
+ height: 0,
+ paddingTop: 0,
+ paddingBottom: 0,
+ duration: this.options
+ .outDuration,
+ easing: 'easeInOutCubic',
+ complete: function() {
+ n.css({
+ height: '',
+ overflow: '',
+ padding: '',
+ display: '',
+ }),
+ 'function' ==
+ typeof e.options
+ .onCloseEnd &&
+ e.options.onCloseEnd.call(
+ e,
+ i[0]
+ )
+ },
+ })
+ }
+ },
+ },
+ {
+ key: 'open',
+ value: function(t) {
+ var i = this,
+ e = this.$el.children('li').eq(t)
+ if (
+ e.length &&
+ !e[0].classList.contains('active')
+ ) {
+ if (
+ ('function' ==
+ typeof this.options
+ .onOpenStart &&
+ this.options.onOpenStart.call(
+ this,
+ e[0]
+ ),
+ this.options.accordion)
+ ) {
+ var n = this.$el.children('li')
+ this.$el
+ .children('li.active')
+ .each(function(t) {
+ var e = n.index(r(t))
+ i.close(e)
+ })
+ }
+ e[0].classList.add('active'),
+ this._animateIn(t)
+ }
+ },
+ },
+ {
+ key: 'close',
+ value: function(t) {
+ var e = this.$el.children('li').eq(t)
+ e.length &&
+ e[0].classList.contains('active') &&
+ ('function' ==
+ typeof this.options.onCloseStart &&
+ this.options.onCloseStart.call(
+ this,
+ e[0]
+ ),
+ e[0].classList.remove('active'),
+ this._animateOut(t))
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ s.__proto__ || Object.getPrototypeOf(s),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Collapsible
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ s
+ )
+ })()
+ ;(M.Collapsible = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'collapsible', 'M_Collapsible')
+ })(cash, M.anime),
+ (function(h, i) {
+ 'use strict'
+ var e = {
+ alignment: 'left',
+ autoFocus: !0,
+ constrainWidth: !0,
+ container: null,
+ coverTrigger: !0,
+ closeOnClick: !0,
+ hover: !1,
+ inDuration: 150,
+ outDuration: 250,
+ onOpenStart: null,
+ onOpenEnd: null,
+ onCloseStart: null,
+ onCloseEnd: null,
+ onItemClick: null,
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ (i.el.M_Dropdown = i),
+ n._dropdowns.push(i),
+ (i.id = M.getIdFromTrigger(t)),
+ (i.dropdownEl = document.getElementById(i.id)),
+ (i.$dropdownEl = h(i.dropdownEl)),
+ (i.options = h.extend({}, n.defaults, e)),
+ (i.isOpen = !1),
+ (i.isScrollable = !1),
+ (i.isTouchMoving = !1),
+ (i.focusedIndex = -1),
+ (i.filterQuery = []),
+ i.options.container
+ ? h(i.options.container).append(i.dropdownEl)
+ : i.$el.after(i.dropdownEl),
+ i._makeDropdownFocusable(),
+ (i._resetFilterQueryBound = i._resetFilterQuery.bind(
+ i
+ )),
+ (i._handleDocumentClickBound = i._handleDocumentClick.bind(
+ i
+ )),
+ (i._handleDocumentTouchmoveBound = i._handleDocumentTouchmove.bind(
+ i
+ )),
+ (i._handleDropdownClickBound = i._handleDropdownClick.bind(
+ i
+ )),
+ (i._handleDropdownKeydownBound = i._handleDropdownKeydown.bind(
+ i
+ )),
+ (i._handleTriggerKeydownBound = i._handleTriggerKeydown.bind(
+ i
+ )),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._resetDropdownStyles(),
+ this._removeEventHandlers(),
+ n._dropdowns.splice(
+ n._dropdowns.indexOf(this),
+ 1
+ ),
+ (this.el.M_Dropdown = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ this.el.addEventListener(
+ 'keydown',
+ this._handleTriggerKeydownBound
+ ),
+ this.dropdownEl.addEventListener(
+ 'click',
+ this._handleDropdownClickBound
+ ),
+ this.options.hover
+ ? ((this._handleMouseEnterBound = this._handleMouseEnter.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'mouseenter',
+ this._handleMouseEnterBound
+ ),
+ (this._handleMouseLeaveBound = this._handleMouseLeave.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ),
+ this.dropdownEl.addEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ))
+ : ((this._handleClickBound = this._handleClick.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleClickBound
+ ))
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'keydown',
+ this._handleTriggerKeydownBound
+ ),
+ this.dropdownEl.removeEventListener(
+ 'click',
+ this._handleDropdownClickBound
+ ),
+ this.options.hover
+ ? (this.el.removeEventListener(
+ 'mouseenter',
+ this._handleMouseEnterBound
+ ),
+ this.el.removeEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ),
+ this.dropdownEl.removeEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ))
+ : this.el.removeEventListener(
+ 'click',
+ this._handleClickBound
+ )
+ },
+ },
+ {
+ key: '_setupTemporaryEventHandlers',
+ value: function() {
+ document.body.addEventListener(
+ 'click',
+ this._handleDocumentClickBound,
+ !0
+ ),
+ document.body.addEventListener(
+ 'touchend',
+ this._handleDocumentClickBound
+ ),
+ document.body.addEventListener(
+ 'touchmove',
+ this._handleDocumentTouchmoveBound
+ ),
+ this.dropdownEl.addEventListener(
+ 'keydown',
+ this._handleDropdownKeydownBound
+ )
+ },
+ },
+ {
+ key: '_removeTemporaryEventHandlers',
+ value: function() {
+ document.body.removeEventListener(
+ 'click',
+ this._handleDocumentClickBound,
+ !0
+ ),
+ document.body.removeEventListener(
+ 'touchend',
+ this._handleDocumentClickBound
+ ),
+ document.body.removeEventListener(
+ 'touchmove',
+ this._handleDocumentTouchmoveBound
+ ),
+ this.dropdownEl.removeEventListener(
+ 'keydown',
+ this._handleDropdownKeydownBound
+ )
+ },
+ },
+ {
+ key: '_handleClick',
+ value: function(t) {
+ t.preventDefault(), this.open()
+ },
+ },
+ {
+ key: '_handleMouseEnter',
+ value: function() {
+ this.open()
+ },
+ },
+ {
+ key: '_handleMouseLeave',
+ value: function(t) {
+ var e = t.toElement || t.relatedTarget,
+ i = !!h(e).closest('.dropdown-content')
+ .length,
+ n = !1,
+ s = h(e).closest('.dropdown-trigger')
+ s.length &&
+ s[0].M_Dropdown &&
+ s[0].M_Dropdown.isOpen &&
+ (n = !0),
+ n || i || this.close()
+ },
+ },
+ {
+ key: '_handleDocumentClick',
+ value: function(t) {
+ var e = this,
+ i = h(t.target)
+ this.options.closeOnClick &&
+ i.closest('.dropdown-content').length &&
+ !this.isTouchMoving
+ ? setTimeout(function() {
+ e.close()
+ }, 0)
+ : (!i.closest('.dropdown-trigger')
+ .length &&
+ i.closest('.dropdown-content')
+ .length) ||
+ setTimeout(function() {
+ e.close()
+ }, 0),
+ (this.isTouchMoving = !1)
+ },
+ },
+ {
+ key: '_handleTriggerKeydown',
+ value: function(t) {
+ ;(t.which !== M.keys.ARROW_DOWN &&
+ t.which !== M.keys.ENTER) ||
+ this.isOpen ||
+ (t.preventDefault(), this.open())
+ },
+ },
+ {
+ key: '_handleDocumentTouchmove',
+ value: function(t) {
+ h(t.target).closest('.dropdown-content')
+ .length && (this.isTouchMoving = !0)
+ },
+ },
+ {
+ key: '_handleDropdownClick',
+ value: function(t) {
+ if (
+ 'function' ==
+ typeof this.options.onItemClick
+ ) {
+ var e = h(t.target).closest('li')[0]
+ this.options.onItemClick.call(this, e)
+ }
+ },
+ },
+ {
+ key: '_handleDropdownKeydown',
+ value: function(t) {
+ if (t.which === M.keys.TAB)
+ t.preventDefault(), this.close()
+ else if (
+ (t.which !== M.keys.ARROW_DOWN &&
+ t.which !== M.keys.ARROW_UP) ||
+ !this.isOpen
+ )
+ if (
+ t.which === M.keys.ENTER &&
+ this.isOpen
+ ) {
+ var e = this.dropdownEl.children[
+ this.focusedIndex
+ ],
+ i = h(e)
+ .find('a, button')
+ .first()
+ i.length
+ ? i[0].click()
+ : e && e.click()
+ } else
+ t.which === M.keys.ESC &&
+ this.isOpen &&
+ (t.preventDefault(),
+ this.close())
+ else {
+ t.preventDefault()
+ var n =
+ t.which === M.keys.ARROW_DOWN
+ ? 1
+ : -1,
+ s = this.focusedIndex,
+ o = !1
+ do {
+ if (
+ ((s += n),
+ this.dropdownEl.children[s] &&
+ -1 !==
+ this.dropdownEl
+ .children[s]
+ .tabIndex)
+ ) {
+ o = !0
+ break
+ }
+ } while (
+ s <
+ this.dropdownEl.children
+ .length &&
+ 0 <= s
+ )
+ o &&
+ ((this.focusedIndex = s),
+ this._focusFocusedItem())
+ }
+ var a = String.fromCharCode(
+ t.which
+ ).toLowerCase()
+ if (
+ a &&
+ -1 ===
+ [9, 13, 27, 38, 40].indexOf(t.which)
+ ) {
+ this.filterQuery.push(a)
+ var r = this.filterQuery.join(''),
+ l = h(this.dropdownEl)
+ .find('li')
+ .filter(function(t) {
+ return (
+ 0 ===
+ h(t)
+ .text()
+ .toLowerCase()
+ .indexOf(r)
+ )
+ })[0]
+ l &&
+ ((this.focusedIndex = h(l).index()),
+ this._focusFocusedItem())
+ }
+ this.filterTimeout = setTimeout(
+ this._resetFilterQueryBound,
+ 1e3
+ )
+ },
+ },
+ {
+ key: '_resetFilterQuery',
+ value: function() {
+ this.filterQuery = []
+ },
+ },
+ {
+ key: '_resetDropdownStyles',
+ value: function() {
+ this.$dropdownEl.css({
+ display: '',
+ width: '',
+ height: '',
+ left: '',
+ top: '',
+ 'transform-origin': '',
+ transform: '',
+ opacity: '',
+ })
+ },
+ },
+ {
+ key: '_makeDropdownFocusable',
+ value: function() {
+ ;(this.dropdownEl.tabIndex = 0),
+ h(this.dropdownEl)
+ .children()
+ .each(function(t) {
+ t.getAttribute('tabindex') ||
+ t.setAttribute(
+ 'tabindex',
+ 0
+ )
+ })
+ },
+ },
+ {
+ key: '_focusFocusedItem',
+ value: function() {
+ 0 <= this.focusedIndex &&
+ this.focusedIndex <
+ this.dropdownEl.children.length &&
+ this.options.autoFocus &&
+ this.dropdownEl.children[
+ this.focusedIndex
+ ].focus()
+ },
+ },
+ {
+ key: '_getDropdownPosition',
+ value: function() {
+ this.el.offsetParent.getBoundingClientRect()
+ var t = this.el.getBoundingClientRect(),
+ e = this.dropdownEl.getBoundingClientRect(),
+ i = e.height,
+ n = e.width,
+ s = t.left - e.left,
+ o = t.top - e.top,
+ a = {
+ left: s,
+ top: o,
+ height: i,
+ width: n,
+ },
+ r = this.dropdownEl.offsetParent
+ ? this.dropdownEl.offsetParent
+ : this.dropdownEl.parentNode,
+ l = M.checkPossibleAlignments(
+ this.el,
+ r,
+ a,
+ this.options.coverTrigger
+ ? 0
+ : t.height
+ ),
+ h = 'top',
+ d = this.options.alignment
+ if (
+ ((o += this.options.coverTrigger
+ ? 0
+ : t.height),
+ (this.isScrollable = !1),
+ l.top ||
+ (l.bottom
+ ? (h = 'bottom')
+ : ((this.isScrollable = !0),
+ l.spaceOnTop > l.spaceOnBottom
+ ? ((h = 'bottom'),
+ (i += l.spaceOnTop),
+ (o -= l.spaceOnTop))
+ : (i +=
+ l.spaceOnBottom))),
+ !l[d])
+ ) {
+ var u = 'left' === d ? 'right' : 'left'
+ l[u]
+ ? (d = u)
+ : l.spaceOnLeft > l.spaceOnRight
+ ? ((d = 'right'),
+ (n += l.spaceOnLeft),
+ (s -= l.spaceOnLeft))
+ : ((d = 'left'),
+ (n += l.spaceOnRight))
+ }
+ return (
+ 'bottom' === h &&
+ (o =
+ o -
+ e.height +
+ (this.options.coverTrigger
+ ? t.height
+ : 0)),
+ 'right' === d &&
+ (s = s - e.width + t.width),
+ {
+ x: s,
+ y: o,
+ verticalAlignment: h,
+ horizontalAlignment: d,
+ height: i,
+ width: n,
+ }
+ )
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function() {
+ var e = this
+ i.remove(this.dropdownEl),
+ i({
+ targets: this.dropdownEl,
+ opacity: {
+ value: [0, 1],
+ easing: 'easeOutQuad',
+ },
+ scaleX: [0.3, 1],
+ scaleY: [0.3, 1],
+ duration: this.options.inDuration,
+ easing: 'easeOutQuint',
+ complete: function(t) {
+ e.options.autoFocus &&
+ e.dropdownEl.focus(),
+ 'function' ==
+ typeof e.options
+ .onOpenEnd &&
+ e.options.onOpenEnd.call(
+ e,
+ e.el
+ )
+ },
+ })
+ },
+ },
+ {
+ key: '_animateOut',
+ value: function() {
+ var e = this
+ i.remove(this.dropdownEl),
+ i({
+ targets: this.dropdownEl,
+ opacity: {
+ value: 0,
+ easing: 'easeOutQuint',
+ },
+ scaleX: 0.3,
+ scaleY: 0.3,
+ duration: this.options.outDuration,
+ easing: 'easeOutQuint',
+ complete: function(t) {
+ e._resetDropdownStyles(),
+ 'function' ==
+ typeof e.options
+ .onCloseEnd &&
+ e.options.onCloseEnd.call(
+ e,
+ e.el
+ )
+ },
+ })
+ },
+ },
+ {
+ key: '_placeDropdown',
+ value: function() {
+ var t = this.options.constrainWidth
+ ? this.el.getBoundingClientRect().width
+ : this.dropdownEl.getBoundingClientRect()
+ .width
+ this.dropdownEl.style.width = t + 'px'
+ var e = this._getDropdownPosition()
+ ;(this.dropdownEl.style.left = e.x + 'px'),
+ (this.dropdownEl.style.top =
+ e.y + 'px'),
+ (this.dropdownEl.style.height =
+ e.height + 'px'),
+ (this.dropdownEl.style.width =
+ e.width + 'px'),
+ (this.dropdownEl.style.transformOrigin =
+ ('left' === e.horizontalAlignment
+ ? '0'
+ : '100%') +
+ ' ' +
+ ('top' === e.verticalAlignment
+ ? '0'
+ : '100%'))
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ this.isOpen ||
+ ((this.isOpen = !0),
+ 'function' ==
+ typeof this.options.onOpenStart &&
+ this.options.onOpenStart.call(
+ this,
+ this.el
+ ),
+ this._resetDropdownStyles(),
+ (this.dropdownEl.style.display =
+ 'block'),
+ this._placeDropdown(),
+ this._animateIn(),
+ this._setupTemporaryEventHandlers())
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.isOpen &&
+ ((this.isOpen = !1),
+ (this.focusedIndex = -1),
+ 'function' ==
+ typeof this.options.onCloseStart &&
+ this.options.onCloseStart.call(
+ this,
+ this.el
+ ),
+ this._animateOut(),
+ this._removeTemporaryEventHandlers(),
+ this.options.autoFocus &&
+ this.el.focus())
+ },
+ },
+ {
+ key: 'recalculateDimensions',
+ value: function() {
+ this.isOpen &&
+ (this.$dropdownEl.css({
+ width: '',
+ height: '',
+ left: '',
+ top: '',
+ 'transform-origin': '',
+ }),
+ this._placeDropdown())
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Dropdown
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(t._dropdowns = []),
+ (M.Dropdown = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'dropdown', 'M_Dropdown')
+ })(cash, M.anime),
+ (function(s, i) {
+ 'use strict'
+ var e = {
+ opacity: 0.5,
+ inDuration: 250,
+ outDuration: 250,
+ onOpenStart: null,
+ onOpenEnd: null,
+ onCloseStart: null,
+ onCloseEnd: null,
+ preventScrolling: !0,
+ dismissible: !0,
+ startingTop: '4%',
+ endingTop: '10%',
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Modal = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isOpen = !1),
+ (i.id = i.$el.attr('id')),
+ (i._openingTrigger = void 0),
+ (i.$overlay = s('')),
+ (i.el.tabIndex = 0),
+ (i._nthModalOpened = 0),
+ n._count++,
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ n._count--,
+ this._removeEventHandlers(),
+ this.el.removeAttribute('style'),
+ this.$overlay.remove(),
+ (this.el.M_Modal = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleOverlayClickBound = this._handleOverlayClick.bind(
+ this
+ )),
+ (this._handleModalCloseClickBound = this._handleModalCloseClick.bind(
+ this
+ )),
+ 1 === n._count &&
+ document.body.addEventListener(
+ 'click',
+ this._handleTriggerClick
+ ),
+ this.$overlay[0].addEventListener(
+ 'click',
+ this._handleOverlayClickBound
+ ),
+ this.el.addEventListener(
+ 'click',
+ this._handleModalCloseClickBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ 0 === n._count &&
+ document.body.removeEventListener(
+ 'click',
+ this._handleTriggerClick
+ ),
+ this.$overlay[0].removeEventListener(
+ 'click',
+ this._handleOverlayClickBound
+ ),
+ this.el.removeEventListener(
+ 'click',
+ this._handleModalCloseClickBound
+ )
+ },
+ },
+ {
+ key: '_handleTriggerClick',
+ value: function(t) {
+ var e = s(t.target).closest(
+ '.modal-trigger'
+ )
+ if (e.length) {
+ var i = M.getIdFromTrigger(e[0]),
+ n = document.getElementById(i)
+ .M_Modal
+ n && n.open(e), t.preventDefault()
+ }
+ },
+ },
+ {
+ key: '_handleOverlayClick',
+ value: function() {
+ this.options.dismissible && this.close()
+ },
+ },
+ {
+ key: '_handleModalCloseClick',
+ value: function(t) {
+ s(t.target).closest('.modal-close')
+ .length && this.close()
+ },
+ },
+ {
+ key: '_handleKeydown',
+ value: function(t) {
+ 27 === t.keyCode &&
+ this.options.dismissible &&
+ this.close()
+ },
+ },
+ {
+ key: '_handleFocus',
+ value: function(t) {
+ this.el.contains(t.target) ||
+ this._nthModalOpened !==
+ n._modalsOpen ||
+ this.el.focus()
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function() {
+ var t = this
+ s.extend(this.el.style, {
+ display: 'block',
+ opacity: 0,
+ }),
+ s.extend(this.$overlay[0].style, {
+ display: 'block',
+ opacity: 0,
+ }),
+ i({
+ targets: this.$overlay[0],
+ opacity: this.options.opacity,
+ duration: this.options.inDuration,
+ easing: 'easeOutQuad',
+ })
+ var e = {
+ targets: this.el,
+ duration: this.options.inDuration,
+ easing: 'easeOutCubic',
+ complete: function() {
+ 'function' ==
+ typeof t.options.onOpenEnd &&
+ t.options.onOpenEnd.call(
+ t,
+ t.el,
+ t._openingTrigger
+ )
+ },
+ }
+ this.el.classList.contains('bottom-sheet')
+ ? s.extend(e, { bottom: 0, opacity: 1 })
+ : s.extend(e, {
+ top: [
+ this.options.startingTop,
+ this.options.endingTop,
+ ],
+ opacity: 1,
+ scaleX: [0.8, 1],
+ scaleY: [0.8, 1],
+ }),
+ i(e)
+ },
+ },
+ {
+ key: '_animateOut',
+ value: function() {
+ var t = this
+ i({
+ targets: this.$overlay[0],
+ opacity: 0,
+ duration: this.options.outDuration,
+ easing: 'easeOutQuart',
+ })
+ var e = {
+ targets: this.el,
+ duration: this.options.outDuration,
+ easing: 'easeOutCubic',
+ complete: function() {
+ ;(t.el.style.display = 'none'),
+ t.$overlay.remove(),
+ 'function' ==
+ typeof t.options
+ .onCloseEnd &&
+ t.options.onCloseEnd.call(
+ t,
+ t.el
+ )
+ },
+ }
+ this.el.classList.contains('bottom-sheet')
+ ? s.extend(e, {
+ bottom: '-100%',
+ opacity: 0,
+ })
+ : s.extend(e, {
+ top: [
+ this.options.endingTop,
+ this.options.startingTop,
+ ],
+ opacity: 0,
+ scaleX: 0.8,
+ scaleY: 0.8,
+ }),
+ i(e)
+ },
+ },
+ {
+ key: 'open',
+ value: function(t) {
+ if (!this.isOpen)
+ return (
+ (this.isOpen = !0),
+ n._modalsOpen++,
+ (this._nthModalOpened =
+ n._modalsOpen),
+ (this.$overlay[0].style.zIndex =
+ 1e3 + 2 * n._modalsOpen),
+ (this.el.style.zIndex =
+ 1e3 + 2 * n._modalsOpen + 1),
+ (this._openingTrigger = t
+ ? t[0]
+ : void 0),
+ 'function' ==
+ typeof this.options
+ .onOpenStart &&
+ this.options.onOpenStart.call(
+ this,
+ this.el,
+ this._openingTrigger
+ ),
+ this.options.preventScrolling &&
+ (document.body.style.overflow =
+ 'hidden'),
+ this.el.classList.add('open'),
+ this.el.insertAdjacentElement(
+ 'afterend',
+ this.$overlay[0]
+ ),
+ this.options.dismissible &&
+ ((this._handleKeydownBound = this._handleKeydown.bind(
+ this
+ )),
+ (this._handleFocusBound = this._handleFocus.bind(
+ this
+ )),
+ document.addEventListener(
+ 'keydown',
+ this._handleKeydownBound
+ ),
+ document.addEventListener(
+ 'focus',
+ this._handleFocusBound,
+ !0
+ )),
+ i.remove(this.el),
+ i.remove(this.$overlay[0]),
+ this._animateIn(),
+ this.el.focus(),
+ this
+ )
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ if (this.isOpen)
+ return (
+ (this.isOpen = !1),
+ n._modalsOpen--,
+ (this._nthModalOpened = 0),
+ 'function' ==
+ typeof this.options
+ .onCloseStart &&
+ this.options.onCloseStart.call(
+ this,
+ this.el
+ ),
+ this.el.classList.remove('open'),
+ 0 === n._modalsOpen &&
+ (document.body.style.overflow =
+ ''),
+ this.options.dismissible &&
+ (document.removeEventListener(
+ 'keydown',
+ this._handleKeydownBound
+ ),
+ document.removeEventListener(
+ 'focus',
+ this._handleFocusBound,
+ !0
+ )),
+ i.remove(this.el),
+ i.remove(this.$overlay[0]),
+ this._animateOut(),
+ this
+ )
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Modal
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(t._modalsOpen = 0),
+ (t._count = 0),
+ (M.Modal = t),
+ M.jQueryLoaded && M.initializeJqueryWrapper(t, 'modal', 'M_Modal')
+ })(cash, M.anime),
+ (function(o, a) {
+ 'use strict'
+ var e = {
+ inDuration: 275,
+ outDuration: 200,
+ onOpenStart: null,
+ onOpenEnd: null,
+ onCloseStart: null,
+ onCloseEnd: null,
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Materialbox = i).options = o.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.overlayActive = !1),
+ (i.doneAnimating = !0),
+ (i.placeholder = o('').addClass(
+ 'material-placeholder'
+ )),
+ (i.originalWidth = 0),
+ (i.originalHeight = 0),
+ (i.originInlineStyles = i.$el.attr('style')),
+ (i.caption = i.el.getAttribute('data-caption') || ''),
+ i.$el.before(i.placeholder),
+ i.placeholder.append(i.$el),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.M_Materialbox = void 0),
+ o(this.placeholder)
+ .after(this.el)
+ .remove(),
+ this.$el.removeAttr('style')
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleMaterialboxClickBound = this._handleMaterialboxClick.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleMaterialboxClickBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'click',
+ this._handleMaterialboxClickBound
+ )
+ },
+ },
+ {
+ key: '_handleMaterialboxClick',
+ value: function(t) {
+ !1 === this.doneAnimating ||
+ (this.overlayActive && this.doneAnimating)
+ ? this.close()
+ : this.open()
+ },
+ },
+ {
+ key: '_handleWindowScroll',
+ value: function() {
+ this.overlayActive && this.close()
+ },
+ },
+ {
+ key: '_handleWindowResize',
+ value: function() {
+ this.overlayActive && this.close()
+ },
+ },
+ {
+ key: '_handleWindowEscape',
+ value: function(t) {
+ 27 === t.keyCode &&
+ this.doneAnimating &&
+ this.overlayActive &&
+ this.close()
+ },
+ },
+ {
+ key: '_makeAncestorsOverflowVisible',
+ value: function() {
+ this.ancestorsChanged = o()
+ for (
+ var t = this.placeholder[0].parentNode;
+ null !== t && !o(t).is(document);
+
+ ) {
+ var e = o(t)
+ 'visible' !== e.css('overflow') &&
+ (e.css('overflow', 'visible'),
+ void 0 === this.ancestorsChanged
+ ? (this.ancestorsChanged = e)
+ : (this.ancestorsChanged = this.ancestorsChanged.add(
+ e
+ ))),
+ (t = t.parentNode)
+ }
+ },
+ },
+ {
+ key: '_animateImageIn',
+ value: function() {
+ var t = this,
+ e = {
+ targets: this.el,
+ height: [
+ this.originalHeight,
+ this.newHeight,
+ ],
+ width: [
+ this.originalWidth,
+ this.newWidth,
+ ],
+ left:
+ M.getDocumentScrollLeft() +
+ this.windowWidth / 2 -
+ this.placeholder.offset().left -
+ this.newWidth / 2,
+ top:
+ M.getDocumentScrollTop() +
+ this.windowHeight / 2 -
+ this.placeholder.offset().top -
+ this.newHeight / 2,
+ duration: this.options.inDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ ;(t.doneAnimating = !0),
+ 'function' ==
+ typeof t.options
+ .onOpenEnd &&
+ t.options.onOpenEnd.call(
+ t,
+ t.el
+ )
+ },
+ }
+ ;(this.maxWidth = this.$el.css(
+ 'max-width'
+ )),
+ (this.maxHeight = this.$el.css(
+ 'max-height'
+ )),
+ 'none' !== this.maxWidth &&
+ (e.maxWidth = this.newWidth),
+ 'none' !== this.maxHeight &&
+ (e.maxHeight = this.newHeight),
+ a(e)
+ },
+ },
+ {
+ key: '_animateImageOut',
+ value: function() {
+ var t = this,
+ e = {
+ targets: this.el,
+ width: this.originalWidth,
+ height: this.originalHeight,
+ left: 0,
+ top: 0,
+ duration: this.options.outDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ t.placeholder.css({
+ height: '',
+ width: '',
+ position: '',
+ top: '',
+ left: '',
+ }),
+ t.attrWidth &&
+ t.$el.attr(
+ 'width',
+ t.attrWidth
+ ),
+ t.attrHeight &&
+ t.$el.attr(
+ 'height',
+ t.attrHeight
+ ),
+ t.$el.removeAttr('style'),
+ t.originInlineStyles &&
+ t.$el.attr(
+ 'style',
+ t.originInlineStyles
+ ),
+ t.$el.removeClass('active'),
+ (t.doneAnimating = !0),
+ t.ancestorsChanged.length &&
+ t.ancestorsChanged.css(
+ 'overflow',
+ ''
+ ),
+ 'function' ==
+ typeof t.options
+ .onCloseEnd &&
+ t.options.onCloseEnd.call(
+ t,
+ t.el
+ )
+ },
+ }
+ a(e)
+ },
+ },
+ {
+ key: '_updateVars',
+ value: function() {
+ ;(this.windowWidth = window.innerWidth),
+ (this.windowHeight =
+ window.innerHeight),
+ (this.caption =
+ this.el.getAttribute(
+ 'data-caption'
+ ) || '')
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ var t = this
+ this._updateVars(),
+ (this.originalWidth = this.el.getBoundingClientRect().width),
+ (this.originalHeight = this.el.getBoundingClientRect().height),
+ (this.doneAnimating = !1),
+ this.$el.addClass('active'),
+ (this.overlayActive = !0),
+ 'function' ==
+ typeof this.options.onOpenStart &&
+ this.options.onOpenStart.call(
+ this,
+ this.el
+ ),
+ this.placeholder.css({
+ width:
+ this.placeholder[0].getBoundingClientRect()
+ .width + 'px',
+ height:
+ this.placeholder[0].getBoundingClientRect()
+ .height + 'px',
+ position: 'relative',
+ top: 0,
+ left: 0,
+ }),
+ this._makeAncestorsOverflowVisible(),
+ this.$el.css({
+ position: 'absolute',
+ 'z-index': 1e3,
+ 'will-change':
+ 'left, top, width, height',
+ }),
+ (this.attrWidth = this.$el.attr(
+ 'width'
+ )),
+ (this.attrHeight = this.$el.attr(
+ 'height'
+ )),
+ this.attrWidth &&
+ (this.$el.css(
+ 'width',
+ this.attrWidth + 'px'
+ ),
+ this.$el.removeAttr('width')),
+ this.attrHeight &&
+ (this.$el.css(
+ 'width',
+ this.attrHeight + 'px'
+ ),
+ this.$el.removeAttr('height')),
+ (this.$overlay = o(
+ ''
+ )
+ .css({ opacity: 0 })
+ .one('click', function() {
+ t.doneAnimating && t.close()
+ })),
+ this.$el.before(this.$overlay)
+ var e = this.$overlay[0].getBoundingClientRect()
+ this.$overlay.css({
+ width: this.windowWidth + 'px',
+ height: this.windowHeight + 'px',
+ left: -1 * e.left + 'px',
+ top: -1 * e.top + 'px',
+ }),
+ a.remove(this.el),
+ a.remove(this.$overlay[0]),
+ a({
+ targets: this.$overlay[0],
+ opacity: 1,
+ duration: this.options.inDuration,
+ easing: 'easeOutQuad',
+ }),
+ '' !== this.caption &&
+ (this.$photocaption &&
+ a.remove(this.$photoCaption[0]),
+ (this.$photoCaption = o(
+ ''
+ )),
+ this.$photoCaption.text(
+ this.caption
+ ),
+ o('body').append(
+ this.$photoCaption
+ ),
+ this.$photoCaption.css({
+ display: 'inline',
+ }),
+ a({
+ targets: this.$photoCaption[0],
+ opacity: 1,
+ duration: this.options
+ .inDuration,
+ easing: 'easeOutQuad',
+ }))
+ var i = 0,
+ n =
+ this.originalWidth /
+ this.windowWidth,
+ s =
+ this.originalHeight /
+ this.windowHeight
+ ;(this.newWidth = 0),
+ (this.newHeight = 0),
+ s < n
+ ? ((i =
+ this.originalHeight /
+ this.originalWidth),
+ (this.newWidth =
+ 0.9 * this.windowWidth),
+ (this.newHeight =
+ 0.9 * this.windowWidth * i))
+ : ((i =
+ this.originalWidth /
+ this.originalHeight),
+ (this.newWidth =
+ 0.9 * this.windowHeight * i),
+ (this.newHeight =
+ 0.9 * this.windowHeight)),
+ this._animateImageIn(),
+ (this._handleWindowScrollBound = this._handleWindowScroll.bind(
+ this
+ )),
+ (this._handleWindowResizeBound = this._handleWindowResize.bind(
+ this
+ )),
+ (this._handleWindowEscapeBound = this._handleWindowEscape.bind(
+ this
+ )),
+ window.addEventListener(
+ 'scroll',
+ this._handleWindowScrollBound
+ ),
+ window.addEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ ),
+ window.addEventListener(
+ 'keyup',
+ this._handleWindowEscapeBound
+ )
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ var t = this
+ this._updateVars(),
+ (this.doneAnimating = !1),
+ 'function' ==
+ typeof this.options.onCloseStart &&
+ this.options.onCloseStart.call(
+ this,
+ this.el
+ ),
+ a.remove(this.el),
+ a.remove(this.$overlay[0]),
+ '' !== this.caption &&
+ a.remove(this.$photoCaption[0]),
+ window.removeEventListener(
+ 'scroll',
+ this._handleWindowScrollBound
+ ),
+ window.removeEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ ),
+ window.removeEventListener(
+ 'keyup',
+ this._handleWindowEscapeBound
+ ),
+ a({
+ targets: this.$overlay[0],
+ opacity: 0,
+ duration: this.options.outDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ ;(t.overlayActive = !1),
+ t.$overlay.remove()
+ },
+ }),
+ this._animateImageOut(),
+ '' !== this.caption &&
+ a({
+ targets: this.$photoCaption[0],
+ opacity: 0,
+ duration: this.options
+ .outDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ t.$photoCaption.remove()
+ },
+ })
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Materialbox
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.Materialbox = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'materialbox', 'M_Materialbox')
+ })(cash, M.anime),
+ (function(s) {
+ 'use strict'
+ var e = { responsiveThreshold: 0 },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Parallax = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i._enabled =
+ window.innerWidth > i.options.responsiveThreshold),
+ (i.$img = i.$el.find('img').first()),
+ i.$img.each(function() {
+ this.complete && s(this).trigger('load')
+ }),
+ i._updateParallax(),
+ i._setupEventHandlers(),
+ i._setupStyles(),
+ n._parallaxes.push(i),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ n._parallaxes.splice(
+ n._parallaxes.indexOf(this),
+ 1
+ ),
+ (this.$img[0].style.transform = ''),
+ this._removeEventHandlers(),
+ (this.$el[0].M_Parallax = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleImageLoadBound = this._handleImageLoad.bind(
+ this
+ )),
+ this.$img[0].addEventListener(
+ 'load',
+ this._handleImageLoadBound
+ ),
+ 0 === n._parallaxes.length &&
+ ((n._handleScrollThrottled = M.throttle(
+ n._handleScroll,
+ 5
+ )),
+ window.addEventListener(
+ 'scroll',
+ n._handleScrollThrottled
+ ),
+ (n._handleWindowResizeThrottled = M.throttle(
+ n._handleWindowResize,
+ 5
+ )),
+ window.addEventListener(
+ 'resize',
+ n._handleWindowResizeThrottled
+ ))
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.$img[0].removeEventListener(
+ 'load',
+ this._handleImageLoadBound
+ ),
+ 0 === n._parallaxes.length &&
+ (window.removeEventListener(
+ 'scroll',
+ n._handleScrollThrottled
+ ),
+ window.removeEventListener(
+ 'resize',
+ n._handleWindowResizeThrottled
+ ))
+ },
+ },
+ {
+ key: '_setupStyles',
+ value: function() {
+ this.$img[0].style.opacity = 1
+ },
+ },
+ {
+ key: '_handleImageLoad',
+ value: function() {
+ this._updateParallax()
+ },
+ },
+ {
+ key: '_updateParallax',
+ value: function() {
+ var t =
+ 0 < this.$el.height()
+ ? this.el.parentNode
+ .offsetHeight
+ : 500,
+ e = this.$img[0].offsetHeight - t,
+ i = this.$el.offset().top + t,
+ n = this.$el.offset().top,
+ s = M.getDocumentScrollTop(),
+ o = window.innerHeight,
+ a = e * ((s + o - n) / (t + o))
+ this._enabled
+ ? s < i &&
+ n < s + o &&
+ (this.$img[0].style.transform =
+ 'translate3D(-50%, ' +
+ a +
+ 'px, 0)')
+ : (this.$img[0].style.transform = '')
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Parallax
+ },
+ },
+ {
+ key: '_handleScroll',
+ value: function() {
+ for (
+ var t = 0;
+ t < n._parallaxes.length;
+ t++
+ ) {
+ var e = n._parallaxes[t]
+ e._updateParallax.call(e)
+ }
+ },
+ },
+ {
+ key: '_handleWindowResize',
+ value: function() {
+ for (
+ var t = 0;
+ t < n._parallaxes.length;
+ t++
+ ) {
+ var e = n._parallaxes[t]
+ e._enabled =
+ window.innerWidth >
+ e.options.responsiveThreshold
+ }
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(t._parallaxes = []),
+ (M.Parallax = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'parallax', 'M_Parallax')
+ })(cash),
+ (function(a, s) {
+ 'use strict'
+ var e = {
+ duration: 300,
+ onShow: null,
+ swipeable: !1,
+ responsiveThreshold: 1 / 0,
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Tabs = i).options = a.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.$tabLinks = i.$el.children('li.tab').children('a')),
+ (i.index = 0),
+ i._setupActiveTabLink(),
+ i.options.swipeable
+ ? i._setupSwipeableTabs()
+ : i._setupNormalTabs(),
+ i._setTabsAndTabWidth(),
+ i._createIndicator(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this._indicator.parentNode.removeChild(
+ this._indicator
+ ),
+ this.options.swipeable
+ ? this._teardownSwipeableTabs()
+ : this._teardownNormalTabs(),
+ (this.$el[0].M_Tabs = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleWindowResizeBound = this._handleWindowResize.bind(
+ this
+ )),
+ window.addEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ ),
+ (this._handleTabClickBound = this._handleTabClick.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleTabClickBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ window.removeEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ ),
+ this.el.removeEventListener(
+ 'click',
+ this._handleTabClickBound
+ )
+ },
+ },
+ {
+ key: '_handleWindowResize',
+ value: function() {
+ this._setTabsAndTabWidth(),
+ 0 !== this.tabWidth &&
+ 0 !== this.tabsWidth &&
+ ((this._indicator.style.left =
+ this._calcLeftPos(
+ this.$activeTabLink
+ ) + 'px'),
+ (this._indicator.style.right =
+ this._calcRightPos(
+ this.$activeTabLink
+ ) + 'px'))
+ },
+ },
+ {
+ key: '_handleTabClick',
+ value: function(t) {
+ var e = this,
+ i = a(t.target).closest('li.tab'),
+ n = a(t.target).closest('a')
+ if (n.length && n.parent().hasClass('tab'))
+ if (i.hasClass('disabled'))
+ t.preventDefault()
+ else if (!n.attr('target')) {
+ this.$activeTabLink.removeClass(
+ 'active'
+ )
+ var s = this.$content
+ ;(this.$activeTabLink = n),
+ (this.$content = a(
+ M.escapeHash(n[0].hash)
+ )),
+ (this.$tabLinks = this.$el
+ .children('li.tab')
+ .children('a')),
+ this.$activeTabLink.addClass(
+ 'active'
+ )
+ var o = this.index
+ ;(this.index = Math.max(
+ this.$tabLinks.index(n),
+ 0
+ )),
+ this.options.swipeable
+ ? this._tabsCarousel &&
+ this._tabsCarousel.set(
+ this.index,
+ function() {
+ 'function' ==
+ typeof e
+ .options
+ .onShow &&
+ e.options.onShow.call(
+ e,
+ e
+ .$content[0]
+ )
+ }
+ )
+ : this.$content.length &&
+ ((this.$content[0].style.display =
+ 'block'),
+ this.$content.addClass(
+ 'active'
+ ),
+ 'function' ==
+ typeof this.options
+ .onShow &&
+ this.options.onShow.call(
+ this,
+ this.$content[0]
+ ),
+ s.length &&
+ !s.is(
+ this.$content
+ ) &&
+ ((s[0].style.display =
+ 'none'),
+ s.removeClass(
+ 'active'
+ ))),
+ this._setTabsAndTabWidth(),
+ this._animateIndicator(o),
+ t.preventDefault()
+ }
+ },
+ },
+ {
+ key: '_createIndicator',
+ value: function() {
+ var t = this,
+ e = document.createElement('li')
+ e.classList.add('indicator'),
+ this.el.appendChild(e),
+ (this._indicator = e),
+ setTimeout(function() {
+ ;(t._indicator.style.left =
+ t._calcLeftPos(
+ t.$activeTabLink
+ ) + 'px'),
+ (t._indicator.style.right =
+ t._calcRightPos(
+ t.$activeTabLink
+ ) + 'px')
+ }, 0)
+ },
+ },
+ {
+ key: '_setupActiveTabLink',
+ value: function() {
+ ;(this.$activeTabLink = a(
+ this.$tabLinks.filter(
+ '[href="' + location.hash + '"]'
+ )
+ )),
+ 0 === this.$activeTabLink.length &&
+ (this.$activeTabLink = this.$el
+ .children('li.tab')
+ .children('a.active')
+ .first()),
+ 0 === this.$activeTabLink.length &&
+ (this.$activeTabLink = this.$el
+ .children('li.tab')
+ .children('a')
+ .first()),
+ this.$tabLinks.removeClass('active'),
+ this.$activeTabLink[0].classList.add(
+ 'active'
+ ),
+ (this.index = Math.max(
+ this.$tabLinks.index(
+ this.$activeTabLink
+ ),
+ 0
+ )),
+ this.$activeTabLink.length &&
+ ((this.$content = a(
+ M.escapeHash(
+ this.$activeTabLink[0].hash
+ )
+ )),
+ this.$content.addClass('active'))
+ },
+ },
+ {
+ key: '_setupSwipeableTabs',
+ value: function() {
+ var i = this
+ window.innerWidth >
+ this.options.responsiveThreshold &&
+ (this.options.swipeable = !1)
+ var n = a()
+ this.$tabLinks.each(function(t) {
+ var e = a(M.escapeHash(t.hash))
+ e.addClass('carousel-item'),
+ (n = n.add(e))
+ })
+ var t = a(
+ ''
+ )
+ n.first().before(t),
+ t.append(n),
+ (n[0].style.display = '')
+ var e = this.$activeTabLink
+ .closest('.tab')
+ .index()
+ ;(this._tabsCarousel = M.Carousel.init(
+ t[0],
+ {
+ fullWidth: !0,
+ noWrap: !0,
+ onCycleTo: function(t) {
+ var e = i.index
+ ;(i.index = a(t).index()),
+ i.$activeTabLink.removeClass(
+ 'active'
+ ),
+ (i.$activeTabLink = i.$tabLinks.eq(
+ i.index
+ )),
+ i.$activeTabLink.addClass(
+ 'active'
+ ),
+ i._animateIndicator(e),
+ 'function' ==
+ typeof i.options
+ .onShow &&
+ i.options.onShow.call(
+ i,
+ i.$content[0]
+ )
+ },
+ }
+ )),
+ this._tabsCarousel.set(e)
+ },
+ },
+ {
+ key: '_teardownSwipeableTabs',
+ value: function() {
+ var t = this._tabsCarousel.$el
+ this._tabsCarousel.destroy(),
+ t.after(t.children()),
+ t.remove()
+ },
+ },
+ {
+ key: '_setupNormalTabs',
+ value: function() {
+ this.$tabLinks
+ .not(this.$activeTabLink)
+ .each(function(t) {
+ if (t.hash) {
+ var e = a(M.escapeHash(t.hash))
+ e.length &&
+ (e[0].style.display =
+ 'none')
+ }
+ })
+ },
+ },
+ {
+ key: '_teardownNormalTabs',
+ value: function() {
+ this.$tabLinks.each(function(t) {
+ if (t.hash) {
+ var e = a(M.escapeHash(t.hash))
+ e.length &&
+ (e[0].style.display = '')
+ }
+ })
+ },
+ },
+ {
+ key: '_setTabsAndTabWidth',
+ value: function() {
+ ;(this.tabsWidth = this.$el.width()),
+ (this.tabWidth =
+ Math.max(
+ this.tabsWidth,
+ this.el.scrollWidth
+ ) / this.$tabLinks.length)
+ },
+ },
+ {
+ key: '_calcRightPos',
+ value: function(t) {
+ return Math.ceil(
+ this.tabsWidth -
+ t.position().left -
+ t[0].getBoundingClientRect().width
+ )
+ },
+ },
+ {
+ key: '_calcLeftPos',
+ value: function(t) {
+ return Math.floor(t.position().left)
+ },
+ },
+ {
+ key: 'updateTabIndicator',
+ value: function() {
+ this._setTabsAndTabWidth(),
+ this._animateIndicator(this.index)
+ },
+ },
+ {
+ key: '_animateIndicator',
+ value: function(t) {
+ var e = 0,
+ i = 0
+ 0 <= this.index - t ? (e = 90) : (i = 90)
+ var n = {
+ targets: this._indicator,
+ left: {
+ value: this._calcLeftPos(
+ this.$activeTabLink
+ ),
+ delay: e,
+ },
+ right: {
+ value: this._calcRightPos(
+ this.$activeTabLink
+ ),
+ delay: i,
+ },
+ duration: this.options.duration,
+ easing: 'easeOutQuad',
+ }
+ s.remove(this._indicator), s(n)
+ },
+ },
+ {
+ key: 'select',
+ value: function(t) {
+ var e = this.$tabLinks.filter(
+ '[href="#' + t + '"]'
+ )
+ e.length && e.trigger('click')
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Tabs
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.Tabs = t),
+ M.jQueryLoaded && M.initializeJqueryWrapper(t, 'tabs', 'M_Tabs')
+ })(cash, M.anime),
+ (function(d, e) {
+ 'use strict'
+ var i = {
+ exitDelay: 200,
+ enterDelay: 0,
+ html: null,
+ margin: 5,
+ inDuration: 250,
+ outDuration: 200,
+ position: 'bottom',
+ transitionMovement: 10,
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Tooltip = i).options = d.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isOpen = !1),
+ (i.isHovered = !1),
+ (i.isFocused = !1),
+ i._appendTooltipEl(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ d(this.tooltipEl).remove(),
+ this._removeEventHandlers(),
+ (this.el.M_Tooltip = void 0)
+ },
+ },
+ {
+ key: '_appendTooltipEl',
+ value: function() {
+ var t = document.createElement('div')
+ t.classList.add('material-tooltip'),
+ (this.tooltipEl = t)
+ var e = document.createElement('div')
+ e.classList.add('tooltip-content'),
+ (e.innerHTML = this.options.html),
+ t.appendChild(e),
+ document.body.appendChild(t)
+ },
+ },
+ {
+ key: '_updateTooltipContent',
+ value: function() {
+ this.tooltipEl.querySelector(
+ '.tooltip-content'
+ ).innerHTML = this.options.html
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleMouseEnterBound = this._handleMouseEnter.bind(
+ this
+ )),
+ (this._handleMouseLeaveBound = this._handleMouseLeave.bind(
+ this
+ )),
+ (this._handleFocusBound = this._handleFocus.bind(
+ this
+ )),
+ (this._handleBlurBound = this._handleBlur.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'mouseenter',
+ this._handleMouseEnterBound
+ ),
+ this.el.addEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ),
+ this.el.addEventListener(
+ 'focus',
+ this._handleFocusBound,
+ !0
+ ),
+ this.el.addEventListener(
+ 'blur',
+ this._handleBlurBound,
+ !0
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'mouseenter',
+ this._handleMouseEnterBound
+ ),
+ this.el.removeEventListener(
+ 'mouseleave',
+ this._handleMouseLeaveBound
+ ),
+ this.el.removeEventListener(
+ 'focus',
+ this._handleFocusBound,
+ !0
+ ),
+ this.el.removeEventListener(
+ 'blur',
+ this._handleBlurBound,
+ !0
+ )
+ },
+ },
+ {
+ key: 'open',
+ value: function(t) {
+ this.isOpen ||
+ ((t = void 0 === t || void 0),
+ (this.isOpen = !0),
+ (this.options = d.extend(
+ {},
+ this.options,
+ this._getAttributeOptions()
+ )),
+ this._updateTooltipContent(),
+ this._setEnterDelayTimeout(t))
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.isOpen &&
+ ((this.isHovered = !1),
+ (this.isFocused = !1),
+ (this.isOpen = !1),
+ this._setExitDelayTimeout())
+ },
+ },
+ {
+ key: '_setExitDelayTimeout',
+ value: function() {
+ var t = this
+ clearTimeout(this._exitDelayTimeout),
+ (this._exitDelayTimeout = setTimeout(
+ function() {
+ t.isHovered ||
+ t.isFocused ||
+ t._animateOut()
+ },
+ this.options.exitDelay
+ ))
+ },
+ },
+ {
+ key: '_setEnterDelayTimeout',
+ value: function(t) {
+ var e = this
+ clearTimeout(this._enterDelayTimeout),
+ (this._enterDelayTimeout = setTimeout(
+ function() {
+ ;(e.isHovered ||
+ e.isFocused ||
+ t) &&
+ e._animateIn()
+ },
+ this.options.enterDelay
+ ))
+ },
+ },
+ {
+ key: '_positionTooltip',
+ value: function() {
+ var t,
+ e = this.el,
+ i = this.tooltipEl,
+ n = e.offsetHeight,
+ s = e.offsetWidth,
+ o = i.offsetHeight,
+ a = i.offsetWidth,
+ r = this.options.margin,
+ l = void 0,
+ h = void 0
+ ;(this.xMovement = 0),
+ (this.yMovement = 0),
+ (l =
+ e.getBoundingClientRect().top +
+ M.getDocumentScrollTop()),
+ (h =
+ e.getBoundingClientRect().left +
+ M.getDocumentScrollLeft()),
+ 'top' === this.options.position
+ ? ((l += -o - r),
+ (h += s / 2 - a / 2),
+ (this.yMovement = -this.options
+ .transitionMovement))
+ : 'right' === this.options.position
+ ? ((l += n / 2 - o / 2),
+ (h += s + r),
+ (this.xMovement = this.options.transitionMovement))
+ : 'left' === this.options.position
+ ? ((l += n / 2 - o / 2),
+ (h += -a - r),
+ (this.xMovement = -this.options
+ .transitionMovement))
+ : ((l += n + r),
+ (h += s / 2 - a / 2),
+ (this.yMovement = this.options.transitionMovement)),
+ (t = this._repositionWithinScreen(
+ h,
+ l,
+ a,
+ o
+ )),
+ d(i).css({
+ top: t.y + 'px',
+ left: t.x + 'px',
+ })
+ },
+ },
+ {
+ key: '_repositionWithinScreen',
+ value: function(t, e, i, n) {
+ var s = M.getDocumentScrollLeft(),
+ o = M.getDocumentScrollTop(),
+ a = t - s,
+ r = e - o,
+ l = {
+ left: a,
+ top: r,
+ width: i,
+ height: n,
+ },
+ h =
+ this.options.margin +
+ this.options.transitionMovement,
+ d = M.checkWithinContainer(
+ document.body,
+ l,
+ h
+ )
+ return (
+ d.left
+ ? (a = h)
+ : d.right &&
+ (a -= a + i - window.innerWidth),
+ d.top
+ ? (r = h)
+ : d.bottom &&
+ (r -= r + n - window.innerHeight),
+ { x: a + s, y: r + o }
+ )
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function() {
+ this._positionTooltip(),
+ (this.tooltipEl.style.visibility =
+ 'visible'),
+ e.remove(this.tooltipEl),
+ e({
+ targets: this.tooltipEl,
+ opacity: 1,
+ translateX: this.xMovement,
+ translateY: this.yMovement,
+ duration: this.options.inDuration,
+ easing: 'easeOutCubic',
+ })
+ },
+ },
+ {
+ key: '_animateOut',
+ value: function() {
+ e.remove(this.tooltipEl),
+ e({
+ targets: this.tooltipEl,
+ opacity: 0,
+ translateX: 0,
+ translateY: 0,
+ duration: this.options.outDuration,
+ easing: 'easeOutCubic',
+ })
+ },
+ },
+ {
+ key: '_handleMouseEnter',
+ value: function() {
+ ;(this.isHovered = !0),
+ (this.isFocused = !1),
+ this.open(!1)
+ },
+ },
+ {
+ key: '_handleMouseLeave',
+ value: function() {
+ ;(this.isHovered = !1),
+ (this.isFocused = !1),
+ this.close()
+ },
+ },
+ {
+ key: '_handleFocus',
+ value: function() {
+ M.tabPressed &&
+ ((this.isFocused = !0), this.open(!1))
+ },
+ },
+ {
+ key: '_handleBlur',
+ value: function() {
+ ;(this.isFocused = !1), this.close()
+ },
+ },
+ {
+ key: '_getAttributeOptions',
+ value: function() {
+ var t = {},
+ e = this.el.getAttribute(
+ 'data-tooltip'
+ ),
+ i = this.el.getAttribute(
+ 'data-position'
+ )
+ return (
+ e && (t.html = e),
+ i && (t.position = i),
+ t
+ )
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Tooltip
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return i
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.Tooltip = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'tooltip', 'M_Tooltip')
+ })(cash, M.anime),
+ (function(i) {
+ 'use strict'
+ var t = t || {},
+ e = document.querySelectorAll.bind(document)
+ function m(t) {
+ var e = ''
+ for (var i in t) t.hasOwnProperty(i) && (e += i + ':' + t[i] + ';')
+ return e
+ }
+ var g = {
+ duration: 750,
+ show: function(t, e) {
+ if (2 === t.button) return !1
+ var i = e || this,
+ n = document.createElement('div')
+ ;(n.className = 'waves-ripple'), i.appendChild(n)
+ var s,
+ o,
+ a,
+ r,
+ l,
+ h,
+ d,
+ u =
+ ((h = { top: 0, left: 0 }),
+ (d = (s = i) && s.ownerDocument),
+ (o = d.documentElement),
+ void 0 !== s.getBoundingClientRect &&
+ (h = s.getBoundingClientRect()),
+ (a =
+ null !== (l = r = d) && l === l.window
+ ? r
+ : 9 === r.nodeType && r.defaultView),
+ {
+ top: h.top + a.pageYOffset - o.clientTop,
+ left: h.left + a.pageXOffset - o.clientLeft,
+ }),
+ c = t.pageY - u.top,
+ p = t.pageX - u.left,
+ v = 'scale(' + (i.clientWidth / 100) * 10 + ')'
+ 'touches' in t &&
+ ((c = t.touches[0].pageY - u.top),
+ (p = t.touches[0].pageX - u.left)),
+ n.setAttribute('data-hold', Date.now()),
+ n.setAttribute('data-scale', v),
+ n.setAttribute('data-x', p),
+ n.setAttribute('data-y', c)
+ var f = { top: c + 'px', left: p + 'px' }
+ ;(n.className = n.className + ' waves-notransition'),
+ n.setAttribute('style', m(f)),
+ (n.className = n.className.replace(
+ 'waves-notransition',
+ ''
+ )),
+ (f['-webkit-transform'] = v),
+ (f['-moz-transform'] = v),
+ (f['-ms-transform'] = v),
+ (f['-o-transform'] = v),
+ (f.transform = v),
+ (f.opacity = '1'),
+ (f['-webkit-transition-duration'] = g.duration + 'ms'),
+ (f['-moz-transition-duration'] = g.duration + 'ms'),
+ (f['-o-transition-duration'] = g.duration + 'ms'),
+ (f['transition-duration'] = g.duration + 'ms'),
+ (f['-webkit-transition-timing-function'] =
+ 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'),
+ (f['-moz-transition-timing-function'] =
+ 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'),
+ (f['-o-transition-timing-function'] =
+ 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'),
+ (f['transition-timing-function'] =
+ 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'),
+ n.setAttribute('style', m(f))
+ },
+ hide: function(t) {
+ l.touchup(t)
+ var e = this,
+ i = (e.clientWidth, null),
+ n = e.getElementsByClassName('waves-ripple')
+ if (!(0 < n.length)) return !1
+ var s = (i = n[n.length - 1]).getAttribute('data-x'),
+ o = i.getAttribute('data-y'),
+ a = i.getAttribute('data-scale'),
+ r =
+ 350 -
+ (Date.now() - Number(i.getAttribute('data-hold')))
+ r < 0 && (r = 0),
+ setTimeout(function() {
+ var t = {
+ top: o + 'px',
+ left: s + 'px',
+ opacity: '0',
+ '-webkit-transition-duration':
+ g.duration + 'ms',
+ '-moz-transition-duration': g.duration + 'ms',
+ '-o-transition-duration': g.duration + 'ms',
+ 'transition-duration': g.duration + 'ms',
+ '-webkit-transform': a,
+ '-moz-transform': a,
+ '-ms-transform': a,
+ '-o-transform': a,
+ transform: a,
+ }
+ i.setAttribute('style', m(t)),
+ setTimeout(function() {
+ try {
+ e.removeChild(i)
+ } catch (t) {
+ return !1
+ }
+ }, g.duration)
+ }, r)
+ },
+ wrapInput: function(t) {
+ for (var e = 0; e < t.length; e++) {
+ var i = t[e]
+ if ('input' === i.tagName.toLowerCase()) {
+ var n = i.parentNode
+ if (
+ 'i' === n.tagName.toLowerCase() &&
+ -1 !== n.className.indexOf('waves-effect')
+ )
+ continue
+ var s = document.createElement('i')
+ s.className = i.className + ' waves-input-wrapper'
+ var o = i.getAttribute('style')
+ o || (o = ''),
+ s.setAttribute('style', o),
+ (i.className = 'waves-button-input'),
+ i.removeAttribute('style'),
+ n.replaceChild(s, i),
+ s.appendChild(i)
+ }
+ }
+ },
+ },
+ l = {
+ touches: 0,
+ allowEvent: function(t) {
+ var e = !0
+ return (
+ 'touchstart' === t.type
+ ? (l.touches += 1)
+ : 'touchend' === t.type || 'touchcancel' === t.type
+ ? setTimeout(function() {
+ 0 < l.touches && (l.touches -= 1)
+ }, 500)
+ : 'mousedown' === t.type &&
+ 0 < l.touches &&
+ (e = !1),
+ e
+ )
+ },
+ touchup: function(t) {
+ l.allowEvent(t)
+ },
+ }
+ function n(t) {
+ var e = (function(t) {
+ if (!1 === l.allowEvent(t)) return null
+ for (
+ var e = null, i = t.target || t.srcElement;
+ null !== i.parentNode;
+
+ ) {
+ if (
+ !(i instanceof SVGElement) &&
+ -1 !== i.className.indexOf('waves-effect')
+ ) {
+ e = i
+ break
+ }
+ i = i.parentNode
+ }
+ return e
+ })(t)
+ null !== e &&
+ (g.show(t, e),
+ 'ontouchstart' in i &&
+ (e.addEventListener('touchend', g.hide, !1),
+ e.addEventListener('touchcancel', g.hide, !1)),
+ e.addEventListener('mouseup', g.hide, !1),
+ e.addEventListener('mouseleave', g.hide, !1),
+ e.addEventListener('dragend', g.hide, !1))
+ }
+ ;(t.displayEffect = function(t) {
+ 'duration' in (t = t || {}) && (g.duration = t.duration),
+ g.wrapInput(e('.waves-effect')),
+ 'ontouchstart' in i &&
+ document.body.addEventListener('touchstart', n, !1),
+ document.body.addEventListener('mousedown', n, !1)
+ }),
+ (t.attach = function(t) {
+ 'input' === t.tagName.toLowerCase() &&
+ (g.wrapInput([t]), (t = t.parentNode)),
+ 'ontouchstart' in i &&
+ t.addEventListener('touchstart', n, !1),
+ t.addEventListener('mousedown', n, !1)
+ }),
+ (i.Waves = t),
+ document.addEventListener(
+ 'DOMContentLoaded',
+ function() {
+ t.displayEffect()
+ },
+ !1
+ )
+ })(window),
+ (function(i, n) {
+ 'use strict'
+ var t = {
+ html: '',
+ displayLength: 4e3,
+ inDuration: 300,
+ outDuration: 375,
+ classes: '',
+ completeCallback: null,
+ activationPercent: 0.8,
+ },
+ e = (function() {
+ function s(t) {
+ _classCallCheck(this, s),
+ (this.options = i.extend({}, s.defaults, t)),
+ (this.message = this.options.html),
+ (this.panning = !1),
+ (this.timeRemaining = this.options.displayLength),
+ 0 === s._toasts.length && s._createContainer(),
+ s._toasts.push(this)
+ var e = this._createToast()
+ ;((e.M_Toast = this).el = e),
+ (this.$el = i(e)),
+ this._animateIn(),
+ this._setTimer()
+ }
+ return (
+ _createClass(
+ s,
+ [
+ {
+ key: '_createToast',
+ value: function() {
+ var t = document.createElement('div')
+ return (
+ t.classList.add('toast'),
+ this.options.classes.length &&
+ i(t).addClass(this.options.classes),
+ ('object' == typeof HTMLElement
+ ? this.message instanceof HTMLElement
+ : this.message &&
+ 'object' == typeof this.message &&
+ null !== this.message &&
+ 1 === this.message.nodeType &&
+ 'string' ==
+ typeof this.message.nodeName)
+ ? t.appendChild(this.message)
+ : this.message.jquery
+ ? i(t).append(this.message[0])
+ : (t.innerHTML = this.message),
+ s._container.appendChild(t),
+ t
+ )
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function() {
+ n({
+ targets: this.el,
+ top: 0,
+ opacity: 1,
+ duration: this.options.inDuration,
+ easing: 'easeOutCubic',
+ })
+ },
+ },
+ {
+ key: '_setTimer',
+ value: function() {
+ var t = this
+ this.timeRemaining !== 1 / 0 &&
+ (this.counterInterval = setInterval(
+ function() {
+ t.panning ||
+ (t.timeRemaining -= 20),
+ t.timeRemaining <= 0 &&
+ t.dismiss()
+ },
+ 20
+ ))
+ },
+ },
+ {
+ key: 'dismiss',
+ value: function() {
+ var t = this
+ window.clearInterval(this.counterInterval)
+ var e =
+ this.el.offsetWidth *
+ this.options.activationPercent
+ this.wasSwiped &&
+ ((this.el.style.transition =
+ 'transform .05s, opacity .05s'),
+ (this.el.style.transform =
+ 'translateX(' + e + 'px)'),
+ (this.el.style.opacity = 0)),
+ n({
+ targets: this.el,
+ opacity: 0,
+ marginTop: -40,
+ duration: this.options.outDuration,
+ easing: 'easeOutExpo',
+ complete: function() {
+ 'function' ==
+ typeof t.options
+ .completeCallback &&
+ t.options.completeCallback(),
+ t.$el.remove(),
+ s._toasts.splice(
+ s._toasts.indexOf(t),
+ 1
+ ),
+ 0 === s._toasts.length &&
+ s._removeContainer()
+ },
+ })
+ },
+ },
+ ],
+ [
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Toast
+ },
+ },
+ {
+ key: '_createContainer',
+ value: function() {
+ var t = document.createElement('div')
+ t.setAttribute('id', 'toast-container'),
+ t.addEventListener(
+ 'touchstart',
+ s._onDragStart
+ ),
+ t.addEventListener(
+ 'touchmove',
+ s._onDragMove
+ ),
+ t.addEventListener(
+ 'touchend',
+ s._onDragEnd
+ ),
+ t.addEventListener(
+ 'mousedown',
+ s._onDragStart
+ ),
+ document.addEventListener(
+ 'mousemove',
+ s._onDragMove
+ ),
+ document.addEventListener(
+ 'mouseup',
+ s._onDragEnd
+ ),
+ document.body.appendChild(t),
+ (s._container = t)
+ },
+ },
+ {
+ key: '_removeContainer',
+ value: function() {
+ document.removeEventListener(
+ 'mousemove',
+ s._onDragMove
+ ),
+ document.removeEventListener(
+ 'mouseup',
+ s._onDragEnd
+ ),
+ i(s._container).remove(),
+ (s._container = null)
+ },
+ },
+ {
+ key: '_onDragStart',
+ value: function(t) {
+ if (
+ t.target &&
+ i(t.target).closest('.toast').length
+ ) {
+ var e = i(t.target).closest('.toast')[0]
+ .M_Toast
+ ;(e.panning = !0),
+ (s._draggedToast = e).el.classList.add(
+ 'panning'
+ ),
+ (e.el.style.transition = ''),
+ (e.startingXPos = s._xPos(t)),
+ (e.time = Date.now()),
+ (e.xPos = s._xPos(t))
+ }
+ },
+ },
+ {
+ key: '_onDragMove',
+ value: function(t) {
+ if (s._draggedToast) {
+ t.preventDefault()
+ var e = s._draggedToast
+ ;(e.deltaX = Math.abs(
+ e.xPos - s._xPos(t)
+ )),
+ (e.xPos = s._xPos(t)),
+ (e.velocityX =
+ e.deltaX /
+ (Date.now() - e.time)),
+ (e.time = Date.now())
+ var i = e.xPos - e.startingXPos,
+ n =
+ e.el.offsetWidth *
+ e.options.activationPercent
+ ;(e.el.style.transform =
+ 'translateX(' + i + 'px)'),
+ (e.el.style.opacity =
+ 1 - Math.abs(i / n))
+ }
+ },
+ },
+ {
+ key: '_onDragEnd',
+ value: function() {
+ if (s._draggedToast) {
+ var t = s._draggedToast
+ ;(t.panning = !1),
+ t.el.classList.remove('panning')
+ var e = t.xPos - t.startingXPos,
+ i =
+ t.el.offsetWidth *
+ t.options.activationPercent
+ Math.abs(e) > i || 1 < t.velocityX
+ ? ((t.wasSwiped = !0), t.dismiss())
+ : ((t.el.style.transition =
+ 'transform .2s, opacity .2s'),
+ (t.el.style.transform = ''),
+ (t.el.style.opacity = '')),
+ (s._draggedToast = null)
+ }
+ },
+ },
+ {
+ key: '_xPos',
+ value: function(t) {
+ return t.targetTouches &&
+ 1 <= t.targetTouches.length
+ ? t.targetTouches[0].clientX
+ : t.clientX
+ },
+ },
+ {
+ key: 'dismissAll',
+ value: function() {
+ for (var t in s._toasts)
+ s._toasts[t].dismiss()
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return t
+ },
+ },
+ ]
+ ),
+ s
+ )
+ })()
+ ;(e._toasts = []),
+ (e._container = null),
+ (e._draggedToast = null),
+ (M.Toast = e),
+ (M.toast = function(t) {
+ return new e(t)
+ })
+ })(cash, M.anime),
+ (function(s, o) {
+ 'use strict'
+ var e = {
+ edge: 'left',
+ draggable: !0,
+ inDuration: 250,
+ outDuration: 200,
+ onOpenStart: null,
+ onOpenEnd: null,
+ onCloseStart: null,
+ onCloseEnd: null,
+ preventScrolling: !0,
+ },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Sidenav = i).id = i.$el.attr('id')),
+ (i.options = s.extend({}, n.defaults, e)),
+ (i.isOpen = !1),
+ (i.isFixed = i.el.classList.contains('sidenav-fixed')),
+ (i.isDragged = !1),
+ (i.lastWindowWidth = window.innerWidth),
+ (i.lastWindowHeight = window.innerHeight),
+ i._createOverlay(),
+ i._createDragTarget(),
+ i._setupEventHandlers(),
+ i._setupClasses(),
+ i._setupFixed(),
+ n._sidenavs.push(i),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this._enableBodyScrolling(),
+ this._overlay.parentNode.removeChild(
+ this._overlay
+ ),
+ this.dragTarget.parentNode.removeChild(
+ this.dragTarget
+ ),
+ (this.el.M_Sidenav = void 0),
+ (this.el.style.transform = '')
+ var t = n._sidenavs.indexOf(this)
+ 0 <= t && n._sidenavs.splice(t, 1)
+ },
+ },
+ {
+ key: '_createOverlay',
+ value: function() {
+ var t = document.createElement('div')
+ ;(this._closeBound = this.close.bind(this)),
+ t.classList.add('sidenav-overlay'),
+ t.addEventListener(
+ 'click',
+ this._closeBound
+ ),
+ document.body.appendChild(t),
+ (this._overlay = t)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ 0 === n._sidenavs.length &&
+ document.body.addEventListener(
+ 'click',
+ this._handleTriggerClick
+ ),
+ (this._handleDragTargetDragBound = this._handleDragTargetDrag.bind(
+ this
+ )),
+ (this._handleDragTargetReleaseBound = this._handleDragTargetRelease.bind(
+ this
+ )),
+ (this._handleCloseDragBound = this._handleCloseDrag.bind(
+ this
+ )),
+ (this._handleCloseReleaseBound = this._handleCloseRelease.bind(
+ this
+ )),
+ (this._handleCloseTriggerClickBound = this._handleCloseTriggerClick.bind(
+ this
+ )),
+ this.dragTarget.addEventListener(
+ 'touchmove',
+ this._handleDragTargetDragBound
+ ),
+ this.dragTarget.addEventListener(
+ 'touchend',
+ this._handleDragTargetReleaseBound
+ ),
+ this._overlay.addEventListener(
+ 'touchmove',
+ this._handleCloseDragBound
+ ),
+ this._overlay.addEventListener(
+ 'touchend',
+ this._handleCloseReleaseBound
+ ),
+ this.el.addEventListener(
+ 'touchmove',
+ this._handleCloseDragBound
+ ),
+ this.el.addEventListener(
+ 'touchend',
+ this._handleCloseReleaseBound
+ ),
+ this.el.addEventListener(
+ 'click',
+ this._handleCloseTriggerClickBound
+ ),
+ this.isFixed &&
+ ((this._handleWindowResizeBound = this._handleWindowResize.bind(
+ this
+ )),
+ window.addEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ ))
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ 1 === n._sidenavs.length &&
+ document.body.removeEventListener(
+ 'click',
+ this._handleTriggerClick
+ ),
+ this.dragTarget.removeEventListener(
+ 'touchmove',
+ this._handleDragTargetDragBound
+ ),
+ this.dragTarget.removeEventListener(
+ 'touchend',
+ this._handleDragTargetReleaseBound
+ ),
+ this._overlay.removeEventListener(
+ 'touchmove',
+ this._handleCloseDragBound
+ ),
+ this._overlay.removeEventListener(
+ 'touchend',
+ this._handleCloseReleaseBound
+ ),
+ this.el.removeEventListener(
+ 'touchmove',
+ this._handleCloseDragBound
+ ),
+ this.el.removeEventListener(
+ 'touchend',
+ this._handleCloseReleaseBound
+ ),
+ this.el.removeEventListener(
+ 'click',
+ this._handleCloseTriggerClickBound
+ ),
+ this.isFixed &&
+ window.removeEventListener(
+ 'resize',
+ this._handleWindowResizeBound
+ )
+ },
+ },
+ {
+ key: '_handleTriggerClick',
+ value: function(t) {
+ var e = s(t.target).closest(
+ '.sidenav-trigger'
+ )
+ if (t.target && e.length) {
+ var i = M.getIdFromTrigger(e[0]),
+ n = document.getElementById(i)
+ .M_Sidenav
+ n && n.open(e), t.preventDefault()
+ }
+ },
+ },
+ {
+ key: '_startDrag',
+ value: function(t) {
+ var e = t.targetTouches[0].clientX
+ ;(this.isDragged = !0),
+ (this._startingXpos = e),
+ (this._xPos = this._startingXpos),
+ (this._time = Date.now()),
+ (this._width = this.el.getBoundingClientRect().width),
+ (this._overlay.style.display = 'block'),
+ (this._initialScrollTop = this.isOpen
+ ? this.el.scrollTop
+ : M.getDocumentScrollTop()),
+ (this._verticallyScrolling = !1),
+ o.remove(this.el),
+ o.remove(this._overlay)
+ },
+ },
+ {
+ key: '_dragMoveUpdate',
+ value: function(t) {
+ var e = t.targetTouches[0].clientX,
+ i = this.isOpen
+ ? this.el.scrollTop
+ : M.getDocumentScrollTop()
+ ;(this.deltaX = Math.abs(this._xPos - e)),
+ (this._xPos = e),
+ (this.velocityX =
+ this.deltaX /
+ (Date.now() - this._time)),
+ (this._time = Date.now()),
+ this._initialScrollTop !== i &&
+ (this._verticallyScrolling = !0)
+ },
+ },
+ {
+ key: '_handleDragTargetDrag',
+ value: function(t) {
+ if (
+ this.options.draggable &&
+ !this._isCurrentlyFixed() &&
+ !this._verticallyScrolling
+ ) {
+ this.isDragged || this._startDrag(t),
+ this._dragMoveUpdate(t)
+ var e = this._xPos - this._startingXpos,
+ i = 0 < e ? 'right' : 'left'
+ ;(e = Math.min(
+ this._width,
+ Math.abs(e)
+ )),
+ this.options.edge === i && (e = 0)
+ var n = e,
+ s = 'translateX(-100%)'
+ 'right' === this.options.edge &&
+ ((s = 'translateX(100%)'),
+ (n = -n)),
+ (this.percentOpen = Math.min(
+ 1,
+ e / this._width
+ )),
+ (this.el.style.transform =
+ s + ' translateX(' + n + 'px)'),
+ (this._overlay.style.opacity = this.percentOpen)
+ }
+ },
+ },
+ {
+ key: '_handleDragTargetRelease',
+ value: function() {
+ this.isDragged &&
+ (0.2 < this.percentOpen
+ ? this.open()
+ : this._animateOut(),
+ (this.isDragged = !1),
+ (this._verticallyScrolling = !1))
+ },
+ },
+ {
+ key: '_handleCloseDrag',
+ value: function(t) {
+ if (this.isOpen) {
+ if (
+ !this.options.draggable ||
+ this._isCurrentlyFixed() ||
+ this._verticallyScrolling
+ )
+ return
+ this.isDragged || this._startDrag(t),
+ this._dragMoveUpdate(t)
+ var e = this._xPos - this._startingXpos,
+ i = 0 < e ? 'right' : 'left'
+ ;(e = Math.min(
+ this._width,
+ Math.abs(e)
+ )),
+ this.options.edge !== i && (e = 0)
+ var n = -e
+ 'right' === this.options.edge &&
+ (n = -n),
+ (this.percentOpen = Math.min(
+ 1,
+ 1 - e / this._width
+ )),
+ (this.el.style.transform =
+ 'translateX(' + n + 'px)'),
+ (this._overlay.style.opacity = this.percentOpen)
+ }
+ },
+ },
+ {
+ key: '_handleCloseRelease',
+ value: function() {
+ this.isOpen &&
+ this.isDragged &&
+ (0.8 < this.percentOpen
+ ? this._animateIn()
+ : this.close(),
+ (this.isDragged = !1),
+ (this._verticallyScrolling = !1))
+ },
+ },
+ {
+ key: '_handleCloseTriggerClick',
+ value: function(t) {
+ s(t.target).closest('.sidenav-close')
+ .length &&
+ !this._isCurrentlyFixed() &&
+ this.close()
+ },
+ },
+ {
+ key: '_handleWindowResize',
+ value: function() {
+ this.lastWindowWidth !==
+ window.innerWidth &&
+ (992 < window.innerWidth
+ ? this.open()
+ : this.close()),
+ (this.lastWindowWidth =
+ window.innerWidth),
+ (this.lastWindowHeight =
+ window.innerHeight)
+ },
+ },
+ {
+ key: '_setupClasses',
+ value: function() {
+ 'right' === this.options.edge &&
+ (this.el.classList.add('right-aligned'),
+ this.dragTarget.classList.add(
+ 'right-aligned'
+ ))
+ },
+ },
+ {
+ key: '_removeClasses',
+ value: function() {
+ this.el.classList.remove('right-aligned'),
+ this.dragTarget.classList.remove(
+ 'right-aligned'
+ )
+ },
+ },
+ {
+ key: '_setupFixed',
+ value: function() {
+ this._isCurrentlyFixed() && this.open()
+ },
+ },
+ {
+ key: '_isCurrentlyFixed',
+ value: function() {
+ return (
+ this.isFixed && 992 < window.innerWidth
+ )
+ },
+ },
+ {
+ key: '_createDragTarget',
+ value: function() {
+ var t = document.createElement('div')
+ t.classList.add('drag-target'),
+ document.body.appendChild(t),
+ (this.dragTarget = t)
+ },
+ },
+ {
+ key: '_preventBodyScrolling',
+ value: function() {
+ document.body.style.overflow = 'hidden'
+ },
+ },
+ {
+ key: '_enableBodyScrolling',
+ value: function() {
+ document.body.style.overflow = ''
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ !0 !== this.isOpen &&
+ ((this.isOpen = !0),
+ 'function' ==
+ typeof this.options.onOpenStart &&
+ this.options.onOpenStart.call(
+ this,
+ this.el
+ ),
+ this._isCurrentlyFixed()
+ ? (o.remove(this.el),
+ o({
+ targets: this.el,
+ translateX: 0,
+ duration: 0,
+ easing: 'easeOutQuad',
+ }),
+ this._enableBodyScrolling(),
+ (this._overlay.style.display =
+ 'none'))
+ : (this.options.preventScrolling &&
+ this._preventBodyScrolling(),
+ (this.isDragged &&
+ 1 == this.percentOpen) ||
+ this._animateIn()))
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ if (!1 !== this.isOpen)
+ if (
+ ((this.isOpen = !1),
+ 'function' ==
+ typeof this.options
+ .onCloseStart &&
+ this.options.onCloseStart.call(
+ this,
+ this.el
+ ),
+ this._isCurrentlyFixed())
+ ) {
+ var t =
+ 'left' === this.options.edge
+ ? '-105%'
+ : '105%'
+ this.el.style.transform =
+ 'translateX(' + t + ')'
+ } else
+ this._enableBodyScrolling(),
+ this.isDragged &&
+ 0 == this.percentOpen
+ ? (this._overlay.style.display =
+ 'none')
+ : this._animateOut()
+ },
+ },
+ {
+ key: '_animateIn',
+ value: function() {
+ this._animateSidenavIn(),
+ this._animateOverlayIn()
+ },
+ },
+ {
+ key: '_animateSidenavIn',
+ value: function() {
+ var t = this,
+ e =
+ 'left' === this.options.edge
+ ? -1
+ : 1
+ this.isDragged &&
+ (e =
+ 'left' === this.options.edge
+ ? e + this.percentOpen
+ : e - this.percentOpen),
+ o.remove(this.el),
+ o({
+ targets: this.el,
+ translateX: [100 * e + '%', 0],
+ duration: this.options.inDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ 'function' ==
+ typeof t.options
+ .onOpenEnd &&
+ t.options.onOpenEnd.call(
+ t,
+ t.el
+ )
+ },
+ })
+ },
+ },
+ {
+ key: '_animateOverlayIn',
+ value: function() {
+ var t = 0
+ this.isDragged
+ ? (t = this.percentOpen)
+ : s(this._overlay).css({
+ display: 'block',
+ }),
+ o.remove(this._overlay),
+ o({
+ targets: this._overlay,
+ opacity: [t, 1],
+ duration: this.options.inDuration,
+ easing: 'easeOutQuad',
+ })
+ },
+ },
+ {
+ key: '_animateOut',
+ value: function() {
+ this._animateSidenavOut(),
+ this._animateOverlayOut()
+ },
+ },
+ {
+ key: '_animateSidenavOut',
+ value: function() {
+ var t = this,
+ e =
+ 'left' === this.options.edge
+ ? -1
+ : 1,
+ i = 0
+ this.isDragged &&
+ (i =
+ 'left' === this.options.edge
+ ? e + this.percentOpen
+ : e - this.percentOpen),
+ o.remove(this.el),
+ o({
+ targets: this.el,
+ translateX: [
+ 100 * i + '%',
+ 105 * e + '%',
+ ],
+ duration: this.options.outDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ 'function' ==
+ typeof t.options
+ .onCloseEnd &&
+ t.options.onCloseEnd.call(
+ t,
+ t.el
+ )
+ },
+ })
+ },
+ },
+ {
+ key: '_animateOverlayOut',
+ value: function() {
+ var t = this
+ o.remove(this._overlay),
+ o({
+ targets: this._overlay,
+ opacity: 0,
+ duration: this.options.outDuration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ s(t._overlay).css(
+ 'display',
+ 'none'
+ )
+ },
+ })
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Sidenav
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(t._sidenavs = []),
+ (M.Sidenav = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'sidenav', 'M_Sidenav')
+ })(cash, M.anime),
+ (function(o, a) {
+ 'use strict'
+ var e = {
+ throttle: 100,
+ scrollOffset: 200,
+ activeClass: 'active',
+ getActiveElement: function(t) {
+ return 'a[href="#' + t + '"]'
+ },
+ },
+ t = (function(t) {
+ function c(t, e) {
+ _classCallCheck(this, c)
+ var i = _possibleConstructorReturn(
+ this,
+ (c.__proto__ || Object.getPrototypeOf(c)).call(
+ this,
+ c,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_ScrollSpy = i).options = o.extend(
+ {},
+ c.defaults,
+ e
+ )),
+ c._elements.push(i),
+ c._count++,
+ c._increment++,
+ (i.tickId = -1),
+ (i.id = c._increment),
+ i._setupEventHandlers(),
+ i._handleWindowScroll(),
+ i
+ )
+ }
+ return (
+ _inherits(c, Component),
+ _createClass(
+ c,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ c._elements.splice(
+ c._elements.indexOf(this),
+ 1
+ ),
+ c._elementsInView.splice(
+ c._elementsInView.indexOf(this),
+ 1
+ ),
+ c._visibleElements.splice(
+ c._visibleElements.indexOf(
+ this.$el
+ ),
+ 1
+ ),
+ c._count--,
+ this._removeEventHandlers(),
+ o(
+ this.options.getActiveElement(
+ this.$el.attr('id')
+ )
+ ).removeClass(this.options.activeClass),
+ (this.el.M_ScrollSpy = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ var t = M.throttle(
+ this._handleWindowScroll,
+ 200
+ )
+ ;(this._handleThrottledResizeBound = t.bind(
+ this
+ )),
+ (this._handleWindowScrollBound = this._handleWindowScroll.bind(
+ this
+ )),
+ 1 === c._count &&
+ (window.addEventListener(
+ 'scroll',
+ this._handleWindowScrollBound
+ ),
+ window.addEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ ),
+ document.body.addEventListener(
+ 'click',
+ this._handleTriggerClick
+ ))
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ 0 === c._count &&
+ (window.removeEventListener(
+ 'scroll',
+ this._handleWindowScrollBound
+ ),
+ window.removeEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ ),
+ document.body.removeEventListener(
+ 'click',
+ this._handleTriggerClick
+ ))
+ },
+ },
+ {
+ key: '_handleTriggerClick',
+ value: function(t) {
+ for (
+ var e = o(t.target),
+ i = c._elements.length - 1;
+ 0 <= i;
+ i--
+ ) {
+ var n = c._elements[i]
+ if (
+ e.is(
+ 'a[href="#' +
+ n.$el.attr('id') +
+ '"]'
+ )
+ ) {
+ t.preventDefault()
+ var s = n.$el.offset().top + 1
+ a({
+ targets: [
+ document.documentElement,
+ document.body,
+ ],
+ scrollTop:
+ s - n.options.scrollOffset,
+ duration: 400,
+ easing: 'easeOutCubic',
+ })
+ break
+ }
+ }
+ },
+ },
+ {
+ key: '_handleWindowScroll',
+ value: function() {
+ c._ticks++
+ for (
+ var t = M.getDocumentScrollTop(),
+ e = M.getDocumentScrollLeft(),
+ i = e + window.innerWidth,
+ n = t + window.innerHeight,
+ s = c._findElements(t, i, n, e),
+ o = 0;
+ o < s.length;
+ o++
+ ) {
+ var a = s[o]
+ a.tickId < 0 && a._enter(),
+ (a.tickId = c._ticks)
+ }
+ for (
+ var r = 0;
+ r < c._elementsInView.length;
+ r++
+ ) {
+ var l = c._elementsInView[r],
+ h = l.tickId
+ 0 <= h &&
+ h !== c._ticks &&
+ (l._exit(), (l.tickId = -1))
+ }
+ c._elementsInView = s
+ },
+ },
+ {
+ key: '_enter',
+ value: function() {
+ ;(c._visibleElements = c._visibleElements.filter(
+ function(t) {
+ return 0 != t.height()
+ }
+ ))[0]
+ ? (o(
+ this.options.getActiveElement(
+ c._visibleElements[0].attr(
+ 'id'
+ )
+ )
+ ).removeClass(
+ this.options.activeClass
+ ),
+ c._visibleElements[0][0]
+ .M_ScrollSpy &&
+ this.id <
+ c._visibleElements[0][0]
+ .M_ScrollSpy.id
+ ? c._visibleElements.unshift(
+ this.$el
+ )
+ : c._visibleElements.push(
+ this.$el
+ ))
+ : c._visibleElements.push(this.$el),
+ o(
+ this.options.getActiveElement(
+ c._visibleElements[0].attr('id')
+ )
+ ).addClass(this.options.activeClass)
+ },
+ },
+ {
+ key: '_exit',
+ value: function() {
+ var e = this
+ ;(c._visibleElements = c._visibleElements.filter(
+ function(t) {
+ return 0 != t.height()
+ }
+ ))[0] &&
+ (o(
+ this.options.getActiveElement(
+ c._visibleElements[0].attr('id')
+ )
+ ).removeClass(this.options.activeClass),
+ (c._visibleElements = c._visibleElements.filter(
+ function(t) {
+ return (
+ t.attr('id') !=
+ e.$el.attr('id')
+ )
+ }
+ ))[0] &&
+ o(
+ this.options.getActiveElement(
+ c._visibleElements[0].attr(
+ 'id'
+ )
+ )
+ ).addClass(
+ this.options.activeClass
+ ))
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ c.__proto__ || Object.getPrototypeOf(c),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_ScrollSpy
+ },
+ },
+ {
+ key: '_findElements',
+ value: function(t, e, i, n) {
+ for (
+ var s = [], o = 0;
+ o < c._elements.length;
+ o++
+ ) {
+ var a = c._elements[o],
+ r =
+ t + a.options.scrollOffset ||
+ 200
+ if (0 < a.$el.height()) {
+ var l = a.$el.offset().top,
+ h = a.$el.offset().left,
+ d = h + a.$el.width(),
+ u = l + a.$el.height()
+ !(
+ e < h ||
+ d < n ||
+ i < l ||
+ u < r
+ ) && s.push(a)
+ }
+ }
+ return s
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ c
+ )
+ })()
+ ;(t._elements = []),
+ (t._elementsInView = []),
+ (t._visibleElements = []),
+ (t._count = 0),
+ (t._increment = 0),
+ (t._ticks = 0),
+ (M.ScrollSpy = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'scrollSpy', 'M_ScrollSpy')
+ })(cash, M.anime),
+ (function(h) {
+ 'use strict'
+ var e = {
+ data: {},
+ limit: 1 / 0,
+ onAutocomplete: null,
+ minLength: 1,
+ sortFunction: function(t, e, i) {
+ return t.indexOf(i) - e.indexOf(i)
+ },
+ },
+ t = (function(t) {
+ function s(t, e) {
+ _classCallCheck(this, s)
+ var i = _possibleConstructorReturn(
+ this,
+ (s.__proto__ || Object.getPrototypeOf(s)).call(
+ this,
+ s,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Autocomplete = i).options = h.extend(
+ {},
+ s.defaults,
+ e
+ )),
+ (i.isOpen = !1),
+ (i.count = 0),
+ (i.activeIndex = -1),
+ i.oldVal,
+ (i.$inputField = i.$el.closest('.input-field')),
+ (i.$active = h()),
+ (i._mousedown = !1),
+ i._setupDropdown(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(s, Component),
+ _createClass(
+ s,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this._removeDropdown(),
+ (this.el.M_Autocomplete = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleInputBlurBound = this._handleInputBlur.bind(
+ this
+ )),
+ (this._handleInputKeyupAndFocusBound = this._handleInputKeyupAndFocus.bind(
+ this
+ )),
+ (this._handleInputKeydownBound = this._handleInputKeydown.bind(
+ this
+ )),
+ (this._handleInputClickBound = this._handleInputClick.bind(
+ this
+ )),
+ (this._handleContainerMousedownAndTouchstartBound = this._handleContainerMousedownAndTouchstart.bind(
+ this
+ )),
+ (this._handleContainerMouseupAndTouchendBound = this._handleContainerMouseupAndTouchend.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'blur',
+ this._handleInputBlurBound
+ ),
+ this.el.addEventListener(
+ 'keyup',
+ this._handleInputKeyupAndFocusBound
+ ),
+ this.el.addEventListener(
+ 'focus',
+ this._handleInputKeyupAndFocusBound
+ ),
+ this.el.addEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ ),
+ this.el.addEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.container.addEventListener(
+ 'mousedown',
+ this
+ ._handleContainerMousedownAndTouchstartBound
+ ),
+ this.container.addEventListener(
+ 'mouseup',
+ this
+ ._handleContainerMouseupAndTouchendBound
+ ),
+ void 0 !== window.ontouchstart &&
+ (this.container.addEventListener(
+ 'touchstart',
+ this
+ ._handleContainerMousedownAndTouchstartBound
+ ),
+ this.container.addEventListener(
+ 'touchend',
+ this
+ ._handleContainerMouseupAndTouchendBound
+ ))
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'blur',
+ this._handleInputBlurBound
+ ),
+ this.el.removeEventListener(
+ 'keyup',
+ this._handleInputKeyupAndFocusBound
+ ),
+ this.el.removeEventListener(
+ 'focus',
+ this._handleInputKeyupAndFocusBound
+ ),
+ this.el.removeEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ ),
+ this.el.removeEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.container.removeEventListener(
+ 'mousedown',
+ this
+ ._handleContainerMousedownAndTouchstartBound
+ ),
+ this.container.removeEventListener(
+ 'mouseup',
+ this
+ ._handleContainerMouseupAndTouchendBound
+ ),
+ void 0 !== window.ontouchstart &&
+ (this.container.removeEventListener(
+ 'touchstart',
+ this
+ ._handleContainerMousedownAndTouchstartBound
+ ),
+ this.container.removeEventListener(
+ 'touchend',
+ this
+ ._handleContainerMouseupAndTouchendBound
+ ))
+ },
+ },
+ {
+ key: '_setupDropdown',
+ value: function() {
+ var e = this
+ ;(this.container = document.createElement(
+ 'ul'
+ )),
+ (this.container.id =
+ 'autocomplete-options-' + M.guid()),
+ h(this.container).addClass(
+ 'autocomplete-content dropdown-content'
+ ),
+ this.$inputField.append(this.container),
+ this.el.setAttribute(
+ 'data-target',
+ this.container.id
+ ),
+ (this.dropdown = M.Dropdown.init(
+ this.el,
+ {
+ autoFocus: !1,
+ closeOnClick: !1,
+ coverTrigger: !1,
+ onItemClick: function(t) {
+ e.selectOption(h(t))
+ },
+ }
+ )),
+ this.el.removeEventListener(
+ 'click',
+ this.dropdown._handleClickBound
+ )
+ },
+ },
+ {
+ key: '_removeDropdown',
+ value: function() {
+ this.container.parentNode.removeChild(
+ this.container
+ )
+ },
+ },
+ {
+ key: '_handleInputBlur',
+ value: function() {
+ this._mousedown ||
+ (this.close(),
+ this._resetAutocomplete())
+ },
+ },
+ {
+ key: '_handleInputKeyupAndFocus',
+ value: function(t) {
+ 'keyup' === t.type && (s._keydown = !1),
+ (this.count = 0)
+ var e = this.el.value.toLowerCase()
+ 13 !== t.keyCode &&
+ 38 !== t.keyCode &&
+ 40 !== t.keyCode &&
+ (this.oldVal === e ||
+ (!M.tabPressed &&
+ 'focus' === t.type) ||
+ this.open(),
+ (this.oldVal = e))
+ },
+ },
+ {
+ key: '_handleInputKeydown',
+ value: function(t) {
+ s._keydown = !0
+ var e = t.keyCode,
+ i = void 0,
+ n = h(this.container).children('li')
+ .length
+ e === M.keys.ENTER && 0 <= this.activeIndex
+ ? (i = h(this.container)
+ .children('li')
+ .eq(this.activeIndex)).length &&
+ (this.selectOption(i),
+ t.preventDefault())
+ : (e !== M.keys.ARROW_UP &&
+ e !== M.keys.ARROW_DOWN) ||
+ (t.preventDefault(),
+ e === M.keys.ARROW_UP &&
+ 0 < this.activeIndex &&
+ this.activeIndex--,
+ e === M.keys.ARROW_DOWN &&
+ this.activeIndex < n - 1 &&
+ this.activeIndex++,
+ this.$active.removeClass('active'),
+ 0 <= this.activeIndex &&
+ ((this.$active = h(this.container)
+ .children('li')
+ .eq(this.activeIndex)),
+ this.$active.addClass('active')))
+ },
+ },
+ {
+ key: '_handleInputClick',
+ value: function(t) {
+ this.open()
+ },
+ },
+ {
+ key: '_handleContainerMousedownAndTouchstart',
+ value: function(t) {
+ this._mousedown = !0
+ },
+ },
+ {
+ key: '_handleContainerMouseupAndTouchend',
+ value: function(t) {
+ this._mousedown = !1
+ },
+ },
+ {
+ key: '_highlight',
+ value: function(t, e) {
+ var i = e.find('img'),
+ n = e
+ .text()
+ .toLowerCase()
+ .indexOf('' + t.toLowerCase()),
+ s = n + t.length - 1,
+ o = e.text().slice(0, n),
+ a = e.text().slice(n, s + 1),
+ r = e.text().slice(s + 1)
+ e.html(
+ '' +
+ o +
+ "" +
+ a +
+ '' +
+ r +
+ ''
+ ),
+ i.length && e.prepend(i)
+ },
+ },
+ {
+ key: '_resetCurrentElement',
+ value: function() {
+ ;(this.activeIndex = -1),
+ this.$active.removeClass('active')
+ },
+ },
+ {
+ key: '_resetAutocomplete',
+ value: function() {
+ h(this.container).empty(),
+ this._resetCurrentElement(),
+ (this.oldVal = null),
+ (this.isOpen = !1),
+ (this._mousedown = !1)
+ },
+ },
+ {
+ key: 'selectOption',
+ value: function(t) {
+ var e = t.text().trim()
+ ;(this.el.value = e),
+ this.$el.trigger('change'),
+ this._resetAutocomplete(),
+ this.close(),
+ 'function' ==
+ typeof this.options
+ .onAutocomplete &&
+ this.options.onAutocomplete.call(
+ this,
+ e
+ )
+ },
+ },
+ {
+ key: '_renderDropdown',
+ value: function(t, i) {
+ var n = this
+ this._resetAutocomplete()
+ var e = []
+ for (var s in t)
+ if (
+ t.hasOwnProperty(s) &&
+ -1 !== s.toLowerCase().indexOf(i)
+ ) {
+ if (
+ this.count >= this.options.limit
+ )
+ break
+ var o = { data: t[s], key: s }
+ e.push(o), this.count++
+ }
+ if (this.options.sortFunction) {
+ e.sort(function(t, e) {
+ return n.options.sortFunction(
+ t.key.toLowerCase(),
+ e.key.toLowerCase(),
+ i.toLowerCase()
+ )
+ })
+ }
+ for (var a = 0; a < e.length; a++) {
+ var r = e[a],
+ l = h('')
+ r.data
+ ? l.append(
+ '' +
+ r.key +
+ ''
+ )
+ : l.append(
+ '' + r.key + ''
+ ),
+ h(this.container).append(l),
+ this._highlight(i, l)
+ }
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ var t = this.el.value.toLowerCase()
+ this._resetAutocomplete(),
+ t.length >= this.options.minLength &&
+ ((this.isOpen = !0),
+ this._renderDropdown(
+ this.options.data,
+ t
+ )),
+ this.dropdown.isOpen
+ ? this.dropdown.recalculateDimensions()
+ : this.dropdown.open()
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.dropdown.close()
+ },
+ },
+ {
+ key: 'updateData',
+ value: function(t) {
+ var e = this.el.value.toLowerCase()
+ ;(this.options.data = t),
+ this.isOpen &&
+ this._renderDropdown(t, e)
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ s.__proto__ || Object.getPrototypeOf(s),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Autocomplete
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ s
+ )
+ })()
+ ;(t._keydown = !1),
+ (M.Autocomplete = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'autocomplete', 'M_Autocomplete')
+ })(cash),
+ (function(d) {
+ ;(M.updateTextFields = function() {
+ d(
+ 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea'
+ ).each(function(t, e) {
+ var i = d(this)
+ 0 < t.value.length ||
+ d(t).is(':focus') ||
+ t.autofocus ||
+ null !== i.attr('placeholder')
+ ? i.siblings('label').addClass('active')
+ : t.validity
+ ? i
+ .siblings('label')
+ .toggleClass('active', !0 === t.validity.badInput)
+ : i.siblings('label').removeClass('active')
+ })
+ }),
+ (M.validate_field = function(t) {
+ var e = null !== t.attr('data-length'),
+ i = parseInt(t.attr('data-length')),
+ n = t[0].value.length
+ 0 !== n || !1 !== t[0].validity.badInput || t.is(':required')
+ ? t.hasClass('validate') &&
+ ((t.is(':valid') && e && n <= i) || (t.is(':valid') && !e)
+ ? (t.removeClass('invalid'), t.addClass('valid'))
+ : (t.removeClass('valid'), t.addClass('invalid')))
+ : t.hasClass('validate') &&
+ (t.removeClass('valid'), t.removeClass('invalid'))
+ }),
+ (M.textareaAutoResize = function(t) {
+ if ((t instanceof Element && (t = d(t)), t.length)) {
+ var e = d('.hiddendiv').first()
+ e.length ||
+ ((e = d('')),
+ d('body').append(e))
+ var i = t.css('font-family'),
+ n = t.css('font-size'),
+ s = t.css('line-height'),
+ o = t.css('padding-top'),
+ a = t.css('padding-right'),
+ r = t.css('padding-bottom'),
+ l = t.css('padding-left')
+ n && e.css('font-size', n),
+ i && e.css('font-family', i),
+ s && e.css('line-height', s),
+ o && e.css('padding-top', o),
+ a && e.css('padding-right', a),
+ r && e.css('padding-bottom', r),
+ l && e.css('padding-left', l),
+ t.data('original-height') ||
+ t.data('original-height', t.height()),
+ 'off' === t.attr('wrap') &&
+ e
+ .css('overflow-wrap', 'normal')
+ .css('white-space', 'pre'),
+ e.text(t[0].value + '\n')
+ var h = e.html().replace(/\n/g, '
')
+ e.html(h),
+ 0 < t[0].offsetWidth && 0 < t[0].offsetHeight
+ ? e.css('width', t.width() + 'px')
+ : e.css('width', window.innerWidth / 2 + 'px'),
+ t.data('original-height') <= e.innerHeight()
+ ? t.css('height', e.innerHeight() + 'px')
+ : t[0].value.length < t.data('previous-length') &&
+ t.css('height', t.data('original-height') + 'px'),
+ t.data('previous-length', t[0].value.length)
+ } else console.error('No textarea element found')
+ }),
+ d(document).ready(function() {
+ var n =
+ 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea'
+ d(document).on('change', n, function() {
+ ;(0 === this.value.length &&
+ null === d(this).attr('placeholder')) ||
+ d(this)
+ .siblings('label')
+ .addClass('active'),
+ M.validate_field(d(this))
+ }),
+ d(document).ready(function() {
+ M.updateTextFields()
+ }),
+ d(document).on('reset', function(t) {
+ var e = d(t.target)
+ e.is('form') &&
+ (e
+ .find(n)
+ .removeClass('valid')
+ .removeClass('invalid'),
+ e.find(n).each(function(t) {
+ this.value.length &&
+ d(this)
+ .siblings('label')
+ .removeClass('active')
+ }),
+ setTimeout(function() {
+ e.find('select').each(function() {
+ this.M_FormSelect &&
+ d(this).trigger('change')
+ })
+ }, 0))
+ }),
+ document.addEventListener(
+ 'focus',
+ function(t) {
+ d(t.target).is(n) &&
+ d(t.target)
+ .siblings('label, .prefix')
+ .addClass('active')
+ },
+ !0
+ ),
+ document.addEventListener(
+ 'blur',
+ function(t) {
+ var e = d(t.target)
+ if (e.is(n)) {
+ var i = '.prefix'
+ 0 === e[0].value.length &&
+ !0 !== e[0].validity.badInput &&
+ null === e.attr('placeholder') &&
+ (i += ', label'),
+ e.siblings(i).removeClass('active'),
+ M.validate_field(e)
+ }
+ },
+ !0
+ )
+ d(document).on(
+ 'keyup',
+ 'input[type=radio], input[type=checkbox]',
+ function(t) {
+ if (t.which === M.keys.TAB)
+ return (
+ d(this).addClass('tabbed'),
+ void d(this).one('blur', function(t) {
+ d(this).removeClass('tabbed')
+ })
+ )
+ }
+ )
+ var t = '.materialize-textarea'
+ d(t).each(function() {
+ var t = d(this)
+ t.data('original-height', t.height()),
+ t.data('previous-length', this.value.length),
+ M.textareaAutoResize(t)
+ }),
+ d(document).on('keyup', t, function() {
+ M.textareaAutoResize(d(this))
+ }),
+ d(document).on('keydown', t, function() {
+ M.textareaAutoResize(d(this))
+ }),
+ d(document).on(
+ 'change',
+ '.file-field input[type="file"]',
+ function() {
+ for (
+ var t = d(this)
+ .closest('.file-field')
+ .find('input.file-path'),
+ e = d(this)[0].files,
+ i = [],
+ n = 0;
+ n < e.length;
+ n++
+ )
+ i.push(e[n].name)
+ ;(t[0].value = i.join(', ')), t.trigger('change')
+ }
+ )
+ })
+ })(cash),
+ (function(s, o) {
+ 'use strict'
+ var e = { indicators: !0, height: 400, duration: 500, interval: 6e3 },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Slider = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.$slider = i.$el.find('.slides')),
+ (i.$slides = i.$slider.children('li')),
+ (i.activeIndex = i.$slides
+ .filter(function(t) {
+ return s(t).hasClass('active')
+ })
+ .first()
+ .index()),
+ -1 != i.activeIndex &&
+ (i.$active = i.$slides.eq(i.activeIndex)),
+ i._setSliderHeight(),
+ i.$slides.find('.caption').each(function(t) {
+ i._animateCaptionIn(t, 0)
+ }),
+ i.$slides.find('img').each(function(t) {
+ var e =
+ 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='
+ s(t).attr('src') !== e &&
+ (s(t).css(
+ 'background-image',
+ 'url("' + s(t).attr('src') + '")'
+ ),
+ s(t).attr('src', e))
+ }),
+ i._setupIndicators(),
+ i.$active
+ ? i.$active.css('display', 'block')
+ : (i.$slides.first().addClass('active'),
+ o({
+ targets: i.$slides.first()[0],
+ opacity: 1,
+ duration: i.options.duration,
+ easing: 'easeOutQuad',
+ }),
+ (i.activeIndex = 0),
+ (i.$active = i.$slides.eq(i.activeIndex)),
+ i.options.indicators &&
+ i.$indicators
+ .eq(i.activeIndex)
+ .addClass('active')),
+ i.$active.find('img').each(function(t) {
+ o({
+ targets: i.$active.find('.caption')[0],
+ opacity: 1,
+ translateX: 0,
+ translateY: 0,
+ duration: i.options.duration,
+ easing: 'easeOutQuad',
+ })
+ }),
+ i._setupEventHandlers(),
+ i.start(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this.pause(),
+ this._removeIndicators(),
+ this._removeEventHandlers(),
+ (this.el.M_Slider = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ var e = this
+ ;(this._handleIntervalBound = this._handleInterval.bind(
+ this
+ )),
+ (this._handleIndicatorClickBound = this._handleIndicatorClick.bind(
+ this
+ )),
+ this.options.indicators &&
+ this.$indicators.each(function(t) {
+ t.addEventListener(
+ 'click',
+ e._handleIndicatorClickBound
+ )
+ })
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ var e = this
+ this.options.indicators &&
+ this.$indicators.each(function(t) {
+ t.removeEventListener(
+ 'click',
+ e._handleIndicatorClickBound
+ )
+ })
+ },
+ },
+ {
+ key: '_handleIndicatorClick',
+ value: function(t) {
+ var e = s(t.target).index()
+ this.set(e)
+ },
+ },
+ {
+ key: '_handleInterval',
+ value: function() {
+ var t = this.$slider.find('.active').index()
+ this.$slides.length === t + 1
+ ? (t = 0)
+ : (t += 1),
+ this.set(t)
+ },
+ },
+ {
+ key: '_animateCaptionIn',
+ value: function(t, e) {
+ var i = {
+ targets: t,
+ opacity: 0,
+ duration: e,
+ easing: 'easeOutQuad',
+ }
+ s(t).hasClass('center-align')
+ ? (i.translateY = -100)
+ : s(t).hasClass('right-align')
+ ? (i.translateX = 100)
+ : s(t).hasClass('left-align') &&
+ (i.translateX = -100),
+ o(i)
+ },
+ },
+ {
+ key: '_setSliderHeight',
+ value: function() {
+ this.$el.hasClass('fullscreen') ||
+ (this.options.indicators
+ ? this.$el.css(
+ 'height',
+ this.options.height +
+ 40 +
+ 'px'
+ )
+ : this.$el.css(
+ 'height',
+ this.options.height + 'px'
+ ),
+ this.$slider.css(
+ 'height',
+ this.options.height + 'px'
+ ))
+ },
+ },
+ {
+ key: '_setupIndicators',
+ value: function() {
+ var n = this
+ this.options.indicators &&
+ ((this.$indicators = s(
+ ''
+ )),
+ this.$slides.each(function(t, e) {
+ var i = s(
+ ''
+ )
+ n.$indicators.append(i[0])
+ }),
+ this.$el.append(this.$indicators[0]),
+ (this.$indicators = this.$indicators.children(
+ 'li.indicator-item'
+ )))
+ },
+ },
+ {
+ key: '_removeIndicators',
+ value: function() {
+ this.$el.find('ul.indicators').remove()
+ },
+ },
+ {
+ key: 'set',
+ value: function(t) {
+ var e = this
+ if (
+ (t >= this.$slides.length
+ ? (t = 0)
+ : t < 0 &&
+ (t = this.$slides.length - 1),
+ this.activeIndex != t)
+ ) {
+ this.$active = this.$slides.eq(
+ this.activeIndex
+ )
+ var i = this.$active.find('.caption')
+ this.$active.removeClass('active'),
+ o({
+ targets: this.$active[0],
+ opacity: 0,
+ duration: this.options.duration,
+ easing: 'easeOutQuad',
+ complete: function() {
+ e.$slides
+ .not('.active')
+ .each(function(t) {
+ o({
+ targets: t,
+ opacity: 0,
+ translateX: 0,
+ translateY: 0,
+ duration: 0,
+ easing:
+ 'easeOutQuad',
+ })
+ })
+ },
+ }),
+ this._animateCaptionIn(
+ i[0],
+ this.options.duration
+ ),
+ this.options.indicators &&
+ (this.$indicators
+ .eq(this.activeIndex)
+ .removeClass('active'),
+ this.$indicators
+ .eq(t)
+ .addClass('active')),
+ o({
+ targets: this.$slides.eq(t)[0],
+ opacity: 1,
+ duration: this.options.duration,
+ easing: 'easeOutQuad',
+ }),
+ o({
+ targets: this.$slides
+ .eq(t)
+ .find('.caption')[0],
+ opacity: 1,
+ translateX: 0,
+ translateY: 0,
+ duration: this.options.duration,
+ delay: this.options.duration,
+ easing: 'easeOutQuad',
+ }),
+ this.$slides
+ .eq(t)
+ .addClass('active'),
+ (this.activeIndex = t),
+ this.start()
+ }
+ },
+ },
+ {
+ key: 'pause',
+ value: function() {
+ clearInterval(this.interval)
+ },
+ },
+ {
+ key: 'start',
+ value: function() {
+ clearInterval(this.interval),
+ (this.interval = setInterval(
+ this._handleIntervalBound,
+ this.options.duration +
+ this.options.interval
+ ))
+ },
+ },
+ {
+ key: 'next',
+ value: function() {
+ var t = this.activeIndex + 1
+ t >= this.$slides.length
+ ? (t = 0)
+ : t < 0 &&
+ (t = this.$slides.length - 1),
+ this.set(t)
+ },
+ },
+ {
+ key: 'prev',
+ value: function() {
+ var t = this.activeIndex - 1
+ t >= this.$slides.length
+ ? (t = 0)
+ : t < 0 &&
+ (t = this.$slides.length - 1),
+ this.set(t)
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Slider
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.Slider = t),
+ M.jQueryLoaded && M.initializeJqueryWrapper(t, 'slider', 'M_Slider')
+ })(cash, M.anime),
+ (function(n, s) {
+ n(document).on('click', '.card', function(t) {
+ if (n(this).children('.card-reveal').length) {
+ var i = n(t.target).closest('.card')
+ void 0 === i.data('initialOverflow') &&
+ i.data(
+ 'initialOverflow',
+ void 0 === i.css('overflow') ? '' : i.css('overflow')
+ )
+ var e = n(this).find('.card-reveal')
+ n(t.target).is(n('.card-reveal .card-title')) ||
+ n(t.target).is(n('.card-reveal .card-title i'))
+ ? s({
+ targets: e[0],
+ translateY: 0,
+ duration: 225,
+ easing: 'easeInOutQuad',
+ complete: function(t) {
+ var e = t.animatables[0].target
+ n(e).css({ display: 'none' }),
+ i.css('overflow', i.data('initialOverflow'))
+ },
+ })
+ : (n(t.target).is(n('.card .activator')) ||
+ n(t.target).is(n('.card .activator i'))) &&
+ (i.css('overflow', 'hidden'),
+ e.css({ display: 'block' }),
+ s({
+ targets: e[0],
+ translateY: '-100%',
+ duration: 300,
+ easing: 'easeInOutQuad',
+ }))
+ }
+ })
+ })(cash, M.anime),
+ (function(h) {
+ 'use strict'
+ var e = {
+ data: [],
+ placeholder: '',
+ secondaryPlaceholder: '',
+ autocompleteOptions: {},
+ limit: 1 / 0,
+ onChipAdd: null,
+ onChipSelect: null,
+ onChipDelete: null,
+ },
+ t = (function(t) {
+ function l(t, e) {
+ _classCallCheck(this, l)
+ var i = _possibleConstructorReturn(
+ this,
+ (l.__proto__ || Object.getPrototypeOf(l)).call(
+ this,
+ l,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Chips = i).options = h.extend(
+ {},
+ l.defaults,
+ e
+ )),
+ i.$el.addClass('chips input-field'),
+ (i.chipsData = []),
+ (i.$chips = h()),
+ i._setupInput(),
+ (i.hasAutocomplete =
+ 0 <
+ Object.keys(i.options.autocompleteOptions).length),
+ i.$input.attr('id') || i.$input.attr('id', M.guid()),
+ i.options.data.length &&
+ ((i.chipsData = i.options.data),
+ i._renderChips(i.chipsData)),
+ i.hasAutocomplete && i._setupAutocomplete(),
+ i._setPlaceholder(),
+ i._setupLabel(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(l, Component),
+ _createClass(
+ l,
+ [
+ {
+ key: 'getData',
+ value: function() {
+ return this.chipsData
+ },
+ },
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this.$chips.remove(),
+ (this.el.M_Chips = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleChipClickBound = this._handleChipClick.bind(
+ this
+ )),
+ (this._handleInputKeydownBound = this._handleInputKeydown.bind(
+ this
+ )),
+ (this._handleInputFocusBound = this._handleInputFocus.bind(
+ this
+ )),
+ (this._handleInputBlurBound = this._handleInputBlur.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleChipClickBound
+ ),
+ document.addEventListener(
+ 'keydown',
+ l._handleChipsKeydown
+ ),
+ document.addEventListener(
+ 'keyup',
+ l._handleChipsKeyup
+ ),
+ this.el.addEventListener(
+ 'blur',
+ l._handleChipsBlur,
+ !0
+ ),
+ this.$input[0].addEventListener(
+ 'focus',
+ this._handleInputFocusBound
+ ),
+ this.$input[0].addEventListener(
+ 'blur',
+ this._handleInputBlurBound
+ ),
+ this.$input[0].addEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'click',
+ this._handleChipClickBound
+ ),
+ document.removeEventListener(
+ 'keydown',
+ l._handleChipsKeydown
+ ),
+ document.removeEventListener(
+ 'keyup',
+ l._handleChipsKeyup
+ ),
+ this.el.removeEventListener(
+ 'blur',
+ l._handleChipsBlur,
+ !0
+ ),
+ this.$input[0].removeEventListener(
+ 'focus',
+ this._handleInputFocusBound
+ ),
+ this.$input[0].removeEventListener(
+ 'blur',
+ this._handleInputBlurBound
+ ),
+ this.$input[0].removeEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ )
+ },
+ },
+ {
+ key: '_handleChipClick',
+ value: function(t) {
+ var e = h(t.target).closest('.chip'),
+ i = h(t.target).is('.close')
+ if (e.length) {
+ var n = e.index()
+ i
+ ? (this.deleteChip(n),
+ this.$input[0].focus())
+ : this.selectChip(n)
+ } else this.$input[0].focus()
+ },
+ },
+ {
+ key: '_handleInputFocus',
+ value: function() {
+ this.$el.addClass('focus')
+ },
+ },
+ {
+ key: '_handleInputBlur',
+ value: function() {
+ this.$el.removeClass('focus')
+ },
+ },
+ {
+ key: '_handleInputKeydown',
+ value: function(t) {
+ if (((l._keydown = !0), 13 === t.keyCode)) {
+ if (
+ this.hasAutocomplete &&
+ this.autocomplete &&
+ this.autocomplete.isOpen
+ )
+ return
+ t.preventDefault(),
+ this.addChip({
+ tag: this.$input[0].value,
+ }),
+ (this.$input[0].value = '')
+ } else
+ (8 !== t.keyCode && 37 !== t.keyCode) ||
+ '' !== this.$input[0].value ||
+ !this.chipsData.length ||
+ (t.preventDefault(),
+ this.selectChip(
+ this.chipsData.length - 1
+ ))
+ },
+ },
+ {
+ key: '_renderChip',
+ value: function(t) {
+ if (t.tag) {
+ var e = document.createElement('div'),
+ i = document.createElement('i')
+ if (
+ (e.classList.add('chip'),
+ (e.textContent = t.tag),
+ e.setAttribute('tabindex', 0),
+ h(i).addClass(
+ 'material-icons close'
+ ),
+ (i.textContent = 'close'),
+ t.image)
+ ) {
+ var n = document.createElement(
+ 'img'
+ )
+ n.setAttribute('src', t.image),
+ e.insertBefore(n, e.firstChild)
+ }
+ return e.appendChild(i), e
+ }
+ },
+ },
+ {
+ key: '_renderChips',
+ value: function() {
+ this.$chips.remove()
+ for (
+ var t = 0;
+ t < this.chipsData.length;
+ t++
+ ) {
+ var e = this._renderChip(
+ this.chipsData[t]
+ )
+ this.$el.append(e), this.$chips.add(e)
+ }
+ this.$el.append(this.$input[0])
+ },
+ },
+ {
+ key: '_setupAutocomplete',
+ value: function() {
+ var e = this
+ ;(this.options.autocompleteOptions.onAutocomplete = function(
+ t
+ ) {
+ e.addChip({ tag: t }),
+ (e.$input[0].value = ''),
+ e.$input[0].focus()
+ }),
+ (this.autocomplete = M.Autocomplete.init(
+ this.$input[0],
+ this.options.autocompleteOptions
+ ))
+ },
+ },
+ {
+ key: '_setupInput',
+ value: function() {
+ ;(this.$input = this.$el.find('input')),
+ this.$input.length ||
+ ((this.$input = h(
+ ''
+ )),
+ this.$el.append(this.$input)),
+ this.$input.addClass('input')
+ },
+ },
+ {
+ key: '_setupLabel',
+ value: function() {
+ ;(this.$label = this.$el.find('label')),
+ this.$label.length &&
+ this.$label.setAttribute(
+ 'for',
+ this.$input.attr('id')
+ )
+ },
+ },
+ {
+ key: '_setPlaceholder',
+ value: function() {
+ void 0 !== this.chipsData &&
+ !this.chipsData.length &&
+ this.options.placeholder
+ ? h(this.$input).prop(
+ 'placeholder',
+ this.options.placeholder
+ )
+ : (void 0 === this.chipsData ||
+ this.chipsData.length) &&
+ this.options.secondaryPlaceholder &&
+ h(this.$input).prop(
+ 'placeholder',
+ this.options.secondaryPlaceholder
+ )
+ },
+ },
+ {
+ key: '_isValid',
+ value: function(t) {
+ if (
+ t.hasOwnProperty('tag') &&
+ '' !== t.tag
+ ) {
+ for (
+ var e = !1, i = 0;
+ i < this.chipsData.length;
+ i++
+ )
+ if (
+ this.chipsData[i].tag === t.tag
+ ) {
+ e = !0
+ break
+ }
+ return !e
+ }
+ return !1
+ },
+ },
+ {
+ key: 'addChip',
+ value: function(t) {
+ if (
+ this._isValid(t) &&
+ !(
+ this.chipsData.length >=
+ this.options.limit
+ )
+ ) {
+ var e = this._renderChip(t)
+ this.$chips.add(e),
+ this.chipsData.push(t),
+ h(this.$input).before(e),
+ this._setPlaceholder(),
+ 'function' ==
+ typeof this.options.onChipAdd &&
+ this.options.onChipAdd.call(
+ this,
+ this.$el,
+ e
+ )
+ }
+ },
+ },
+ {
+ key: 'deleteChip',
+ value: function(t) {
+ var e = this.$chips.eq(t)
+ this.$chips.eq(t).remove(),
+ (this.$chips = this.$chips.filter(
+ function(t) {
+ return 0 <= h(t).index()
+ }
+ )),
+ this.chipsData.splice(t, 1),
+ this._setPlaceholder(),
+ 'function' ==
+ typeof this.options.onChipDelete &&
+ this.options.onChipDelete.call(
+ this,
+ this.$el,
+ e[0]
+ )
+ },
+ },
+ {
+ key: 'selectChip',
+ value: function(t) {
+ var e = this.$chips.eq(t)
+ ;(this._selectedChip = e)[0].focus(),
+ 'function' ==
+ typeof this.options.onChipSelect &&
+ this.options.onChipSelect.call(
+ this,
+ this.$el,
+ e[0]
+ )
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ l.__proto__ || Object.getPrototypeOf(l),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Chips
+ },
+ },
+ {
+ key: '_handleChipsKeydown',
+ value: function(t) {
+ l._keydown = !0
+ var e = h(t.target).closest('.chips'),
+ i = t.target && e.length
+ if (
+ !h(t.target).is('input, textarea') &&
+ i
+ ) {
+ var n = e[0].M_Chips
+ if (
+ 8 === t.keyCode ||
+ 46 === t.keyCode
+ ) {
+ t.preventDefault()
+ var s = n.chipsData.length
+ if (n._selectedChip) {
+ var o = n._selectedChip.index()
+ n.deleteChip(o),
+ (n._selectedChip = null),
+ (s = Math.max(o - 1, 0))
+ }
+ n.chipsData.length &&
+ n.selectChip(s)
+ } else if (37 === t.keyCode) {
+ if (n._selectedChip) {
+ var a =
+ n._selectedChip.index() - 1
+ if (a < 0) return
+ n.selectChip(a)
+ }
+ } else if (
+ 39 === t.keyCode &&
+ n._selectedChip
+ ) {
+ var r = n._selectedChip.index() + 1
+ r >= n.chipsData.length
+ ? n.$input[0].focus()
+ : n.selectChip(r)
+ }
+ }
+ },
+ },
+ {
+ key: '_handleChipsKeyup',
+ value: function(t) {
+ l._keydown = !1
+ },
+ },
+ {
+ key: '_handleChipsBlur',
+ value: function(t) {
+ l._keydown ||
+ (h(t.target).closest(
+ '.chips'
+ )[0].M_Chips._selectedChip = null)
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ l
+ )
+ })()
+ ;(t._keydown = !1),
+ (M.Chips = t),
+ M.jQueryLoaded && M.initializeJqueryWrapper(t, 'chips', 'M_Chips'),
+ h(document).ready(function() {
+ h(document.body).on('click', '.chip .close', function() {
+ var t = h(this).closest('.chips')
+ ;(t.length && t[0].M_Chips) ||
+ h(this)
+ .closest('.chip')
+ .remove()
+ })
+ })
+ })(cash),
+ (function(s) {
+ 'use strict'
+ var e = { top: 0, bottom: 1 / 0, offset: 0, onPositionChange: null },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Pushpin = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.originalOffset = i.el.offsetTop),
+ n._pushpins.push(i),
+ i._setupEventHandlers(),
+ i._updatePosition(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ ;(this.el.style.top = null),
+ this._removePinClasses(),
+ this._removeEventHandlers()
+ var t = n._pushpins.indexOf(this)
+ n._pushpins.splice(t, 1)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ document.addEventListener(
+ 'scroll',
+ n._updateElements
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ document.removeEventListener(
+ 'scroll',
+ n._updateElements
+ )
+ },
+ },
+ {
+ key: '_updatePosition',
+ value: function() {
+ var t =
+ M.getDocumentScrollTop() +
+ this.options.offset
+ this.options.top <= t &&
+ this.options.bottom >= t &&
+ !this.el.classList.contains('pinned') &&
+ (this._removePinClasses(),
+ (this.el.style.top =
+ this.options.offset + 'px'),
+ this.el.classList.add('pinned'),
+ 'function' ==
+ typeof this.options
+ .onPositionChange &&
+ this.options.onPositionChange.call(
+ this,
+ 'pinned'
+ )),
+ t < this.options.top &&
+ !this.el.classList.contains(
+ 'pin-top'
+ ) &&
+ (this._removePinClasses(),
+ (this.el.style.top = 0),
+ this.el.classList.add('pin-top'),
+ 'function' ==
+ typeof this.options
+ .onPositionChange &&
+ this.options.onPositionChange.call(
+ this,
+ 'pin-top'
+ )),
+ t > this.options.bottom &&
+ !this.el.classList.contains(
+ 'pin-bottom'
+ ) &&
+ (this._removePinClasses(),
+ this.el.classList.add('pin-bottom'),
+ (this.el.style.top =
+ this.options.bottom -
+ this.originalOffset +
+ 'px'),
+ 'function' ==
+ typeof this.options
+ .onPositionChange &&
+ this.options.onPositionChange.call(
+ this,
+ 'pin-bottom'
+ ))
+ },
+ },
+ {
+ key: '_removePinClasses',
+ value: function() {
+ this.el.classList.remove('pin-top'),
+ this.el.classList.remove('pinned'),
+ this.el.classList.remove('pin-bottom')
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Pushpin
+ },
+ },
+ {
+ key: '_updateElements',
+ value: function() {
+ for (var t in n._pushpins) {
+ n._pushpins[t]._updatePosition()
+ }
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(t._pushpins = []),
+ (M.Pushpin = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'pushpin', 'M_Pushpin')
+ })(cash),
+ (function(r, s) {
+ 'use strict'
+ var e = { direction: 'top', hoverEnabled: !0, toolbarEnabled: !1 }
+ r.fn.reverse = [].reverse
+ var t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_FloatingActionButton = i).options = r.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isOpen = !1),
+ (i.$anchor = i.$el.children('a').first()),
+ (i.$menu = i.$el.children('ul').first()),
+ (i.$floatingBtns = i.$el.find('ul .btn-floating')),
+ (i.$floatingBtnsReverse = i.$el
+ .find('ul .btn-floating')
+ .reverse()),
+ (i.offsetY = 0),
+ (i.offsetX = 0),
+ i.$el.addClass('direction-' + i.options.direction),
+ 'top' === i.options.direction
+ ? (i.offsetY = 40)
+ : 'right' === i.options.direction
+ ? (i.offsetX = -40)
+ : 'bottom' === i.options.direction
+ ? (i.offsetY = -40)
+ : (i.offsetX = 40),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.M_FloatingActionButton = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleFABClickBound = this._handleFABClick.bind(
+ this
+ )),
+ (this._handleOpenBound = this.open.bind(
+ this
+ )),
+ (this._handleCloseBound = this.close.bind(
+ this
+ )),
+ this.options.hoverEnabled &&
+ !this.options.toolbarEnabled
+ ? (this.el.addEventListener(
+ 'mouseenter',
+ this._handleOpenBound
+ ),
+ this.el.addEventListener(
+ 'mouseleave',
+ this._handleCloseBound
+ ))
+ : this.el.addEventListener(
+ 'click',
+ this._handleFABClickBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.options.hoverEnabled &&
+ !this.options.toolbarEnabled
+ ? (this.el.removeEventListener(
+ 'mouseenter',
+ this._handleOpenBound
+ ),
+ this.el.removeEventListener(
+ 'mouseleave',
+ this._handleCloseBound
+ ))
+ : this.el.removeEventListener(
+ 'click',
+ this._handleFABClickBound
+ )
+ },
+ },
+ {
+ key: '_handleFABClick',
+ value: function() {
+ this.isOpen ? this.close() : this.open()
+ },
+ },
+ {
+ key: '_handleDocumentClick',
+ value: function(t) {
+ r(t.target).closest(this.$menu).length ||
+ this.close()
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ this.isOpen ||
+ (this.options.toolbarEnabled
+ ? this._animateInToolbar()
+ : this._animateInFAB(),
+ (this.isOpen = !0))
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.isOpen &&
+ (this.options.toolbarEnabled
+ ? (window.removeEventListener(
+ 'scroll',
+ this._handleCloseBound,
+ !0
+ ),
+ document.body.removeEventListener(
+ 'click',
+ this._handleDocumentClickBound,
+ !0
+ ),
+ this._animateOutToolbar())
+ : this._animateOutFAB(),
+ (this.isOpen = !1))
+ },
+ },
+ {
+ key: '_animateInFAB',
+ value: function() {
+ var e = this
+ this.$el.addClass('active')
+ var i = 0
+ this.$floatingBtnsReverse.each(function(t) {
+ s({
+ targets: t,
+ opacity: 1,
+ scale: [0.4, 1],
+ translateY: [e.offsetY, 0],
+ translateX: [e.offsetX, 0],
+ duration: 275,
+ delay: i,
+ easing: 'easeInOutQuad',
+ }),
+ (i += 40)
+ })
+ },
+ },
+ {
+ key: '_animateOutFAB',
+ value: function() {
+ var e = this
+ this.$floatingBtnsReverse.each(function(t) {
+ s.remove(t),
+ s({
+ targets: t,
+ opacity: 0,
+ scale: 0.4,
+ translateY: e.offsetY,
+ translateX: e.offsetX,
+ duration: 175,
+ easing: 'easeOutQuad',
+ complete: function() {
+ e.$el.removeClass('active')
+ },
+ })
+ })
+ },
+ },
+ {
+ key: '_animateInToolbar',
+ value: function() {
+ var t,
+ e = this,
+ i = window.innerWidth,
+ n = window.innerHeight,
+ s = this.el.getBoundingClientRect(),
+ o = r(''),
+ a = this.$anchor.css('background-color')
+ this.$anchor.append(o),
+ (this.offsetX =
+ s.left - i / 2 + s.width / 2),
+ (this.offsetY = n - s.bottom),
+ (t = i / o[0].clientWidth),
+ (this.btnBottom = s.bottom),
+ (this.btnLeft = s.left),
+ (this.btnWidth = s.width),
+ this.$el.addClass('active'),
+ this.$el.css({
+ 'text-align': 'center',
+ width: '100%',
+ bottom: 0,
+ left: 0,
+ transform:
+ 'translateX(' +
+ this.offsetX +
+ 'px)',
+ transition: 'none',
+ }),
+ this.$anchor.css({
+ transform:
+ 'translateY(' +
+ -this.offsetY +
+ 'px)',
+ transition: 'none',
+ }),
+ o.css({ 'background-color': a }),
+ setTimeout(function() {
+ e.$el.css({
+ transform: '',
+ transition:
+ 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s',
+ }),
+ e.$anchor.css({
+ overflow: 'visible',
+ transform: '',
+ transition: 'transform .2s',
+ }),
+ setTimeout(function() {
+ e.$el.css({
+ overflow: 'hidden',
+ 'background-color': a,
+ }),
+ o.css({
+ transform:
+ 'scale(' + t + ')',
+ transition:
+ 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)',
+ }),
+ e.$menu
+ .children('li')
+ .children('a')
+ .css({ opacity: 1 }),
+ (e._handleDocumentClickBound = e._handleDocumentClick.bind(
+ e
+ )),
+ window.addEventListener(
+ 'scroll',
+ e._handleCloseBound,
+ !0
+ ),
+ document.body.addEventListener(
+ 'click',
+ e._handleDocumentClickBound,
+ !0
+ )
+ }, 100)
+ }, 0)
+ },
+ },
+ {
+ key: '_animateOutToolbar',
+ value: function() {
+ var t = this,
+ e = window.innerWidth,
+ i = window.innerHeight,
+ n = this.$el.find('.fab-backdrop'),
+ s = this.$anchor.css('background-color')
+ ;(this.offsetX =
+ this.btnLeft - e / 2 + this.btnWidth / 2),
+ (this.offsetY = i - this.btnBottom),
+ this.$el.removeClass('active'),
+ this.$el.css({
+ 'background-color': 'transparent',
+ transition: 'none',
+ }),
+ this.$anchor.css({ transition: 'none' }),
+ n.css({
+ transform: 'scale(0)',
+ 'background-color': s,
+ }),
+ this.$menu
+ .children('li')
+ .children('a')
+ .css({ opacity: '' }),
+ setTimeout(function() {
+ n.remove(),
+ t.$el.css({
+ 'text-align': '',
+ width: '',
+ bottom: '',
+ left: '',
+ overflow: '',
+ 'background-color': '',
+ transform:
+ 'translate3d(' +
+ -t.offsetX +
+ 'px,0,0)',
+ }),
+ t.$anchor.css({
+ overflow: '',
+ transform:
+ 'translate3d(0,' +
+ t.offsetY +
+ 'px,0)',
+ }),
+ setTimeout(function() {
+ t.$el.css({
+ transform:
+ 'translate3d(0,0,0)',
+ transition: 'transform .2s',
+ }),
+ t.$anchor.css({
+ transform:
+ 'translate3d(0,0,0)',
+ transition:
+ 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)',
+ })
+ }, 20)
+ }, 200)
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t)
+ .M_FloatingActionButton
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.FloatingActionButton = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(
+ t,
+ 'floatingActionButton',
+ 'M_FloatingActionButton'
+ )
+ })(cash, M.anime),
+ (function(g) {
+ 'use strict'
+ var e = {
+ autoClose: !1,
+ format: 'mmm dd, yyyy',
+ parse: null,
+ defaultDate: null,
+ setDefaultDate: !1,
+ disableWeekends: !1,
+ disableDayFn: null,
+ firstDay: 0,
+ minDate: null,
+ maxDate: null,
+ yearRange: 10,
+ minYear: 0,
+ maxYear: 9999,
+ minMonth: void 0,
+ maxMonth: void 0,
+ startRange: null,
+ endRange: null,
+ isRTL: !1,
+ showMonthAfterYear: !1,
+ showDaysInNextAndPreviousMonths: !1,
+ container: null,
+ showClearBtn: !1,
+ i18n: {
+ cancel: 'Cancel',
+ clear: 'Clear',
+ done: 'Ok',
+ previousMonth: '‹',
+ nextMonth: '›',
+ months: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ monthsShort: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ weekdays: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ weekdaysShort: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ weekdaysAbbrev: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ },
+ events: [],
+ onSelect: null,
+ onOpen: null,
+ onClose: null,
+ onDraw: null,
+ },
+ t = (function(t) {
+ function B(t, e) {
+ _classCallCheck(this, B)
+ var i = _possibleConstructorReturn(
+ this,
+ (B.__proto__ || Object.getPrototypeOf(B)).call(
+ this,
+ B,
+ t,
+ e
+ )
+ )
+ ;((i.el.M_Datepicker = i).options = g.extend(
+ {},
+ B.defaults,
+ e
+ )),
+ e &&
+ e.hasOwnProperty('i18n') &&
+ 'object' == typeof e.i18n &&
+ (i.options.i18n = g.extend(
+ {},
+ B.defaults.i18n,
+ e.i18n
+ )),
+ i.options.minDate &&
+ i.options.minDate.setHours(0, 0, 0, 0),
+ i.options.maxDate &&
+ i.options.maxDate.setHours(0, 0, 0, 0),
+ (i.id = M.guid()),
+ i._setupVariables(),
+ i._insertHTMLIntoDOM(),
+ i._setupModal(),
+ i._setupEventHandlers(),
+ i.options.defaultDate ||
+ (i.options.defaultDate = new Date(
+ Date.parse(i.el.value)
+ ))
+ var n = i.options.defaultDate
+ return (
+ B._isDate(n)
+ ? i.options.setDefaultDate
+ ? (i.setDate(n, !0), i.setInputValue())
+ : i.gotoDate(n)
+ : i.gotoDate(new Date()),
+ (i.isOpen = !1),
+ i
+ )
+ }
+ return (
+ _inherits(B, Component),
+ _createClass(
+ B,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this.modal.destroy(),
+ g(this.modalEl).remove(),
+ this.destroySelects(),
+ (this.el.M_Datepicker = void 0)
+ },
+ },
+ {
+ key: 'destroySelects',
+ value: function() {
+ var t = this.calendarEl.querySelector(
+ '.orig-select-year'
+ )
+ t && M.FormSelect.getInstance(t).destroy()
+ var e = this.calendarEl.querySelector(
+ '.orig-select-month'
+ )
+ e && M.FormSelect.getInstance(e).destroy()
+ },
+ },
+ {
+ key: '_insertHTMLIntoDOM',
+ value: function() {
+ this.options.showClearBtn &&
+ (g(this.clearBtn).css({
+ visibility: '',
+ }),
+ (this.clearBtn.innerHTML = this.options.i18n.clear)),
+ (this.doneBtn.innerHTML = this.options.i18n.done),
+ (this.cancelBtn.innerHTML = this.options.i18n.cancel),
+ this.options.container
+ ? this.$modalEl.appendTo(
+ this.options.container
+ )
+ : this.$modalEl.insertBefore(
+ this.el
+ )
+ },
+ },
+ {
+ key: '_setupModal',
+ value: function() {
+ var t = this
+ ;(this.modalEl.id = 'modal-' + this.id),
+ (this.modal = M.Modal.init(
+ this.modalEl,
+ {
+ onCloseEnd: function() {
+ t.isOpen = !1
+ },
+ }
+ ))
+ },
+ },
+ {
+ key: 'toString',
+ value: function(t) {
+ var e = this
+ return (
+ (t = t || this.options.format),
+ B._isDate(this.date)
+ ? t
+ .split(
+ /(d{1,4}|m{1,4}|y{4}|yy|!.)/g
+ )
+ .map(function(t) {
+ return e.formats[t]
+ ? e.formats[t]()
+ : t
+ })
+ .join('')
+ : ''
+ )
+ },
+ },
+ {
+ key: 'setDate',
+ value: function(t, e) {
+ if (!t)
+ return (
+ (this.date = null),
+ this._renderDateDisplay(),
+ this.draw()
+ )
+ if (
+ ('string' == typeof t &&
+ (t = new Date(Date.parse(t))),
+ B._isDate(t))
+ ) {
+ var i = this.options.minDate,
+ n = this.options.maxDate
+ B._isDate(i) && t < i
+ ? (t = i)
+ : B._isDate(n) && n < t && (t = n),
+ (this.date = new Date(t.getTime())),
+ this._renderDateDisplay(),
+ B._setToStartOfDay(this.date),
+ this.gotoDate(this.date),
+ e ||
+ 'function' !=
+ typeof this.options
+ .onSelect ||
+ this.options.onSelect.call(
+ this,
+ this.date
+ )
+ }
+ },
+ },
+ {
+ key: 'setInputValue',
+ value: function() {
+ ;(this.el.value = this.toString()),
+ this.$el.trigger('change', {
+ firedBy: this,
+ })
+ },
+ },
+ {
+ key: '_renderDateDisplay',
+ value: function() {
+ var t = B._isDate(this.date)
+ ? this.date
+ : new Date(),
+ e = this.options.i18n,
+ i = e.weekdaysShort[t.getDay()],
+ n = e.monthsShort[t.getMonth()],
+ s = t.getDate()
+ ;(this.yearTextEl.innerHTML = t.getFullYear()),
+ (this.dateTextEl.innerHTML =
+ i + ', ' + n + ' ' + s)
+ },
+ },
+ {
+ key: 'gotoDate',
+ value: function(t) {
+ var e = !0
+ if (B._isDate(t)) {
+ if (this.calendars) {
+ var i = new Date(
+ this.calendars[0].year,
+ this.calendars[0].month,
+ 1
+ ),
+ n = new Date(
+ this.calendars[
+ this.calendars.length -
+ 1
+ ].year,
+ this.calendars[
+ this.calendars.length -
+ 1
+ ].month,
+ 1
+ ),
+ s = t.getTime()
+ n.setMonth(n.getMonth() + 1),
+ n.setDate(n.getDate() - 1),
+ (e =
+ s < i.getTime() ||
+ n.getTime() < s)
+ }
+ e &&
+ (this.calendars = [
+ {
+ month: t.getMonth(),
+ year: t.getFullYear(),
+ },
+ ]),
+ this.adjustCalendars()
+ }
+ },
+ },
+ {
+ key: 'adjustCalendars',
+ value: function() {
+ ;(this.calendars[0] = this.adjustCalendar(
+ this.calendars[0]
+ )),
+ this.draw()
+ },
+ },
+ {
+ key: 'adjustCalendar',
+ value: function(t) {
+ return (
+ t.month < 0 &&
+ ((t.year -= Math.ceil(
+ Math.abs(t.month) / 12
+ )),
+ (t.month += 12)),
+ 11 < t.month &&
+ ((t.year += Math.floor(
+ Math.abs(t.month) / 12
+ )),
+ (t.month -= 12)),
+ t
+ )
+ },
+ },
+ {
+ key: 'nextMonth',
+ value: function() {
+ this.calendars[0].month++,
+ this.adjustCalendars()
+ },
+ },
+ {
+ key: 'prevMonth',
+ value: function() {
+ this.calendars[0].month--,
+ this.adjustCalendars()
+ },
+ },
+ {
+ key: 'render',
+ value: function(t, e, i) {
+ var n = this.options,
+ s = new Date(),
+ o = B._getDaysInMonth(t, e),
+ a = new Date(t, e, 1).getDay(),
+ r = [],
+ l = []
+ B._setToStartOfDay(s),
+ 0 < n.firstDay &&
+ (a -= n.firstDay) < 0 &&
+ (a += 7)
+ for (
+ var h = 0 === e ? 11 : e - 1,
+ d = 11 === e ? 0 : e + 1,
+ u = 0 === e ? t - 1 : t,
+ c = 11 === e ? t + 1 : t,
+ p = B._getDaysInMonth(u, h),
+ v = o + a,
+ f = v;
+ 7 < f;
+
+ )
+ f -= 7
+ v += 7 - f
+ for (var m = !1, g = 0, _ = 0; g < v; g++) {
+ var y = new Date(t, e, g - a + 1),
+ k =
+ !!B._isDate(this.date) &&
+ B._compareDates(y, this.date),
+ b = B._compareDates(y, s),
+ w =
+ -1 !==
+ n.events.indexOf(
+ y.toDateString()
+ ),
+ C = g < a || o + a <= g,
+ E = g - a + 1,
+ M = e,
+ O = t,
+ x =
+ n.startRange &&
+ B._compareDates(
+ n.startRange,
+ y
+ ),
+ L =
+ n.endRange &&
+ B._compareDates(n.endRange, y),
+ T =
+ n.startRange &&
+ n.endRange &&
+ n.startRange < y &&
+ y < n.endRange
+ C &&
+ (g < a
+ ? ((E = p + E),
+ (M = h),
+ (O = u))
+ : ((E -= o), (M = d), (O = c)))
+ var $ = {
+ day: E,
+ month: M,
+ year: O,
+ hasEvent: w,
+ isSelected: k,
+ isToday: b,
+ isDisabled:
+ (n.minDate && y < n.minDate) ||
+ (n.maxDate && y > n.maxDate) ||
+ (n.disableWeekends &&
+ B._isWeekend(y)) ||
+ (n.disableDayFn &&
+ n.disableDayFn(y)),
+ isEmpty: C,
+ isStartRange: x,
+ isEndRange: L,
+ isInRange: T,
+ showDaysInNextAndPreviousMonths:
+ n.showDaysInNextAndPreviousMonths,
+ }
+ l.push(this.renderDay($)),
+ 7 == ++_ &&
+ (r.push(
+ this.renderRow(
+ l,
+ n.isRTL,
+ m
+ )
+ ),
+ (_ = 0),
+ (m = !(l = [])))
+ }
+ return this.renderTable(n, r, i)
+ },
+ },
+ {
+ key: 'renderDay',
+ value: function(t) {
+ var e = [],
+ i = 'false'
+ if (t.isEmpty) {
+ if (!t.showDaysInNextAndPreviousMonths)
+ return ' | '
+ e.push('is-outside-current-month'),
+ e.push('is-selection-disabled')
+ }
+ return (
+ t.isDisabled && e.push('is-disabled'),
+ t.isToday && e.push('is-today'),
+ t.isSelected &&
+ (e.push('is-selected'),
+ (i = 'true')),
+ t.hasEvent && e.push('has-event'),
+ t.isInRange && e.push('is-inrange'),
+ t.isStartRange &&
+ e.push('is-startrange'),
+ t.isEndRange && e.push('is-endrange'),
+ ' | '
+ )
+ },
+ },
+ {
+ key: 'renderRow',
+ value: function(t, e, i) {
+ return (
+ '' +
+ (e ? t.reverse() : t).join('') +
+ '
'
+ )
+ },
+ },
+ {
+ key: 'renderTable',
+ value: function(t, e, i) {
+ return (
+ '' +
+ this.renderHead(t) +
+ this.renderBody(e) +
+ '
'
+ )
+ },
+ },
+ {
+ key: 'renderHead',
+ value: function(t) {
+ var e = void 0,
+ i = []
+ for (e = 0; e < 7; e++)
+ i.push(
+ '' +
+ this.renderDayName(t, e, !0) +
+ ' | '
+ )
+ return (
+ '' +
+ (t.isRTL ? i.reverse() : i).join('') +
+ '
'
+ )
+ },
+ },
+ {
+ key: 'renderBody',
+ value: function(t) {
+ return '' + t.join('') + ''
+ },
+ },
+ {
+ key: 'renderTitle',
+ value: function(t, e, i, n, s, o) {
+ var a,
+ r,
+ l = void 0,
+ h = void 0,
+ d = void 0,
+ u = this.options,
+ c = i === u.minYear,
+ p = i === u.maxYear,
+ v =
+ '',
+ f = !0,
+ m = !0
+ for (d = [], l = 0; l < 12; l++)
+ d.push(
+ '
'
+ )
+ for (
+ a =
+ '
',
+ g.isArray(u.yearRange)
+ ? ((l = u.yearRange[0]),
+ (h = u.yearRange[1] + 1))
+ : ((l = i - u.yearRange),
+ (h = 1 + i + u.yearRange)),
+ d = [];
+ l < h && l <= u.maxYear;
+ l++
+ )
+ l >= u.minYear &&
+ d.push(
+ '
'
+ )
+ r =
+ '
'
+ ;(v +=
+ '
'),
+ (v +=
+ '
'),
+ u.showMonthAfterYear
+ ? (v += r + a)
+ : (v += a + r),
+ (v += '
'),
+ c &&
+ (0 === n || u.minMonth >= n) &&
+ (f = !1),
+ p &&
+ (11 === n || u.maxMonth <= n) &&
+ (m = !1)
+ return (
+ (v +=
+ '
') +
+ '
'
+ )
+ },
+ },
+ {
+ key: 'draw',
+ value: function(t) {
+ if (this.isOpen || t) {
+ var e,
+ i = this.options,
+ n = i.minYear,
+ s = i.maxYear,
+ o = i.minMonth,
+ a = i.maxMonth,
+ r = ''
+ this._y <= n &&
+ ((this._y = n),
+ !isNaN(o) &&
+ this._m < o &&
+ (this._m = o)),
+ this._y >= s &&
+ ((this._y = s),
+ !isNaN(a) &&
+ this._m > a &&
+ (this._m = a)),
+ (e =
+ 'datepicker-title-' +
+ Math.random()
+ .toString(36)
+ .replace(/[^a-z]+/g, '')
+ .substr(0, 2))
+ for (var l = 0; l < 1; l++)
+ this._renderDateDisplay(),
+ (r +=
+ this.renderTitle(
+ this,
+ l,
+ this.calendars[l].year,
+ this.calendars[l].month,
+ this.calendars[0].year,
+ e
+ ) +
+ this.render(
+ this.calendars[l].year,
+ this.calendars[l].month,
+ e
+ ))
+ this.destroySelects(),
+ (this.calendarEl.innerHTML = r)
+ var h = this.calendarEl.querySelector(
+ '.orig-select-year'
+ ),
+ d = this.calendarEl.querySelector(
+ '.orig-select-month'
+ )
+ M.FormSelect.init(h, {
+ classes: 'select-year',
+ dropdownOptions: {
+ container: document.body,
+ constrainWidth: !1,
+ },
+ }),
+ M.FormSelect.init(d, {
+ classes: 'select-month',
+ dropdownOptions: {
+ container: document.body,
+ constrainWidth: !1,
+ },
+ }),
+ h.addEventListener(
+ 'change',
+ this._handleYearChange.bind(
+ this
+ )
+ ),
+ d.addEventListener(
+ 'change',
+ this._handleMonthChange.bind(
+ this
+ )
+ ),
+ 'function' ==
+ typeof this.options.onDraw &&
+ this.options.onDraw(this)
+ }
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleInputKeydownBound = this._handleInputKeydown.bind(
+ this
+ )),
+ (this._handleInputClickBound = this._handleInputClick.bind(
+ this
+ )),
+ (this._handleInputChangeBound = this._handleInputChange.bind(
+ this
+ )),
+ (this._handleCalendarClickBound = this._handleCalendarClick.bind(
+ this
+ )),
+ (this._finishSelectionBound = this._finishSelection.bind(
+ this
+ )),
+ (this._handleMonthChange = this._handleMonthChange.bind(
+ this
+ )),
+ (this._closeBound = this.close.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.el.addEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ ),
+ this.el.addEventListener(
+ 'change',
+ this._handleInputChangeBound
+ ),
+ this.calendarEl.addEventListener(
+ 'click',
+ this._handleCalendarClickBound
+ ),
+ this.doneBtn.addEventListener(
+ 'click',
+ this._finishSelectionBound
+ ),
+ this.cancelBtn.addEventListener(
+ 'click',
+ this._closeBound
+ ),
+ this.options.showClearBtn &&
+ ((this._handleClearClickBound = this._handleClearClick.bind(
+ this
+ )),
+ this.clearBtn.addEventListener(
+ 'click',
+ this._handleClearClickBound
+ ))
+ },
+ },
+ {
+ key: '_setupVariables',
+ value: function() {
+ var e = this
+ ;(this.$modalEl = g(B._template)),
+ (this.modalEl = this.$modalEl[0]),
+ (this.calendarEl = this.modalEl.querySelector(
+ '.datepicker-calendar'
+ )),
+ (this.yearTextEl = this.modalEl.querySelector(
+ '.year-text'
+ )),
+ (this.dateTextEl = this.modalEl.querySelector(
+ '.date-text'
+ )),
+ this.options.showClearBtn &&
+ (this.clearBtn = this.modalEl.querySelector(
+ '.datepicker-clear'
+ )),
+ (this.doneBtn = this.modalEl.querySelector(
+ '.datepicker-done'
+ )),
+ (this.cancelBtn = this.modalEl.querySelector(
+ '.datepicker-cancel'
+ )),
+ (this.formats = {
+ d: function() {
+ return e.date.getDate()
+ },
+ dd: function() {
+ var t = e.date.getDate()
+ return (t < 10 ? '0' : '') + t
+ },
+ ddd: function() {
+ return e.options.i18n
+ .weekdaysShort[
+ e.date.getDay()
+ ]
+ },
+ dddd: function() {
+ return e.options.i18n.weekdays[
+ e.date.getDay()
+ ]
+ },
+ m: function() {
+ return e.date.getMonth() + 1
+ },
+ mm: function() {
+ var t = e.date.getMonth() + 1
+ return (t < 10 ? '0' : '') + t
+ },
+ mmm: function() {
+ return e.options.i18n
+ .monthsShort[
+ e.date.getMonth()
+ ]
+ },
+ mmmm: function() {
+ return e.options.i18n.months[
+ e.date.getMonth()
+ ]
+ },
+ yy: function() {
+ return (
+ '' + e.date.getFullYear()
+ ).slice(2)
+ },
+ yyyy: function() {
+ return e.date.getFullYear()
+ },
+ })
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.el.removeEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ ),
+ this.el.removeEventListener(
+ 'change',
+ this._handleInputChangeBound
+ ),
+ this.calendarEl.removeEventListener(
+ 'click',
+ this._handleCalendarClickBound
+ )
+ },
+ },
+ {
+ key: '_handleInputClick',
+ value: function() {
+ this.open()
+ },
+ },
+ {
+ key: '_handleInputKeydown',
+ value: function(t) {
+ t.which === M.keys.ENTER &&
+ (t.preventDefault(), this.open())
+ },
+ },
+ {
+ key: '_handleCalendarClick',
+ value: function(t) {
+ if (this.isOpen) {
+ var e = g(t.target)
+ e.hasClass('is-disabled') ||
+ (!e.hasClass(
+ 'datepicker-day-button'
+ ) ||
+ e.hasClass('is-empty') ||
+ e.parent().hasClass('is-disabled')
+ ? e.closest('.month-prev')
+ .length
+ ? this.prevMonth()
+ : e.closest('.month-next')
+ .length &&
+ this.nextMonth()
+ : (this.setDate(
+ new Date(
+ t.target.getAttribute(
+ 'data-year'
+ ),
+ t.target.getAttribute(
+ 'data-month'
+ ),
+ t.target.getAttribute(
+ 'data-day'
+ )
+ )
+ ),
+ this.options.autoClose &&
+ this._finishSelection()))
+ }
+ },
+ },
+ {
+ key: '_handleClearClick',
+ value: function() {
+ ;(this.date = null),
+ this.setInputValue(),
+ this.close()
+ },
+ },
+ {
+ key: '_handleMonthChange',
+ value: function(t) {
+ this.gotoMonth(t.target.value)
+ },
+ },
+ {
+ key: '_handleYearChange',
+ value: function(t) {
+ this.gotoYear(t.target.value)
+ },
+ },
+ {
+ key: 'gotoMonth',
+ value: function(t) {
+ isNaN(t) ||
+ ((this.calendars[0].month = parseInt(
+ t,
+ 10
+ )),
+ this.adjustCalendars())
+ },
+ },
+ {
+ key: 'gotoYear',
+ value: function(t) {
+ isNaN(t) ||
+ ((this.calendars[0].year = parseInt(
+ t,
+ 10
+ )),
+ this.adjustCalendars())
+ },
+ },
+ {
+ key: '_handleInputChange',
+ value: function(t) {
+ var e = void 0
+ t.firedBy !== this &&
+ ((e = this.options.parse
+ ? this.options.parse(
+ this.el.value,
+ this.options.format
+ )
+ : new Date(
+ Date.parse(this.el.value)
+ )),
+ B._isDate(e) && this.setDate(e))
+ },
+ },
+ {
+ key: 'renderDayName',
+ value: function(t, e, i) {
+ for (e += t.firstDay; 7 <= e; ) e -= 7
+ return i
+ ? t.i18n.weekdaysAbbrev[e]
+ : t.i18n.weekdays[e]
+ },
+ },
+ {
+ key: '_finishSelection',
+ value: function() {
+ this.setInputValue(), this.close()
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ if (!this.isOpen)
+ return (
+ (this.isOpen = !0),
+ 'function' ==
+ typeof this.options.onOpen &&
+ this.options.onOpen.call(this),
+ this.draw(),
+ this.modal.open(),
+ this
+ )
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ if (this.isOpen)
+ return (
+ (this.isOpen = !1),
+ 'function' ==
+ typeof this.options.onClose &&
+ this.options.onClose.call(this),
+ this.modal.close(),
+ this
+ )
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ B.__proto__ || Object.getPrototypeOf(B),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: '_isDate',
+ value: function(t) {
+ return (
+ /Date/.test(
+ Object.prototype.toString.call(t)
+ ) && !isNaN(t.getTime())
+ )
+ },
+ },
+ {
+ key: '_isWeekend',
+ value: function(t) {
+ var e = t.getDay()
+ return 0 === e || 6 === e
+ },
+ },
+ {
+ key: '_setToStartOfDay',
+ value: function(t) {
+ B._isDate(t) && t.setHours(0, 0, 0, 0)
+ },
+ },
+ {
+ key: '_getDaysInMonth',
+ value: function(t, e) {
+ return [
+ 31,
+ B._isLeapYear(t) ? 29 : 28,
+ 31,
+ 30,
+ 31,
+ 30,
+ 31,
+ 31,
+ 30,
+ 31,
+ 30,
+ 31,
+ ][e]
+ },
+ },
+ {
+ key: '_isLeapYear',
+ value: function(t) {
+ return (
+ (t % 4 == 0 && t % 100 != 0) ||
+ t % 400 == 0
+ )
+ },
+ },
+ {
+ key: '_compareDates',
+ value: function(t, e) {
+ return t.getTime() === e.getTime()
+ },
+ },
+ {
+ key: '_setToStartOfDay',
+ value: function(t) {
+ B._isDate(t) && t.setHours(0, 0, 0, 0)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Datepicker
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ B
+ )
+ })()
+ ;(t._template = [
+ '',
+ '
',
+ '
',
+ '',
+ '',
+ '
',
+ '
',
+ '
',
+ '
',
+ ].join('')),
+ (M.Datepicker = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'datepicker', 'M_Datepicker')
+ })(cash),
+ (function(h) {
+ 'use strict'
+ var e = {
+ dialRadius: 135,
+ outerRadius: 105,
+ innerRadius: 70,
+ tickRadius: 20,
+ duration: 350,
+ container: null,
+ defaultTime: 'now',
+ fromNow: 0,
+ showClearBtn: !1,
+ i18n: { cancel: 'Cancel', clear: 'Clear', done: 'Ok' },
+ autoClose: !1,
+ twelveHour: !0,
+ vibrate: !0,
+ onOpenStart: null,
+ onOpenEnd: null,
+ onCloseStart: null,
+ onCloseEnd: null,
+ onSelect: null,
+ },
+ t = (function(t) {
+ function f(t, e) {
+ _classCallCheck(this, f)
+ var i = _possibleConstructorReturn(
+ this,
+ (f.__proto__ || Object.getPrototypeOf(f)).call(
+ this,
+ f,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Timepicker = i).options = h.extend(
+ {},
+ f.defaults,
+ e
+ )),
+ (i.id = M.guid()),
+ i._insertHTMLIntoDOM(),
+ i._setupModal(),
+ i._setupVariables(),
+ i._setupEventHandlers(),
+ i._clockSetup(),
+ i._pickerSetup(),
+ i
+ )
+ }
+ return (
+ _inherits(f, Component),
+ _createClass(
+ f,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this.modal.destroy(),
+ h(this.modalEl).remove(),
+ (this.el.M_Timepicker = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleInputKeydownBound = this._handleInputKeydown.bind(
+ this
+ )),
+ (this._handleInputClickBound = this._handleInputClick.bind(
+ this
+ )),
+ (this._handleClockClickStartBound = this._handleClockClickStart.bind(
+ this
+ )),
+ (this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(
+ this
+ )),
+ (this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.el.addEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ ),
+ this.plate.addEventListener(
+ 'mousedown',
+ this._handleClockClickStartBound
+ ),
+ this.plate.addEventListener(
+ 'touchstart',
+ this._handleClockClickStartBound
+ ),
+ h(this.spanHours).on(
+ 'click',
+ this.showView.bind(this, 'hours')
+ ),
+ h(this.spanMinutes).on(
+ 'click',
+ this.showView.bind(this, 'minutes')
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'click',
+ this._handleInputClickBound
+ ),
+ this.el.removeEventListener(
+ 'keydown',
+ this._handleInputKeydownBound
+ )
+ },
+ },
+ {
+ key: '_handleInputClick',
+ value: function() {
+ this.open()
+ },
+ },
+ {
+ key: '_handleInputKeydown',
+ value: function(t) {
+ t.which === M.keys.ENTER &&
+ (t.preventDefault(), this.open())
+ },
+ },
+ {
+ key: '_handleClockClickStart',
+ value: function(t) {
+ t.preventDefault()
+ var e = this.plate.getBoundingClientRect(),
+ i = e.left,
+ n = e.top
+ ;(this.x0 = i + this.options.dialRadius),
+ (this.y0 = n + this.options.dialRadius),
+ (this.moved = !1)
+ var s = f._Pos(t)
+ ;(this.dx = s.x - this.x0),
+ (this.dy = s.y - this.y0),
+ this.setHand(this.dx, this.dy, !1),
+ document.addEventListener(
+ 'mousemove',
+ this._handleDocumentClickMoveBound
+ ),
+ document.addEventListener(
+ 'touchmove',
+ this._handleDocumentClickMoveBound
+ ),
+ document.addEventListener(
+ 'mouseup',
+ this._handleDocumentClickEndBound
+ ),
+ document.addEventListener(
+ 'touchend',
+ this._handleDocumentClickEndBound
+ )
+ },
+ },
+ {
+ key: '_handleDocumentClickMove',
+ value: function(t) {
+ t.preventDefault()
+ var e = f._Pos(t),
+ i = e.x - this.x0,
+ n = e.y - this.y0
+ ;(this.moved = !0),
+ this.setHand(i, n, !1, !0)
+ },
+ },
+ {
+ key: '_handleDocumentClickEnd',
+ value: function(t) {
+ var e = this
+ t.preventDefault(),
+ document.removeEventListener(
+ 'mouseup',
+ this._handleDocumentClickEndBound
+ ),
+ document.removeEventListener(
+ 'touchend',
+ this._handleDocumentClickEndBound
+ )
+ var i = f._Pos(t),
+ n = i.x - this.x0,
+ s = i.y - this.y0
+ this.moved &&
+ n === this.dx &&
+ s === this.dy &&
+ this.setHand(n, s),
+ 'hours' === this.currentView
+ ? this.showView(
+ 'minutes',
+ this.options.duration / 2
+ )
+ : this.options.autoClose &&
+ (h(this.minutesView).addClass(
+ 'timepicker-dial-out'
+ ),
+ setTimeout(function() {
+ e.done()
+ }, this.options.duration / 2)),
+ 'function' ==
+ typeof this.options.onSelect &&
+ this.options.onSelect.call(
+ this,
+ this.hours,
+ this.minutes
+ ),
+ document.removeEventListener(
+ 'mousemove',
+ this._handleDocumentClickMoveBound
+ ),
+ document.removeEventListener(
+ 'touchmove',
+ this._handleDocumentClickMoveBound
+ )
+ },
+ },
+ {
+ key: '_insertHTMLIntoDOM',
+ value: function() {
+ ;(this.$modalEl = h(f._template)),
+ (this.modalEl = this.$modalEl[0]),
+ (this.modalEl.id = 'modal-' + this.id)
+ var t = document.querySelector(
+ this.options.container
+ )
+ this.options.container && t
+ ? this.$modalEl.appendTo(t)
+ : this.$modalEl.insertBefore(this.el)
+ },
+ },
+ {
+ key: '_setupModal',
+ value: function() {
+ var t = this
+ this.modal = M.Modal.init(this.modalEl, {
+ onOpenStart: this.options.onOpenStart,
+ onOpenEnd: this.options.onOpenEnd,
+ onCloseStart: this.options.onCloseStart,
+ onCloseEnd: function() {
+ 'function' ==
+ typeof t.options.onCloseEnd &&
+ t.options.onCloseEnd.call(t),
+ (t.isOpen = !1)
+ },
+ })
+ },
+ },
+ {
+ key: '_setupVariables',
+ value: function() {
+ ;(this.currentView = 'hours'),
+ (this.vibrate = navigator.vibrate
+ ? 'vibrate'
+ : navigator.webkitVibrate
+ ? 'webkitVibrate'
+ : null),
+ (this._canvas = this.modalEl.querySelector(
+ '.timepicker-canvas'
+ )),
+ (this.plate = this.modalEl.querySelector(
+ '.timepicker-plate'
+ )),
+ (this.hoursView = this.modalEl.querySelector(
+ '.timepicker-hours'
+ )),
+ (this.minutesView = this.modalEl.querySelector(
+ '.timepicker-minutes'
+ )),
+ (this.spanHours = this.modalEl.querySelector(
+ '.timepicker-span-hours'
+ )),
+ (this.spanMinutes = this.modalEl.querySelector(
+ '.timepicker-span-minutes'
+ )),
+ (this.spanAmPm = this.modalEl.querySelector(
+ '.timepicker-span-am-pm'
+ )),
+ (this.footer = this.modalEl.querySelector(
+ '.timepicker-footer'
+ )),
+ (this.amOrPm = 'PM')
+ },
+ },
+ {
+ key: '_pickerSetup',
+ value: function() {
+ var t = h(
+ ''
+ )
+ .appendTo(this.footer)
+ .on('click', this.clear.bind(this))
+ this.options.showClearBtn &&
+ t.css({ visibility: '' })
+ var e = h(
+ ''
+ )
+ h(
+ ''
+ )
+ .appendTo(e)
+ .on('click', this.close.bind(this)),
+ h(
+ ''
+ )
+ .appendTo(e)
+ .on('click', this.done.bind(this)),
+ e.appendTo(this.footer)
+ },
+ },
+ {
+ key: '_clockSetup',
+ value: function() {
+ this.options.twelveHour &&
+ ((this.$amBtn = h(
+ 'AM
'
+ )),
+ (this.$pmBtn = h(
+ 'PM
'
+ )),
+ this.$amBtn
+ .on(
+ 'click',
+ this._handleAmPmClick.bind(this)
+ )
+ .appendTo(this.spanAmPm),
+ this.$pmBtn
+ .on(
+ 'click',
+ this._handleAmPmClick.bind(this)
+ )
+ .appendTo(this.spanAmPm)),
+ this._buildHoursView(),
+ this._buildMinutesView(),
+ this._buildSVGClock()
+ },
+ },
+ {
+ key: '_buildSVGClock',
+ value: function() {
+ var t = this.options.dialRadius,
+ e = this.options.tickRadius,
+ i = 2 * t,
+ n = f._createSVGEl('svg')
+ n.setAttribute('class', 'timepicker-svg'),
+ n.setAttribute('width', i),
+ n.setAttribute('height', i)
+ var s = f._createSVGEl('g')
+ s.setAttribute(
+ 'transform',
+ 'translate(' + t + ',' + t + ')'
+ )
+ var o = f._createSVGEl('circle')
+ o.setAttribute(
+ 'class',
+ 'timepicker-canvas-bearing'
+ ),
+ o.setAttribute('cx', 0),
+ o.setAttribute('cy', 0),
+ o.setAttribute('r', 4)
+ var a = f._createSVGEl('line')
+ a.setAttribute('x1', 0),
+ a.setAttribute('y1', 0)
+ var r = f._createSVGEl('circle')
+ r.setAttribute(
+ 'class',
+ 'timepicker-canvas-bg'
+ ),
+ r.setAttribute('r', e),
+ s.appendChild(a),
+ s.appendChild(r),
+ s.appendChild(o),
+ n.appendChild(s),
+ this._canvas.appendChild(n),
+ (this.hand = a),
+ (this.bg = r),
+ (this.bearing = o),
+ (this.g = s)
+ },
+ },
+ {
+ key: '_buildHoursView',
+ value: function() {
+ var t = h(
+ ''
+ )
+ if (this.options.twelveHour)
+ for (var e = 1; e < 13; e += 1) {
+ var i = t.clone(),
+ n = (e / 6) * Math.PI,
+ s = this.options.outerRadius
+ i.css({
+ left:
+ this.options.dialRadius +
+ Math.sin(n) * s -
+ this.options.tickRadius +
+ 'px',
+ top:
+ this.options.dialRadius -
+ Math.cos(n) * s -
+ this.options.tickRadius +
+ 'px',
+ }),
+ i.html(0 === e ? '00' : e),
+ this.hoursView.appendChild(i[0])
+ }
+ else
+ for (var o = 0; o < 24; o += 1) {
+ var a = t.clone(),
+ r = (o / 6) * Math.PI,
+ l =
+ 0 < o && o < 13
+ ? this.options
+ .innerRadius
+ : this.options
+ .outerRadius
+ a.css({
+ left:
+ this.options.dialRadius +
+ Math.sin(r) * l -
+ this.options.tickRadius +
+ 'px',
+ top:
+ this.options.dialRadius -
+ Math.cos(r) * l -
+ this.options.tickRadius +
+ 'px',
+ }),
+ a.html(0 === o ? '00' : o),
+ this.hoursView.appendChild(a[0])
+ }
+ },
+ },
+ {
+ key: '_buildMinutesView',
+ value: function() {
+ for (
+ var t = h(
+ ''
+ ),
+ e = 0;
+ e < 60;
+ e += 5
+ ) {
+ var i = t.clone(),
+ n = (e / 30) * Math.PI
+ i.css({
+ left:
+ this.options.dialRadius +
+ Math.sin(n) *
+ this.options.outerRadius -
+ this.options.tickRadius +
+ 'px',
+ top:
+ this.options.dialRadius -
+ Math.cos(n) *
+ this.options.outerRadius -
+ this.options.tickRadius +
+ 'px',
+ }),
+ i.html(f._addLeadingZero(e)),
+ this.minutesView.appendChild(i[0])
+ }
+ },
+ },
+ {
+ key: '_handleAmPmClick',
+ value: function(t) {
+ var e = h(t.target)
+ ;(this.amOrPm = e.hasClass('am-btn')
+ ? 'AM'
+ : 'PM'),
+ this._updateAmPmView()
+ },
+ },
+ {
+ key: '_updateAmPmView',
+ value: function() {
+ this.options.twelveHour &&
+ (this.$amBtn.toggleClass(
+ 'text-primary',
+ 'AM' === this.amOrPm
+ ),
+ this.$pmBtn.toggleClass(
+ 'text-primary',
+ 'PM' === this.amOrPm
+ ))
+ },
+ },
+ {
+ key: '_updateTimeFromInput',
+ value: function() {
+ var t = (
+ (this.el.value ||
+ this.options.defaultTime ||
+ '') + ''
+ ).split(':')
+ if (
+ (this.options.twelveHour &&
+ void 0 !== t[1] &&
+ (0 <
+ t[1].toUpperCase().indexOf('AM')
+ ? (this.amOrPm = 'AM')
+ : (this.amOrPm = 'PM'),
+ (t[1] = t[1]
+ .replace('AM', '')
+ .replace('PM', ''))),
+ 'now' === t[0])
+ ) {
+ var e = new Date(
+ +new Date() + this.options.fromNow
+ )
+ ;(t = [e.getHours(), e.getMinutes()]),
+ this.options.twelveHour &&
+ (this.amOrPm =
+ 12 <= t[0] && t[0] < 24
+ ? 'PM'
+ : 'AM')
+ }
+ ;(this.hours = +t[0] || 0),
+ (this.minutes = +t[1] || 0),
+ (this.spanHours.innerHTML = this.hours),
+ (this.spanMinutes.innerHTML = f._addLeadingZero(
+ this.minutes
+ )),
+ this._updateAmPmView()
+ },
+ },
+ {
+ key: 'showView',
+ value: function(t, e) {
+ 'minutes' === t &&
+ h(this.hoursView).css('visibility')
+ var i = 'hours' === t,
+ n = i
+ ? this.hoursView
+ : this.minutesView,
+ s = i
+ ? this.minutesView
+ : this.hoursView
+ ;(this.currentView = t),
+ h(this.spanHours).toggleClass(
+ 'text-primary',
+ i
+ ),
+ h(this.spanMinutes).toggleClass(
+ 'text-primary',
+ !i
+ ),
+ s.classList.add('timepicker-dial-out'),
+ h(n)
+ .css('visibility', 'visible')
+ .removeClass('timepicker-dial-out'),
+ this.resetClock(e),
+ clearTimeout(this.toggleViewTimer),
+ (this.toggleViewTimer = setTimeout(
+ function() {
+ h(s).css('visibility', 'hidden')
+ },
+ this.options.duration
+ ))
+ },
+ },
+ {
+ key: 'resetClock',
+ value: function(t) {
+ var e = this.currentView,
+ i = this[e],
+ n = 'hours' === e,
+ s = i * (Math.PI / (n ? 6 : 30)),
+ o =
+ n && 0 < i && i < 13
+ ? this.options.innerRadius
+ : this.options.outerRadius,
+ a = Math.sin(s) * o,
+ r = -Math.cos(s) * o,
+ l = this
+ t
+ ? (h(this.canvas).addClass(
+ 'timepicker-canvas-out'
+ ),
+ setTimeout(function() {
+ h(l.canvas).removeClass(
+ 'timepicker-canvas-out'
+ ),
+ l.setHand(a, r)
+ }, t))
+ : this.setHand(a, r)
+ },
+ },
+ {
+ key: 'setHand',
+ value: function(t, e, i) {
+ var n = this,
+ s = Math.atan2(t, -e),
+ o = 'hours' === this.currentView,
+ a = Math.PI / (o || i ? 6 : 30),
+ r = Math.sqrt(t * t + e * e),
+ l =
+ o &&
+ r <
+ (this.options.outerRadius +
+ this.options.innerRadius) /
+ 2,
+ h = l
+ ? this.options.innerRadius
+ : this.options.outerRadius
+ this.options.twelveHour &&
+ (h = this.options.outerRadius),
+ s < 0 && (s = 2 * Math.PI + s)
+ var d = Math.round(s / a)
+ ;(s = d * a),
+ this.options.twelveHour
+ ? o
+ ? 0 === d && (d = 12)
+ : (i && (d *= 5),
+ 60 === d && (d = 0))
+ : o
+ ? (12 === d && (d = 0),
+ (d = l
+ ? 0 === d
+ ? 12
+ : d
+ : 0 === d
+ ? 0
+ : d + 12))
+ : (i && (d *= 5),
+ 60 === d && (d = 0)),
+ this[this.currentView] !== d &&
+ this.vibrate &&
+ this.options.vibrate &&
+ (this.vibrateTimer ||
+ (navigator[this.vibrate](10),
+ (this.vibrateTimer = setTimeout(
+ function() {
+ n.vibrateTimer = null
+ },
+ 100
+ )))),
+ (this[this.currentView] = d),
+ o
+ ? (this.spanHours.innerHTML = d)
+ : (this.spanMinutes.innerHTML = f._addLeadingZero(
+ d
+ ))
+ var u =
+ Math.sin(s) *
+ (h - this.options.tickRadius),
+ c =
+ -Math.cos(s) *
+ (h - this.options.tickRadius),
+ p = Math.sin(s) * h,
+ v = -Math.cos(s) * h
+ this.hand.setAttribute('x2', u),
+ this.hand.setAttribute('y2', c),
+ this.bg.setAttribute('cx', p),
+ this.bg.setAttribute('cy', v)
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ this.isOpen ||
+ ((this.isOpen = !0),
+ this._updateTimeFromInput(),
+ this.showView('hours'),
+ this.modal.open())
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.isOpen &&
+ ((this.isOpen = !1), this.modal.close())
+ },
+ },
+ {
+ key: 'done',
+ value: function(t, e) {
+ var i = this.el.value,
+ n = e
+ ? ''
+ : f._addLeadingZero(this.hours) +
+ ':' +
+ f._addLeadingZero(this.minutes)
+ ;(this.time = n),
+ !e &&
+ this.options.twelveHour &&
+ (n = n + ' ' + this.amOrPm),
+ (this.el.value = n) !== i &&
+ this.$el.trigger('change'),
+ this.close(),
+ this.el.focus()
+ },
+ },
+ {
+ key: 'clear',
+ value: function() {
+ this.done(null, !0)
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ f.__proto__ || Object.getPrototypeOf(f),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: '_addLeadingZero',
+ value: function(t) {
+ return (t < 10 ? '0' : '') + t
+ },
+ },
+ {
+ key: '_createSVGEl',
+ value: function(t) {
+ return document.createElementNS(
+ 'http://www.w3.org/2000/svg',
+ t
+ )
+ },
+ },
+ {
+ key: '_Pos',
+ value: function(t) {
+ return t.targetTouches &&
+ 1 <= t.targetTouches.length
+ ? {
+ x: t.targetTouches[0].clientX,
+ y: t.targetTouches[0].clientY,
+ }
+ : { x: t.clientX, y: t.clientY }
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Timepicker
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ f
+ )
+ })()
+ ;(t._template = [
+ '',
+ '
',
+ '
',
+ '
',
+ '
',
+ '',
+ ':',
+ '',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ ].join('')),
+ (M.Timepicker = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'timepicker', 'M_Timepicker')
+ })(cash),
+ (function(s) {
+ 'use strict'
+ var e = {},
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_CharacterCounter = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isInvalid = !1),
+ (i.isValidLength = !1),
+ i._setupCounter(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.CharacterCounter = void 0),
+ this._removeCounter()
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleUpdateCounterBound = this.updateCounter.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'focus',
+ this._handleUpdateCounterBound,
+ !0
+ ),
+ this.el.addEventListener(
+ 'input',
+ this._handleUpdateCounterBound,
+ !0
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'focus',
+ this._handleUpdateCounterBound,
+ !0
+ ),
+ this.el.removeEventListener(
+ 'input',
+ this._handleUpdateCounterBound,
+ !0
+ )
+ },
+ },
+ {
+ key: '_setupCounter',
+ value: function() {
+ ;(this.counterEl = document.createElement(
+ 'span'
+ )),
+ s(this.counterEl)
+ .addClass('character-counter')
+ .css({
+ float: 'right',
+ 'font-size': '12px',
+ height: 1,
+ }),
+ this.$el.parent().append(this.counterEl)
+ },
+ },
+ {
+ key: '_removeCounter',
+ value: function() {
+ s(this.counterEl).remove()
+ },
+ },
+ {
+ key: 'updateCounter',
+ value: function() {
+ var t = +this.$el.attr('data-length'),
+ e = this.el.value.length
+ this.isValidLength = e <= t
+ var i = e
+ t &&
+ ((i += '/' + t), this._validateInput()),
+ s(this.counterEl).html(i)
+ },
+ },
+ {
+ key: '_validateInput',
+ value: function() {
+ this.isValidLength && this.isInvalid
+ ? ((this.isInvalid = !1),
+ this.$el.removeClass('invalid'))
+ : this.isValidLength ||
+ this.isInvalid ||
+ ((this.isInvalid = !0),
+ this.$el.removeClass('valid'),
+ this.$el.addClass('invalid'))
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t)
+ .M_CharacterCounter
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.CharacterCounter = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(
+ t,
+ 'characterCounter',
+ 'M_CharacterCounter'
+ )
+ })(cash),
+ (function(b) {
+ 'use strict'
+ var e = {
+ duration: 200,
+ dist: -100,
+ shift: 0,
+ padding: 0,
+ numVisible: 5,
+ fullWidth: !1,
+ indicators: !1,
+ noWrap: !1,
+ onCycleTo: null,
+ },
+ t = (function(t) {
+ function i(t, e) {
+ _classCallCheck(this, i)
+ var n = _possibleConstructorReturn(
+ this,
+ (i.__proto__ || Object.getPrototypeOf(i)).call(
+ this,
+ i,
+ t,
+ e
+ )
+ )
+ return (
+ ((n.el.M_Carousel = n).options = b.extend(
+ {},
+ i.defaults,
+ e
+ )),
+ (n.hasMultipleSlides =
+ 1 < n.$el.find('.carousel-item').length),
+ (n.showIndicators =
+ n.options.indicators && n.hasMultipleSlides),
+ (n.noWrap = n.options.noWrap || !n.hasMultipleSlides),
+ (n.pressed = !1),
+ (n.dragged = !1),
+ (n.offset = n.target = 0),
+ (n.images = []),
+ (n.itemWidth = n.$el
+ .find('.carousel-item')
+ .first()
+ .innerWidth()),
+ (n.itemHeight = n.$el
+ .find('.carousel-item')
+ .first()
+ .innerHeight()),
+ (n.dim = 2 * n.itemWidth + n.options.padding || 1),
+ (n._autoScrollBound = n._autoScroll.bind(n)),
+ (n._trackBound = n._track.bind(n)),
+ n.options.fullWidth &&
+ ((n.options.dist = 0),
+ n._setCarouselHeight(),
+ n.showIndicators &&
+ n.$el
+ .find('.carousel-fixed-item')
+ .addClass('with-indicators')),
+ (n.$indicators = b('')),
+ n.$el.find('.carousel-item').each(function(t, e) {
+ if ((n.images.push(t), n.showIndicators)) {
+ var i = b('')
+ 0 === e && i[0].classList.add('active'),
+ n.$indicators.append(i)
+ }
+ }),
+ n.showIndicators && n.$el.append(n.$indicators),
+ (n.count = n.images.length),
+ (n.options.numVisible = Math.min(
+ n.count,
+ n.options.numVisible
+ )),
+ (n.xform = 'transform'),
+ ['webkit', 'Moz', 'O', 'ms'].every(function(t) {
+ var e = t + 'Transform'
+ return (
+ void 0 === document.body.style[e] ||
+ ((n.xform = e), !1)
+ )
+ }),
+ n._setupEventHandlers(),
+ n._scroll(n.offset),
+ n
+ )
+ }
+ return (
+ _inherits(i, Component),
+ _createClass(
+ i,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.M_Carousel = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ var i = this
+ ;(this._handleCarouselTapBound = this._handleCarouselTap.bind(
+ this
+ )),
+ (this._handleCarouselDragBound = this._handleCarouselDrag.bind(
+ this
+ )),
+ (this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(
+ this
+ )),
+ (this._handleCarouselClickBound = this._handleCarouselClick.bind(
+ this
+ )),
+ void 0 !== window.ontouchstart &&
+ (this.el.addEventListener(
+ 'touchstart',
+ this._handleCarouselTapBound
+ ),
+ this.el.addEventListener(
+ 'touchmove',
+ this._handleCarouselDragBound
+ ),
+ this.el.addEventListener(
+ 'touchend',
+ this._handleCarouselReleaseBound
+ )),
+ this.el.addEventListener(
+ 'mousedown',
+ this._handleCarouselTapBound
+ ),
+ this.el.addEventListener(
+ 'mousemove',
+ this._handleCarouselDragBound
+ ),
+ this.el.addEventListener(
+ 'mouseup',
+ this._handleCarouselReleaseBound
+ ),
+ this.el.addEventListener(
+ 'mouseleave',
+ this._handleCarouselReleaseBound
+ ),
+ this.el.addEventListener(
+ 'click',
+ this._handleCarouselClickBound
+ ),
+ this.showIndicators &&
+ this.$indicators &&
+ ((this._handleIndicatorClickBound = this._handleIndicatorClick.bind(
+ this
+ )),
+ this.$indicators
+ .find('.indicator-item')
+ .each(function(t, e) {
+ t.addEventListener(
+ 'click',
+ i._handleIndicatorClickBound
+ )
+ }))
+ var t = M.throttle(this._handleResize, 200)
+ ;(this._handleThrottledResizeBound = t.bind(
+ this
+ )),
+ window.addEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ var i = this
+ void 0 !== window.ontouchstart &&
+ (this.el.removeEventListener(
+ 'touchstart',
+ this._handleCarouselTapBound
+ ),
+ this.el.removeEventListener(
+ 'touchmove',
+ this._handleCarouselDragBound
+ ),
+ this.el.removeEventListener(
+ 'touchend',
+ this._handleCarouselReleaseBound
+ )),
+ this.el.removeEventListener(
+ 'mousedown',
+ this._handleCarouselTapBound
+ ),
+ this.el.removeEventListener(
+ 'mousemove',
+ this._handleCarouselDragBound
+ ),
+ this.el.removeEventListener(
+ 'mouseup',
+ this._handleCarouselReleaseBound
+ ),
+ this.el.removeEventListener(
+ 'mouseleave',
+ this._handleCarouselReleaseBound
+ ),
+ this.el.removeEventListener(
+ 'click',
+ this._handleCarouselClickBound
+ ),
+ this.showIndicators &&
+ this.$indicators &&
+ this.$indicators
+ .find('.indicator-item')
+ .each(function(t, e) {
+ t.removeEventListener(
+ 'click',
+ i._handleIndicatorClickBound
+ )
+ }),
+ window.removeEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ )
+ },
+ },
+ {
+ key: '_handleCarouselTap',
+ value: function(t) {
+ 'mousedown' === t.type &&
+ b(t.target).is('img') &&
+ t.preventDefault(),
+ (this.pressed = !0),
+ (this.dragged = !1),
+ (this.verticalDragged = !1),
+ (this.reference = this._xpos(t)),
+ (this.referenceY = this._ypos(t)),
+ (this.velocity = this.amplitude = 0),
+ (this.frame = this.offset),
+ (this.timestamp = Date.now()),
+ clearInterval(this.ticker),
+ (this.ticker = setInterval(
+ this._trackBound,
+ 100
+ ))
+ },
+ },
+ {
+ key: '_handleCarouselDrag',
+ value: function(t) {
+ var e = void 0,
+ i = void 0,
+ n = void 0
+ if (this.pressed)
+ if (
+ ((e = this._xpos(t)),
+ (i = this._ypos(t)),
+ (n = this.reference - e),
+ Math.abs(this.referenceY - i) <
+ 30 && !this.verticalDragged)
+ )
+ (2 < n || n < -2) &&
+ ((this.dragged = !0),
+ (this.reference = e),
+ this._scroll(this.offset + n))
+ else {
+ if (this.dragged)
+ return (
+ t.preventDefault(),
+ t.stopPropagation(),
+ !1
+ )
+ this.verticalDragged = !0
+ }
+ if (this.dragged)
+ return (
+ t.preventDefault(),
+ t.stopPropagation(),
+ !1
+ )
+ },
+ },
+ {
+ key: '_handleCarouselRelease',
+ value: function(t) {
+ if (this.pressed)
+ return (
+ (this.pressed = !1),
+ clearInterval(this.ticker),
+ (this.target = this.offset),
+ (10 < this.velocity ||
+ this.velocity < -10) &&
+ ((this.amplitude =
+ 0.9 * this.velocity),
+ (this.target =
+ this.offset +
+ this.amplitude)),
+ (this.target =
+ Math.round(
+ this.target / this.dim
+ ) * this.dim),
+ this.noWrap &&
+ (this.target >=
+ this.dim * (this.count - 1)
+ ? (this.target =
+ this.dim *
+ (this.count - 1))
+ : this.target < 0 &&
+ (this.target = 0)),
+ (this.amplitude =
+ this.target - this.offset),
+ (this.timestamp = Date.now()),
+ requestAnimationFrame(
+ this._autoScrollBound
+ ),
+ this.dragged &&
+ (t.preventDefault(),
+ t.stopPropagation()),
+ !1
+ )
+ },
+ },
+ {
+ key: '_handleCarouselClick',
+ value: function(t) {
+ if (this.dragged)
+ return (
+ t.preventDefault(),
+ t.stopPropagation(),
+ !1
+ )
+ if (!this.options.fullWidth) {
+ var e = b(t.target)
+ .closest('.carousel-item')
+ .index()
+ 0 !== this._wrap(this.center) - e &&
+ (t.preventDefault(),
+ t.stopPropagation()),
+ this._cycleTo(e)
+ }
+ },
+ },
+ {
+ key: '_handleIndicatorClick',
+ value: function(t) {
+ t.stopPropagation()
+ var e = b(t.target).closest(
+ '.indicator-item'
+ )
+ e.length && this._cycleTo(e.index())
+ },
+ },
+ {
+ key: '_handleResize',
+ value: function(t) {
+ this.options.fullWidth
+ ? ((this.itemWidth = this.$el
+ .find('.carousel-item')
+ .first()
+ .innerWidth()),
+ (this.imageHeight = this.$el
+ .find('.carousel-item.active')
+ .height()),
+ (this.dim =
+ 2 * this.itemWidth +
+ this.options.padding),
+ (this.offset =
+ 2 * this.center * this.itemWidth),
+ (this.target = this.offset),
+ this._setCarouselHeight(!0))
+ : this._scroll()
+ },
+ },
+ {
+ key: '_setCarouselHeight',
+ value: function(t) {
+ var i = this,
+ e = this.$el.find(
+ '.carousel-item.active'
+ ).length
+ ? this.$el
+ .find('.carousel-item.active')
+ .first()
+ : this.$el
+ .find('.carousel-item')
+ .first(),
+ n = e.find('img').first()
+ if (n.length)
+ if (n[0].complete) {
+ var s = n.height()
+ if (0 < s)
+ this.$el.css('height', s + 'px')
+ else {
+ var o = n[0].naturalWidth,
+ a = n[0].naturalHeight,
+ r =
+ (this.$el.width() / o) *
+ a
+ this.$el.css('height', r + 'px')
+ }
+ } else
+ n.one('load', function(t, e) {
+ i.$el.css(
+ 'height',
+ t.offsetHeight + 'px'
+ )
+ })
+ else if (!t) {
+ var l = e.height()
+ this.$el.css('height', l + 'px')
+ }
+ },
+ },
+ {
+ key: '_xpos',
+ value: function(t) {
+ return t.targetTouches &&
+ 1 <= t.targetTouches.length
+ ? t.targetTouches[0].clientX
+ : t.clientX
+ },
+ },
+ {
+ key: '_ypos',
+ value: function(t) {
+ return t.targetTouches &&
+ 1 <= t.targetTouches.length
+ ? t.targetTouches[0].clientY
+ : t.clientY
+ },
+ },
+ {
+ key: '_wrap',
+ value: function(t) {
+ return t >= this.count
+ ? t % this.count
+ : t < 0
+ ? this._wrap(
+ this.count + (t % this.count)
+ )
+ : t
+ },
+ },
+ {
+ key: '_track',
+ value: function() {
+ var t, e, i, n
+ ;(e = (t = Date.now()) - this.timestamp),
+ (this.timestamp = t),
+ (i = this.offset - this.frame),
+ (this.frame = this.offset),
+ (n = (1e3 * i) / (1 + e)),
+ (this.velocity =
+ 0.8 * n + 0.2 * this.velocity)
+ },
+ },
+ {
+ key: '_autoScroll',
+ value: function() {
+ var t = void 0,
+ e = void 0
+ this.amplitude &&
+ ((t = Date.now() - this.timestamp),
+ 2 <
+ (e =
+ this.amplitude *
+ Math.exp(
+ -t / this.options.duration
+ )) || e < -2
+ ? (this._scroll(this.target - e),
+ requestAnimationFrame(
+ this._autoScrollBound
+ ))
+ : this._scroll(this.target))
+ },
+ },
+ {
+ key: '_scroll',
+ value: function(t) {
+ var e = this
+ this.$el.hasClass('scrolling') ||
+ this.el.classList.add('scrolling'),
+ null != this.scrollingTimeout &&
+ window.clearTimeout(
+ this.scrollingTimeout
+ ),
+ (this.scrollingTimeout = window.setTimeout(
+ function() {
+ e.$el.removeClass('scrolling')
+ },
+ this.options.duration
+ ))
+ var i,
+ n,
+ s,
+ o,
+ a = void 0,
+ r = void 0,
+ l = void 0,
+ h = void 0,
+ d = void 0,
+ u = void 0,
+ c = this.center,
+ p = 1 / this.options.numVisible
+ if (
+ ((this.offset =
+ 'number' == typeof t
+ ? t
+ : this.offset),
+ (this.center = Math.floor(
+ (this.offset + this.dim / 2) /
+ this.dim
+ )),
+ (o =
+ (-(s =
+ (n =
+ this.offset -
+ this.center * this.dim) < 0
+ ? 1
+ : -1) *
+ n *
+ 2) /
+ this.dim),
+ (i = this.count >> 1),
+ this.options.fullWidth
+ ? ((l = 'translateX(0)'), (u = 1))
+ : ((l =
+ 'translateX(' +
+ (this.el.clientWidth -
+ this.itemWidth) /
+ 2 +
+ 'px) '),
+ (l +=
+ 'translateY(' +
+ (this.el.clientHeight -
+ this.itemHeight) /
+ 2 +
+ 'px)'),
+ (u = 1 - p * o)),
+ this.showIndicators)
+ ) {
+ var v = this.center % this.count,
+ f = this.$indicators.find(
+ '.indicator-item.active'
+ )
+ f.index() !== v &&
+ (f.removeClass('active'),
+ this.$indicators
+ .find('.indicator-item')
+ .eq(v)[0]
+ .classList.add('active'))
+ }
+ if (
+ !this.noWrap ||
+ (0 <= this.center &&
+ this.center < this.count)
+ ) {
+ ;(r = this.images[
+ this._wrap(this.center)
+ ]),
+ b(r).hasClass('active') ||
+ (this.$el
+ .find('.carousel-item')
+ .removeClass('active'),
+ r.classList.add('active'))
+ var m =
+ l +
+ ' translateX(' +
+ -n / 2 +
+ 'px) translateX(' +
+ s * this.options.shift * o * a +
+ 'px) translateZ(' +
+ this.options.dist * o +
+ 'px)'
+ this._updateItemStyle(r, u, 0, m)
+ }
+ for (a = 1; a <= i; ++a) {
+ if (
+ (this.options.fullWidth
+ ? ((h = this.options.dist),
+ (d =
+ a === i && n < 0
+ ? 1 - o
+ : 1))
+ : ((h =
+ this.options.dist *
+ (2 * a + o * s)),
+ (d =
+ 1 - p * (2 * a + o * s))),
+ !this.noWrap ||
+ this.center + a < this.count)
+ ) {
+ r = this.images[
+ this._wrap(this.center + a)
+ ]
+ var g =
+ l +
+ ' translateX(' +
+ (this.options.shift +
+ (this.dim * a - n) / 2) +
+ 'px) translateZ(' +
+ h +
+ 'px)'
+ this._updateItemStyle(r, d, -a, g)
+ }
+ if (
+ (this.options.fullWidth
+ ? ((h = this.options.dist),
+ (d =
+ a === i && 0 < n
+ ? 1 - o
+ : 1))
+ : ((h =
+ this.options.dist *
+ (2 * a - o * s)),
+ (d =
+ 1 - p * (2 * a - o * s))),
+ !this.noWrap ||
+ 0 <= this.center - a)
+ ) {
+ r = this.images[
+ this._wrap(this.center - a)
+ ]
+ var _ =
+ l +
+ ' translateX(' +
+ (-this.options.shift +
+ (-this.dim * a - n) / 2) +
+ 'px) translateZ(' +
+ h +
+ 'px)'
+ this._updateItemStyle(r, d, -a, _)
+ }
+ }
+ if (
+ !this.noWrap ||
+ (0 <= this.center &&
+ this.center < this.count)
+ ) {
+ r = this.images[this._wrap(this.center)]
+ var y =
+ l +
+ ' translateX(' +
+ -n / 2 +
+ 'px) translateX(' +
+ s * this.options.shift * o +
+ 'px) translateZ(' +
+ this.options.dist * o +
+ 'px)'
+ this._updateItemStyle(r, u, 0, y)
+ }
+ var k = this.$el
+ .find('.carousel-item')
+ .eq(this._wrap(this.center))
+ c !== this.center &&
+ 'function' ==
+ typeof this.options.onCycleTo &&
+ this.options.onCycleTo.call(
+ this,
+ k[0],
+ this.dragged
+ ),
+ 'function' ==
+ typeof this.oneTimeCallback &&
+ (this.oneTimeCallback.call(
+ this,
+ k[0],
+ this.dragged
+ ),
+ (this.oneTimeCallback = null))
+ },
+ },
+ {
+ key: '_updateItemStyle',
+ value: function(t, e, i, n) {
+ ;(t.style[this.xform] = n),
+ (t.style.zIndex = i),
+ (t.style.opacity = e),
+ (t.style.visibility = 'visible')
+ },
+ },
+ {
+ key: '_cycleTo',
+ value: function(t, e) {
+ var i = (this.center % this.count) - t
+ this.noWrap ||
+ (i < 0
+ ? Math.abs(i + this.count) <
+ Math.abs(i) &&
+ (i += this.count)
+ : 0 < i &&
+ Math.abs(i - this.count) < i &&
+ (i -= this.count)),
+ (this.target =
+ this.dim *
+ Math.round(this.offset / this.dim)),
+ i < 0
+ ? (this.target +=
+ this.dim * Math.abs(i))
+ : 0 < i &&
+ (this.target -= this.dim * i),
+ 'function' == typeof e &&
+ (this.oneTimeCallback = e),
+ this.offset !== this.target &&
+ ((this.amplitude =
+ this.target - this.offset),
+ (this.timestamp = Date.now()),
+ requestAnimationFrame(
+ this._autoScrollBound
+ ))
+ },
+ },
+ {
+ key: 'next',
+ value: function(t) {
+ ;(void 0 === t || isNaN(t)) && (t = 1)
+ var e = this.center + t
+ if (e >= this.count || e < 0) {
+ if (this.noWrap) return
+ e = this._wrap(e)
+ }
+ this._cycleTo(e)
+ },
+ },
+ {
+ key: 'prev',
+ value: function(t) {
+ ;(void 0 === t || isNaN(t)) && (t = 1)
+ var e = this.center - t
+ if (e >= this.count || e < 0) {
+ if (this.noWrap) return
+ e = this._wrap(e)
+ }
+ this._cycleTo(e)
+ },
+ },
+ {
+ key: 'set',
+ value: function(t, e) {
+ if (
+ ((void 0 === t || isNaN(t)) && (t = 0),
+ t > this.count || t < 0)
+ ) {
+ if (this.noWrap) return
+ t = this._wrap(t)
+ }
+ this._cycleTo(t, e)
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ i.__proto__ || Object.getPrototypeOf(i),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Carousel
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ i
+ )
+ })()
+ ;(M.Carousel = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'carousel', 'M_Carousel')
+ })(cash),
+ (function(S) {
+ 'use strict'
+ var e = { onOpen: void 0, onClose: void 0 },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_TapTarget = i).options = S.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isOpen = !1),
+ (i.$origin = S('#' + i.$el.attr('data-target'))),
+ i._setup(),
+ i._calculatePositioning(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ (this.el.TapTarget = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleDocumentClickBound = this._handleDocumentClick.bind(
+ this
+ )),
+ (this._handleTargetClickBound = this._handleTargetClick.bind(
+ this
+ )),
+ (this._handleOriginClickBound = this._handleOriginClick.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'click',
+ this._handleTargetClickBound
+ ),
+ this.originEl.addEventListener(
+ 'click',
+ this._handleOriginClickBound
+ )
+ var t = M.throttle(this._handleResize, 200)
+ ;(this._handleThrottledResizeBound = t.bind(
+ this
+ )),
+ window.addEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'click',
+ this._handleTargetClickBound
+ ),
+ this.originEl.removeEventListener(
+ 'click',
+ this._handleOriginClickBound
+ ),
+ window.removeEventListener(
+ 'resize',
+ this._handleThrottledResizeBound
+ )
+ },
+ },
+ {
+ key: '_handleTargetClick',
+ value: function(t) {
+ this.open()
+ },
+ },
+ {
+ key: '_handleOriginClick',
+ value: function(t) {
+ this.close()
+ },
+ },
+ {
+ key: '_handleResize',
+ value: function(t) {
+ this._calculatePositioning()
+ },
+ },
+ {
+ key: '_handleDocumentClick',
+ value: function(t) {
+ S(t.target).closest('.tap-target-wrapper')
+ .length ||
+ (this.close(),
+ t.preventDefault(),
+ t.stopPropagation())
+ },
+ },
+ {
+ key: '_setup',
+ value: function() {
+ ;(this.wrapper = this.$el.parent()[0]),
+ (this.waveEl = S(this.wrapper).find(
+ '.tap-target-wave'
+ )[0]),
+ (this.originEl = S(this.wrapper).find(
+ '.tap-target-origin'
+ )[0]),
+ (this.contentEl = this.$el.find(
+ '.tap-target-content'
+ )[0]),
+ S(this.wrapper).hasClass(
+ '.tap-target-wrapper'
+ ) ||
+ ((this.wrapper = document.createElement(
+ 'div'
+ )),
+ this.wrapper.classList.add(
+ 'tap-target-wrapper'
+ ),
+ this.$el.before(S(this.wrapper)),
+ this.wrapper.append(this.el)),
+ this.contentEl ||
+ ((this.contentEl = document.createElement(
+ 'div'
+ )),
+ this.contentEl.classList.add(
+ 'tap-target-content'
+ ),
+ this.$el.append(this.contentEl)),
+ this.waveEl ||
+ ((this.waveEl = document.createElement(
+ 'div'
+ )),
+ this.waveEl.classList.add(
+ 'tap-target-wave'
+ ),
+ this.originEl ||
+ ((this.originEl = this.$origin.clone(
+ !0,
+ !0
+ )),
+ this.originEl.addClass(
+ 'tap-target-origin'
+ ),
+ this.originEl.removeAttr('id'),
+ this.originEl.removeAttr(
+ 'style'
+ ),
+ (this.originEl = this.originEl[0]),
+ this.waveEl.append(
+ this.originEl
+ )),
+ this.wrapper.append(this.waveEl))
+ },
+ },
+ {
+ key: '_calculatePositioning',
+ value: function() {
+ var t =
+ 'fixed' === this.$origin.css('position')
+ if (!t)
+ for (
+ var e = this.$origin.parents(),
+ i = 0;
+ i < e.length &&
+ !(t =
+ 'fixed' ==
+ S(e[i]).css('position'));
+ i++
+ );
+ var n = this.$origin.outerWidth(),
+ s = this.$origin.outerHeight(),
+ o = t
+ ? this.$origin.offset().top -
+ M.getDocumentScrollTop()
+ : this.$origin.offset().top,
+ a = t
+ ? this.$origin.offset().left -
+ M.getDocumentScrollLeft()
+ : this.$origin.offset().left,
+ r = window.innerWidth,
+ l = window.innerHeight,
+ h = r / 2,
+ d = l / 2,
+ u = a <= h,
+ c = h < a,
+ p = o <= d,
+ v = d < o,
+ f = 0.25 * r <= a && a <= 0.75 * r,
+ m = this.$el.outerWidth(),
+ g = this.$el.outerHeight(),
+ _ = o + s / 2 - g / 2,
+ y = a + n / 2 - m / 2,
+ k = t ? 'fixed' : 'absolute',
+ b = f ? m : m / 2 + n,
+ w = g / 2,
+ C = p ? g / 2 : 0,
+ E = u && !f ? m / 2 - n : 0,
+ O = n,
+ x = v ? 'bottom' : 'top',
+ L = 2 * n,
+ T = L,
+ $ = g / 2 - T / 2,
+ B = m / 2 - L / 2,
+ D = {}
+ ;(D.top = p ? _ + 'px' : ''),
+ (D.right = c ? r - y - m + 'px' : ''),
+ (D.bottom = v ? l - _ - g + 'px' : ''),
+ (D.left = u ? y + 'px' : ''),
+ (D.position = k),
+ S(this.wrapper).css(D),
+ S(this.contentEl).css({
+ width: b + 'px',
+ height: w + 'px',
+ top: C + 'px',
+ right: '0px',
+ bottom: '0px',
+ left: E + 'px',
+ padding: O + 'px',
+ verticalAlign: x,
+ }),
+ S(this.waveEl).css({
+ top: $ + 'px',
+ left: B + 'px',
+ width: L + 'px',
+ height: T + 'px',
+ })
+ },
+ },
+ {
+ key: 'open',
+ value: function() {
+ this.isOpen ||
+ ('function' ==
+ typeof this.options.onOpen &&
+ this.options.onOpen.call(
+ this,
+ this.$origin[0]
+ ),
+ (this.isOpen = !0),
+ this.wrapper.classList.add('open'),
+ document.body.addEventListener(
+ 'click',
+ this._handleDocumentClickBound,
+ !0
+ ),
+ document.body.addEventListener(
+ 'touchend',
+ this._handleDocumentClickBound
+ ))
+ },
+ },
+ {
+ key: 'close',
+ value: function() {
+ this.isOpen &&
+ ('function' ==
+ typeof this.options.onClose &&
+ this.options.onClose.call(
+ this,
+ this.$origin[0]
+ ),
+ (this.isOpen = !1),
+ this.wrapper.classList.remove('open'),
+ document.body.removeEventListener(
+ 'click',
+ this._handleDocumentClickBound,
+ !0
+ ),
+ document.body.removeEventListener(
+ 'touchend',
+ this._handleDocumentClickBound
+ ))
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_TapTarget
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.TapTarget = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'tapTarget', 'M_TapTarget')
+ })(cash),
+ (function(d) {
+ 'use strict'
+ var e = { classes: '', dropdownOptions: {} },
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return i.$el.hasClass('browser-default')
+ ? _possibleConstructorReturn(i)
+ : (((i.el.M_FormSelect = i).options = d.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i.isMultiple = i.$el.prop('multiple')),
+ (i.el.tabIndex = -1),
+ (i._keysSelected = {}),
+ (i._valueDict = {}),
+ i._setupDropdown(),
+ i._setupEventHandlers(),
+ i)
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this._removeDropdown(),
+ (this.el.M_FormSelect = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ var e = this
+ ;(this._handleSelectChangeBound = this._handleSelectChange.bind(
+ this
+ )),
+ (this._handleOptionClickBound = this._handleOptionClick.bind(
+ this
+ )),
+ (this._handleInputClickBound = this._handleInputClick.bind(
+ this
+ )),
+ d(this.dropdownOptions)
+ .find('li:not(.optgroup)')
+ .each(function(t) {
+ t.addEventListener(
+ 'click',
+ e._handleOptionClickBound
+ )
+ }),
+ this.el.addEventListener(
+ 'change',
+ this._handleSelectChangeBound
+ ),
+ this.input.addEventListener(
+ 'click',
+ this._handleInputClickBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ var e = this
+ d(this.dropdownOptions)
+ .find('li:not(.optgroup)')
+ .each(function(t) {
+ t.removeEventListener(
+ 'click',
+ e._handleOptionClickBound
+ )
+ }),
+ this.el.removeEventListener(
+ 'change',
+ this._handleSelectChangeBound
+ ),
+ this.input.removeEventListener(
+ 'click',
+ this._handleInputClickBound
+ )
+ },
+ },
+ {
+ key: '_handleSelectChange',
+ value: function(t) {
+ this._setValueToInput()
+ },
+ },
+ {
+ key: '_handleOptionClick',
+ value: function(t) {
+ t.preventDefault()
+ var e = d(t.target).closest('li')[0],
+ i = e.id
+ if (
+ !d(e).hasClass('disabled') &&
+ !d(e).hasClass('optgroup') &&
+ i.length
+ ) {
+ var n = !0
+ if (this.isMultiple) {
+ var s = d(
+ this.dropdownOptions
+ ).find('li.disabled.selected')
+ s.length &&
+ (s.removeClass('selected'),
+ s
+ .find(
+ 'input[type="checkbox"]'
+ )
+ .prop('checked', !1),
+ this._toggleEntryFromArray(
+ s[0].id
+ )),
+ (n = this._toggleEntryFromArray(
+ i
+ ))
+ } else
+ d(this.dropdownOptions)
+ .find('li')
+ .removeClass('selected'),
+ d(e).toggleClass('selected', n)
+ d(this._valueDict[i].el).prop(
+ 'selected'
+ ) !== n &&
+ (d(this._valueDict[i].el).prop(
+ 'selected',
+ n
+ ),
+ this.$el.trigger('change'))
+ }
+ t.stopPropagation()
+ },
+ },
+ {
+ key: '_handleInputClick',
+ value: function() {
+ this.dropdown &&
+ this.dropdown.isOpen &&
+ (this._setValueToInput(),
+ this._setSelectedStates())
+ },
+ },
+ {
+ key: '_setupDropdown',
+ value: function() {
+ var n = this
+ ;(this.wrapper = document.createElement(
+ 'div'
+ )),
+ d(this.wrapper).addClass(
+ 'select-wrapper ' +
+ this.options.classes
+ ),
+ this.$el.before(d(this.wrapper)),
+ this.wrapper.appendChild(this.el),
+ this.el.disabled &&
+ this.wrapper.classList.add(
+ 'disabled'
+ ),
+ (this.$selectOptions = this.$el.children(
+ 'option, optgroup'
+ )),
+ (this.dropdownOptions = document.createElement(
+ 'ul'
+ )),
+ (this.dropdownOptions.id =
+ 'select-options-' + M.guid()),
+ d(this.dropdownOptions).addClass(
+ 'dropdown-content select-dropdown ' +
+ (this.isMultiple
+ ? 'multiple-select-dropdown'
+ : '')
+ ),
+ this.$selectOptions.length &&
+ this.$selectOptions.each(function(
+ t
+ ) {
+ if (d(t).is('option')) {
+ var e = void 0
+ ;(e = n.isMultiple
+ ? n._appendOptionWithIcon(
+ n.$el,
+ t,
+ 'multiple'
+ )
+ : n._appendOptionWithIcon(
+ n.$el,
+ t
+ )),
+ n._addOptionToValueDict(
+ t,
+ e
+ )
+ } else if (
+ d(t).is('optgroup')
+ ) {
+ var i = d(t).children(
+ 'option'
+ )
+ d(n.dropdownOptions).append(
+ d(
+ '' +
+ t.getAttribute(
+ 'label'
+ ) +
+ ''
+ )[0]
+ ),
+ i.each(function(t) {
+ var e = n._appendOptionWithIcon(
+ n.$el,
+ t,
+ 'optgroup-option'
+ )
+ n._addOptionToValueDict(
+ t,
+ e
+ )
+ })
+ }
+ }),
+ this.$el.after(this.dropdownOptions),
+ (this.input = document.createElement(
+ 'input'
+ )),
+ d(this.input).addClass(
+ 'select-dropdown dropdown-trigger'
+ ),
+ this.input.setAttribute('type', 'text'),
+ this.input.setAttribute(
+ 'readonly',
+ 'true'
+ ),
+ this.input.setAttribute(
+ 'data-target',
+ this.dropdownOptions.id
+ ),
+ this.el.disabled &&
+ d(this.input).prop(
+ 'disabled',
+ 'true'
+ ),
+ this.$el.before(this.input),
+ this._setValueToInput()
+ var t = d(
+ ''
+ )
+ if (
+ (this.$el.before(t[0]),
+ !this.el.disabled)
+ ) {
+ var e = d.extend(
+ {},
+ this.options.dropdownOptions
+ )
+ ;(e.onOpenEnd = function(t) {
+ var e = d(n.dropdownOptions)
+ .find('.selected')
+ .first()
+ if (
+ e.length &&
+ ((M.keyDown = !0),
+ (n.dropdown.focusedIndex = e.index()),
+ n.dropdown._focusFocusedItem(),
+ (M.keyDown = !1),
+ n.dropdown.isScrollable)
+ ) {
+ var i =
+ e[0].getBoundingClientRect()
+ .top -
+ n.dropdownOptions.getBoundingClientRect()
+ .top
+ ;(i -=
+ n.dropdownOptions
+ .clientHeight / 2),
+ (n.dropdownOptions.scrollTop = i)
+ }
+ }),
+ this.isMultiple &&
+ (e.closeOnClick = !1),
+ (this.dropdown = M.Dropdown.init(
+ this.input,
+ e
+ ))
+ }
+ this._setSelectedStates()
+ },
+ },
+ {
+ key: '_addOptionToValueDict',
+ value: function(t, e) {
+ var i = Object.keys(this._valueDict).length,
+ n = this.dropdownOptions.id + i,
+ s = {}
+ ;(e.id = n),
+ (s.el = t),
+ (s.optionEl = e),
+ (this._valueDict[n] = s)
+ },
+ },
+ {
+ key: '_removeDropdown',
+ value: function() {
+ d(this.wrapper)
+ .find('.caret')
+ .remove(),
+ d(this.input).remove(),
+ d(this.dropdownOptions).remove(),
+ d(this.wrapper).before(this.$el),
+ d(this.wrapper).remove()
+ },
+ },
+ {
+ key: '_appendOptionWithIcon',
+ value: function(t, e, i) {
+ var n = e.disabled ? 'disabled ' : '',
+ s =
+ 'optgroup-option' === i
+ ? 'optgroup-option '
+ : '',
+ o = this.isMultiple
+ ? ''
+ : e.innerHTML,
+ a = d(''),
+ r = d('')
+ r.html(o),
+ a.addClass(n + ' ' + s),
+ a.append(r)
+ var l = e.getAttribute('data-icon')
+ if (l) {
+ var h = d(
+ ''
+ )
+ a.prepend(h)
+ }
+ return (
+ d(this.dropdownOptions).append(a[0]),
+ a[0]
+ )
+ },
+ },
+ {
+ key: '_toggleEntryFromArray',
+ value: function(t) {
+ var e = !this._keysSelected.hasOwnProperty(
+ t
+ ),
+ i = d(this._valueDict[t].optionEl)
+ return (
+ e
+ ? (this._keysSelected[t] = !0)
+ : delete this._keysSelected[t],
+ i.toggleClass('selected', e),
+ i
+ .find('input[type="checkbox"]')
+ .prop('checked', e),
+ i.prop('selected', e),
+ e
+ )
+ },
+ },
+ {
+ key: '_setValueToInput',
+ value: function() {
+ var i = []
+ if (
+ (this.$el
+ .find('option')
+ .each(function(t) {
+ if (d(t).prop('selected')) {
+ var e = d(t).text()
+ i.push(e)
+ }
+ }),
+ !i.length)
+ ) {
+ var t = this.$el
+ .find('option:disabled')
+ .eq(0)
+ t.length &&
+ '' === t[0].value &&
+ i.push(t.text())
+ }
+ this.input.value = i.join(', ')
+ },
+ },
+ {
+ key: '_setSelectedStates',
+ value: function() {
+ for (var t in ((this._keysSelected = {}),
+ this._valueDict)) {
+ var e = this._valueDict[t],
+ i = d(e.el).prop('selected')
+ d(e.optionEl)
+ .find('input[type="checkbox"]')
+ .prop('checked', i),
+ i
+ ? (this._activateOption(
+ d(this.dropdownOptions),
+ d(e.optionEl)
+ ),
+ (this._keysSelected[t] = !0))
+ : d(e.optionEl).removeClass(
+ 'selected'
+ )
+ }
+ },
+ },
+ {
+ key: '_activateOption',
+ value: function(t, e) {
+ e &&
+ (this.isMultiple ||
+ t
+ .find('li.selected')
+ .removeClass('selected'),
+ d(e).addClass('selected'))
+ },
+ },
+ {
+ key: 'getSelectedValues',
+ value: function() {
+ var t = []
+ for (var e in this._keysSelected)
+ t.push(this._valueDict[e].el.value)
+ return t
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_FormSelect
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return e
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.FormSelect = t),
+ M.jQueryLoaded &&
+ M.initializeJqueryWrapper(t, 'formSelect', 'M_FormSelect')
+ })(cash),
+ (function(s, e) {
+ 'use strict'
+ var i = {},
+ t = (function(t) {
+ function n(t, e) {
+ _classCallCheck(this, n)
+ var i = _possibleConstructorReturn(
+ this,
+ (n.__proto__ || Object.getPrototypeOf(n)).call(
+ this,
+ n,
+ t,
+ e
+ )
+ )
+ return (
+ ((i.el.M_Range = i).options = s.extend(
+ {},
+ n.defaults,
+ e
+ )),
+ (i._mousedown = !1),
+ i._setupThumb(),
+ i._setupEventHandlers(),
+ i
+ )
+ }
+ return (
+ _inherits(n, Component),
+ _createClass(
+ n,
+ [
+ {
+ key: 'destroy',
+ value: function() {
+ this._removeEventHandlers(),
+ this._removeThumb(),
+ (this.el.M_Range = void 0)
+ },
+ },
+ {
+ key: '_setupEventHandlers',
+ value: function() {
+ ;(this._handleRangeChangeBound = this._handleRangeChange.bind(
+ this
+ )),
+ (this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(
+ this
+ )),
+ (this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(
+ this
+ )),
+ (this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(
+ this
+ )),
+ (this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(
+ this
+ )),
+ this.el.addEventListener(
+ 'change',
+ this._handleRangeChangeBound
+ ),
+ this.el.addEventListener(
+ 'mousedown',
+ this
+ ._handleRangeMousedownTouchstartBound
+ ),
+ this.el.addEventListener(
+ 'touchstart',
+ this
+ ._handleRangeMousedownTouchstartBound
+ ),
+ this.el.addEventListener(
+ 'input',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.addEventListener(
+ 'mousemove',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.addEventListener(
+ 'touchmove',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.addEventListener(
+ 'mouseup',
+ this
+ ._handleRangeMouseupTouchendBound
+ ),
+ this.el.addEventListener(
+ 'touchend',
+ this
+ ._handleRangeMouseupTouchendBound
+ ),
+ this.el.addEventListener(
+ 'blur',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ ),
+ this.el.addEventListener(
+ 'mouseout',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ ),
+ this.el.addEventListener(
+ 'touchleave',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ )
+ },
+ },
+ {
+ key: '_removeEventHandlers',
+ value: function() {
+ this.el.removeEventListener(
+ 'change',
+ this._handleRangeChangeBound
+ ),
+ this.el.removeEventListener(
+ 'mousedown',
+ this
+ ._handleRangeMousedownTouchstartBound
+ ),
+ this.el.removeEventListener(
+ 'touchstart',
+ this
+ ._handleRangeMousedownTouchstartBound
+ ),
+ this.el.removeEventListener(
+ 'input',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.removeEventListener(
+ 'mousemove',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.removeEventListener(
+ 'touchmove',
+ this
+ ._handleRangeInputMousemoveTouchmoveBound
+ ),
+ this.el.removeEventListener(
+ 'mouseup',
+ this
+ ._handleRangeMouseupTouchendBound
+ ),
+ this.el.removeEventListener(
+ 'touchend',
+ this
+ ._handleRangeMouseupTouchendBound
+ ),
+ this.el.removeEventListener(
+ 'blur',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ ),
+ this.el.removeEventListener(
+ 'mouseout',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ ),
+ this.el.removeEventListener(
+ 'touchleave',
+ this
+ ._handleRangeBlurMouseoutTouchleaveBound
+ )
+ },
+ },
+ {
+ key: '_handleRangeChange',
+ value: function() {
+ s(this.value).html(this.$el.val()),
+ s(this.thumb).hasClass('active') ||
+ this._showRangeBubble()
+ var t = this._calcRangeOffset()
+ s(this.thumb)
+ .addClass('active')
+ .css('left', t + 'px')
+ },
+ },
+ {
+ key: '_handleRangeMousedownTouchstart',
+ value: function(t) {
+ if (
+ (s(this.value).html(this.$el.val()),
+ (this._mousedown = !0),
+ this.$el.addClass('active'),
+ s(this.thumb).hasClass('active') ||
+ this._showRangeBubble(),
+ 'input' !== t.type)
+ ) {
+ var e = this._calcRangeOffset()
+ s(this.thumb)
+ .addClass('active')
+ .css('left', e + 'px')
+ }
+ },
+ },
+ {
+ key: '_handleRangeInputMousemoveTouchmove',
+ value: function() {
+ if (this._mousedown) {
+ s(this.thumb).hasClass('active') ||
+ this._showRangeBubble()
+ var t = this._calcRangeOffset()
+ s(this.thumb)
+ .addClass('active')
+ .css('left', t + 'px'),
+ s(this.value).html(this.$el.val())
+ }
+ },
+ },
+ {
+ key: '_handleRangeMouseupTouchend',
+ value: function() {
+ ;(this._mousedown = !1),
+ this.$el.removeClass('active')
+ },
+ },
+ {
+ key: '_handleRangeBlurMouseoutTouchleave',
+ value: function() {
+ if (!this._mousedown) {
+ var t =
+ 7 +
+ parseInt(
+ this.$el.css('padding-left')
+ ) +
+ 'px'
+ s(this.thumb).hasClass('active') &&
+ (e.remove(this.thumb),
+ e({
+ targets: this.thumb,
+ height: 0,
+ width: 0,
+ top: 10,
+ easing: 'easeOutQuad',
+ marginLeft: t,
+ duration: 100,
+ })),
+ s(this.thumb).removeClass('active')
+ }
+ },
+ },
+ {
+ key: '_setupThumb',
+ value: function() {
+ ;(this.thumb = document.createElement(
+ 'span'
+ )),
+ (this.value = document.createElement(
+ 'span'
+ )),
+ s(this.thumb).addClass('thumb'),
+ s(this.value).addClass('value'),
+ s(this.thumb).append(this.value),
+ this.$el.after(this.thumb)
+ },
+ },
+ {
+ key: '_removeThumb',
+ value: function() {
+ s(this.thumb).remove()
+ },
+ },
+ {
+ key: '_showRangeBubble',
+ value: function() {
+ var t =
+ -7 +
+ parseInt(
+ s(this.thumb)
+ .parent()
+ .css('padding-left')
+ ) +
+ 'px'
+ e.remove(this.thumb),
+ e({
+ targets: this.thumb,
+ height: 30,
+ width: 30,
+ top: -30,
+ marginLeft: t,
+ duration: 300,
+ easing: 'easeOutQuint',
+ })
+ },
+ },
+ {
+ key: '_calcRangeOffset',
+ value: function() {
+ var t = this.$el.width() - 15,
+ e =
+ parseFloat(this.$el.attr('max')) ||
+ 100,
+ i =
+ parseFloat(this.$el.attr('min')) ||
+ 0
+ return (
+ ((parseFloat(this.$el.val()) - i) /
+ (e - i)) *
+ t
+ )
+ },
+ },
+ ],
+ [
+ {
+ key: 'init',
+ value: function(t, e) {
+ return _get(
+ n.__proto__ || Object.getPrototypeOf(n),
+ 'init',
+ this
+ ).call(this, this, t, e)
+ },
+ },
+ {
+ key: 'getInstance',
+ value: function(t) {
+ return (t.jquery ? t[0] : t).M_Range
+ },
+ },
+ {
+ key: 'defaults',
+ get: function() {
+ return i
+ },
+ },
+ ]
+ ),
+ n
+ )
+ })()
+ ;(M.Range = t),
+ M.jQueryLoaded && M.initializeJqueryWrapper(t, 'range', 'M_Range'),
+ t.init(s('input[type=range]'))
+ })(cash, M.anime)
diff --git a/assets/pause.png b/src/assets/pause.png
old mode 100755
new mode 100644
similarity index 100%
rename from assets/pause.png
rename to src/assets/pause.png
diff --git a/assets/play.png b/src/assets/play.png
old mode 100755
new mode 100644
similarity index 100%
rename from assets/play.png
rename to src/assets/play.png
diff --git a/src/icons_for_shiny_tray.js b/src/icons_for_shiny_tray.js
new file mode 100644
index 000000000..263afb6bb
--- /dev/null
+++ b/src/icons_for_shiny_tray.js
@@ -0,0 +1,31 @@
+const icons = new Image() // icons for YTMD
+icons.src =
+ 'data:image/png;base64,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'
+
+const pause = new Image() // Pause icon for dark mode
+pause.src =
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJ3aGl0ZSIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+'
+
+const play = new Image() // Play icon for dark mode
+play.src =
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4='
+
+const pause_w = new Image() // Pause icon for bright mode
+pause_w.src =
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJibGFjayIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+'
+const play_w = new Image() // Play icon for bright mode
+play_w.src =
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4='
+
+const dark = {
+ pause: pause,
+ play: play,
+ icons: icons,
+}
+const bright = {
+ pause: pause_w,
+ play: play_w,
+ icons: icons,
+}
+exports.dark = dark
+exports.bright = bright
diff --git a/locales/de.json b/src/locales/de.json
similarity index 100%
rename from locales/de.json
rename to src/locales/de.json
diff --git a/locales/en.json b/src/locales/en.json
similarity index 100%
rename from locales/en.json
rename to src/locales/en.json
diff --git a/locales/es.json b/src/locales/es.json
similarity index 100%
rename from locales/es.json
rename to src/locales/es.json
diff --git a/locales/fr.json b/src/locales/fr.json
similarity index 100%
rename from locales/fr.json
rename to src/locales/fr.json
diff --git a/locales/id.json b/src/locales/id.json
similarity index 100%
rename from locales/id.json
rename to src/locales/id.json
diff --git a/locales/it.json b/src/locales/it.json
similarity index 100%
rename from locales/it.json
rename to src/locales/it.json
diff --git a/locales/ja.json b/src/locales/ja.json
similarity index 100%
rename from locales/ja.json
rename to src/locales/ja.json
diff --git a/locales/ko.json b/src/locales/ko.json
similarity index 100%
rename from locales/ko.json
rename to src/locales/ko.json
diff --git a/locales/nl.json b/src/locales/nl.json
similarity index 100%
rename from locales/nl.json
rename to src/locales/nl.json
diff --git a/locales/pt.json b/src/locales/pt.json
similarity index 100%
rename from locales/pt.json
rename to src/locales/pt.json
diff --git a/locales/ru.json b/src/locales/ru.json
similarity index 100%
rename from locales/ru.json
rename to src/locales/ru.json
diff --git a/locales/scaffold.json b/src/locales/scaffold.json
similarity index 100%
rename from locales/scaffold.json
rename to src/locales/scaffold.json
diff --git a/locales/tr.json b/src/locales/tr.json
similarity index 100%
rename from locales/tr.json
rename to src/locales/tr.json
diff --git a/locales/uk.json b/src/locales/uk.json
similarity index 100%
rename from locales/uk.json
rename to src/locales/uk.json
diff --git a/locales/zh.json b/src/locales/zh.json
similarity index 100%
rename from locales/zh.json
rename to src/locales/zh.json
diff --git a/pages/editor/editor.css b/src/pages/editor/editor.css
similarity index 100%
rename from pages/editor/editor.css
rename to src/pages/editor/editor.css
diff --git a/src/pages/editor/editor.html b/src/pages/editor/editor.html
new file mode 100644
index 000000000..121ba4a18
--- /dev/null
+++ b/src/pages/editor/editor.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+ save
+
+
+
+
+
+
diff --git a/pages/editor/editor.js b/src/pages/editor/editor.js
similarity index 88%
rename from pages/editor/editor.js
rename to src/pages/editor/editor.js
index 084db6977..1c30b9078 100644
--- a/pages/editor/editor.js
+++ b/src/pages/editor/editor.js
@@ -2,8 +2,8 @@ const { ipcRenderer } = require('electron')
const app = require('electron').remote.app
const path = require('electron').remote.require('path')
-const __ = require('../../providers/translateProvider')
-const fileSystem = require('../../utils/fileSystem')
+const __ = require('../../src/providers/translateProvider')
+const fileSystem = require('../../src/utils/fileSystem')
const customCssDir = path.join(
fileSystem.getAppDocumentsPath(app),
diff --git a/pages/home/home.css b/src/pages/home/home.css
similarity index 100%
rename from pages/home/home.css
rename to src/pages/home/home.css
diff --git a/src/pages/home/home.html b/src/pages/home/home.html
new file mode 100644
index 000000000..fac532ce6
--- /dev/null
+++ b/src/pages/home/home.html
@@ -0,0 +1,49 @@
+
+
+
+
+ YouTube Music
+
+
+
+
+
+
+
+
+
+
+
+ signal_wifi_off
+
+
+
+
+
+
diff --git a/pages/home/home.js b/src/pages/home/home.js
similarity index 100%
rename from pages/home/home.js
rename to src/pages/home/home.js
diff --git a/pages/lyrics/lyrics.css b/src/pages/lyrics/lyrics.css
similarity index 100%
rename from pages/lyrics/lyrics.css
rename to src/pages/lyrics/lyrics.css
diff --git a/pages/lyrics/lyrics.html b/src/pages/lyrics/lyrics.html
similarity index 70%
rename from pages/lyrics/lyrics.html
rename to src/pages/lyrics/lyrics.html
index d2a9a6e35..f7871fbd7 100644
--- a/pages/lyrics/lyrics.html
+++ b/src/pages/lyrics/lyrics.html
@@ -3,16 +3,19 @@
Lyrics
-
+
@@ -24,7 +27,7 @@
-
+
diff --git a/pages/lyrics/lyrics.js b/src/pages/lyrics/lyrics.js
similarity index 100%
rename from pages/lyrics/lyrics.js
rename to src/pages/lyrics/lyrics.js
diff --git a/pages/miniplayer/miniplayer.css b/src/pages/miniplayer/miniplayer.css
similarity index 100%
rename from pages/miniplayer/miniplayer.css
rename to src/pages/miniplayer/miniplayer.css
diff --git a/src/pages/miniplayer/miniplayer.html b/src/pages/miniplayer/miniplayer.html
new file mode 100644
index 000000000..d7d696cb5
--- /dev/null
+++ b/src/pages/miniplayer/miniplayer.html
@@ -0,0 +1,79 @@
+
+
+
+ YouTube Music
+
+
+
+
+
+
+
+
+
+
+ drag_indicator
+
+
+ layers
+
+
+ launch
+
+
+
+
+ Title
+
+
+
+ Author
+
+
+
+ 0:00 / 0:00
+
+
+
+
+ thumb_down
+
+
+ skip_previous
+
+
+ play_arrow
+
+
+ skip_next
+
+
+ thumb_up
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/miniplayer/miniplayer.js b/src/pages/miniplayer/miniplayer.js
similarity index 100%
rename from pages/miniplayer/miniplayer.js
rename to src/pages/miniplayer/miniplayer.js
diff --git a/src/pages/settings/last-fm-login.html b/src/pages/settings/last-fm-login.html
new file mode 100644
index 000000000..ca2220c28
--- /dev/null
+++ b/src/pages/settings/last-fm-login.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/settings/last-fm-login.js b/src/pages/settings/last-fm-login.js
similarity index 100%
rename from pages/settings/last-fm-login.js
rename to src/pages/settings/last-fm-login.js
diff --git a/src/pages/settings/mac_shiny.html b/src/pages/settings/mac_shiny.html
new file mode 100644
index 000000000..859f33ec6
--- /dev/null
+++ b/src/pages/settings/mac_shiny.html
@@ -0,0 +1,253 @@
+
+
+
+
+ Settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ YTMDesktop App
+
+ |
+
+
+
+
+ Play / Pause
+ |
+
+
+
+ Previous Track
+ |
+
+
+
+ Next Track
+ |
+
+
+
+ Lyrics
+ |
+
+
+
+ Settings
+ |
+
+
+
+
+ Exit
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/settings/mac_shiny.js b/src/pages/settings/mac_shiny.js
similarity index 100%
rename from pages/settings/mac_shiny.js
rename to src/pages/settings/mac_shiny.js
diff --git a/pages/settings/settings.css b/src/pages/settings/settings.css
similarity index 100%
rename from pages/settings/settings.css
rename to src/pages/settings/settings.css
diff --git a/pages/settings/settings.html b/src/pages/settings/settings.html
similarity index 99%
rename from pages/settings/settings.html
rename to src/pages/settings/settings.html
index 35e947cd8..191c2243a 100644
--- a/pages/settings/settings.html
+++ b/src/pages/settings/settings.html
@@ -6,14 +6,17 @@
-
+
@@ -784,7 +787,7 @@
-
+
diff --git a/pages/settings/settings.js b/src/pages/settings/settings.js
similarity index 100%
rename from pages/settings/settings.js
rename to src/pages/settings/settings.js
diff --git a/pages/shared/window-buttons/window-buttons.css b/src/pages/shared/window-buttons/window-buttons.css
similarity index 100%
rename from pages/shared/window-buttons/window-buttons.css
rename to src/pages/shared/window-buttons/window-buttons.css
diff --git a/pages/shared/window-buttons/window-buttons.html b/src/pages/shared/window-buttons/window-buttons.html
similarity index 90%
rename from pages/shared/window-buttons/window-buttons.html
rename to src/pages/shared/window-buttons/window-buttons.html
index c1025fbc3..f3c443b78 100644
--- a/pages/shared/window-buttons/window-buttons.html
+++ b/src/pages/shared/window-buttons/window-buttons.html
@@ -3,21 +3,24 @@
YouTube Music
-
+
-
+
@@ -98,7 +101,7 @@
>
-
+
diff --git a/pages/shared/window-buttons/window-buttons.js b/src/pages/shared/window-buttons/window-buttons.js
similarity index 100%
rename from pages/shared/window-buttons/window-buttons.js
rename to src/pages/shared/window-buttons/window-buttons.js
diff --git a/providers/analyticsProvider.js b/src/providers/analyticsProvider.js
similarity index 100%
rename from providers/analyticsProvider.js
rename to src/providers/analyticsProvider.js
diff --git a/providers/assetsProvider.js b/src/providers/assetsProvider.js
similarity index 76%
rename from providers/assetsProvider.js
rename to src/providers/assetsProvider.js
index 2ad306fe4..02af17e7b 100644
--- a/providers/assetsProvider.js
+++ b/src/providers/assetsProvider.js
@@ -8,11 +8,11 @@ const systemInfo = require('../utils/systemInfo')
* @param {*} asset
*/
function getLocal(asset) {
- return path.join('assets', `${asset}`)
+ return path.join(app.getAppPath(), 'src/assets', `${asset}`)
}
function getIcon(assetPath) {
- let localAsset = path.join('assets', `${assetPath}`)
+ let localAsset = path.join(app.getAppPath(), 'src/assets', `${assetPath}`)
if (systemInfo.isWindows()) {
return `${localAsset}.ico`
diff --git a/providers/companionServer.js b/src/providers/companionServer.js
similarity index 100%
rename from providers/companionServer.js
rename to src/providers/companionServer.js
diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js
new file mode 100644
index 000000000..03e7ae2ec
--- /dev/null
+++ b/src/providers/discordRpcProvider.js
@@ -0,0 +1,72 @@
+const clientId = '495666957501071390'
+const RPC = require('discord-rpc')
+const startTimestamp = new Date()
+var client
+
+var _isStarted
+
+function isStarted() {
+ return _isStarted
+}
+
+function _setIsStarted(value) {
+ _isStarted = value
+}
+
+function start() {
+ client = new RPC.Client({ transport: 'ipc' })
+
+ client.on('ready', () => {
+ _setIsStarted(true)
+ })
+
+ client.login({ clientId }).catch(() => {
+ if (!isStarted()) {
+ setTimeout(function() {
+ // console.log('trying to connect')
+ start()
+ }, 10000)
+ }
+ })
+
+ client.on('disconnected', () => {
+ _setIsStarted(false)
+ start()
+ })
+}
+
+function stop() {
+ client.destroy()
+ _setIsStarted(false)
+}
+
+function setActivity(info) {
+ if (isStarted() && info.track.title) {
+ var now = Date.now()
+ client
+ .setActivity({
+ details: info.track.title,
+ state: info.track.author,
+ startTimestamp: now + info.player.seekbarCurrentPosition * 1000,
+ endTimestamp:
+ now +
+ (info.track.duration - info.player.seekbarCurrentPosition) *
+ 1000,
+ largeImageKey: 'ytm_logo_512',
+ smallImageKey: info.player.isPaused
+ ? 'discordrpc-pause'
+ : 'discordrpc-play',
+ instance: false,
+ })
+ .catch(err => {
+ console.log(err)
+ })
+ }
+}
+
+module.exports = {
+ isStarted: isStarted,
+ start: start,
+ stop: stop,
+ setActivity: setActivity,
+}
diff --git a/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js
similarity index 100%
rename from providers/infoPlayerProvider.js
rename to src/providers/infoPlayerProvider.js
diff --git a/providers/mediaProvider.js b/src/providers/mediaProvider.js
similarity index 100%
rename from providers/mediaProvider.js
rename to src/providers/mediaProvider.js
diff --git a/providers/mprisProvider.js b/src/providers/mprisProvider.js
similarity index 100%
rename from providers/mprisProvider.js
rename to src/providers/mprisProvider.js
diff --git a/providers/rainmeterNowPlaying.js b/src/providers/rainmeterNowPlaying.js
similarity index 100%
rename from providers/rainmeterNowPlaying.js
rename to src/providers/rainmeterNowPlaying.js
diff --git a/providers/scrobblerProvider.js b/src/providers/scrobblerProvider.js
similarity index 100%
rename from providers/scrobblerProvider.js
rename to src/providers/scrobblerProvider.js
diff --git a/providers/settingsProvider.js b/src/providers/settingsProvider.js
similarity index 56%
rename from providers/settingsProvider.js
rename to src/providers/settingsProvider.js
index 97a9f5320..b890f91b9 100644
--- a/providers/settingsProvider.js
+++ b/src/providers/settingsProvider.js
@@ -1,12 +1,12 @@
-const electronStore = require("electron-store");
-const store = new electronStore();
+const electronStore = require('electron-store')
+const store = new electronStore()
/**
* Get setting value
* @param {string} settingName
*/
function get(settingName) {
- return store.get(settingName);
+ return store.get(settingName)
}
/**
@@ -15,7 +15,7 @@ function get(settingName) {
* @param {*} value
*/
function set(settingName, value) {
- store.set(settingName, value);
+ store.set(settingName, value)
}
/**
@@ -24,13 +24,13 @@ function set(settingName, value) {
* @param {*} initialValue
*/
function setInitialValue(settingName, initialValue) {
- if (get(settingName) === undefined) {
- set(settingName, initialValue);
- }
+ if (get(settingName) === undefined) {
+ set(settingName, initialValue)
+ }
}
module.exports = {
- get: get,
- set: set,
- setInitialValue: setInitialValue
-};
+ get: get,
+ set: set,
+ setInitialValue: setInitialValue,
+}
diff --git a/providers/templateProvider.js b/src/providers/templateProvider.js
similarity index 100%
rename from providers/templateProvider.js
rename to src/providers/templateProvider.js
diff --git a/src/providers/translateProvider.js b/src/providers/translateProvider.js
new file mode 100644
index 000000000..414ef22dd
--- /dev/null
+++ b/src/providers/translateProvider.js
@@ -0,0 +1,59 @@
+const i18n = require('i18n')
+const settingsProvider = require('./settingsProvider')
+
+const defaultLocale = settingsProvider.get('settings-app-language', 'en')
+
+i18n.configure({
+ locales: ['en', 'pt'],
+ directory: __dirname + '/../locales',
+ defaultLocale: defaultLocale,
+})
+
+function setLocale(locale) {
+ i18n.setLocale(locale)
+}
+
+function trans(id, params) {
+ params = typeof params !== 'undefined' ? params : {}
+ try {
+ let tmp = i18n.__(id, params)
+ if (tmp === id) {
+ return i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english
+ } else {
+ return tmp
+ }
+ } catch (_) {
+ return i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english
+ }
+}
+
+function translateHelper() {
+ const prefix = 'i18n_'
+ var items = []
+ var i18n_items = document.getElementsByTagName('*')
+ for (var i = 0; i < i18n_items.length; i++) {
+ //omitting undefined null check for brevity
+ if (
+ i18n_items[i].getAttribute('i18n') &&
+ i18n_items[i].getAttribute('i18n').lastIndexOf(prefix, 0) === 0
+ ) {
+ items.push([
+ i18n_items[i].getAttribute('i18n').replace('i18n_', ''),
+ i18n_items[i],
+ ])
+ }
+ }
+ return items
+}
+
+function loadi18n() {
+ translateHelper().forEach(([i18n, element]) => {
+ element.innerHTML = trans(i18n)
+ })
+}
+
+module.exports = {
+ setLocale: setLocale,
+ trans: trans,
+ loadi18n: loadi18n,
+}
diff --git a/providers/trayProvider.js b/src/providers/trayProvider.js
similarity index 90%
rename from providers/trayProvider.js
rename to src/providers/trayProvider.js
index 93e8e0eff..c747046d3 100644
--- a/providers/trayProvider.js
+++ b/src/providers/trayProvider.js
@@ -6,7 +6,6 @@ const settingsProvider = require('./settingsProvider')
const __ = require('./translateProvider')
const Notification = require('electron-native-notification')
const { doBehavior } = require('../utils/window')
-// const base64Img = require("base64-img");
const systemInfo = require('../utils/systemInfo')
const imageToBase64 = require('image-to-base64')
@@ -39,8 +38,7 @@ let init_tray = () => {
let popUpMenu = null
function createTray(mainWindow, icon) {
- saved_icon = path.join(__dirname, `../${icon}`)
- let nativeImageIcon = nativeImage.createFromPath(saved_icon)
+ let nativeImageIcon = nativeImage.createFromPath(icon)
tray = new Tray(nativeImageIcon)
saved_mainWindow = mainWindow
@@ -64,21 +62,6 @@ function updateTrayIcon(icon) {
tray.setImage(nativeImageIcon)
}
-/*function balloon(title, content, cover, icon) {
- if (title && content && cover) {
-
- base64Img.requestBase64(cover, function (err, res, body) {
- let image = nativeImage.createFromPath(icon)
-
- if (!err && body !== undefined) {
- image = nativeImage.createFromDataURL(body);
- }
-
- _doNotification(title, content, image)
- });
- }
-}*/
-
function balloon(title, content, cover, icon) {
if (title && content && cover) {
imageToBase64(cover)
diff --git a/providers/updateProvider.js b/src/providers/updateProvider.js
similarity index 100%
rename from providers/updateProvider.js
rename to src/providers/updateProvider.js
diff --git a/utils/calcYTViewSize.js b/src/utils/calcYTViewSize.js
similarity index 100%
rename from utils/calcYTViewSize.js
rename to src/utils/calcYTViewSize.js
diff --git a/utils/defaultSettings.js b/src/utils/defaultSettings.js
similarity index 100%
rename from utils/defaultSettings.js
rename to src/utils/defaultSettings.js
diff --git a/utils/fileSystem.js b/src/utils/fileSystem.js
similarity index 100%
rename from utils/fileSystem.js
rename to src/utils/fileSystem.js
diff --git a/utils/injectControls.js b/src/utils/injectControls.js
similarity index 100%
rename from utils/injectControls.js
rename to src/utils/injectControls.js
diff --git a/src/utils/systemInfo.js b/src/utils/systemInfo.js
new file mode 100644
index 000000000..50f2faa20
--- /dev/null
+++ b/src/utils/systemInfo.js
@@ -0,0 +1,26 @@
+/**
+ * system-info.js
+ * Utils for System info
+ */
+
+function isWindows() {
+ return process.platform === 'win32'
+}
+
+function isLinux() {
+ return (
+ process.platform === 'freebsd' ||
+ process.platform === 'linux' ||
+ process.platform === 'openbsd'
+ )
+}
+
+function isMac() {
+ return process.platform === 'darwin'
+}
+
+module.exports = {
+ isWindows: isWindows,
+ isLinux: isLinux,
+ isMac: isMac,
+}
diff --git a/utils/window.js b/src/utils/window.js
similarity index 100%
rename from utils/window.js
rename to src/utils/window.js
diff --git a/utils/systemInfo.js b/utils/systemInfo.js
deleted file mode 100644
index 727e49522..000000000
--- a/utils/systemInfo.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * system-info.js
- * Utils for System info
- */
-
-function isWindows() {
- return process.platform === "win32";
-}
-
-function isLinux() {
- return (
- process.platform === "freebsd" ||
- process.platform === "linux" ||
- process.platform === "openbsd"
- );
-}
-
-function isMac() {
- return process.platform === "darwin";
-}
-
-module.exports = {
- isWindows: isWindows,
- isLinux: isLinux,
- isMac: isMac
-}
\ No newline at end of file