Add live server extension
@@ -1 +1 @@
|
||||
[{"identifier":{"id":"piousdeer.adwaita-theme","uuid":"93fbc635-4a9a-4ff1-88ba-bf017484c602"},"version":"1.1.0","location":{"$mid":1,"path":"/home/trude/.vscode-oss/extensions/piousdeer.adwaita-theme-1.1.0-universal","scheme":"file"},"relativeLocation":"piousdeer.adwaita-theme-1.1.0-universal","metadata":{"id":"93fbc635-4a9a-4ff1-88ba-bf017484c602","publisherId":"93befe42-7314-4d14-8724-19419a27ed64","publisherDisplayName":"piousdeer","targetPlatform":"universal","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"installedTimestamp":1714048423200,"pinned":false,"source":"gallery"}},{"identifier":{"id":"oderwat.indent-rainbow","uuid":"eaa2127d-cb69-4ab9-8505-a60c9ee5f28b"},"version":"8.3.1","location":{"$mid":1,"fsPath":"/home/trude/.vscode-oss/extensions/oderwat.indent-rainbow-8.3.1-universal","external":"file:///home/trude/.vscode-oss/extensions/oderwat.indent-rainbow-8.3.1-universal","path":"/home/trude/.vscode-oss/extensions/oderwat.indent-rainbow-8.3.1-universal","scheme":"file"},"relativeLocation":"oderwat.indent-rainbow-8.3.1-universal","metadata":{"id":"eaa2127d-cb69-4ab9-8505-a60c9ee5f28b","publisherId":"ac064ae0-224d-4351-9aa4-45ef7bf3ed21","publisherDisplayName":"oderwat","targetPlatform":"universal","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"installedTimestamp":1714048433635,"pinned":false,"source":"gallery"}}]
|
||||
[{"identifier":{"id":"piousdeer.adwaita-theme","uuid":"93fbc635-4a9a-4ff1-88ba-bf017484c602"},"version":"1.1.0","location":{"$mid":1,"path":"/home/trude/.vscode-oss/extensions/piousdeer.adwaita-theme-1.1.0-universal","scheme":"file"},"relativeLocation":"piousdeer.adwaita-theme-1.1.0-universal","metadata":{"id":"93fbc635-4a9a-4ff1-88ba-bf017484c602","publisherId":"93befe42-7314-4d14-8724-19419a27ed64","publisherDisplayName":"piousdeer","targetPlatform":"universal","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"installedTimestamp":1714048423200,"pinned":false,"source":"gallery"}},{"identifier":{"id":"oderwat.indent-rainbow","uuid":"eaa2127d-cb69-4ab9-8505-a60c9ee5f28b"},"version":"8.3.1","location":{"$mid":1,"path":"/home/trude/.vscode-oss/extensions/oderwat.indent-rainbow-8.3.1-universal","scheme":"file"},"relativeLocation":"oderwat.indent-rainbow-8.3.1-universal","metadata":{"id":"eaa2127d-cb69-4ab9-8505-a60c9ee5f28b","publisherId":"ac064ae0-224d-4351-9aa4-45ef7bf3ed21","publisherDisplayName":"oderwat","targetPlatform":"universal","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"installedTimestamp":1714048433635,"pinned":false,"source":"gallery"}},{"identifier":{"id":"yandeu.five-server","uuid":"a18a6705-5a6a-4e14-a4a7-3efa6b7647d5"},"version":"0.3.1","location":{"$mid":1,"fsPath":"/home/trude/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal","external":"file:///home/trude/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal","path":"/home/trude/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal","scheme":"file"},"relativeLocation":"yandeu.five-server-0.3.1-universal","metadata":{"id":"a18a6705-5a6a-4e14-a4a7-3efa6b7647d5","publisherId":"a342b7ab-2d58-4313-9c2d-f506bb2aa10c","publisherDisplayName":"yandeu","targetPlatform":"universal","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"installedTimestamp":1714049361078,"pinned":false,"source":"gallery"}}]
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
|
||||
<Metadata>
|
||||
<Identity Language="en-US" Id="five-server" Version="0.3.1" Publisher="yandeu" />
|
||||
<DisplayName>Live Server (Five Server)</DisplayName>
|
||||
<Description xml:space="preserve">A better Live Server with instant updates, highlights and some PHP support.</Description>
|
||||
<Tags>remote,browser,development,tool,html,php,http,live,instant,server,cli,preview,reload,refresh,update,highlight,live-server,live server,keybindings,__sponsor_extension</Tags>
|
||||
<Categories>Other</Categories>
|
||||
<GalleryFlags>Public</GalleryFlags>
|
||||
<Badges><Badge Link="https://github.com/sponsors/yandeu" ImgUri="https://img.shields.io/badge/Sponsor-%E2%9D%A4-lightgrey?style=social&logo=GitHub" Description="GitHub Sponsors" />
|
||||
<Badge Link="https://github.com/sponsors/yandeu?frequency=one-time&sponsor=yandeu#sponsors:~:text=%241%20one%20time" ImgUri="https://img.shields.io/badge/One--Time%20Donation-$1-lightgrey?style=social&logo=GitHub" Description="One-Time Donation" /></Badges>
|
||||
<Properties>
|
||||
<Property Id="Microsoft.VisualStudio.Code.Engine" Value="^1.66.2" />
|
||||
<Property Id="Microsoft.VisualStudio.Code.ExtensionDependencies" Value="" />
|
||||
<Property Id="Microsoft.VisualStudio.Code.ExtensionPack" Value="" />
|
||||
<Property Id="Microsoft.VisualStudio.Code.ExtensionKind" Value="workspace" />
|
||||
<Property Id="Microsoft.VisualStudio.Code.LocalizedLanguages" Value="" />
|
||||
|
||||
<Property Id="Microsoft.VisualStudio.Code.SponsorLink" Value="https://github.com/sponsors/yandeu?frequency=recurring#:~:text=a%20month" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Links.Source" Value="https://github.com/yandeu/five-server-vscode.git" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Links.Getstarted" Value="https://github.com/yandeu/five-server-vscode.git" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Links.GitHub" Value="https://github.com/yandeu/five-server-vscode.git" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Links.Support" Value="https://github.com/yandeu/five-server/discussions" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Links.Learn" Value="https://github.com/yandeu/five-server-vscode#readme" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Branding.Color" Value="#41205f" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Branding.Theme" Value="dark" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.GitHubFlavoredMarkdown" Value="true" />
|
||||
<Property Id="Microsoft.VisualStudio.Services.Content.Pricing" Value="Free"/>
|
||||
|
||||
|
||||
<Property Id="Microsoft.VisualStudio.Services.CustomerQnALink" Value="https://github.com/yandeu/five-server/discussions" />
|
||||
</Properties>
|
||||
<License>extension/LICENSE.txt</License>
|
||||
<Icon>extension/img/icon-star.png</Icon>
|
||||
</Metadata>
|
||||
<Installation>
|
||||
<InstallationTarget Id="Microsoft.VisualStudio.Code"/>
|
||||
</Installation>
|
||||
<Dependencies/>
|
||||
<Assets>
|
||||
<Asset Type="Microsoft.VisualStudio.Code.Manifest" Path="extension/package.json" Addressable="true" />
|
||||
<Asset Type="Microsoft.VisualStudio.Services.Content.Details" Path="extension/README.md" Addressable="true" />
|
||||
<Asset Type="Microsoft.VisualStudio.Services.Content.Changelog" Path="extension/CHANGELOG.md" Addressable="true" />
|
||||
<Asset Type="Microsoft.VisualStudio.Services.Content.License" Path="extension/LICENSE.txt" Addressable="true" />
|
||||
<Asset Type="Microsoft.VisualStudio.Services.Icons.Default" Path="extension/img/icon-star.png" Addressable="true" />
|
||||
</Assets>
|
||||
</PackageManifest>
|
||||
@@ -0,0 +1,13 @@
|
||||
# Change Log
|
||||
|
||||
_There will be no change log while < v1.0.0_
|
||||
|
||||
---
|
||||
|
||||
All notable changes to the "Five Server" extension will be documented in this file.
|
||||
|
||||
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- Initial release
|
||||
@@ -0,0 +1,40 @@
|
||||
Five Server License
|
||||
|
||||
Copyright (C) 2021, Yannick Deubel (https://github.com/yandeu)
|
||||
All rights reserved.
|
||||
|
||||
This file is part of the "Five Server" project.
|
||||
|
||||
1. DEFINITIONS
|
||||
a) "Licensor" is Yannick Deubel (https://github.com/yandeu).
|
||||
b) "Software" is the software known as Five Server.
|
||||
|
||||
2. RESTRICTIONS
|
||||
You are NOT permitted to:
|
||||
a) Edit, alter, modify, adapt, translate or otherwise change the whole or any
|
||||
part of the Software without the express permission of the Licensor.
|
||||
b) Decompile, disassemble or reverse engineer the Software or attempt to do
|
||||
any such things.
|
||||
c) Reproduce, copy, distribute, resell or otherwise use the whole or any part
|
||||
of the Software for any commercial or non-commercial purpose.
|
||||
d) Disable, modify or hide notifications sent by the Software.
|
||||
|
||||
3. OWNERSHIP
|
||||
The Software, copyright, and other intellectual property rights of whatever
|
||||
nature in the Software, including any modifications made thereto are and shall
|
||||
remain the property of the Licensor.
|
||||
|
||||
4. WARRANTY DISCLAIMER
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED.
|
||||
|
||||
5. LIMITATION OF LIABILITY
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,164 @@
|
||||
<p align="center">
|
||||
<img
|
||||
src="https://raw.githubusercontent.com/yandeu/five-server-vscode/main/img/icon.png"
|
||||
height="100"
|
||||
width="134"
|
||||
/>
|
||||
</p>
|
||||
|
||||
<h1 align="center">Five Server</h1>
|
||||
|
||||
<p align="center">
|
||||
A better <em><b>live server</b></em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a
|
||||
href="https://marketplace.visualstudio.com/items?itemName=yandeu.five-server"
|
||||
target="__blank"
|
||||
>
|
||||
<img alt="VERSION" src="https://img.shields.io/visual-studio-marketplace/v/yandeu.five-server.svg?color=228cb3&label="/>
|
||||
<img alt="Visual Studio Marketplace Rating" src="https://img.shields.io/visual-studio-marketplace/r/yandeu.five-server?color=228cb3">
|
||||
</a>
|
||||
<a href="https://github.com/sponsors/yandeu" target="__blank">
|
||||
<img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/yandeu?color=228cb3">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
- ⚡️ **Updates your files instantly** while typing on your keyboard
|
||||
- ⬢ Remote displays the logs of your browser/phone in your terminal
|
||||
- 💡 Highlights the code you are working on in your browser
|
||||
- 🚀 Navigates your browser automatically to the current editing file
|
||||
- 🐘 Includes **PHP Support** for serving and live reload all your `.php` files
|
||||
- 🗄️ Supports all **Server Side Rendered Apps** like express.js
|
||||
|
||||
<p>
|
||||
<a href="https://youtu.be/aETkOu8J-bo">
|
||||
<img src="https://raw.githubusercontent.com/yandeu/five-server/main/img/vscode-preview.gif" alt="demo">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Get Started
|
||||
|
||||
4 ways to start your live server.
|
||||
|
||||
1. Click **Go Live** in the Status Bar (bottom of VSCode)
|
||||
2. Right-Click a Open File > **Open with Five Server**
|
||||
3. Right-Click a File in the Explorer > **Open with Five Server**
|
||||
4. Right-Click a Folder in the Explorer > **Open with Five Server (root)**
|
||||
_(will set the current folder as root until you stop the server)_
|
||||
|
||||
## Videos
|
||||
|
||||
- [Instant Update](https://youtu.be/3-zKYNrxKOk)
|
||||
- [Instant Update (with PHP)](https://youtu.be/4s7q5chX-e0)
|
||||
- [New Highlight Styles](https://youtu.be/zlKxvw-vy_M)
|
||||
|
||||
## Quick Test
|
||||
|
||||
Something is not working? Try the simple setup below:
|
||||
|
||||
- make sure you have uninstalled the old **Live Server**
|
||||
- check if you have the latest version
|
||||
[](https://marketplace.visualstudio.com/items?itemName=yandeu.five-server)
|
||||
- make a new folder `www` on the desktop
|
||||
- add the `index.html` (see below)
|
||||
- open the folder `www` with VSCode
|
||||
- click on **Go Live**
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>HTML Test File</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>It works!</h1>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
The setup above works but your project not?
|
||||
|
||||
- Maybe because your project is on another drive?
|
||||
- Or maybe on a USB Stick or remote folder like `OneDrive` or `DropBox`?
|
||||
- Make sure you open a folder in VSCode and NOT just a single file.
|
||||
- All these things can sometimes cause issues.
|
||||
|
||||
## About PHP
|
||||
|
||||
Although Five Server can render, display and live reload PHP, it does not provide a full PHP server. If you want to develop a big PHP app, you manually have to link the client-side Five Server script with your PHP files. See [five-server-with-php](https://github.com/yandeu/five-server-with-php).
|
||||
|
||||
## Features
|
||||
|
||||
💡 Most **advanced features** are disabled by default.
|
||||
Turn them on in the settings or by configuring a `fiveserver.config.js` file in the root of your workspace.
|
||||
|
||||
Note:
|
||||
|
||||
- **Instant Update** & **Highlight** works with `.html` and `.php` files.
|
||||
- All remote logs will be visible in a new Terminal called "Five Server".
|
||||
- The features `highlight`, `injectBody` and `remoteLogs` are disable by default.
|
||||
- To use the `highlight` feature, `injectBody` has to be activated.
|
||||
- `injectBody` performs some simple HTML Validation. When using `injectBody`, a message will be displayed if your HTML Page is invalid.
|
||||
- To temporarily disable `highlight` for a single HTML Tag, add a **H**.
|
||||
Example: `<div H>Don't highlight me</div>`
|
||||
|
||||
Config File Example:
|
||||
|
||||
```js
|
||||
// fiveserver.config.js
|
||||
module.exports = {
|
||||
highlight: true, // enable highlight feature
|
||||
injectBody: true, // enable instant update
|
||||
remoteLogs: true, // enable remoteLogs
|
||||
remoteLogs: "yellow", // enable remoteLogs and use the color yellow
|
||||
injectCss: false, // disable injecting css
|
||||
navigate: true, // enable auto-navigation
|
||||
};
|
||||
```
|
||||
|
||||
### More Docs
|
||||
|
||||
- Read [Five Server - Documentation](https://github.com/yandeu/five-server#documentation).
|
||||
- Read [Five Server - Config File](https://github.com/yandeu/five-server#config-file).
|
||||
- Check all available options for the **Config File** in [`/src/types.ts`](https://github.com/yandeu/five-server/blob/main/src/types.ts).
|
||||
- Check all available colors for the **remoteLogs** in [`/src/colors.ts`](https://github.com/yandeu/five-server/blob/main/src/colors.ts).
|
||||
|
||||
### Known Issues
|
||||
|
||||
- Sometimes `injectBody` does not work well when using inline JavaScript inside `<body>`.
|
||||
As a workaround, execute your inline scripts after Five Server is connected:
|
||||
|
||||
```html
|
||||
<script>
|
||||
const main = () => {
|
||||
console.log("Some JavaScript Code...");
|
||||
};
|
||||
|
||||
// wait for five-server to connect
|
||||
const five = document.querySelector('[data-id="five-server"]');
|
||||
if (five) five.addEventListener("connected", main);
|
||||
else window.addEventListener("load", main);
|
||||
</script>
|
||||
```
|
||||
|
||||
### Debug Mode
|
||||
|
||||
Need to debug something? Set `debugVSCode` to true.
|
||||
|
||||
```js
|
||||
// fiveserver.config.js
|
||||
module.exports = {
|
||||
debugVSCode: true,
|
||||
};
|
||||
```
|
||||
|
||||
## Release Notes
|
||||
|
||||
_No release notes while < v1.0.0_
|
||||
|
||||
## Support Five Server
|
||||
|
||||
[](https://github.com/sponsors/yandeu)
|
||||
[](https://github.com/sponsors/yandeu?frequency=one-time&sponsor=yandeu#sponsors:~:text=%241%20one%20time)
|
||||
407
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/bundle/client/highlight.ts
vendored
Normal file
@@ -0,0 +1,407 @@
|
||||
/* eslint-disable prefer-object-spread */
|
||||
/* eslint-disable prefer-template */
|
||||
|
||||
/**
|
||||
* @copyright
|
||||
* Copyright (c) 2012 - present Adobe Systems Incorporated. All rights reserved. (https://github.com/adobe)
|
||||
* Copyright (c) 2021 Yannick Deubel (https://github.com/yandeu)
|
||||
*
|
||||
* @license {@link https://github.com/yandeu/five-server/blob/main/LICENSE LICENSE}
|
||||
*
|
||||
* @description
|
||||
* copied from https://github.com/adobe/brackets/blob/master/src/LiveDevelopment/Agents/RemoteFunctions.js
|
||||
* previously licensed under MIT (https://github.com/adobe/brackets/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
let _remoteHighlight
|
||||
const HIGHLIGHT_CLASS_NAME = '__brackets-ld-highlight'
|
||||
|
||||
const config = {
|
||||
experimental: false, // enable experimental features
|
||||
debug: true, // enable debug output and helpers
|
||||
autoConnect: false, // go live automatically after startup?
|
||||
highlight: true, // enable highlighting?
|
||||
highlightConfig: {
|
||||
// the highlight configuration for the Inspector
|
||||
borderColor: { r: 255, g: 229, b: 153, a: 0.66 },
|
||||
contentColor: { r: 111, g: 168, b: 220, a: 0.55 },
|
||||
marginColor: { r: 246, g: 178, b: 107, a: 0.66 },
|
||||
paddingColor: { r: 147, g: 196, b: 125, a: 0.66 },
|
||||
showInfo: true
|
||||
},
|
||||
remoteHighlight: {
|
||||
animateStartValue: {
|
||||
'background-color': 'rgba(0, 162, 255, 0.5)',
|
||||
opacity: 0
|
||||
},
|
||||
animateEndValue: {
|
||||
'background-color': 'rgb(106, 171, 233)', //'rgba(0, 162, 255, 0)',
|
||||
opacity: 0.6
|
||||
},
|
||||
paddingStyling: {
|
||||
//'border-width': '1px',
|
||||
//'border-style': 'dashed',
|
||||
//'border-color': 'rgba(0, 162, 255, 0.5)',
|
||||
'background-color': 'rgb(156, 221, 156)'
|
||||
},
|
||||
marginStyling: {
|
||||
'background-color': 'rgb(255 ,177 ,95)' // 'rgba(21, 165, 255, 0.58)'
|
||||
},
|
||||
borderColor: 'rgba(21, 165, 255, 0.85)',
|
||||
showPaddingMargin: true
|
||||
}
|
||||
}
|
||||
|
||||
// Checks if the element is in Viewport in the client browser
|
||||
function isInViewport(element) {
|
||||
const rect = element.getBoundingClientRect()
|
||||
const html = window.document.documentElement
|
||||
return (
|
||||
rect.top >= 0 &&
|
||||
rect.left >= 0 &&
|
||||
rect.bottom <= (window.innerHeight || html.clientHeight) &&
|
||||
rect.right <= (window.innerWidth || html.clientWidth)
|
||||
)
|
||||
}
|
||||
|
||||
// set an event on a element
|
||||
function _trigger(element, name, value, autoRemove?) {
|
||||
// MOD(yandeu): Do not automatically remove the highlight.
|
||||
/*
|
||||
const key = 'data-ld-' + name
|
||||
if (value !== undefined && value !== null) {
|
||||
element.setAttribute(key, value)
|
||||
if (autoRemove) {
|
||||
window.setTimeout(element.removeAttribute.bind(element, key))
|
||||
}
|
||||
} else {
|
||||
element.removeAttribute(key)
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// compute the screen offset of an element
|
||||
function _screenOffset(element) {
|
||||
const elemBounds = element.getBoundingClientRect(),
|
||||
body = window.document.body
|
||||
let offsetTop, offsetLeft
|
||||
|
||||
if (window.getComputedStyle(body).position === 'static') {
|
||||
offsetLeft = elemBounds.left + window.pageXOffset
|
||||
offsetTop = elemBounds.top + window.pageYOffset
|
||||
} else {
|
||||
const bodyBounds = body.getBoundingClientRect()
|
||||
offsetLeft = elemBounds.left - bodyBounds.left
|
||||
offsetTop = elemBounds.top - bodyBounds.top
|
||||
}
|
||||
return { left: offsetLeft, top: offsetTop }
|
||||
}
|
||||
|
||||
// returns the distance from the top of the closest relatively positioned parent element
|
||||
function getDocumentOffsetTop(element) {
|
||||
return element.offsetTop + (element.offsetParent ? getDocumentOffsetTop(element.offsetParent) : 0)
|
||||
}
|
||||
|
||||
// redraw active highlights
|
||||
function redrawHighlights() {
|
||||
if (_remoteHighlight) {
|
||||
_remoteHighlight.redraw()
|
||||
}
|
||||
}
|
||||
|
||||
let req, timeout
|
||||
const animateHighlight = function (time) {
|
||||
if (req) {
|
||||
window.cancelAnimationFrame(req)
|
||||
window.clearTimeout(timeout)
|
||||
}
|
||||
req = window.requestAnimationFrame(redrawHighlights)
|
||||
|
||||
timeout = setTimeout(function () {
|
||||
window.cancelAnimationFrame(req)
|
||||
req = null
|
||||
}, time * 1000)
|
||||
}
|
||||
|
||||
export class Highlight {
|
||||
trigger: boolean
|
||||
elements: any[] = []
|
||||
selector = '[data-highlight="true"]'
|
||||
|
||||
constructor(trigger: boolean) {
|
||||
this.trigger = !!trigger
|
||||
}
|
||||
|
||||
elementExists(element) {
|
||||
let i
|
||||
for (i in this.elements) {
|
||||
if (this.elements[i] === element) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
makeHighlightDiv(element, doAnimation) {
|
||||
const elementBounds = element.getBoundingClientRect(),
|
||||
highlight = window.document.createElement('div'),
|
||||
elementStyling = window.getComputedStyle(element),
|
||||
transitionDuration = parseFloat(elementStyling.getPropertyValue('transition-duration')),
|
||||
animationDuration = parseFloat(elementStyling.getPropertyValue('animation-duration'))
|
||||
|
||||
if (transitionDuration) {
|
||||
animateHighlight(transitionDuration)
|
||||
}
|
||||
|
||||
if (animationDuration) {
|
||||
animateHighlight(animationDuration)
|
||||
}
|
||||
|
||||
// Don't highlight elements with 0 width & height
|
||||
if (elementBounds.width === 0 && elementBounds.height === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
const realElBorder = {
|
||||
right: elementStyling.getPropertyValue('border-right-width'),
|
||||
left: elementStyling.getPropertyValue('border-left-width'),
|
||||
top: elementStyling.getPropertyValue('border-top-width'),
|
||||
bottom: elementStyling.getPropertyValue('border-bottom-width')
|
||||
}
|
||||
|
||||
const borderBox = elementStyling.boxSizing === 'border-box'
|
||||
|
||||
let innerWidth = parseFloat(elementStyling.width),
|
||||
innerHeight = parseFloat(elementStyling.height),
|
||||
outerHeight = innerHeight,
|
||||
outerWidth = innerWidth
|
||||
|
||||
if (!borderBox) {
|
||||
innerWidth += parseFloat(elementStyling.paddingLeft) + parseFloat(elementStyling.paddingRight)
|
||||
innerHeight += parseFloat(elementStyling.paddingTop) + parseFloat(elementStyling.paddingBottom)
|
||||
;(outerWidth = innerWidth + parseFloat(realElBorder.right) + parseFloat(realElBorder.left)),
|
||||
(outerHeight = innerHeight + parseFloat(realElBorder.bottom) + parseFloat(realElBorder.top))
|
||||
}
|
||||
|
||||
const visualizations = {
|
||||
horizontal: 'left, right',
|
||||
vertical: 'top, bottom'
|
||||
}
|
||||
|
||||
const drawPaddingRect = function (side) {
|
||||
const elStyling = {}
|
||||
|
||||
if (visualizations.horizontal.indexOf(side) >= 0) {
|
||||
elStyling['width'] = elementStyling.getPropertyValue('padding-' + side)
|
||||
elStyling['height'] = innerHeight + 'px'
|
||||
elStyling['top'] = 0
|
||||
|
||||
if (borderBox) {
|
||||
elStyling['height'] = innerHeight - parseFloat(realElBorder.top) - parseFloat(realElBorder.bottom) + 'px'
|
||||
}
|
||||
} else {
|
||||
elStyling['height'] = elementStyling.getPropertyValue('padding-' + side)
|
||||
elStyling['width'] = innerWidth + 'px'
|
||||
elStyling['left'] = 0
|
||||
|
||||
if (borderBox) {
|
||||
elStyling['width'] = innerWidth - parseFloat(realElBorder.left) - parseFloat(realElBorder.right) + 'px'
|
||||
}
|
||||
}
|
||||
|
||||
elStyling[side] = 0
|
||||
elStyling['position'] = 'absolute'
|
||||
|
||||
return elStyling
|
||||
}
|
||||
|
||||
const drawMarginRect = function (side) {
|
||||
const elStyling = {}
|
||||
|
||||
const margin = []
|
||||
margin['right'] = parseFloat(elementStyling.getPropertyValue('margin-right'))
|
||||
margin['top'] = parseFloat(elementStyling.getPropertyValue('margin-top'))
|
||||
margin['bottom'] = parseFloat(elementStyling.getPropertyValue('margin-bottom'))
|
||||
margin['left'] = parseFloat(elementStyling.getPropertyValue('margin-left'))
|
||||
|
||||
if (visualizations['horizontal'].indexOf(side) >= 0) {
|
||||
elStyling['width'] = elementStyling.getPropertyValue('margin-' + side)
|
||||
elStyling['height'] = outerHeight + margin['top'] + margin['bottom'] + 'px'
|
||||
elStyling['top'] = '-' + (margin['top'] + parseFloat(realElBorder.top)) + 'px'
|
||||
} else {
|
||||
elStyling['height'] = elementStyling.getPropertyValue('margin-' + side)
|
||||
elStyling['width'] = outerWidth + 'px'
|
||||
elStyling['left'] = '-' + realElBorder.left
|
||||
}
|
||||
|
||||
elStyling[side] = '-' + (margin[side] + parseFloat(realElBorder[side])) + 'px'
|
||||
elStyling['position'] = 'absolute'
|
||||
|
||||
return elStyling
|
||||
}
|
||||
|
||||
const setVisibility = function (el) {
|
||||
if (!config.remoteHighlight.showPaddingMargin || parseInt(el.height, 10) <= 0 || parseInt(el.width, 10) <= 0) {
|
||||
el.display = 'none'
|
||||
} else {
|
||||
el.display = 'block'
|
||||
}
|
||||
}
|
||||
|
||||
const paddingVisualizations = [
|
||||
drawPaddingRect('top'),
|
||||
drawPaddingRect('right'),
|
||||
drawPaddingRect('bottom'),
|
||||
drawPaddingRect('left')
|
||||
]
|
||||
|
||||
const marginVisualizations = [
|
||||
drawMarginRect('top'),
|
||||
drawMarginRect('right'),
|
||||
drawMarginRect('bottom'),
|
||||
drawMarginRect('left')
|
||||
]
|
||||
|
||||
const setupVisualizations = function (arr, config) {
|
||||
let i
|
||||
for (i = 0; i < arr.length; i++) {
|
||||
setVisibility(arr[i])
|
||||
|
||||
// Applies to every visualisationElement (padding or margin div)
|
||||
arr[i]['transform'] = 'none'
|
||||
const el = window.document.createElement('div'),
|
||||
styles = Object.assign({}, config, arr[i])
|
||||
|
||||
_setStyleValues(styles, el.style)
|
||||
|
||||
highlight.appendChild(el)
|
||||
}
|
||||
}
|
||||
|
||||
setupVisualizations(marginVisualizations, config.remoteHighlight.marginStyling)
|
||||
setupVisualizations(paddingVisualizations, config.remoteHighlight.paddingStyling)
|
||||
|
||||
highlight.className = HIGHLIGHT_CLASS_NAME
|
||||
|
||||
const offset = _screenOffset(element)
|
||||
|
||||
let el = element,
|
||||
offsetLeft = 0,
|
||||
offsetTop = 0
|
||||
|
||||
// Probably the easiest way to get elements position without including transform
|
||||
do {
|
||||
offsetLeft += el.offsetLeft
|
||||
offsetTop += el.offsetTop
|
||||
el = el.offsetParent
|
||||
} while (el)
|
||||
|
||||
const stylesToSet = {
|
||||
left: offsetLeft + 'px',
|
||||
top: offsetTop + 'px',
|
||||
width: innerWidth + 'px',
|
||||
height: innerHeight + 'px',
|
||||
'z-index': 2000000,
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
position: 'absolute',
|
||||
'pointer-events': 'none',
|
||||
'box-shadow': '0 0 1px #fff',
|
||||
'box-sizing': elementStyling.getPropertyValue('box-sizing'),
|
||||
'border-right': elementStyling.getPropertyValue('border-right'),
|
||||
'border-left': elementStyling.getPropertyValue('border-left'),
|
||||
'border-top': elementStyling.getPropertyValue('border-top'),
|
||||
'border-bottom': elementStyling.getPropertyValue('border-bottom'),
|
||||
transform: elementStyling.getPropertyValue('transform'),
|
||||
'transform-origin': elementStyling.getPropertyValue('transform-origin'),
|
||||
'border-color': config.remoteHighlight.borderColor
|
||||
}
|
||||
|
||||
const mergedStyles = Object.assign({}, stylesToSet)
|
||||
|
||||
const animateStartValues = config.remoteHighlight.animateStartValue
|
||||
|
||||
const animateEndValues = config.remoteHighlight.animateEndValue
|
||||
|
||||
const transitionValues = {
|
||||
'transition-property': 'opacity, background-color, transform',
|
||||
'transition-duration': '300ms, 2.3s'
|
||||
}
|
||||
|
||||
function _setStyleValues(styleValues, obj) {
|
||||
let prop
|
||||
|
||||
for (prop in styleValues) {
|
||||
obj.setProperty(prop, styleValues[prop])
|
||||
}
|
||||
}
|
||||
|
||||
_setStyleValues(mergedStyles, highlight.style)
|
||||
_setStyleValues(doAnimation ? animateStartValues : animateEndValues, highlight.style)
|
||||
|
||||
if (doAnimation) {
|
||||
_setStyleValues(transitionValues, highlight.style)
|
||||
|
||||
window.setTimeout(function () {
|
||||
_setStyleValues(animateEndValues, highlight.style)
|
||||
}, 20)
|
||||
}
|
||||
|
||||
window.document.body.appendChild(highlight)
|
||||
}
|
||||
|
||||
add(element, doAnimation) {
|
||||
if (this.elementExists(element) || element === window.document) {
|
||||
return
|
||||
}
|
||||
if (this.trigger) {
|
||||
_trigger(element, 'highlight', 1)
|
||||
}
|
||||
|
||||
if ((!window.event || window.event instanceof MessageEvent) && !isInViewport(element)) {
|
||||
let top = getDocumentOffsetTop(element)
|
||||
if (top) {
|
||||
top -= window.innerHeight / 2
|
||||
window.scrollTo(0, top)
|
||||
}
|
||||
}
|
||||
this.elements.push(element)
|
||||
|
||||
this.makeHighlightDiv(element, doAnimation)
|
||||
}
|
||||
|
||||
clear() {
|
||||
let i
|
||||
const highlights = window.document.querySelectorAll('.' + HIGHLIGHT_CLASS_NAME),
|
||||
body = window.document.body
|
||||
|
||||
for (i = 0; i < highlights.length; i++) {
|
||||
body.removeChild(highlights[i])
|
||||
}
|
||||
|
||||
if (this.trigger) {
|
||||
for (i = 0; i < this.elements.length; i++) {
|
||||
_trigger(this.elements[i], 'highlight', 0)
|
||||
}
|
||||
}
|
||||
|
||||
this.elements = []
|
||||
}
|
||||
|
||||
redraw() {
|
||||
let i, highlighted
|
||||
|
||||
// When redrawing a selector-based highlight, run a new selector
|
||||
// query to ensure we have the latest set of elements to highlight.
|
||||
if (this.selector) {
|
||||
highlighted = window.document.querySelectorAll(this.selector)
|
||||
} else {
|
||||
highlighted = this.elements.slice(0)
|
||||
}
|
||||
|
||||
this.clear()
|
||||
for (i = 0; i < highlighted.length; i++) {
|
||||
this.add(highlighted[i], false)
|
||||
}
|
||||
}
|
||||
}
|
||||
432
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/bundle/client/injected.ts
vendored
Normal file
@@ -0,0 +1,432 @@
|
||||
declare const diffDOM: any
|
||||
|
||||
import { Highlight } from './highlight'
|
||||
import { appendPathToUrl } from '../src/helpers'
|
||||
|
||||
// clone the current state of the body before any javascript
|
||||
// manipulates it inside window.addEventListener('load', (...))
|
||||
let _internalDOMBody
|
||||
|
||||
const block = (document.body) ? document.body.hasAttribute('data-server-no-reload') : false;
|
||||
|
||||
if (block) {
|
||||
console.info('[Five Server] Reload disabled due to \'data-server-no-reload\' attribute on BODY element')
|
||||
}
|
||||
if ('WebSocket' in window && !block) {
|
||||
window.addEventListener('load', () => {
|
||||
console.log('[Five Server] connecting...')
|
||||
|
||||
const script = document.querySelector('[data-id="five-server"]') as HTMLScriptElement
|
||||
|
||||
const protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://'
|
||||
const address = appendPathToUrl(`${protocol}${new URL(script.src).host}`, 'fsws')
|
||||
|
||||
// check if we need to clone the body for the "injectBody" feature or not
|
||||
const optionsInjectBody = script.getAttribute('data-inject-body')
|
||||
if (optionsInjectBody && optionsInjectBody.toString() === 'true')
|
||||
_internalDOMBody = document.body ? document.body.cloneNode(true) : undefined
|
||||
|
||||
let timer: any = null
|
||||
|
||||
const highlight = new Highlight(true)
|
||||
highlight.redraw()
|
||||
window.addEventListener('resize', () => {
|
||||
highlight.redraw()
|
||||
})
|
||||
|
||||
const CONNECTED_MSG = '[Five Server] connected.'
|
||||
const MAX_ATTEMPTS = 25
|
||||
let wait = 1000
|
||||
let attempts = 0
|
||||
let socket!: WebSocket
|
||||
|
||||
let lastPopUp = ''
|
||||
const popup = (
|
||||
message: string,
|
||||
type: 'info' | 'success' | 'error' | 'warn',
|
||||
options: { time?: number; animation?: boolean } = {}
|
||||
) => {
|
||||
const str = JSON.stringify({ message, type, options })
|
||||
|
||||
// block identical popups, except "css update"
|
||||
if (lastPopUp === str && message !== 'css updated') return
|
||||
lastPopUp = str
|
||||
|
||||
let wrapper = document.getElementById('fiveserver-info-wrapper')
|
||||
if (wrapper) wrapper.remove()
|
||||
|
||||
const { time = 3, animation = true } = options
|
||||
|
||||
wrapper = document.createElement('div')
|
||||
wrapper.id = 'fiveserver-info-wrapper'
|
||||
wrapper.classList.add(`fiveserver-info-wrapper_${type}`)
|
||||
|
||||
wrapper.style.zIndex = '100'
|
||||
wrapper.style.display = 'flex'
|
||||
wrapper.style.justifyContent = 'center'
|
||||
wrapper.style.position = 'fixed'
|
||||
wrapper.style.top = 'flex'
|
||||
|
||||
wrapper.style.left = '50%'
|
||||
wrapper.style.transform = 'translateX(-50%)'
|
||||
wrapper.style.width = '100%'
|
||||
wrapper.style.maxWidth = '80%'
|
||||
|
||||
const el = document.createElement('div')
|
||||
el.id = 'fiveserver-info'
|
||||
el.style.fontSize = '16px'
|
||||
el.style.fontFamily = 'Arial, Helvetica, sans-serif'
|
||||
el.style.color = 'white'
|
||||
el.style.backgroundColor = 'black'
|
||||
|
||||
el.style.padding = '4px 12px'
|
||||
el.style.borderRadius = '4px'
|
||||
el.style.whiteSpace = 'pre-wrap'
|
||||
|
||||
wrapper.appendChild(el)
|
||||
|
||||
document.body.appendChild(wrapper)
|
||||
|
||||
// remove popup from DOM after 'time'
|
||||
if (timer) {
|
||||
clearTimeout(timer)
|
||||
timer = null
|
||||
}
|
||||
timer = setTimeout(() => {
|
||||
if (wrapper && wrapper.isConnected) wrapper.remove()
|
||||
}, time * 1000)
|
||||
|
||||
if (type === 'error') {
|
||||
wrapper.style.top = '4px'
|
||||
wrapper.style.animation = ''
|
||||
|
||||
el.style.color = 'black'
|
||||
el.style.backgroundColor = 'red'
|
||||
} else {
|
||||
if (animation) {
|
||||
wrapper.style.top = '-40px'
|
||||
wrapper.style.animation = `fiveserverInfoPopup ${time}s forwards`
|
||||
} else {
|
||||
wrapper.style.top = '4px'
|
||||
wrapper.style.animation = ''
|
||||
}
|
||||
}
|
||||
|
||||
if (type === 'success') {
|
||||
el.style.color = '#498d76'
|
||||
el.style.backgroundColor = '#00ffa9'
|
||||
} else if (type === 'info') {
|
||||
el.style.color = '#d2e1f0'
|
||||
el.style.backgroundColor = '#2996ff'
|
||||
}
|
||||
el.innerHTML = message.replace(/</gm, '<')
|
||||
}
|
||||
|
||||
const send = (type: string, ...message: string[]) => {
|
||||
if (socket && socket?.readyState === 1) {
|
||||
socket.send(JSON.stringify({ console: { type, message } }))
|
||||
}
|
||||
}
|
||||
|
||||
const overwriteLogs = () => {
|
||||
// log
|
||||
const oldLog = console.log
|
||||
console.log = function (...message) {
|
||||
if (message[0] === CONNECTED_MSG) {
|
||||
popup('connected', 'success')
|
||||
} else {
|
||||
send('log', ...message)
|
||||
}
|
||||
oldLog.apply(console, message)
|
||||
}
|
||||
|
||||
// warn
|
||||
const oldWarn = console.warn
|
||||
console.warn = function (...message) {
|
||||
send('warn', ...message)
|
||||
oldWarn.apply(console, message)
|
||||
}
|
||||
|
||||
// error
|
||||
const oldError = console.error
|
||||
console.error = function (...message) {
|
||||
send('error', ...message)
|
||||
oldError.apply(console, message)
|
||||
}
|
||||
}
|
||||
|
||||
const refreshCSS = (showPopup: boolean) => {
|
||||
const head = document.getElementsByTagName('head')[0]
|
||||
|
||||
let sheets = Array.from(document.getElementsByTagName('link'))
|
||||
sheets = sheets.filter(sheet => /\.css/gm.test(sheet.href) || sheet.rel.toLowerCase() == 'stylesheet')
|
||||
|
||||
for (let i = 0; i < sheets.length; ++i) {
|
||||
const el = sheets[i]
|
||||
|
||||
const newEl = el.cloneNode(true) as HTMLLinkElement
|
||||
|
||||
// changing the href of the css file will make the browser refetch it
|
||||
const url = newEl.href.replace(/(&|\?)_cacheOverride=\d+/, '')
|
||||
newEl.href = `${url}${url.indexOf('?') >= 0 ? '&' : '?'}_cacheOverride=${new Date().valueOf()}`
|
||||
|
||||
newEl.onload = () => {
|
||||
setTimeout(() => el.remove(), 0)
|
||||
}
|
||||
|
||||
head.appendChild(newEl)
|
||||
}
|
||||
|
||||
if (sheets.length > 0 && showPopup) popup('css updated', 'info')
|
||||
}
|
||||
|
||||
const injectBody = body => {
|
||||
document.body.innerHTML = body
|
||||
}
|
||||
|
||||
let _diffDOMStatus = ''
|
||||
let _dd
|
||||
|
||||
const addDiffDOM = (): Promise<void> => {
|
||||
_diffDOMStatus = 'loading'
|
||||
return new Promise(resolve => {
|
||||
const url = `//${new URL(script.src).host}/fiveserver/scripts/diffDOM.js`
|
||||
const s = document.createElement('script')
|
||||
s.type = 'text/javascript'
|
||||
s.src = url
|
||||
s.onload = () => {
|
||||
setTimeout(() => {
|
||||
_dd = new diffDOM.DiffDOM()
|
||||
_diffDOMStatus = 'ready'
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
document.getElementsByTagName('head')[0].appendChild(s)
|
||||
})
|
||||
}
|
||||
|
||||
const domParser = new DOMParser()
|
||||
let diffError = false
|
||||
const updateBody = async (d: any) => {
|
||||
if (_diffDOMStatus === '') await addDiffDOM()
|
||||
|
||||
if (_diffDOMStatus === 'ready') {
|
||||
try {
|
||||
const body = _internalDOMBody
|
||||
|
||||
const newBody = domParser.parseFromString(d, 'text/html').querySelector('body')
|
||||
|
||||
const tmp = document.createElement('body')
|
||||
tmp.innerHTML = d
|
||||
|
||||
// copy all attributes
|
||||
if (newBody) {
|
||||
if (newBody.attributes.length > 0)
|
||||
for (let i = 0; i < newBody.attributes.length; i++) {
|
||||
const attr = newBody.attributes.item(i)
|
||||
if (attr) {
|
||||
const newAttr = document.createAttribute(attr.name)
|
||||
newAttr.value = attr.value
|
||||
tmp.attributes.setNamedItem(newAttr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const diff = _dd.diff(body, tmp)
|
||||
|
||||
const testBody = document.body.cloneNode(true)
|
||||
|
||||
const testSuccess = _dd.apply(testBody, diff)
|
||||
if (testSuccess) {
|
||||
const success = _dd.apply(document.body, diff)
|
||||
|
||||
if (success) {
|
||||
_internalDOMBody = tmp
|
||||
|
||||
if (diffError) {
|
||||
diffError = false
|
||||
appendMessage('HIDE')
|
||||
}
|
||||
|
||||
// scroll element into view (center of page)
|
||||
const el = document.querySelector(`[data-highlight="true"]`)
|
||||
if (el) {
|
||||
const documentOffsetTop = el => {
|
||||
return el.offsetTop + (el.offsetParent ? documentOffsetTop(el.offsetParent) : 0)
|
||||
}
|
||||
const pos = documentOffsetTop(el) - window.innerHeight / 2
|
||||
window.scrollTo(0, pos)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
diffError = true
|
||||
appendMessage('Having issues parsing the DOM.\nPlease verify that your HTML is valid...')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const appendMessages = (msg: string[]) => {
|
||||
appendMessage(msg.join('\n\n'))
|
||||
}
|
||||
|
||||
const appendMessage = (msg: string) => {
|
||||
if (msg === 'HIDE' || msg === 'HIDE_MESSAGE' || msg === 'HIDE_MESSAGES') {
|
||||
const wrapper = document.getElementById('fiveserver-info-wrapper')
|
||||
if (wrapper) wrapper.remove()
|
||||
} else {
|
||||
popup(msg, 'info', { animation: false })
|
||||
}
|
||||
}
|
||||
|
||||
const connect = () => {
|
||||
socket = new WebSocket(address)
|
||||
|
||||
socket.onmessage = function (msg) {
|
||||
wait = 1000
|
||||
attempts = 0
|
||||
|
||||
if (msg.data === 'reload') window.location.reload()
|
||||
else if (msg.data === 'refreshcss') refreshCSS(true)
|
||||
else if (msg.data === 'refreshcss-silent') refreshCSS(false)
|
||||
else if (msg.data === 'connected') {
|
||||
console.log(CONNECTED_MSG)
|
||||
// dispatch "connected" event when client is connected
|
||||
const script = document.querySelector('[data-id="five-server"]')
|
||||
if (script) script.dispatchEvent(new Event('connected'))
|
||||
} else if (msg.data === 'initRemoteLogs') overwriteLogs()
|
||||
else {
|
||||
const d = JSON.parse(msg.data)
|
||||
if (d.navigate) window.location.replace(d.navigate)
|
||||
// hot body injection
|
||||
if (d.body && d.hot) updateBody(d.body)
|
||||
// simple body replacement
|
||||
else if (d.body) injectBody(d.body)
|
||||
|
||||
// message and messages 🤣
|
||||
if (d.messages) appendMessages(d.messages)
|
||||
if (d.message) appendMessage(d.message)
|
||||
|
||||
// redraw the highlight on body update
|
||||
if (d.body) highlight.redraw()
|
||||
}
|
||||
}
|
||||
socket.onopen = function () {
|
||||
// reload page on successful reconnection
|
||||
if (attempts > 0) {
|
||||
window.location.reload()
|
||||
return
|
||||
}
|
||||
|
||||
const scripts = document.querySelectorAll('script')
|
||||
for (let i = 0; i < scripts.length; i++) {
|
||||
const script = scripts[i]
|
||||
if (script.dataset && script.dataset.file) {
|
||||
socket.send(JSON.stringify({ file: script.dataset.file }))
|
||||
}
|
||||
}
|
||||
|
||||
// add styles to body
|
||||
const style = document.createElement('style')
|
||||
style.innerHTML = `
|
||||
/* Injected by five-server */
|
||||
/*[data-highlight="true"] {
|
||||
border: 1px rgb(90,170,255) solid !important;
|
||||
background-color: rgba(155,215,255,0.5);
|
||||
animation: fadeOutHighlight 1s forwards 0.5s;
|
||||
}
|
||||
img[data-highlight="true"] {
|
||||
filter: sepia(100%) hue-rotate(180deg) saturate(200%);
|
||||
animation: fadeOutHighlightIMG 0.5s forwards 0.5s;
|
||||
}*/
|
||||
@keyframes fadeOutHighlight {
|
||||
from {background-color: rgba(155,215,255,0.5);}
|
||||
to {background-color: rgba(155,215,255,0);}
|
||||
}
|
||||
@keyframes fadeOutHighlightIMG {
|
||||
0% {filter: sepia(100%) hue-rotate(180deg) saturate(200%);}
|
||||
33% {filter: sepia(66%) hue-rotate(180deg) saturate(100%);}
|
||||
50% {filter: sepia(50%) hue-rotate(90deg) saturate(50%);}
|
||||
66% {filter: sepia(33%) hue-rotate(0deg) saturate(100%);}
|
||||
100% {filter: sepia(0%) hue-rotate(0deg) saturate(100%);}
|
||||
}
|
||||
@keyframes fiveserverInfoPopup {
|
||||
0% {top:-40px;}
|
||||
15% {top:4px;}
|
||||
85% {top:4px;}
|
||||
100% {top:-40px;}
|
||||
}
|
||||
/*smaller*/
|
||||
@media (max-width: 640px) {
|
||||
#fiveserver-info-wrapper {
|
||||
max-width: 98%;
|
||||
}
|
||||
#fiveserver-info {
|
||||
border-radius: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
`
|
||||
document.head.appendChild(style)
|
||||
}
|
||||
socket.onclose = function (e) {
|
||||
setTimeout(function () {
|
||||
popup('lost connection to dev server', 'error')
|
||||
}, 300)
|
||||
if (attempts === 0) console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason)
|
||||
|
||||
setTimeout(function () {
|
||||
attempts++
|
||||
if (attempts > 1) console.log('connecting...')
|
||||
if (attempts <= MAX_ATTEMPTS) connect()
|
||||
wait = Math.floor(wait * 1.1)
|
||||
}, wait)
|
||||
}
|
||||
socket.onerror = function (event) {
|
||||
// console.error('Socket encountered error: ', event, 'Closing socket')
|
||||
socket.close()
|
||||
}
|
||||
}
|
||||
|
||||
const MAX_STATUS_CHECK = 10
|
||||
let statusChecks = 0
|
||||
const reCheckStatus = () => {
|
||||
if (statusChecks > MAX_STATUS_CHECK) {
|
||||
console.error('[Five Server] status check failed')
|
||||
console.log('[Five Server] browser reloads in 5 seconds')
|
||||
setTimeout(() => {
|
||||
window.location.reload()
|
||||
}, 5000)
|
||||
return
|
||||
}
|
||||
console.log('[Five Server] status check...')
|
||||
setTimeout(() => {
|
||||
checkStatus()
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
const checkStatus = async () => {
|
||||
statusChecks++
|
||||
const p = new URL(script.src).protocol
|
||||
const h = new URL(script.src).host
|
||||
|
||||
const url = `${p}//${h}/fiveserver/status`
|
||||
|
||||
try {
|
||||
const res = await fetch(url)
|
||||
const json = await res.json()
|
||||
|
||||
if (json && json.status && json.status === 'online') {
|
||||
connect()
|
||||
statusChecks = 0
|
||||
} else {
|
||||
reCheckStatus()
|
||||
}
|
||||
} catch (error) {
|
||||
reCheckStatus()
|
||||
}
|
||||
}
|
||||
|
||||
checkStatus()
|
||||
})
|
||||
}
|
||||
BIN
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/bundle/public/favicon.ico
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,168 @@
|
||||
html,
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
ul,
|
||||
li,
|
||||
pre,
|
||||
code {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
html {
|
||||
background: rgb(255, 255, 255);
|
||||
background: linear-gradient(
|
||||
0deg,
|
||||
rgba(255, 255, 255, 1) 0%,
|
||||
rgba(255, 255, 255, 1) 25%,
|
||||
rgba(255, 255, 255, 1) 75%,
|
||||
rgba(246, 246, 246, 1) 100%
|
||||
);
|
||||
background-size: 100vw 100vh;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
body {
|
||||
padding: 80px 100px 20px 100px;
|
||||
font: 14px 'Helvetica Neue', 'Lucida Grande', 'Arial';
|
||||
color: #555;
|
||||
max-width: 1024px;
|
||||
margin: 0 auto;
|
||||
min-height: calc(100vh - 120px);
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-size: 22px;
|
||||
color: #343434;
|
||||
}
|
||||
h1 em,
|
||||
h2 em {
|
||||
padding: 0 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 60px;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 10px;
|
||||
}
|
||||
h3 {
|
||||
margin: 5px 0 10px 0;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 18px;
|
||||
}
|
||||
ul li {
|
||||
list-style: none;
|
||||
}
|
||||
ul li:hover {
|
||||
cursor: pointer;
|
||||
color: #2e2e2e;
|
||||
}
|
||||
ul li .path {
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
ul li .line {
|
||||
padding-right: 5px;
|
||||
font-style: italic;
|
||||
}
|
||||
ul li:first-child .path {
|
||||
padding-left: 0;
|
||||
}
|
||||
p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
a {
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: #303030;
|
||||
}
|
||||
#stacktrace {
|
||||
margin-top: 15px;
|
||||
}
|
||||
#wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
min-height: calc(100vh - 120px);
|
||||
}
|
||||
.directory h1 {
|
||||
margin-bottom: 15px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.preview .image,
|
||||
.preview code {
|
||||
/* min-width: calc(100vw - 200px - 32px); */
|
||||
min-height: 160px;
|
||||
padding: 16px;
|
||||
font-size: 14px;
|
||||
border: 1px solid #e9e9e9;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 4px 1px rgb(0 0 0 / 10%);
|
||||
}
|
||||
.preview .image {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.footer {
|
||||
text-align: right;
|
||||
padding-top: 32px;
|
||||
color: #d6d6d6;
|
||||
}
|
||||
.footer a {
|
||||
color: #ababab;
|
||||
}
|
||||
|
||||
/*small*/
|
||||
@media (max-width: 768px) {
|
||||
body {
|
||||
padding: 80px 24px 40px 24px;
|
||||
}
|
||||
}
|
||||
|
||||
/*smaller*/
|
||||
@media (max-width: 640px) {
|
||||
}
|
||||
|
||||
/*mobile*/
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
padding: 0;
|
||||
}
|
||||
.directory h1 {
|
||||
font-size: 2em;
|
||||
line-height: 1.5em;
|
||||
color: rgb(0, 0, 0);
|
||||
background: rgb(255, 255, 255);
|
||||
padding: 15px 10px;
|
||||
margin: 0;
|
||||
}
|
||||
.message {
|
||||
border-top: 1px solid #cacaca;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
.preview .image,
|
||||
.preview code {
|
||||
min-width: calc(100vw - 200px - 32px);
|
||||
min-height: 160px;
|
||||
padding: 16px;
|
||||
padding-bottom: 0px;
|
||||
font-size: 14px;
|
||||
border: none;
|
||||
margin: 0;
|
||||
border-radius: 0px;
|
||||
box-shadow: none;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
function $(id) {
|
||||
const el = 'string' == typeof id ? document.getElementById(id) : id
|
||||
|
||||
el.on = function (event, fn) {
|
||||
if ('content loaded' == event) {
|
||||
event = window.attachEvent ? 'load' : 'DOMContentLoaded'
|
||||
}
|
||||
el.addEventListener ? el.addEventListener(event, fn, false) : el.attachEvent(`on${event}`, fn)
|
||||
}
|
||||
|
||||
el.all = function (selector) {
|
||||
return $(el.querySelectorAll(selector))
|
||||
}
|
||||
|
||||
el.each = function (fn) {
|
||||
for (let i = 0, len = el.length; i < len; ++i) {
|
||||
fn($(el[i]), i)
|
||||
}
|
||||
}
|
||||
|
||||
el.getClasses = function () {
|
||||
const c = this.getAttribute('class')
|
||||
if (c) return c.split(/\s+/)
|
||||
return []
|
||||
}
|
||||
|
||||
el.addClass = function (name) {
|
||||
const classes = this.getAttribute('class')
|
||||
if (!el.getAttribute(name)) el.setAttribute('class', classes ? `${classes} ${name}` : name)
|
||||
}
|
||||
|
||||
el.removeClass = function (name) {
|
||||
const classes = this.getClasses().filter(function (curr) {
|
||||
return curr != name
|
||||
})
|
||||
this.setAttribute('class', classes.join(' '))
|
||||
}
|
||||
|
||||
return el
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Files used by server-explorer
|
||||
|
||||
.svg icons are from https://github.com/PKief/vscode-material-icon-theme/tree/master/icons
|
||||
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>listing directory {directory}</title>
|
||||
<link rel="stylesheet" href="/fiveserver/scripts/directory.css" />
|
||||
<style>
|
||||
{style}
|
||||
</style>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="{filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<script src="/fiveserver/scripts/query.js"></script>
|
||||
<script>
|
||||
function search() {
|
||||
var str = $("search").value.toLowerCase();
|
||||
// var links = $("files").all("a"); // for highlight
|
||||
var list = $("files").all("li");
|
||||
|
||||
list.each(function (li) {
|
||||
var link = $(li.firstChild);
|
||||
var text = link.textContent.toLowerCase();
|
||||
|
||||
if (".." == text) return;
|
||||
|
||||
const match = str.length && ~text.indexOf(str);
|
||||
|
||||
// highlight
|
||||
// if (match) {
|
||||
// link.addClass("highlight");
|
||||
// } else {
|
||||
// link.removeClass("highlight");
|
||||
// }
|
||||
|
||||
// hide
|
||||
if (match) {
|
||||
li.removeClass("hidden");
|
||||
} else {
|
||||
li.addClass("hidden");
|
||||
}
|
||||
|
||||
if (str.length === 0) li.removeClass("hidden");
|
||||
});
|
||||
}
|
||||
|
||||
$(window).on("content loaded", function () {
|
||||
$("search").on("keyup", search);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<input id="search" type="text" placeholder="Search" autocomplete="off" />
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="directory">
|
||||
<h1><a href="/">~</a>{linked-path}</h1>
|
||||
{files}
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>Explorer Developed by <a href="https://github.com/yandeu">@yandeu</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16,9V7H12V12.5C11.58,12.19 11.07,12 10.5,12A2.5,2.5 0 0,0 8,14.5A2.5,2.5 0 0,0 10.5,17A2.5,2.5 0 0,0 13,14.5V9H16M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z" fill="#ef5350"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 363 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m16.45 15.97.42 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96-1.14-1.27-1.68-2.88-1.68-4.83.04-2.31.72-4.08 2.04-5.32 1.28-1.25 2.92-1.89 4.9-1.89.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.6 2.49-1.04-.34c-.4-.1-.87-.15-1.4-.15-1.15-.01-2.11.36-2.86 1.1-.76.73-1.14 1.85-1.18 3.34.01 1.36.37 2.42 1.08 3.2.71.77 1.7 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.09-.32z" style="fill:#0277bd"/></svg>
|
||||
|
After Width: | Height: | Size: 501 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m4 2.5c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2h8v5l3-3 3 3v-5h2a2 2 0 0 0 2 -2v-10a2 2 0 0 0 -2 -2h-16m8 2 3 2 3-2v3.5l3 1.5-3 1.5v3.5l-3-2-3 2v-3.5l-3-1.5 3-1.5v-3.5m-8 0h5v2h-5v-2m0 4h3v2h-3v-2m0 4h5v2h-5z" fill="#ff5722"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 312 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m11 7.5v5.11l4.71 2.79.79-1.28-4-2.37v-4.25m0-5c-3.53 0-6.59 1.92-8.23 4.77l-2.27-2.27v6.5h6.5l-2.75-2.75c1.21-2.52 3.75-4.25 6.75-4.25a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1 -7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5a9.5 9.5 0 0 0 -9.5 -9.5z" style="fill:#8bc34a"/></svg>
|
||||
|
After Width: | Height: | Size: 396 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="25.6" height="25.6" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m20 19v-12h-16v12h16m0-16a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2v-14c0-1.11.9-2 2-2h16m-7 14v-2h5v2h-5m-3.42-4-4.01-4h2.83l3.3 3.3c.39.39.39 1.03 0 1.42l-3.28 3.28h-2.83z" fill="#ff7043"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 320 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m10 15.97.41 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96-1.12-1.27-1.68-2.88-1.68-4.83.05-2.31.72-4.08 2-5.32 1.32-1.25 2.96-1.89 4.94-1.89.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49-1.06-.34c-.4-.1-.86-.15-1.39-.15-1.16-.01-2.12.36-2.87 1.1-.76.73-1.15 1.85-1.18 3.34 0 1.36.37 2.42 1.08 3.2.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32m.5-4.97h2v-2h2v2h2v2h-2v2h-2v-2h-2v-2m7 0h2v-2h2v2h2v2h-2v2h-2v-2h-2z" style="fill:#0277bd"/></svg>
|
||||
|
After Width: | Height: | Size: 566 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m5 3l-.65 3.34h13.59l-.44 2.16h-13.58l-.66 3.33h13.59l-.76 3.81-5.48 1.81-4.75-1.81.33-1.64h-3.34l-.79 4 7.85 3 9.05-3 1.2-6.03.24-1.21 1.54-7.76h-16.94z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 263 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 3c-4.42 0-8 1.79-8 4s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4m-8 6v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4m0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4z" style="fill:#ffca28"/></svg>
|
||||
|
After Width: | Height: | Size: 309 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 14.5c-1.3875 0-2.5-1.125-2.5-2.5 0-1.3875 1.1125-2.5 2.5-2.5s2.5 1.1125 2.5 2.5a2.5 2.5 0 0 1-2.5 2.5m0-12.5a10 10 0 0 0-10 10 10 10 0 0 0 10 10 10 10 0 0 0 10-10 10 10 0 0 0-10-10z" style="fill:#b0bec5;stroke-width:1.25"/></svg>
|
||||
|
After Width: | Height: | Size: 317 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-.9-2-2v-16c0-1.11.89-2 2-2m9 16v-2h-9v2h9m3-4v-2h-12v2h12z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 234 B |
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg width="300" height="300" version="1.1" viewBox="0 0 299.99999 300.00001" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g transform="matrix(1.0344 0 0 1.0344 -2.8803 18.438)"><path d="m97.021 99.016 48.432-27.962c1.212-0.7 2.706-0.7 3.918 0l48.433 27.962c1.211 0.7 1.959 1.993 1.959 3.393v55.924c0 1.399-0.748 2.693-1.959 3.394l-48.433 27.962c-1.212 0.7-2.706 0.7-3.918 0l-48.432-27.962c-1.212-0.7-1.959-1.994-1.959-3.394v-55.924c1e-3 -1.4 0.748-2.693 1.959-3.393" fill="#7986cb"/><path d="m273.34 124.49-57.867-100.67c-2.102-3.64-5.985-6.325-10.188-6.325h-115.74c-4.204 0-8.088 2.685-10.19 6.325l-57.867 100.45c-2.102 3.641-2.102 8.236 0 11.877l57.867 99.847c2.102 3.64 5.986 5.501 10.19 5.501h115.74c4.203 0 8.087-1.805 10.188-5.446l57.867-100.01c2.104-3.639 2.104-7.907 1e-3 -11.547m-47.917 48.41c0 1.48-0.891 2.849-2.174 3.59l-73.71 42.527c-1.282 0.74-2.888 0.74-4.17 0l-73.767-42.527c-1.282-0.741-2.179-2.109-2.179-3.59v-85.055c0-1.481 0.884-2.849 2.167-3.59l73.707-42.527c1.282-0.741 2.886-0.741 4.168 0l73.772 42.527c1.283 0.741 2.186 2.109 2.186 3.59z" fill="#3f51b5"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-.9-2-2v-16c0-1.11.89-2 2-2m5 2h-5v16h5 7v-9h-7v-7z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 226 B |
@@ -0,0 +1,326 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg4"
|
||||
sodipodi:docname="fiveserver.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter1214">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer1212">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR1206" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG1208" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB1210" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix1310" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix1312"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite1314"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4568">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4560">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4554" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4556" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4558" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4562" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4564"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4566"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4584">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4576">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4570" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4572" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4574" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4578" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4580"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4582"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4600">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4592">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4586" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4588" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4590" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4594" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4596"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4598"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4616">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4608">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4602" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4604" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4606" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4610" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4612"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4614"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1346"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="3.7439381"
|
||||
inkscape:cy="12.69948"
|
||||
inkscape:window-x="-11"
|
||||
inkscape:window-y="49"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<g
|
||||
id="g1527"
|
||||
transform="matrix(0.34104959,0,0,0.34104959,-132.83244,-85.218532)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1507"
|
||||
d="m 420.18,269.92 -2.36,10.16 c 1.08,0.96 2.19,1.9 3.27,2.86 a 4.76,4.76 0 1 1 -1,2.95 v -0.02 -0.03 -0.01 l -3.54,0.01 a 8.3,8.3 0 1 0 5.44,-7.78 l 1.21,-4.45 h 7.36 l 1.94,-3.69 z"
|
||||
style="opacity:1;fill:#7b1fa2;fill-opacity:1;stroke:none;stroke-width:0.93546373;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter1214)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,376.63,254.42)"
|
||||
style="fill:#ce93d8;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 35.2,63.1 c 0.1,-16.9 5.4,-31.5 16.3,-43.9 2.9,-3.3 6,-7.3 10.7,-3.1 4.2,3.8 1.3,7.4 -1.5,10.7 -13.7,16 -17.1,34.1 -10.6,54 2.2,6.9 6.2,12.9 11,18.3 2.8,3.2 4.8,6.8 0.9,10.2 -4,3.5 -7.1,0.8 -9.9,-2.4 C 40.8,94.4 35.2,79.6 35.2,63.1 Z"
|
||||
id="path1509" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,374.1,254.42)"
|
||||
style="fill:#ce93d8;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 166.5,63.6 c -0.2,16.4 -6,31.2 -17.4,43.7 -2.7,3 -5.7,5.4 -9.5,2.3 -4,-3.3 -2.4,-7 0.6,-10.2 17.1,-18 18.5,-45.6 6.6,-64.5 -2,-3.1 -4.3,-6 -6.6,-8.9 -2.8,-3.3 -4.5,-6.9 -0.6,-10.2 3.8,-3.2 6.8,-0.7 9.5,2.2 11.6,12.9 17.4,27.8 17.4,45.6 z"
|
||||
id="path1511" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,376.43,254.42)"
|
||||
style="fill:#9c27b0;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 57.5,63.1 c 0.3,-11.5 4,-21.3 11.4,-29.6 2.7,-3 5.7,-4.5 9.1,-1.6 3.4,2.9 2.5,6.3 -0.1,9.2 -6.5,7.4 -9.3,15.8 -8.2,25.6 0.7,6.1 3.1,11.4 7,16.1 2.8,3.3 5.6,7 1.2,10.6 -4.7,3.9 -7.7,0 -10.6,-3.5 -6.5,-7.8 -9.5,-17 -9.8,-26.8 z"
|
||||
id="path1513" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,374.37,254.42)"
|
||||
style="fill:#9c27b0;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 144.1,63.6 c -0.3,10.2 -3.9,19.9 -11.4,28.3 -2.7,3 -5.7,4.5 -9.1,1.7 -3.4,-2.8 -2.3,-6.1 0,-9.3 11.7,-15.9 11.7,-27.2 0,-43.1 -2.3,-3.2 -3.5,-6.4 -0.1,-9.3 3.4,-2.9 6.4,-1.4 9.1,1.5 7.1,7.8 11.5,18.7 11.5,30.2 z"
|
||||
id="path1515" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;fill:#7b1fa2;fill-opacity:1;stroke:none;stroke-width:0.93546373;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 419.95,269.15 -2.37,10.16 c 1.09,0.97 2.19,1.9 3.27,2.86 a 4.76,4.76 0 1 1 -1,2.95 v -0.02 -0.02 -0.02 l -3.54,0.02 a 8.3,8.3 0 1 0 5.44,-7.8 l 1.21,-4.44 h 7.37 l 1.93,-3.69 z"
|
||||
id="path1517" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1519"
|
||||
d="m 392.57,285.23 c 0.05,-8.26 2.64,-15.4 7.97,-21.45 1.42,-1.62 2.93,-3.57 5.23,-1.52 2.06,1.86 0.64,3.62 -0.73,5.23 -6.7,7.82 -8.36,16.67 -5.18,26.4 a 25.03,25.03 0 0 0 5.37,8.94 c 1.37,1.57 2.35,3.33 0.44,4.99 -1.95,1.7 -3.47,0.39 -4.83,-1.18 a 31.07,31.07 0 0 1 -8.27,-21.4 z"
|
||||
class="st0"
|
||||
style="fill:#ce93d8;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1521"
|
||||
d="m 456.76,285.48 a 31.51,31.51 0 0 1 -8.5,21.36 c -1.33,1.47 -2.8,2.64 -4.65,1.12 -1.96,-1.6 -1.18,-3.42 0.29,-4.98 8.36,-8.8 9.04,-22.3 3.23,-31.53 a 55.58,55.58 0 0 0 -3.23,-4.35 c -1.37,-1.61 -2.2,-3.37 -0.3,-4.99 1.86,-1.56 3.33,-0.34 4.65,1.08 a 32,32 0 0 1 8.5,22.29 z"
|
||||
class="st0"
|
||||
style="fill:#ce93d8;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1523"
|
||||
d="m 403.47,285.23 c 0.15,-5.62 1.96,-10.4 5.58,-14.46 1.32,-1.47 2.78,-2.2 4.45,-0.79 1.66,1.42 1.22,3.08 -0.05,4.5 a 15.5,15.5 0 0 0 -4.01,12.51 14.7,14.7 0 0 0 3.42,7.87 c 1.37,1.62 2.74,3.43 0.59,5.19 -2.3,1.9 -3.77,0 -5.18,-1.71 a 20.98,20.98 0 0 1 -4.8,-13.1 z"
|
||||
class="st0"
|
||||
style="fill:#9c27b0;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1525"
|
||||
d="m 445.8,285.48 a 21.3,21.3 0 0 1 -5.57,13.83 c -1.32,1.47 -2.78,2.2 -4.44,0.83 -1.67,-1.37 -1.13,-2.98 0,-4.54 5.71,-7.77 5.71,-13.3 0,-21.07 -1.13,-1.56 -1.72,-3.13 -0.05,-4.55 1.66,-1.41 3.13,-0.68 4.44,0.74 a 22.12,22.12 0 0 1 5.63,14.76 z"
|
||||
class="st0"
|
||||
style="fill:#9c27b0;fill-opacity:1;stroke-width:0.48881707" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
clip-rule="evenodd"
|
||||
fill-rule="evenodd"
|
||||
stroke-linejoin="round"
|
||||
stroke-miterlimit="1.4142"
|
||||
version="1.1"
|
||||
viewBox="0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg6"
|
||||
sodipodi:docname="folder-ios.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
|
||||
id="metadata12"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs10" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="794"
|
||||
inkscape:window-height="480"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" /><path
|
||||
d="m10 4h-6c-1.11 0-2 .89-2 2v12c0 1.097.903 2 2 2h16c1.097 0 2-.903 2-2v-10c0-1.11-.9-2-2-2h-8l-2-2z"
|
||||
fill="#e57373"
|
||||
fill-rule="nonzero"
|
||||
style="fill:#78909c"
|
||||
id="path2" /></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8.9803 14.538 3.0197-8.0313 3.007 8.0313m-4.2757-11.419-6.9782 17.763h2.8547l1.421-3.8063h7.9298l1.4337 3.8063h2.8547l-6.9782-17.763z" fill="#f44336" stroke-width="1.2688"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 266 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z" fill="#e64a19"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 662 B |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#0277bd" aria-label="h">
|
||||
<path d="m16.745 19.818h-3.0066v-5.8824q0-2.381-1.7367-2.381-0.86836 0-1.4379 0.66294-0.56023 0.66294-0.56023 1.718v5.8824h-3.0159v-15.285h3.0159v6.508h0.03735q1.1858-1.8021 3.1933-1.8021 3.5108 0 3.5108 4.2391z" fill="#0277bd" stroke-width=".47806"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 439 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 17.56l4.07-1.13.55-6.1h-7.24l-.18-2.03h7.6l.2-1.99h-10l.56 6.01h6.89l-.23 2.58-2.22.6-2.22-.6-.14-1.66h-2l.29 3.19 4.07 1.13m-7.93-14.56h15.86l-1.43 16.2-6.5 1.8-6.5-1.8-1.43-16.2z" fill="#e44d26"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 294 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12.976 9.0724h5.3677l-5.3677-5.3677v5.3677m-6.8316-6.8316h7.8075l5.8557 5.8557v11.711a1.9519 1.9519 0 0 1 -1.9519 1.9519h-11.711c-1.0833 0-1.9519-.87835-1.9519-1.9519v-15.615c0-1.0833.86859-1.9519 1.9519-1.9519m0 17.567h11.711v-7.8075l-3.9038 3.9038-1.9519-1.9519-5.8557 5.8557m1.9519-10.735a1.9519 1.9519 0 0 0 -1.9519 1.9519 1.9519 1.9519 0 0 0 1.9519 1.9519 1.9519 1.9519 0 0 0 1.9519 -1.9519 1.9519 1.9519 0 0 0 -1.9519 -1.9519z" fill="#26a69a" stroke-width=".97594"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 565 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m2 21h18v-2h-18m18-11h-2v-3h2m0-2h-16v10a4 4 0 0 0 4 4h6a4 4 0 0 0 4 -4v-3h2a2 2 0 0 0 2 -2v-3c0-1.11-.9-2-2-2z" fill="#f44336"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 221 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m3 3h18v18h-18v-18m4.73 15.04c.4.85 1.19 1.55 2.54 1.55 1.5 0 2.53-.8 2.53-2.55v-5.78h-1.7v5.74c0 .86-.35 1.08-.9 1.08-.58 0-.82-.4-1.09-.87l-1.38.83m5.98-.18c.5.98 1.51 1.73 3.09 1.73 1.6 0 2.8-.83 2.8-2.36 0-1.41-.81-2.04-2.25-2.66l-.42-.18c-.73-.31-1.04-.52-1.04-1.02 0-.41.31-.73.81-.73.48 0 .8.21 1.09.73l1.31-.87c-.55-.96-1.33-1.33-2.4-1.33-1.51 0-2.48.96-2.48 2.23 0 1.38.81 2.03 2.03 2.55l.42.18c.78.34 1.24.55 1.24 1.13 0 .48-.45.83-1.15.83-.83 0-1.31-.43-1.67-1.03l-1.38.8z" fill="#ffca28"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 593 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5 3h2v2h-2v5a2 2 0 0 1 -2 2 2 2 0 0 1 2 2v5h2v2h-2c-1.07-.27-2-.9-2-2v-4a2 2 0 0 0 -2 -2h-1v-2h1a2 2 0 0 0 2 -2v-4a2 2 0 0 1 2 -2m14 0a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1v2h-1a2 2 0 0 0 -2 2v4a2 2 0 0 1 -2 2h-2v-2h2v-5a2 2 0 0 1 2 -2 2 2 0 0 1 -2 -2v-5h-2v-2h2m-7 12a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1m-4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1m8 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" style="fill:#fbc02d"/></svg>
|
||||
|
After Width: | Height: | Size: 567 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m7 14a2 2 0 0 1 -2 -2 2 2 0 0 1 2 -2 2 2 0 0 1 2 2 2 2 0 0 1 -2 2m5.65-4c-.82-2.33-3.04-4-5.65-4a6 6 0 0 0 -6 6 6 6 0 0 0 6 6c2.61 0 4.83-1.67 5.65-4h4.35v4h4v-4h2v-4z" fill="#26a69a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 277 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g transform="translate(130.53 -446.84)"><g transform="matrix(1.1065 0 0 1.1065 -22.624 -62.89)"></g><g transform="translate(-40.058 5e-6)"><path transform="translate(-56.769)" d="m72.489 479.59v.026c-2.4065-.0133-4.585-.0221-6.3269-.0177-7.537-.0658-13.846 4.0527-19.333 8.3466-5.9882 4.7034-11.114 10.842-12.72 19.065-.91522 4.8224-.72156 9.0372-.72156 13.248v33.184c0 11.717-4.3603 20.424-10.274 26.123-3.3311 3.2996-10.442 6.3131-18.529 9.0366v14.99c7.1674 1.976 14.067 4.6508 17.894 8.0478 6.3357 5.5351 10.902 13.499 10.902 23.904v38.754c0 12.875 3.0716 22.682 12.007 29.409 8.9364 6.7231 19.351 10.067 31.244 10.392l7.9592-.0531v-19.324c-6.2085-1.8172-9.6574-3.9248-12.144-6.3097-4.4749-4.0527-7.0091-10.635-7.0091-19.777v-31.292c-.17153-10.643-1.8874-18.968-5.7636-24.992-3.8761-6.0104-11.44-11.281-22.695-15.822 12.421-5.6889 20.755-13.108 25.005-22.259 2.5039-5.4426 3.4539-12.782 3.4539-22.012v-28.692c0-9.4776 2.1995-16.117 6.0104-19.909 2.0678-2.059 5.7459-3.7533 10.855-5.1256l8.0782.0564v-18.998h-17.894v.001z" style="fill:#0277bd"/><path transform="translate(-56.769)" d="m160.1 479.59v.026c2.4065-.0133 4.585-.0221 6.3269-.0177 7.5372-.0658 13.846 4.0527 19.333 8.3466 5.9883 4.7034 11.114 10.842 12.72 19.065.91522 4.8224.72155 9.0372.72155 13.248v33.184c0 11.717 4.3603 20.424 10.274 26.123 3.3311 3.2996 10.442 6.3131 18.529 9.0366v14.99c-7.1674 1.976-14.067 4.6508-17.894 8.0478-6.3358 5.5351-10.902 13.499-10.902 23.904v38.754c0 12.875-3.0716 22.682-12.008 29.409-8.9366 6.7231-19.351 10.067-31.244 10.392l-7.9592-.0531v-19.324c6.2085-1.8172 9.6574-3.9248 12.144-6.3097 4.4749-4.0527 7.0092-10.635 7.0092-19.777v-31.292c.17154-10.643 1.8875-18.968 5.7637-24.992 3.8762-6.0104 11.44-11.282 22.695-15.822-12.421-5.6889-20.755-13.108-25.005-22.259-2.5039-5.4426-3.454-12.782-3.454-22.012v-28.692c0-9.4776-2.1996-16.117-6.0104-19.909-2.0678-2.059-5.7459-3.7533-10.855-5.1256l-8.0782.0564v-18.998h17.894v.001z" style="fill:#0277bd"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m2.25 15.75v-8h2l3 3 3-3h2v8h-2v-5.17l-3 3-3-3v5.17h-2m14-8h3v4h2.5l-4 4.5-4-4.5h2.5z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 195 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24">
|
||||
<path fill="#8bc34a" d="m12 1.85c-.27 0-.55.07-.78.2l-7.44 4.3c-.48.28-.78.8-.78 1.36v8.58c0 .56.3 1.08.78 1.36l1.95 1.12c.95.46 1.27.47 1.71.47 1.4 0 2.21-.85 2.21-2.33v-8.47c0-.12-.1-.22-.22-.22h-.93c-.13 0-.23.1-.23.22v8.47c0 .66-.68 1.31-1.77.76l-2.05-1.17c-.07-.05-.11-.13-.11-.21v-8.58c0-.09.04-.17.11-.21l7.44-4.29c.06-.04.16-.04.22 0l7.44 4.29c.07.04.11.12.11.21v8.58c0 .08-.04.16-.11.21l-7.44 4.29c-.06.04-.16.04-.23 0l-1.88-1.14c-.08-.03-.16-.04-.21-.01-.53.3-.63.36-1.12.51-.12.04-.31.11.07.32l2.48 1.47c.24.14.5.21.78.21s.54-.07.78-.21l7.44-4.29c.48-.28.78-.8.78-1.36v-8.58c0-.56-.3-1.08-.78-1.36l-7.44-4.3c-.23-.13-.5-.2-.78-.2m2 6.15c-2.12 0-3.39.89-3.39 2.39 0 1.61 1.26 2.08 3.3 2.28 2.43.24 2.62.6 2.62 1.08 0 .83-.67 1.18-2.23 1.18-1.98 0-2.4-.49-2.55-1.47-.02-.1-.11-.18-.22-.18h-.96c-.12 0-.21.09-.21.22 0 1.24.68 2.74 3.94 2.74 2.35 0 3.7-.93 3.7-2.55 0-1.61-1.08-2.03-3.37-2.34-2.31-.3-2.54-.46-2.54-1 0-.45.2-1.05 1.91-1.05 1.5 0 2.09.33 2.32 1.36.02.1.11.17.21.17h.97c.05 0 .11-.02.15-.07.04-.04.07-.1.05-.16-.14-1.78-1.32-2.6-3.7-2.6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg data-name="Layer 1" version="1.1" viewBox="0 0 990 990" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#cb3837;}.cls-2{fill:#fff;}</style>
|
||||
</defs>
|
||||
<title>n</title>
|
||||
<path class="cls-1" d="m113.26 876.74v-763.47h763.47v763.47zm143.59-620.4v476.18h240.61v-376.89h140.21v376.96h95.457v-476.25z" fill="#e53935" stroke-width=".77119"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 402 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-.9-2-2v-16a2 2 0 0 1 2 -2m4.93 10.44c.41.9.93 1.64 1.53 2.15l.41.32c-.87.16-2.07.44-3.34.93l-.11.04.5-1.04c.45-.87.78-1.66 1.01-2.4m6.48 3.81c.18-.18.27-.41.28-.66.03-.2-.02-.39-.12-.55-.29-.47-1.04-.69-2.28-.69l-1.29.07-.87-.58c-.63-.52-1.2-1.43-1.6-2.56l.04-.14c.33-1.33.64-2.94-.02-3.6-.16-.16-.38-.24-.61-.24h-.24c-.37 0-.7.39-.79.77-.37 1.33-.15 2.06.22 3.27v.01c-.25.88-.57 1.9-1.08 2.93l-.96 1.8-.89.49c-1.2.75-1.77 1.59-1.88 2.12-.04.19-.02.36.05.54l.03.05.48.31.44.11c.81 0 1.73-.95 2.97-3.07l.18-.07c1.03-.33 2.31-.56 4.03-.75 1.03.51 2.24.74 3 .74.44 0 .74-.11.91-.3m-.41-.71l.09.11c-.01.1-.04.11-.09.13h-.04l-.19.02c-.46 0-1.17-.19-1.9-.51.09-.1.13-.1.23-.1 1.4 0 1.8.25 1.9.35m-9.17 1.46c-.65 1.19-1.24 1.85-1.69 2 .05-.38.5-1.04 1.21-1.69l.48-.31m3.02-6.91c-.23-.9-.24-1.63-.07-2.05l.07-.12.15.05c.17.24.19.56.09 1.1l-.03.16-.16.82z" style="fill:#f44336"/></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z" fill="#1E88E5" /></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,35 @@
|
||||
<svg version="1.1" viewBox="0 0 210 210" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>prettier-icon-dark</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g id="prettier-icon-dark">
|
||||
<g id="Icon-(Dark)">
|
||||
<g id="Group" transform="translate(10.5 10.5) scale(.9)">
|
||||
<rect id="Rectangle" x="165" y="40" width="20" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="15" y="200" width="60" height="10" rx="5" fill="#EA5E5E"/>
|
||||
<rect x="135" y="120" width="40" height="10" rx="5" fill="#BF85BF"/>
|
||||
<rect x="75" y="120" width="50" height="10" rx="5" fill="#EA5E5E"/>
|
||||
<rect x="15" y="120" width="50" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="15" y="160" width="60" height="10" rx="5" fill="#BF85BF"/>
|
||||
<rect x="15" y="80" width="60" height="10" rx="5" fill="#BF85BF"/>
|
||||
<rect x="65" y="20" width="110" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="15" y="20" width="40" height="10" rx="5" fill="#EA5E5E"/>
|
||||
<rect x="55" y="180" width="20" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="55" y="60" width="20" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="15" y="180" width="30" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="15" y="60" width="30" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="95" y="100" width="90" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="45" y="100" width="40" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="15" y="100" width="20" height="10" rx="5" fill="#EA5E5E"/>
|
||||
<rect x="105" y="40" width="50" height="10" rx="5" fill="#BF85BF"/>
|
||||
<rect x="15" y="40" width="80" height="10" rx="5" fill="#56B3B4"/>
|
||||
<rect x="45" y="140" width="100" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="15" y="140" width="20" height="10" rx="5" fill="#BF85BF"/>
|
||||
<rect x="135" y="60" width="60" height="10" rx="5" fill="#EA5E5E"/>
|
||||
<rect x="135" y="80" width="60" height="10" rx="5" fill="#F7BA3E"/>
|
||||
<rect x="15" width="130" height="10" rx="5" fill="#56B3B4"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 10.11c1.03 0 1.87.84 1.87 1.89 0 1-.84 1.85-1.87 1.85s-1.87-.85-1.87-1.85c0-1.05.84-1.89 1.87-1.89m-4.63 9.89c.63.38 2.01-.2 3.6-1.7-.52-.59-1.03-1.23-1.51-1.9-.82-.08-1.63-.2-2.4-.36-.51 2.14-.32 3.61.31 3.96m.71-5.74l-.29-.51c-.11.29-.22.58-.29.86.27.06.57.11.88.16l-.3-.51m6.54-.76l.81-1.5-.81-1.5c-.3-.53-.62-1-.91-1.47-.54-.03-1.11-.03-1.71-.03s-1.17 0-1.71.03c-.29.47-.61.94-.91 1.47l-.81 1.5.81 1.5c.3.53.62 1 .91 1.47.54.03 1.11.03 1.71.03s1.17 0 1.71-.03c.29-.47.61-.94.91-1.47m-2.62-6.72c-.19.22-.39.45-.59.72h.59.59c-.2-.27-.4-.5-.59-.72m0 10.44c.19-.22.39-.45.59-.72h-.59-.59c.2.27.4.5.59.72m4.62-13.22c-.62-.38-2 .2-3.59 1.7.52.59 1.03 1.23 1.51 1.9.82.08 1.63.2 2.4.36.51-2.14.32-3.61-.32-3.96m-.7 5.74l.29.51c.11-.29.22-.58.29-.86-.27-.06-.57-.11-.88-.16l.3.51m1.45-7.05c1.47.84 1.63 3.05 1.01 5.63 2.54.75 4.37 1.99 4.37 3.68s-1.83 2.93-4.37 3.68c.62 2.58.46 4.79-1.01 5.63-1.46.84-3.45-.12-5.37-1.95-1.92 1.83-3.91 2.79-5.38 1.95-1.46-.84-1.62-3.05-1-5.63-2.54-.75-4.37-1.99-4.37-3.68s1.83-2.93 4.37-3.68c-.62-2.58-.46-4.79 1-5.63 1.47-.84 3.46.12 5.38 1.95 1.92-1.83 3.91-2.79 5.37-1.95m-.29 9.31c.34.75.64 1.5.89 2.26 2.1-.63 3.28-1.53 3.28-2.26s-1.18-1.63-3.28-2.26c-.25.76-.55 1.51-.89 2.26m-10.16 0c-.34-.75-.64-1.5-.89-2.26-2.1.63-3.28 1.53-3.28 2.26s1.18 1.63 3.28 2.26c.25-.76.55-1.51.89-2.26m9 2.26l-.3.51c.31-.05.61-.1.88-.16-.07-.28-.18-.57-.29-.86l-.29.51m-2.89 4.04c1.59 1.5 2.97 2.08 3.59 1.7.64-.35.83-1.82.32-3.96-.77.16-1.58.28-2.4.36-.48.67-.99 1.31-1.51 1.9m-4.95-8.56l.3-.51c-.31.05-.61.1-.88.16.07.28.18.57.29.86l.29-.51m2.89-4.04c-1.59-1.5-2.97-2.08-3.6-1.7-.63.35-.82 1.82-.31 3.96.77-.16 1.58-.28 2.4-.36.48-.67.99-1.31 1.51-1.9z" fill="#00bcd4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 10.11c1.03 0 1.87.84 1.87 1.89 0 1-.84 1.85-1.87 1.85s-1.87-.85-1.87-1.85c0-1.05.84-1.89 1.87-1.89m-4.63 9.89c.63.38 2.01-.2 3.6-1.7-.52-.59-1.03-1.23-1.51-1.9-.82-.08-1.63-.2-2.4-.36-.51 2.14-.32 3.61.31 3.96m.71-5.74l-.29-.51c-.11.29-.22.58-.29.86.27.06.57.11.88.16l-.3-.51m6.54-.76l.81-1.5-.81-1.5c-.3-.53-.62-1-.91-1.47-.54-.03-1.11-.03-1.71-.03s-1.17 0-1.71.03c-.29.47-.61.94-.91 1.47l-.81 1.5.81 1.5c.3.53.62 1 .91 1.47.54.03 1.11.03 1.71.03s1.17 0 1.71-.03c.29-.47.61-.94.91-1.47m-2.62-6.72c-.19.22-.39.45-.59.72h1.18c-.2-.27-.4-.5-.59-.72m0 10.44c.19-.22.39-.45.59-.72h-1.18c.2.27.4.5.59.72m4.62-13.22c-.62-.38-2 .2-3.59 1.7.52.59 1.03 1.23 1.51 1.9.82.08 1.63.2 2.4.36.51-2.14.32-3.61-.32-3.96m-.7 5.74l.29.51c.11-.29.22-.58.29-.86-.27-.06-.57-.11-.88-.16l.3.51m1.45-7.05c1.47.84 1.63 3.05 1.01 5.63 2.54.75 4.37 1.99 4.37 3.68s-1.83 2.93-4.37 3.68c.62 2.58.46 4.79-1.01 5.63-1.46.84-3.45-.12-5.37-1.95-1.92 1.83-3.91 2.79-5.38 1.95-1.46-.84-1.62-3.05-1-5.63-2.54-.75-4.37-1.99-4.37-3.68s1.83-2.93 4.37-3.68c-.62-2.58-.46-4.79 1-5.63 1.47-.84 3.46.12 5.38 1.95 1.92-1.83 3.91-2.79 5.37-1.95m-.29 9.31c.34.75.64 1.5.89 2.26 2.1-.63 3.28-1.53 3.28-2.26s-1.18-1.63-3.28-2.26c-.25.76-.55 1.51-.89 2.26m-10.16 0c-.34-.75-.64-1.5-.89-2.26-2.1.63-3.28 1.53-3.28 2.26s1.18 1.63 3.28 2.26c.25-.76.55-1.51.89-2.26m9 2.26l-.3.51c.31-.05.61-.1.88-.16-.07-.28-.18-.57-.29-.86l-.29.51m-2.89 4.04c1.59 1.5 2.97 2.08 3.59 1.7.64-.35.83-1.82.32-3.96-.77.16-1.58.28-2.4.36-.48.67-.99 1.31-1.51 1.9m-4.95-8.56l.3-.51c-.31.05-.61.1-.88.16.07.28.18.57.29.86l.29-.51m2.89-4.04c-1.59-1.5-2.97-2.08-3.6-1.7-.63.35-.82 1.82-.31 3.96.77-.16 1.58-.28 2.4-.36.48-.67.99-1.31 1.51-1.9z" fill="#00bcd4" style="fill:#0288d1"/></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 214 B |
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 612 792" version="1.1" viewBox="0 0 500 500" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1.311 0 0 1.311 -150.32 -269.45)" fill="#ec407a" stroke="#ec407a" stroke-width="12.423"><path d="m434.3 278.93c-9.3-36.49-69.8-48.48-127.06-28.14-34.08 12.11-70.96 31.11-97.49 55.92-31.54 29.5-36.57 55.17-34.49 65.9 7.31 37.85 59.18 62.6 80.5 80.95v.11c-6.29 3.09-52.3 26.38-63.07 50.19-11.36 25.12 1.81 43.14 10.53 45.57 27.02 7.52 54.74-6 69.65-28.23 14.38-21.45 13.18-49.14 6.93-62.92 8.62-2.27 18.67-3.29 31.44-1.8 36.04 4.21 43.11 26.71 41.76 36.13s-8.91 14.6-11.44 16.16-3.3 2.11-3.09 3.27c.31 1.69 1.48 1.63 3.63 1.26 2.97-.5 18.92-7.66 19.61-25.04.87-22.07-20.28-46.76-57.73-46.11-15.42.27-25.12 1.73-32.13 4.34-.52-.59-1.04-1.18-1.59-1.76-23.15-24.7-65.95-42.17-64.14-75.38.66-12.07 4.86-43.86 82.24-82.42 63.39-31.59 114.14-22.89 122.91-3.63 12.53 27.52-27.12 78.67-92.95 86.05-25.08 2.81-38.29-6.91-41.57-10.53-3.46-3.81-3.97-3.98-5.27-3.27-2.1 1.17-.77 4.53 0 6.54 1.97 5.12 10.03 14.19 23.78 18.7 12.1 3.97 41.54 6.15 77.16-7.62 39.88-15.45 71.03-58.37 61.88-94.24zm-169.69 185.94c2.99 11.06 2.66 21.37-.43 30.7-.34 1.04-.72 2.06-1.13 3.08-.41 1.01-.85 2.01-1.33 3-2.38 4.94-5.58 9.56-9.49 13.83-11.94 13.02-28.61 17.95-35.76 13.8-7.72-4.48-3.85-22.84 9.98-37.46 14.89-15.74 36.31-25.86 36.31-25.86l-.03-.06c.62-.34 1.24-.68 1.88-1.03z" fill="#ec407a" stroke="#ec407a" stroke-width="12.423"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12.002 15.5a3.5 3.5 0 0 1 -3.5 -3.5 3.5 3.5 0 0 1 3.5 -3.5 3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1 -3.5 3.5m7.43-2.53c.04-.32.07-.64.07-.97s-.03-.66-.07-1l2.11-1.63c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.31-.61-.22l-2.49 1c-.52-.39-1.06-.73-1.69-.98l-.37-2.65c-.04-.24-.25-.42-.5-.42h-4c-.25 0-.46.18-.5.42l-.37 2.65c-.63.25-1.17.59-1.69.98l-2.49-1c-.22-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.63c-.04.34-.07.67-.07 1s.03.65.07.97l-2.11 1.66c-.19.15-.25.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1.01c.52.4 1.06.74 1.69.99l.37 2.65c.04.24.25.42.5.42h4c.25 0 .46-.18.5-.42l.37-2.65c.63-.26 1.17-.59 1.69-.99l2.49 1.01c.22.08.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 790 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5.13 10.71h3.74l-2.65-2.65c-1.01 0-1.83-.82-1.83-1.84a1.83 1.83 0 0 1 1.83-1.83c1.02 0 1.84.82 1.84 1.83l2.65 2.65v-3.74c-.71-.72-.71-1.88 0-2.59.71-.72 1.87-.72 2.58 0 .71.71.71 1.87 0 2.59v3.74l2.66-2.65c0-1.01.81-1.83 1.83-1.83 1.01 0 1.83.82 1.83 1.83 0 1.02-.82 1.84-1.83 1.84l-2.65 2.65h3.74c.72-.71 1.88-.71 2.59 0 .72.71.72 1.87 0 2.58-.71.71-1.87.71-2.59 0h-3.74l2.65 2.66c1.01 0 1.83.81 1.83 1.83a1.83 1.83 0 0 1-1.83 1.83c-1.02 0-1.83-.82-1.83-1.83l-2.66-2.65v3.74c.71.72.71 1.88 0 2.59-.71.72-1.87.72-2.58 0-.71-.71-.71-1.87 0-2.59v-3.74l-2.65 2.65c0 1.01-.82 1.83-1.84 1.83-1.01 0-1.83-.82-1.83-1.83 0-1.02.82-1.83 1.83-1.83l2.65-2.66h-3.74c-.72.71-1.88.71-2.59 0-.72-.71-.72-1.87 0-2.58.71-.71 1.87-.71 2.59 0z" style="fill:#ffb300"/></svg>
|
||||
|
After Width: | Height: | Size: 839 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5 19a1 1 0 0 0 1 1h12a1 1 0 0 0 1 -1c0-.21-.07-.41-.18-.57l-5.82-10.08v-4.35h-2v4.35l-5.82 10.08c-.11.16-.18.36-.18.57m1 3a3 3 0 0 1 -3 -3c0-.6.18-1.16.5-1.63l5.5-9.56v-1.81a1 1 0 0 1 -1 -1v-1a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v1a1 1 0 0 1 -1 1v1.81l5.5 9.56c.32.47.5 1.03.5 1.63a3 3 0 0 1 -3 3h-12m7-6l1.34-1.34 1.93 3.34h-8.54l2.66-4.61 2.61 2.61m-.5-4a.5 .5 0 0 1 .5 .5 .5 .5 0 0 1 -.5 .5 .5 .5 0 0 1 -.5 -.5 .5 .5 0 0 1 .5 -.5z" style="fill:#ffca28"/></svg>
|
||||
|
After Width: | Height: | Size: 542 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5,19A1,1 0 0,0 6,20H18A1,1 0 0,0 19,19C19,18.79 18.93,18.59 18.82,18.43L13,8.35V4H11V8.35L5.18,18.43C5.07,18.59 5,18.79 5,19M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6M13,16L14.34,14.66L16.27,18H7.73L10.39,13.39L13,16M12.5,12A0.5,0.5 0 0,1 13,12.5A0.5,0.5 0 0,1 12.5,13A0.5,0.5 0 0,1 12,12.5A0.5,0.5 0 0,1 12.5,12Z" fill="#00bcd4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 628 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5 19a1 1 0 0 0 1 1h12a1 1 0 0 0 1 -1c0-.21-.07-.41-.18-.57l-5.82-10.08v-4.35h-2v4.35l-5.82 10.08c-.11.16-.18.36-.18.57m1 3a3 3 0 0 1 -3 -3c0-.6.18-1.16.5-1.63l5.5-9.56v-1.81a1 1 0 0 1 -1 -1v-1a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v1a1 1 0 0 1 -1 1v1.81l5.5 9.56c.32.47.5 1.03.5 1.63a3 3 0 0 1 -3 3h-12m7-6l1.34-1.34 1.93 3.34h-8.54l2.66-4.61 2.61 2.61m-.5-4a.5 .5 0 0 1 .5 .5 .5 .5 0 0 1 -.5 .5 .5 .5 0 0 1 -.5 -.5 .5 .5 0 0 1 .5 -.5z" style="fill:#0288D1"/></svg>
|
||||
|
After Width: | Height: | Size: 542 B |
@@ -0,0 +1,6 @@
|
||||
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" version="1.1" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(-3,-5)" fill="#0288d1">
|
||||
<path d="m457 459h-408v-408h408zm-388-388v368h368v-368z"/>
|
||||
<path d="m352.8 242.85c-2.3473-.007-4.5031.0525-6.1139.20494-12.593 1.0948-24.356 6.5951-32.407 15.153-4.0336 4.2878-7.6869 10.436-9.4719 15.939-1.9673 6.0654-1.9531 5.9489-1.943 15.451.01 12.138.6271 15.145 4.757 23.218 4.1524 8.1182 10.479 14.749 19.608 20.55 4.0005 2.5424 14.245 7.651 22.611 11.275 18.211 7.8886 23.972 11.528 26.645 16.835l1.1036 2.1907v4.5892c0 4.4272-.0175 4.6548-.91789 6.4802-2.0542 4.2242-6.9029 7.6825-13.112 9.3538-2.3476.63061-3.4235.71994-8.671.7217-5.1361 0-6.3831-.10511-8.7371-.69191-4.1102-1.0388-7.5727-2.478-10.28-4.2708-3.3144-2.1949-9.8319-8.7747-12.483-12.603-1.1701-1.6904-2.345-3.0747-2.6084-3.0747-.43618 0-22.907 12.847-26.829 15.338-1.3225.84082-1.6571 1.2227-1.6571 1.8962 0 1.3961 5.2502 9.3316 9.363 14.152 8.3785 9.8214 25.182 18.481 40.066 20.649 5.8834.85658 15.657 1.1334 22.485.63061 4.4736-.32756 8.9956-1.1771 13.855-2.602 17.58-5.1566 29.575-16.112 34.02-31.074 1.8125-6.1034 2.5461-13.61 1.947-19.943-1.2279-12.994-5.2221-22.18-13.106-30.137-7.3213-7.3883-17.372-13.341-37.209-22.039-17.199-7.5414-21.688-10.47-24.167-15.768-2.14-4.5731-1.7324-10.867.95992-14.778 3.1497-4.5782 9.5805-6.8398 16.751-5.8902 6.6678.88109 10.98 3.5237 15.205 9.3128 2.1936 3.0066 3.7166 4.5724 4.447 4.5724.71995 0 3.822-1.9144 13.451-8.3065 9.8017-6.5068 12.884-8.7143 13.095-9.3799.32756-1.0317-1.2087-3.4457-5.7021-8.9586-9.0231-11.067-19.631-16.942-33.25-18.416-3.3445-.3626-7.7899-.56404-11.702-.5763zm-108.35 1.8778c-8.0854-.005-17.321-.00034-27.583.01-53.219.0525-65.571.14013-65.904.48347-.32406.32406-.40814 3.5866-.40814 15.766v15.357l24.201.0876 24.201.0876.005 68.503c.002 37.677.0875 68.822.20495 69.212l.18217.71119h17.588c15.747 0 17.607-.035 17.779-.49749.1051-.27502.18217-31.42.18217-69.212v-68.714l24.201-.0875 24.201-.0876v-15.542c0-13.471-.0526-15.581-.47296-15.842-.22246-.14014-14.127-.22422-38.383-.23648z" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" stroke-width=".31533"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" version="1.1" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m46 46v408h408v-408h-408zm310.02 198.17v.00586c3.9124.01226 8.3586.21357 11.703.57617 13.619 1.4734 24.225 7.349 33.248 18.416 4.4934 5.5129 6.0307 7.9253 5.7031 8.957-.21108.66564-3.294 2.874-13.096 9.3809-9.6287 6.3921-12.731 8.3066-13.451 8.3066-.73045 0-2.2517-1.5657-4.4453-4.5723-4.2244-5.7892-8.5373-8.4314-15.205-9.3125-7.1704-.9496-13.602 1.3105-16.752 5.8887-2.6923 3.9112-3.099 10.206-.95899 14.779 2.4792 5.2976 6.9671 8.2262 24.166 15.768 19.836 8.6975 29.888 14.651 37.209 22.039 7.8838 7.9563 11.878 17.143 13.105 30.137.59907 6.3332-.13284 13.84-1.9453 19.943-4.4447 14.961-16.439 25.916-34.02 31.072-4.8597 1.4248-9.3818 2.276-13.855 2.6035-6.8282.50274-16.603.22572-22.486-.63086-14.884-2.1677-31.686-10.829-40.064-20.65-4.1128-4.8205-9.3633-12.754-9.3633-14.15 0-.67351.33372-1.0557 1.6562-1.8965 3.9213-2.4911 26.394-15.338 26.83-15.338.26345 0 1.4373 1.3838 2.6074 3.0742 2.6512 3.8278 9.17 10.407 12.484 12.602 2.7074 1.7928 6.1691 3.2327 10.279 4.2715 2.3539.5868 3.6002.69141 8.7363.69141 5.2475-.00176 6.3243-.0901 8.6719-.72071 6.2096-1.6713 11.057-5.1293 13.111-9.3535.90039-1.8254.91797-2.0533.91797-6.4805v-4.5898l-1.1035-2.1894c-2.6734-5.3067-8.4338-8.9474-26.645-16.836-8.3655-3.6237-18.611-8.733-22.611-11.275-9.1282-5.801-15.455-12.433-19.607-20.551-4.13-8.073-4.7459-11.078-4.7559-23.217-.01017-9.5024-.02592-9.3858 1.9414-15.451 1.785-5.5038 5.439-11.652 9.4727-15.939 8.0511-8.5582 19.813-14.058 32.406-15.152 1.6108-.15244 3.768-.21208 6.1152-.20508zm-108.36 1.877h.00391c24.253.01227 38.156.0962 38.379.23633.42036.2603.47265 2.3708.47265 15.842v15.541l-24.201.08789-24.201.08789v68.713c0 37.793-.07654 68.938-.18164 69.213-.17115.46249-2.0325.49805-17.779.49805h-17.588l-.18164-.71094c-.11745-.39011-.20308-31.536-.20508-69.213l-.00586-68.504-24.201-.08594-24.201-.08789v-15.357c0-12.18.08414-15.442.4082-15.766.333-.34334 12.684-.43187 65.902-.48437 10.261-.01034 19.495-.01477 27.58-.00977z" fill="#0288d1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18,4L20,8H17L15,4H13L15,8H12L10,4H8L10,8H7L5,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V4H18Z" fill="#ff9800"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-0.9-2-2v-16c0-1.11 0.89-2 2-2m0.12 13.5l3.74 3.74 1.42-1.41-2.33-2.33 2.33-2.33-1.42-1.41-3.74 3.74m11.16 0l-3.74-3.74-1.42 1.41 2.33 2.33-2.33 2.33 1.42 1.41 3.74-3.74z" fill="#8bc34a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 408 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5 3h2v2h-2v5a2 2 0 0 1 -2 2 2 2 0 0 1 2 2v5h2v2h-2c-1.07-.27-2-.9-2-2v-4a2 2 0 0 0 -2 -2h-1v-2h1a2 2 0 0 0 2 -2v-4a2 2 0 0 1 2 -2m14 0a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1v2h-1a2 2 0 0 0 -2 2v4a2 2 0 0 1 -2 2h-2v-2h2v-5a2 2 0 0 1 2 -2 2 2 0 0 1 -2 -2v-5h-2v-2h2m-7 12a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1m-4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1m8 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" style="fill:#f44336"/></svg>
|
||||
|
After Width: | Height: | Size: 567 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m14 17h-2v-2h-2v-2h2v2h2m0-6h-2v2h2v2h-2v-2h-2v-2h2v-2h-2v-2h2v2h2m5-4h-14c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2 -2v-14c0-1.11-.9-2-2-2z" fill="#afb42b"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 258 B |
@@ -0,0 +1,201 @@
|
||||
ul#files {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
column-count: 3;
|
||||
}
|
||||
ul#files li {
|
||||
margin-bottom: 6px;
|
||||
line-height: 30px;
|
||||
}
|
||||
ul#files li a {
|
||||
display: block;
|
||||
height: 30px;
|
||||
border: 1px solid #e9e9e9;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
/* overflow: hidden; */
|
||||
/* white-space: nowrap; */
|
||||
}
|
||||
ul#files li a:focus,
|
||||
ul#files li a:hover {
|
||||
background: rgba(255, 255, 255, 0.65);
|
||||
border: 1px solid #dadada;
|
||||
}
|
||||
ul#files li a.highlight {
|
||||
transition: background 0.4s ease-in-out;
|
||||
background: #add6ff66;
|
||||
border-color: #add6ff8c;
|
||||
}
|
||||
ul#files li a span {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
ul#files li.hidden {
|
||||
display: none;
|
||||
}
|
||||
#search {
|
||||
display: block;
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 90px;
|
||||
transition: width ease 0.2s, opacity ease 0.4s;
|
||||
/* border-radius: 4px; */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-align: left;
|
||||
font: 14px 'Helvetica Neue', Arial, sans-serif;
|
||||
padding: 6px 12px;
|
||||
border: none;
|
||||
background: #f1f1f1;
|
||||
margin-bottom: 0;
|
||||
outline: none;
|
||||
opacity: 0.7;
|
||||
color: #888;
|
||||
}
|
||||
#search:focus {
|
||||
width: 120px;
|
||||
opacity: 1;
|
||||
}
|
||||
@media (min-width: 1024px) {
|
||||
input#search {
|
||||
right: max(100px, calc(100vw / 2 - 512px));
|
||||
}
|
||||
}
|
||||
|
||||
/*views*/
|
||||
#files span {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-indent: 10px;
|
||||
}
|
||||
#files .name {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 6px center;
|
||||
}
|
||||
#files .icon .name {
|
||||
text-indent: 28px;
|
||||
background-size: 16px 16px;
|
||||
}
|
||||
|
||||
/*tiles*/
|
||||
.view-tiles .name {
|
||||
width: 100%;
|
||||
background-position: 8px 5px;
|
||||
}
|
||||
.view-tiles .size,
|
||||
.view-tiles .date {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*details*/
|
||||
ul#files.view-details li {
|
||||
float: none;
|
||||
display: block;
|
||||
width: 90%;
|
||||
}
|
||||
ul#files.view-details li.header {
|
||||
height: 25px;
|
||||
background: #000;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.view-details .header {
|
||||
border-radius: 5px;
|
||||
}
|
||||
.view-details .name {
|
||||
width: 60%;
|
||||
background-position: 8px 5px;
|
||||
}
|
||||
.view-details .size {
|
||||
width: 10%;
|
||||
}
|
||||
.view-details .date {
|
||||
width: 30%;
|
||||
}
|
||||
.view-details .size,
|
||||
.view-details .date {
|
||||
text-align: right;
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
/*small*/
|
||||
@media (max-width: 768px) {
|
||||
}
|
||||
|
||||
/*smaller*/
|
||||
@media (max-width: 640px) {
|
||||
ul#files {
|
||||
column-count: 2;
|
||||
}
|
||||
}
|
||||
|
||||
/*mobile*/
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
}
|
||||
#search {
|
||||
position: static;
|
||||
width: 100%;
|
||||
font-size: 2em;
|
||||
line-height: 1.8em;
|
||||
text-indent: 10px;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 10px 0;
|
||||
margin: 0;
|
||||
}
|
||||
#search:focus {
|
||||
width: 100%;
|
||||
border: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
ul#files {
|
||||
border-top: 1px solid #cacaca;
|
||||
column-count: 1;
|
||||
}
|
||||
ul#files li {
|
||||
float: none;
|
||||
width: auto !important;
|
||||
display: block;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
font-size: 2em;
|
||||
line-height: 1.2em;
|
||||
text-indent: 0;
|
||||
margin: 0;
|
||||
}
|
||||
ul#files li a {
|
||||
height: auto;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 15px 10px;
|
||||
}
|
||||
ul#files li a span {
|
||||
vertical-align: middle;
|
||||
}
|
||||
ul#files li a:focus,
|
||||
ul#files li a:hover {
|
||||
border: 0;
|
||||
}
|
||||
#files .header,
|
||||
#files .size,
|
||||
#files .date {
|
||||
display: none !important;
|
||||
}
|
||||
#files .name {
|
||||
float: none;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
text-indent: 0;
|
||||
background-position: 0 50%;
|
||||
}
|
||||
#files .icon .name {
|
||||
text-indent: 41px;
|
||||
background-size: 28px 28px;
|
||||
background-position: 2px center;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Files used by execPHP.ts
|
||||
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PHP ERROR</title>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="{filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/serve-preview/vs.min.css" />
|
||||
<script src="/fiveserver/serve-preview/highlight.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: #555;
|
||||
background-color: #efecec;
|
||||
}
|
||||
body {
|
||||
text-align: center;
|
||||
}
|
||||
#content {
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
}
|
||||
.is-code {
|
||||
background: #e0e0e0;
|
||||
padding: 2px 5px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="content">
|
||||
<h2>PHP ERROR</h2>
|
||||
<div style="margin-right: 8px">
|
||||
<pre
|
||||
margin="0px;"
|
||||
><code style="padding: 16px; border: 1px gray solid; font-size: 16px;" class="language-bash">{msg}</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
hljs.highlightAll();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PHP ERROR</title>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/serve-preview/vs.min.css" />
|
||||
<script src="/fiveserver/serve-preview/highlight.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: #555;
|
||||
background-color: #efecec;
|
||||
}
|
||||
body {
|
||||
text-align: center;
|
||||
}
|
||||
#content {
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
}
|
||||
.is-code {
|
||||
background: #e0e0e0;
|
||||
padding: 2px 5px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="content">
|
||||
<h2>PHP ERROR</h2>
|
||||
<p>{msg}</p>
|
||||
|
||||
<h3>Install PHP</h3>
|
||||
<p>Download and install <a href="https://www.apachefriends.org/index.html">XAMPP</a>.</p>
|
||||
|
||||
<h3>Get PHP Path</h3>
|
||||
<p>Follow the steps below to get the path to the PHP executable:</p>
|
||||
<ul>
|
||||
<li><b>Ubuntu:</b> Enter <code class="is-code">which php</code> in your Terminal.</li>
|
||||
<li><b>macOS:</b> Enter <code class="is-code">which php</code> in your Terminal.</li>
|
||||
<li><b>Windows:</b> Search for php.exe.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Config File Example</h3>
|
||||
<div style="margin-right: 8px">
|
||||
<pre
|
||||
margin="0px;"
|
||||
><code style="padding: 16px; border: 1px gray solid; font-size: 16px;" class="language-php">// fiveserver.config.js
|
||||
module.exports = {
|
||||
php: "/usr/bin/php" // macOS/Ubuntu
|
||||
php: "C:\\xampp\\php\\php.exe" // Windows
|
||||
}</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
hljs.highlightAll();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* @copyright Copyright (c) 2006-2021, Ivan Sagalaev
|
||||
* @license ${link https://github.com/highlightjs/highlight.js/blob/main/LICENSE|BSD-3-Clause}
|
||||
* @description highlight.min.js, vs.min.css and vs2015.min.css are from Highlight.js 10.7.2 (00233d63) (https://github.com/highlightjs/highlight.js)
|
||||
*/
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Preview</title>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="${filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/serve-preview/vs.min.css" />
|
||||
<script src="/fiveserver/serve-preview/highlight.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/scripts/directory.css" />
|
||||
|
||||
<style>
|
||||
html {
|
||||
background: white !important;
|
||||
}
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-height: unset;
|
||||
max-width: unset;
|
||||
/* overflow: hidden; */
|
||||
}
|
||||
.preview-fullscreen iframe {
|
||||
min-height: 100vh !important;
|
||||
}
|
||||
.preview-fullscreen img,
|
||||
.preview-fullscreen video {
|
||||
width: 100%;
|
||||
max-height: 100vh;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.preview-fullscreen code {
|
||||
min-height: calc(100vh - 64px) !important;
|
||||
margin: 16px !important;
|
||||
margin-bottom: 32px !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="preview-fullscreen">{preview}</div>
|
||||
<script>
|
||||
let fileName = "{fileName}";
|
||||
let ext = "{ext}";
|
||||
let lang = hljs.getLanguage(ext);
|
||||
|
||||
if (ext === "pdf") document.body.style.overflow = "hidden";
|
||||
|
||||
if (lang && lang.aliases && typeof lang.aliases[0] === "string") {
|
||||
lang = lang.aliases[0];
|
||||
} else if (lang && lang.name) {
|
||||
if (/,/gm.test(lang.name)) {
|
||||
lang.name = lang.name.split(",")[0];
|
||||
}
|
||||
ext = lang.name.toLowerCase();
|
||||
} else {
|
||||
ext = "txt";
|
||||
}
|
||||
|
||||
const pre = document.querySelector("pre");
|
||||
if (pre) {
|
||||
console.log("language-" + ext);
|
||||
pre.classList.add("language-" + ext);
|
||||
hljs.highlightAll();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Preview</title>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="${filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/serve-preview/vs.min.css" />
|
||||
<script src="/fiveserver/serve-preview/highlight.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/scripts/directory.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div class="directory">
|
||||
<h1>
|
||||
<a href="/">~</a>{linked-path}<small style="margin-left: 12px">
|
||||
<a href="{fileName}{ext}.fullscreen">[fullscreen]</a>
|
||||
</small>
|
||||
</h1>
|
||||
|
||||
{phpMsg}
|
||||
|
||||
<div class="preview">{preview}</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>Preview Developed by <a href="https://github.com/yandeu">@yandeu</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
let fileName = "{fileName}";
|
||||
let ext = "{ext}";
|
||||
let lang = hljs.getLanguage(ext);
|
||||
|
||||
if (lang && lang.aliases && typeof lang.aliases[0] === "string") {
|
||||
lang = lang.aliases[0];
|
||||
} else if (lang && lang.name) {
|
||||
if (/,/gm.test(lang.name)) {
|
||||
lang.name = lang.name.split(",")[0];
|
||||
}
|
||||
ext = lang.name.toLowerCase();
|
||||
} else {
|
||||
ext = "txt";
|
||||
}
|
||||
|
||||
const pre = document.querySelector("pre");
|
||||
if (pre) {
|
||||
console.log("language-" + ext);
|
||||
pre.classList.add("language-" + ext);
|
||||
hljs.highlightAll();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>404</title>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="${filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<link rel="stylesheet" href="/fiveserver/scripts/directory.css" />
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
.not-found {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
margin: 8px;
|
||||
padding-top: 64px;
|
||||
}
|
||||
|
||||
.not-found > :first-child {
|
||||
border-right: 1px #555 solid;
|
||||
display: inline-block;
|
||||
font-size: 36px;
|
||||
font-weight: bold;
|
||||
height: 54px;
|
||||
margin-bottom: 12px;
|
||||
margin-right: 22px;
|
||||
padding-right: 22px;
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
.not-found > :last-child {
|
||||
font-size: 18px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="directory">
|
||||
<h1><a href="/">~</a>{linked-path}</h1>
|
||||
|
||||
<div class="not-found">
|
||||
<div><span>{status}</span></div>
|
||||
<span>{message}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<p>Page Developed by <a href="https://github.com/yandeu">@yandeu</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
.hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
||||
@@ -0,0 +1 @@
|
||||
.hljs{display:block;overflow-x:auto;padding:.5em;background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute,.hljs-builtin-name{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%}
|
||||
1034
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/bundle/subdir/main.js
vendored
Normal file
250
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/bundle/subdir/parseBody.js
vendored
Normal file
407
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/client/highlight.ts
vendored
Normal file
@@ -0,0 +1,407 @@
|
||||
/* eslint-disable prefer-object-spread */
|
||||
/* eslint-disable prefer-template */
|
||||
|
||||
/**
|
||||
* @copyright
|
||||
* Copyright (c) 2012 - present Adobe Systems Incorporated. All rights reserved. (https://github.com/adobe)
|
||||
* Copyright (c) 2021 Yannick Deubel (https://github.com/yandeu)
|
||||
*
|
||||
* @license {@link https://github.com/yandeu/five-server/blob/main/LICENSE LICENSE}
|
||||
*
|
||||
* @description
|
||||
* copied from https://github.com/adobe/brackets/blob/master/src/LiveDevelopment/Agents/RemoteFunctions.js
|
||||
* previously licensed under MIT (https://github.com/adobe/brackets/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
let _remoteHighlight
|
||||
const HIGHLIGHT_CLASS_NAME = '__brackets-ld-highlight'
|
||||
|
||||
const config = {
|
||||
experimental: false, // enable experimental features
|
||||
debug: true, // enable debug output and helpers
|
||||
autoConnect: false, // go live automatically after startup?
|
||||
highlight: true, // enable highlighting?
|
||||
highlightConfig: {
|
||||
// the highlight configuration for the Inspector
|
||||
borderColor: { r: 255, g: 229, b: 153, a: 0.66 },
|
||||
contentColor: { r: 111, g: 168, b: 220, a: 0.55 },
|
||||
marginColor: { r: 246, g: 178, b: 107, a: 0.66 },
|
||||
paddingColor: { r: 147, g: 196, b: 125, a: 0.66 },
|
||||
showInfo: true
|
||||
},
|
||||
remoteHighlight: {
|
||||
animateStartValue: {
|
||||
'background-color': 'rgba(0, 162, 255, 0.5)',
|
||||
opacity: 0
|
||||
},
|
||||
animateEndValue: {
|
||||
'background-color': 'rgb(106, 171, 233)', //'rgba(0, 162, 255, 0)',
|
||||
opacity: 0.6
|
||||
},
|
||||
paddingStyling: {
|
||||
//'border-width': '1px',
|
||||
//'border-style': 'dashed',
|
||||
//'border-color': 'rgba(0, 162, 255, 0.5)',
|
||||
'background-color': 'rgb(156, 221, 156)'
|
||||
},
|
||||
marginStyling: {
|
||||
'background-color': 'rgb(255 ,177 ,95)' // 'rgba(21, 165, 255, 0.58)'
|
||||
},
|
||||
borderColor: 'rgba(21, 165, 255, 0.85)',
|
||||
showPaddingMargin: true
|
||||
}
|
||||
}
|
||||
|
||||
// Checks if the element is in Viewport in the client browser
|
||||
function isInViewport(element) {
|
||||
const rect = element.getBoundingClientRect()
|
||||
const html = window.document.documentElement
|
||||
return (
|
||||
rect.top >= 0 &&
|
||||
rect.left >= 0 &&
|
||||
rect.bottom <= (window.innerHeight || html.clientHeight) &&
|
||||
rect.right <= (window.innerWidth || html.clientWidth)
|
||||
)
|
||||
}
|
||||
|
||||
// set an event on a element
|
||||
function _trigger(element, name, value, autoRemove?) {
|
||||
// MOD(yandeu): Do not automatically remove the highlight.
|
||||
/*
|
||||
const key = 'data-ld-' + name
|
||||
if (value !== undefined && value !== null) {
|
||||
element.setAttribute(key, value)
|
||||
if (autoRemove) {
|
||||
window.setTimeout(element.removeAttribute.bind(element, key))
|
||||
}
|
||||
} else {
|
||||
element.removeAttribute(key)
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// compute the screen offset of an element
|
||||
function _screenOffset(element) {
|
||||
const elemBounds = element.getBoundingClientRect(),
|
||||
body = window.document.body
|
||||
let offsetTop, offsetLeft
|
||||
|
||||
if (window.getComputedStyle(body).position === 'static') {
|
||||
offsetLeft = elemBounds.left + window.pageXOffset
|
||||
offsetTop = elemBounds.top + window.pageYOffset
|
||||
} else {
|
||||
const bodyBounds = body.getBoundingClientRect()
|
||||
offsetLeft = elemBounds.left - bodyBounds.left
|
||||
offsetTop = elemBounds.top - bodyBounds.top
|
||||
}
|
||||
return { left: offsetLeft, top: offsetTop }
|
||||
}
|
||||
|
||||
// returns the distance from the top of the closest relatively positioned parent element
|
||||
function getDocumentOffsetTop(element) {
|
||||
return element.offsetTop + (element.offsetParent ? getDocumentOffsetTop(element.offsetParent) : 0)
|
||||
}
|
||||
|
||||
// redraw active highlights
|
||||
function redrawHighlights() {
|
||||
if (_remoteHighlight) {
|
||||
_remoteHighlight.redraw()
|
||||
}
|
||||
}
|
||||
|
||||
let req, timeout
|
||||
const animateHighlight = function (time) {
|
||||
if (req) {
|
||||
window.cancelAnimationFrame(req)
|
||||
window.clearTimeout(timeout)
|
||||
}
|
||||
req = window.requestAnimationFrame(redrawHighlights)
|
||||
|
||||
timeout = setTimeout(function () {
|
||||
window.cancelAnimationFrame(req)
|
||||
req = null
|
||||
}, time * 1000)
|
||||
}
|
||||
|
||||
export class Highlight {
|
||||
trigger: boolean
|
||||
elements: any[] = []
|
||||
selector = '[data-highlight="true"]'
|
||||
|
||||
constructor(trigger: boolean) {
|
||||
this.trigger = !!trigger
|
||||
}
|
||||
|
||||
elementExists(element) {
|
||||
let i
|
||||
for (i in this.elements) {
|
||||
if (this.elements[i] === element) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
makeHighlightDiv(element, doAnimation) {
|
||||
const elementBounds = element.getBoundingClientRect(),
|
||||
highlight = window.document.createElement('div'),
|
||||
elementStyling = window.getComputedStyle(element),
|
||||
transitionDuration = parseFloat(elementStyling.getPropertyValue('transition-duration')),
|
||||
animationDuration = parseFloat(elementStyling.getPropertyValue('animation-duration'))
|
||||
|
||||
if (transitionDuration) {
|
||||
animateHighlight(transitionDuration)
|
||||
}
|
||||
|
||||
if (animationDuration) {
|
||||
animateHighlight(animationDuration)
|
||||
}
|
||||
|
||||
// Don't highlight elements with 0 width & height
|
||||
if (elementBounds.width === 0 && elementBounds.height === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
const realElBorder = {
|
||||
right: elementStyling.getPropertyValue('border-right-width'),
|
||||
left: elementStyling.getPropertyValue('border-left-width'),
|
||||
top: elementStyling.getPropertyValue('border-top-width'),
|
||||
bottom: elementStyling.getPropertyValue('border-bottom-width')
|
||||
}
|
||||
|
||||
const borderBox = elementStyling.boxSizing === 'border-box'
|
||||
|
||||
let innerWidth = parseFloat(elementStyling.width),
|
||||
innerHeight = parseFloat(elementStyling.height),
|
||||
outerHeight = innerHeight,
|
||||
outerWidth = innerWidth
|
||||
|
||||
if (!borderBox) {
|
||||
innerWidth += parseFloat(elementStyling.paddingLeft) + parseFloat(elementStyling.paddingRight)
|
||||
innerHeight += parseFloat(elementStyling.paddingTop) + parseFloat(elementStyling.paddingBottom)
|
||||
;(outerWidth = innerWidth + parseFloat(realElBorder.right) + parseFloat(realElBorder.left)),
|
||||
(outerHeight = innerHeight + parseFloat(realElBorder.bottom) + parseFloat(realElBorder.top))
|
||||
}
|
||||
|
||||
const visualizations = {
|
||||
horizontal: 'left, right',
|
||||
vertical: 'top, bottom'
|
||||
}
|
||||
|
||||
const drawPaddingRect = function (side) {
|
||||
const elStyling = {}
|
||||
|
||||
if (visualizations.horizontal.indexOf(side) >= 0) {
|
||||
elStyling['width'] = elementStyling.getPropertyValue('padding-' + side)
|
||||
elStyling['height'] = innerHeight + 'px'
|
||||
elStyling['top'] = 0
|
||||
|
||||
if (borderBox) {
|
||||
elStyling['height'] = innerHeight - parseFloat(realElBorder.top) - parseFloat(realElBorder.bottom) + 'px'
|
||||
}
|
||||
} else {
|
||||
elStyling['height'] = elementStyling.getPropertyValue('padding-' + side)
|
||||
elStyling['width'] = innerWidth + 'px'
|
||||
elStyling['left'] = 0
|
||||
|
||||
if (borderBox) {
|
||||
elStyling['width'] = innerWidth - parseFloat(realElBorder.left) - parseFloat(realElBorder.right) + 'px'
|
||||
}
|
||||
}
|
||||
|
||||
elStyling[side] = 0
|
||||
elStyling['position'] = 'absolute'
|
||||
|
||||
return elStyling
|
||||
}
|
||||
|
||||
const drawMarginRect = function (side) {
|
||||
const elStyling = {}
|
||||
|
||||
const margin = []
|
||||
margin['right'] = parseFloat(elementStyling.getPropertyValue('margin-right'))
|
||||
margin['top'] = parseFloat(elementStyling.getPropertyValue('margin-top'))
|
||||
margin['bottom'] = parseFloat(elementStyling.getPropertyValue('margin-bottom'))
|
||||
margin['left'] = parseFloat(elementStyling.getPropertyValue('margin-left'))
|
||||
|
||||
if (visualizations['horizontal'].indexOf(side) >= 0) {
|
||||
elStyling['width'] = elementStyling.getPropertyValue('margin-' + side)
|
||||
elStyling['height'] = outerHeight + margin['top'] + margin['bottom'] + 'px'
|
||||
elStyling['top'] = '-' + (margin['top'] + parseFloat(realElBorder.top)) + 'px'
|
||||
} else {
|
||||
elStyling['height'] = elementStyling.getPropertyValue('margin-' + side)
|
||||
elStyling['width'] = outerWidth + 'px'
|
||||
elStyling['left'] = '-' + realElBorder.left
|
||||
}
|
||||
|
||||
elStyling[side] = '-' + (margin[side] + parseFloat(realElBorder[side])) + 'px'
|
||||
elStyling['position'] = 'absolute'
|
||||
|
||||
return elStyling
|
||||
}
|
||||
|
||||
const setVisibility = function (el) {
|
||||
if (!config.remoteHighlight.showPaddingMargin || parseInt(el.height, 10) <= 0 || parseInt(el.width, 10) <= 0) {
|
||||
el.display = 'none'
|
||||
} else {
|
||||
el.display = 'block'
|
||||
}
|
||||
}
|
||||
|
||||
const paddingVisualizations = [
|
||||
drawPaddingRect('top'),
|
||||
drawPaddingRect('right'),
|
||||
drawPaddingRect('bottom'),
|
||||
drawPaddingRect('left')
|
||||
]
|
||||
|
||||
const marginVisualizations = [
|
||||
drawMarginRect('top'),
|
||||
drawMarginRect('right'),
|
||||
drawMarginRect('bottom'),
|
||||
drawMarginRect('left')
|
||||
]
|
||||
|
||||
const setupVisualizations = function (arr, config) {
|
||||
let i
|
||||
for (i = 0; i < arr.length; i++) {
|
||||
setVisibility(arr[i])
|
||||
|
||||
// Applies to every visualisationElement (padding or margin div)
|
||||
arr[i]['transform'] = 'none'
|
||||
const el = window.document.createElement('div'),
|
||||
styles = Object.assign({}, config, arr[i])
|
||||
|
||||
_setStyleValues(styles, el.style)
|
||||
|
||||
highlight.appendChild(el)
|
||||
}
|
||||
}
|
||||
|
||||
setupVisualizations(marginVisualizations, config.remoteHighlight.marginStyling)
|
||||
setupVisualizations(paddingVisualizations, config.remoteHighlight.paddingStyling)
|
||||
|
||||
highlight.className = HIGHLIGHT_CLASS_NAME
|
||||
|
||||
const offset = _screenOffset(element)
|
||||
|
||||
let el = element,
|
||||
offsetLeft = 0,
|
||||
offsetTop = 0
|
||||
|
||||
// Probably the easiest way to get elements position without including transform
|
||||
do {
|
||||
offsetLeft += el.offsetLeft
|
||||
offsetTop += el.offsetTop
|
||||
el = el.offsetParent
|
||||
} while (el)
|
||||
|
||||
const stylesToSet = {
|
||||
left: offsetLeft + 'px',
|
||||
top: offsetTop + 'px',
|
||||
width: innerWidth + 'px',
|
||||
height: innerHeight + 'px',
|
||||
'z-index': 2000000,
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
position: 'absolute',
|
||||
'pointer-events': 'none',
|
||||
'box-shadow': '0 0 1px #fff',
|
||||
'box-sizing': elementStyling.getPropertyValue('box-sizing'),
|
||||
'border-right': elementStyling.getPropertyValue('border-right'),
|
||||
'border-left': elementStyling.getPropertyValue('border-left'),
|
||||
'border-top': elementStyling.getPropertyValue('border-top'),
|
||||
'border-bottom': elementStyling.getPropertyValue('border-bottom'),
|
||||
transform: elementStyling.getPropertyValue('transform'),
|
||||
'transform-origin': elementStyling.getPropertyValue('transform-origin'),
|
||||
'border-color': config.remoteHighlight.borderColor
|
||||
}
|
||||
|
||||
const mergedStyles = Object.assign({}, stylesToSet)
|
||||
|
||||
const animateStartValues = config.remoteHighlight.animateStartValue
|
||||
|
||||
const animateEndValues = config.remoteHighlight.animateEndValue
|
||||
|
||||
const transitionValues = {
|
||||
'transition-property': 'opacity, background-color, transform',
|
||||
'transition-duration': '300ms, 2.3s'
|
||||
}
|
||||
|
||||
function _setStyleValues(styleValues, obj) {
|
||||
let prop
|
||||
|
||||
for (prop in styleValues) {
|
||||
obj.setProperty(prop, styleValues[prop])
|
||||
}
|
||||
}
|
||||
|
||||
_setStyleValues(mergedStyles, highlight.style)
|
||||
_setStyleValues(doAnimation ? animateStartValues : animateEndValues, highlight.style)
|
||||
|
||||
if (doAnimation) {
|
||||
_setStyleValues(transitionValues, highlight.style)
|
||||
|
||||
window.setTimeout(function () {
|
||||
_setStyleValues(animateEndValues, highlight.style)
|
||||
}, 20)
|
||||
}
|
||||
|
||||
window.document.body.appendChild(highlight)
|
||||
}
|
||||
|
||||
add(element, doAnimation) {
|
||||
if (this.elementExists(element) || element === window.document) {
|
||||
return
|
||||
}
|
||||
if (this.trigger) {
|
||||
_trigger(element, 'highlight', 1)
|
||||
}
|
||||
|
||||
if ((!window.event || window.event instanceof MessageEvent) && !isInViewport(element)) {
|
||||
let top = getDocumentOffsetTop(element)
|
||||
if (top) {
|
||||
top -= window.innerHeight / 2
|
||||
window.scrollTo(0, top)
|
||||
}
|
||||
}
|
||||
this.elements.push(element)
|
||||
|
||||
this.makeHighlightDiv(element, doAnimation)
|
||||
}
|
||||
|
||||
clear() {
|
||||
let i
|
||||
const highlights = window.document.querySelectorAll('.' + HIGHLIGHT_CLASS_NAME),
|
||||
body = window.document.body
|
||||
|
||||
for (i = 0; i < highlights.length; i++) {
|
||||
body.removeChild(highlights[i])
|
||||
}
|
||||
|
||||
if (this.trigger) {
|
||||
for (i = 0; i < this.elements.length; i++) {
|
||||
_trigger(this.elements[i], 'highlight', 0)
|
||||
}
|
||||
}
|
||||
|
||||
this.elements = []
|
||||
}
|
||||
|
||||
redraw() {
|
||||
let i, highlighted
|
||||
|
||||
// When redrawing a selector-based highlight, run a new selector
|
||||
// query to ensure we have the latest set of elements to highlight.
|
||||
if (this.selector) {
|
||||
highlighted = window.document.querySelectorAll(this.selector)
|
||||
} else {
|
||||
highlighted = this.elements.slice(0)
|
||||
}
|
||||
|
||||
this.clear()
|
||||
for (i = 0; i < highlighted.length; i++) {
|
||||
this.add(highlighted[i], false)
|
||||
}
|
||||
}
|
||||
}
|
||||
1
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/client/injected.js
vendored
Normal file
432
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/client/injected.ts
vendored
Normal file
@@ -0,0 +1,432 @@
|
||||
declare const diffDOM: any
|
||||
|
||||
import { Highlight } from './highlight'
|
||||
import { appendPathToUrl } from '../src/helpers'
|
||||
|
||||
// clone the current state of the body before any javascript
|
||||
// manipulates it inside window.addEventListener('load', (...))
|
||||
let _internalDOMBody
|
||||
|
||||
const block = (document.body) ? document.body.hasAttribute('data-server-no-reload') : false;
|
||||
|
||||
if (block) {
|
||||
console.info('[Five Server] Reload disabled due to \'data-server-no-reload\' attribute on BODY element')
|
||||
}
|
||||
if ('WebSocket' in window && !block) {
|
||||
window.addEventListener('load', () => {
|
||||
console.log('[Five Server] connecting...')
|
||||
|
||||
const script = document.querySelector('[data-id="five-server"]') as HTMLScriptElement
|
||||
|
||||
const protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://'
|
||||
const address = appendPathToUrl(`${protocol}${new URL(script.src).host}`, 'fsws')
|
||||
|
||||
// check if we need to clone the body for the "injectBody" feature or not
|
||||
const optionsInjectBody = script.getAttribute('data-inject-body')
|
||||
if (optionsInjectBody && optionsInjectBody.toString() === 'true')
|
||||
_internalDOMBody = document.body ? document.body.cloneNode(true) : undefined
|
||||
|
||||
let timer: any = null
|
||||
|
||||
const highlight = new Highlight(true)
|
||||
highlight.redraw()
|
||||
window.addEventListener('resize', () => {
|
||||
highlight.redraw()
|
||||
})
|
||||
|
||||
const CONNECTED_MSG = '[Five Server] connected.'
|
||||
const MAX_ATTEMPTS = 25
|
||||
let wait = 1000
|
||||
let attempts = 0
|
||||
let socket!: WebSocket
|
||||
|
||||
let lastPopUp = ''
|
||||
const popup = (
|
||||
message: string,
|
||||
type: 'info' | 'success' | 'error' | 'warn',
|
||||
options: { time?: number; animation?: boolean } = {}
|
||||
) => {
|
||||
const str = JSON.stringify({ message, type, options })
|
||||
|
||||
// block identical popups, except "css update"
|
||||
if (lastPopUp === str && message !== 'css updated') return
|
||||
lastPopUp = str
|
||||
|
||||
let wrapper = document.getElementById('fiveserver-info-wrapper')
|
||||
if (wrapper) wrapper.remove()
|
||||
|
||||
const { time = 3, animation = true } = options
|
||||
|
||||
wrapper = document.createElement('div')
|
||||
wrapper.id = 'fiveserver-info-wrapper'
|
||||
wrapper.classList.add(`fiveserver-info-wrapper_${type}`)
|
||||
|
||||
wrapper.style.zIndex = '100'
|
||||
wrapper.style.display = 'flex'
|
||||
wrapper.style.justifyContent = 'center'
|
||||
wrapper.style.position = 'fixed'
|
||||
wrapper.style.top = 'flex'
|
||||
|
||||
wrapper.style.left = '50%'
|
||||
wrapper.style.transform = 'translateX(-50%)'
|
||||
wrapper.style.width = '100%'
|
||||
wrapper.style.maxWidth = '80%'
|
||||
|
||||
const el = document.createElement('div')
|
||||
el.id = 'fiveserver-info'
|
||||
el.style.fontSize = '16px'
|
||||
el.style.fontFamily = 'Arial, Helvetica, sans-serif'
|
||||
el.style.color = 'white'
|
||||
el.style.backgroundColor = 'black'
|
||||
|
||||
el.style.padding = '4px 12px'
|
||||
el.style.borderRadius = '4px'
|
||||
el.style.whiteSpace = 'pre-wrap'
|
||||
|
||||
wrapper.appendChild(el)
|
||||
|
||||
document.body.appendChild(wrapper)
|
||||
|
||||
// remove popup from DOM after 'time'
|
||||
if (timer) {
|
||||
clearTimeout(timer)
|
||||
timer = null
|
||||
}
|
||||
timer = setTimeout(() => {
|
||||
if (wrapper && wrapper.isConnected) wrapper.remove()
|
||||
}, time * 1000)
|
||||
|
||||
if (type === 'error') {
|
||||
wrapper.style.top = '4px'
|
||||
wrapper.style.animation = ''
|
||||
|
||||
el.style.color = 'black'
|
||||
el.style.backgroundColor = 'red'
|
||||
} else {
|
||||
if (animation) {
|
||||
wrapper.style.top = '-40px'
|
||||
wrapper.style.animation = `fiveserverInfoPopup ${time}s forwards`
|
||||
} else {
|
||||
wrapper.style.top = '4px'
|
||||
wrapper.style.animation = ''
|
||||
}
|
||||
}
|
||||
|
||||
if (type === 'success') {
|
||||
el.style.color = '#498d76'
|
||||
el.style.backgroundColor = '#00ffa9'
|
||||
} else if (type === 'info') {
|
||||
el.style.color = '#d2e1f0'
|
||||
el.style.backgroundColor = '#2996ff'
|
||||
}
|
||||
el.innerHTML = message.replace(/</gm, '<')
|
||||
}
|
||||
|
||||
const send = (type: string, ...message: string[]) => {
|
||||
if (socket && socket?.readyState === 1) {
|
||||
socket.send(JSON.stringify({ console: { type, message } }))
|
||||
}
|
||||
}
|
||||
|
||||
const overwriteLogs = () => {
|
||||
// log
|
||||
const oldLog = console.log
|
||||
console.log = function (...message) {
|
||||
if (message[0] === CONNECTED_MSG) {
|
||||
popup('connected', 'success')
|
||||
} else {
|
||||
send('log', ...message)
|
||||
}
|
||||
oldLog.apply(console, message)
|
||||
}
|
||||
|
||||
// warn
|
||||
const oldWarn = console.warn
|
||||
console.warn = function (...message) {
|
||||
send('warn', ...message)
|
||||
oldWarn.apply(console, message)
|
||||
}
|
||||
|
||||
// error
|
||||
const oldError = console.error
|
||||
console.error = function (...message) {
|
||||
send('error', ...message)
|
||||
oldError.apply(console, message)
|
||||
}
|
||||
}
|
||||
|
||||
const refreshCSS = (showPopup: boolean) => {
|
||||
const head = document.getElementsByTagName('head')[0]
|
||||
|
||||
let sheets = Array.from(document.getElementsByTagName('link'))
|
||||
sheets = sheets.filter(sheet => /\.css/gm.test(sheet.href) || sheet.rel.toLowerCase() == 'stylesheet')
|
||||
|
||||
for (let i = 0; i < sheets.length; ++i) {
|
||||
const el = sheets[i]
|
||||
|
||||
const newEl = el.cloneNode(true) as HTMLLinkElement
|
||||
|
||||
// changing the href of the css file will make the browser refetch it
|
||||
const url = newEl.href.replace(/(&|\?)_cacheOverride=\d+/, '')
|
||||
newEl.href = `${url}${url.indexOf('?') >= 0 ? '&' : '?'}_cacheOverride=${new Date().valueOf()}`
|
||||
|
||||
newEl.onload = () => {
|
||||
setTimeout(() => el.remove(), 0)
|
||||
}
|
||||
|
||||
head.appendChild(newEl)
|
||||
}
|
||||
|
||||
if (sheets.length > 0 && showPopup) popup('css updated', 'info')
|
||||
}
|
||||
|
||||
const injectBody = body => {
|
||||
document.body.innerHTML = body
|
||||
}
|
||||
|
||||
let _diffDOMStatus = ''
|
||||
let _dd
|
||||
|
||||
const addDiffDOM = (): Promise<void> => {
|
||||
_diffDOMStatus = 'loading'
|
||||
return new Promise(resolve => {
|
||||
const url = `//${new URL(script.src).host}/fiveserver/scripts/diffDOM.js`
|
||||
const s = document.createElement('script')
|
||||
s.type = 'text/javascript'
|
||||
s.src = url
|
||||
s.onload = () => {
|
||||
setTimeout(() => {
|
||||
_dd = new diffDOM.DiffDOM()
|
||||
_diffDOMStatus = 'ready'
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
document.getElementsByTagName('head')[0].appendChild(s)
|
||||
})
|
||||
}
|
||||
|
||||
const domParser = new DOMParser()
|
||||
let diffError = false
|
||||
const updateBody = async (d: any) => {
|
||||
if (_diffDOMStatus === '') await addDiffDOM()
|
||||
|
||||
if (_diffDOMStatus === 'ready') {
|
||||
try {
|
||||
const body = _internalDOMBody
|
||||
|
||||
const newBody = domParser.parseFromString(d, 'text/html').querySelector('body')
|
||||
|
||||
const tmp = document.createElement('body')
|
||||
tmp.innerHTML = d
|
||||
|
||||
// copy all attributes
|
||||
if (newBody) {
|
||||
if (newBody.attributes.length > 0)
|
||||
for (let i = 0; i < newBody.attributes.length; i++) {
|
||||
const attr = newBody.attributes.item(i)
|
||||
if (attr) {
|
||||
const newAttr = document.createAttribute(attr.name)
|
||||
newAttr.value = attr.value
|
||||
tmp.attributes.setNamedItem(newAttr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const diff = _dd.diff(body, tmp)
|
||||
|
||||
const testBody = document.body.cloneNode(true)
|
||||
|
||||
const testSuccess = _dd.apply(testBody, diff)
|
||||
if (testSuccess) {
|
||||
const success = _dd.apply(document.body, diff)
|
||||
|
||||
if (success) {
|
||||
_internalDOMBody = tmp
|
||||
|
||||
if (diffError) {
|
||||
diffError = false
|
||||
appendMessage('HIDE')
|
||||
}
|
||||
|
||||
// scroll element into view (center of page)
|
||||
const el = document.querySelector(`[data-highlight="true"]`)
|
||||
if (el) {
|
||||
const documentOffsetTop = el => {
|
||||
return el.offsetTop + (el.offsetParent ? documentOffsetTop(el.offsetParent) : 0)
|
||||
}
|
||||
const pos = documentOffsetTop(el) - window.innerHeight / 2
|
||||
window.scrollTo(0, pos)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
diffError = true
|
||||
appendMessage('Having issues parsing the DOM.\nPlease verify that your HTML is valid...')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const appendMessages = (msg: string[]) => {
|
||||
appendMessage(msg.join('\n\n'))
|
||||
}
|
||||
|
||||
const appendMessage = (msg: string) => {
|
||||
if (msg === 'HIDE' || msg === 'HIDE_MESSAGE' || msg === 'HIDE_MESSAGES') {
|
||||
const wrapper = document.getElementById('fiveserver-info-wrapper')
|
||||
if (wrapper) wrapper.remove()
|
||||
} else {
|
||||
popup(msg, 'info', { animation: false })
|
||||
}
|
||||
}
|
||||
|
||||
const connect = () => {
|
||||
socket = new WebSocket(address)
|
||||
|
||||
socket.onmessage = function (msg) {
|
||||
wait = 1000
|
||||
attempts = 0
|
||||
|
||||
if (msg.data === 'reload') window.location.reload()
|
||||
else if (msg.data === 'refreshcss') refreshCSS(true)
|
||||
else if (msg.data === 'refreshcss-silent') refreshCSS(false)
|
||||
else if (msg.data === 'connected') {
|
||||
console.log(CONNECTED_MSG)
|
||||
// dispatch "connected" event when client is connected
|
||||
const script = document.querySelector('[data-id="five-server"]')
|
||||
if (script) script.dispatchEvent(new Event('connected'))
|
||||
} else if (msg.data === 'initRemoteLogs') overwriteLogs()
|
||||
else {
|
||||
const d = JSON.parse(msg.data)
|
||||
if (d.navigate) window.location.replace(d.navigate)
|
||||
// hot body injection
|
||||
if (d.body && d.hot) updateBody(d.body)
|
||||
// simple body replacement
|
||||
else if (d.body) injectBody(d.body)
|
||||
|
||||
// message and messages 🤣
|
||||
if (d.messages) appendMessages(d.messages)
|
||||
if (d.message) appendMessage(d.message)
|
||||
|
||||
// redraw the highlight on body update
|
||||
if (d.body) highlight.redraw()
|
||||
}
|
||||
}
|
||||
socket.onopen = function () {
|
||||
// reload page on successful reconnection
|
||||
if (attempts > 0) {
|
||||
window.location.reload()
|
||||
return
|
||||
}
|
||||
|
||||
const scripts = document.querySelectorAll('script')
|
||||
for (let i = 0; i < scripts.length; i++) {
|
||||
const script = scripts[i]
|
||||
if (script.dataset && script.dataset.file) {
|
||||
socket.send(JSON.stringify({ file: script.dataset.file }))
|
||||
}
|
||||
}
|
||||
|
||||
// add styles to body
|
||||
const style = document.createElement('style')
|
||||
style.innerHTML = `
|
||||
/* Injected by five-server */
|
||||
/*[data-highlight="true"] {
|
||||
border: 1px rgb(90,170,255) solid !important;
|
||||
background-color: rgba(155,215,255,0.5);
|
||||
animation: fadeOutHighlight 1s forwards 0.5s;
|
||||
}
|
||||
img[data-highlight="true"] {
|
||||
filter: sepia(100%) hue-rotate(180deg) saturate(200%);
|
||||
animation: fadeOutHighlightIMG 0.5s forwards 0.5s;
|
||||
}*/
|
||||
@keyframes fadeOutHighlight {
|
||||
from {background-color: rgba(155,215,255,0.5);}
|
||||
to {background-color: rgba(155,215,255,0);}
|
||||
}
|
||||
@keyframes fadeOutHighlightIMG {
|
||||
0% {filter: sepia(100%) hue-rotate(180deg) saturate(200%);}
|
||||
33% {filter: sepia(66%) hue-rotate(180deg) saturate(100%);}
|
||||
50% {filter: sepia(50%) hue-rotate(90deg) saturate(50%);}
|
||||
66% {filter: sepia(33%) hue-rotate(0deg) saturate(100%);}
|
||||
100% {filter: sepia(0%) hue-rotate(0deg) saturate(100%);}
|
||||
}
|
||||
@keyframes fiveserverInfoPopup {
|
||||
0% {top:-40px;}
|
||||
15% {top:4px;}
|
||||
85% {top:4px;}
|
||||
100% {top:-40px;}
|
||||
}
|
||||
/*smaller*/
|
||||
@media (max-width: 640px) {
|
||||
#fiveserver-info-wrapper {
|
||||
max-width: 98%;
|
||||
}
|
||||
#fiveserver-info {
|
||||
border-radius: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
`
|
||||
document.head.appendChild(style)
|
||||
}
|
||||
socket.onclose = function (e) {
|
||||
setTimeout(function () {
|
||||
popup('lost connection to dev server', 'error')
|
||||
}, 300)
|
||||
if (attempts === 0) console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason)
|
||||
|
||||
setTimeout(function () {
|
||||
attempts++
|
||||
if (attempts > 1) console.log('connecting...')
|
||||
if (attempts <= MAX_ATTEMPTS) connect()
|
||||
wait = Math.floor(wait * 1.1)
|
||||
}, wait)
|
||||
}
|
||||
socket.onerror = function (event) {
|
||||
// console.error('Socket encountered error: ', event, 'Closing socket')
|
||||
socket.close()
|
||||
}
|
||||
}
|
||||
|
||||
const MAX_STATUS_CHECK = 10
|
||||
let statusChecks = 0
|
||||
const reCheckStatus = () => {
|
||||
if (statusChecks > MAX_STATUS_CHECK) {
|
||||
console.error('[Five Server] status check failed')
|
||||
console.log('[Five Server] browser reloads in 5 seconds')
|
||||
setTimeout(() => {
|
||||
window.location.reload()
|
||||
}, 5000)
|
||||
return
|
||||
}
|
||||
console.log('[Five Server] status check...')
|
||||
setTimeout(() => {
|
||||
checkStatus()
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
const checkStatus = async () => {
|
||||
statusChecks++
|
||||
const p = new URL(script.src).protocol
|
||||
const h = new URL(script.src).host
|
||||
|
||||
const url = `${p}//${h}/fiveserver/status`
|
||||
|
||||
try {
|
||||
const res = await fetch(url)
|
||||
const json = await res.json()
|
||||
|
||||
if (json && json.status && json.status === 'online') {
|
||||
connect()
|
||||
statusChecks = 0
|
||||
} else {
|
||||
reCheckStatus()
|
||||
}
|
||||
} catch (error) {
|
||||
reCheckStatus()
|
||||
}
|
||||
}
|
||||
|
||||
checkStatus()
|
||||
})
|
||||
}
|
||||
BIN
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/public/favicon.ico
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
168
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/public/scripts/directory.css
vendored
Normal file
@@ -0,0 +1,168 @@
|
||||
html,
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
ul,
|
||||
li,
|
||||
pre,
|
||||
code {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
}
|
||||
html {
|
||||
background: rgb(255, 255, 255);
|
||||
background: linear-gradient(
|
||||
0deg,
|
||||
rgba(255, 255, 255, 1) 0%,
|
||||
rgba(255, 255, 255, 1) 25%,
|
||||
rgba(255, 255, 255, 1) 75%,
|
||||
rgba(246, 246, 246, 1) 100%
|
||||
);
|
||||
background-size: 100vw 100vh;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
body {
|
||||
padding: 80px 100px 20px 100px;
|
||||
font: 14px 'Helvetica Neue', 'Lucida Grande', 'Arial';
|
||||
color: #555;
|
||||
max-width: 1024px;
|
||||
margin: 0 auto;
|
||||
min-height: calc(100vh - 120px);
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-size: 22px;
|
||||
color: #343434;
|
||||
}
|
||||
h1 em,
|
||||
h2 em {
|
||||
padding: 0 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 60px;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 10px;
|
||||
}
|
||||
h3 {
|
||||
margin: 5px 0 10px 0;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 18px;
|
||||
}
|
||||
ul li {
|
||||
list-style: none;
|
||||
}
|
||||
ul li:hover {
|
||||
cursor: pointer;
|
||||
color: #2e2e2e;
|
||||
}
|
||||
ul li .path {
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
ul li .line {
|
||||
padding-right: 5px;
|
||||
font-style: italic;
|
||||
}
|
||||
ul li:first-child .path {
|
||||
padding-left: 0;
|
||||
}
|
||||
p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
a {
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: #303030;
|
||||
}
|
||||
#stacktrace {
|
||||
margin-top: 15px;
|
||||
}
|
||||
#wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
min-height: calc(100vh - 120px);
|
||||
}
|
||||
.directory h1 {
|
||||
margin-bottom: 15px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.preview .image,
|
||||
.preview code {
|
||||
/* min-width: calc(100vw - 200px - 32px); */
|
||||
min-height: 160px;
|
||||
padding: 16px;
|
||||
font-size: 14px;
|
||||
border: 1px solid #e9e9e9;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 4px 1px rgb(0 0 0 / 10%);
|
||||
}
|
||||
.preview .image {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.footer {
|
||||
text-align: right;
|
||||
padding-top: 32px;
|
||||
color: #d6d6d6;
|
||||
}
|
||||
.footer a {
|
||||
color: #ababab;
|
||||
}
|
||||
|
||||
/*small*/
|
||||
@media (max-width: 768px) {
|
||||
body {
|
||||
padding: 80px 24px 40px 24px;
|
||||
}
|
||||
}
|
||||
|
||||
/*smaller*/
|
||||
@media (max-width: 640px) {
|
||||
}
|
||||
|
||||
/*mobile*/
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
padding: 0;
|
||||
}
|
||||
.directory h1 {
|
||||
font-size: 2em;
|
||||
line-height: 1.5em;
|
||||
color: rgb(0, 0, 0);
|
||||
background: rgb(255, 255, 255);
|
||||
padding: 15px 10px;
|
||||
margin: 0;
|
||||
}
|
||||
.message {
|
||||
border-top: 1px solid #cacaca;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
.preview .image,
|
||||
.preview code {
|
||||
min-width: calc(100vw - 200px - 32px);
|
||||
min-height: 160px;
|
||||
padding: 16px;
|
||||
padding-bottom: 0px;
|
||||
font-size: 14px;
|
||||
border: none;
|
||||
margin: 0;
|
||||
border-radius: 0px;
|
||||
box-shadow: none;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
40
dotfiles/.vscode-oss/extensions/yandeu.five-server-0.3.1-universal/dist/public/scripts/query.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
function $(id) {
|
||||
const el = 'string' == typeof id ? document.getElementById(id) : id
|
||||
|
||||
el.on = function (event, fn) {
|
||||
if ('content loaded' == event) {
|
||||
event = window.attachEvent ? 'load' : 'DOMContentLoaded'
|
||||
}
|
||||
el.addEventListener ? el.addEventListener(event, fn, false) : el.attachEvent(`on${event}`, fn)
|
||||
}
|
||||
|
||||
el.all = function (selector) {
|
||||
return $(el.querySelectorAll(selector))
|
||||
}
|
||||
|
||||
el.each = function (fn) {
|
||||
for (let i = 0, len = el.length; i < len; ++i) {
|
||||
fn($(el[i]), i)
|
||||
}
|
||||
}
|
||||
|
||||
el.getClasses = function () {
|
||||
const c = this.getAttribute('class')
|
||||
if (c) return c.split(/\s+/)
|
||||
return []
|
||||
}
|
||||
|
||||
el.addClass = function (name) {
|
||||
const classes = this.getAttribute('class')
|
||||
if (!el.getAttribute(name)) el.setAttribute('class', classes ? `${classes} ${name}` : name)
|
||||
}
|
||||
|
||||
el.removeClass = function (name) {
|
||||
const classes = this.getClasses().filter(function (curr) {
|
||||
return curr != name
|
||||
})
|
||||
this.setAttribute('class', classes.join(' '))
|
||||
}
|
||||
|
||||
return el
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Files used by server-explorer
|
||||
|
||||
.svg icons are from https://github.com/PKief/vscode-material-icon-theme/tree/master/icons
|
||||
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>listing directory {directory}</title>
|
||||
<link rel="stylesheet" href="/fiveserver/scripts/directory.css" />
|
||||
<style>
|
||||
{style}
|
||||
</style>
|
||||
|
||||
<script
|
||||
async
|
||||
data-id="five-server"
|
||||
data-file="{filePath}"
|
||||
type="application/javascript"
|
||||
src="/fiveserver.js"
|
||||
></script>
|
||||
|
||||
<script src="/fiveserver/scripts/query.js"></script>
|
||||
<script>
|
||||
function search() {
|
||||
var str = $("search").value.toLowerCase();
|
||||
// var links = $("files").all("a"); // for highlight
|
||||
var list = $("files").all("li");
|
||||
|
||||
list.each(function (li) {
|
||||
var link = $(li.firstChild);
|
||||
var text = link.textContent.toLowerCase();
|
||||
|
||||
if (".." == text) return;
|
||||
|
||||
const match = str.length && ~text.indexOf(str);
|
||||
|
||||
// highlight
|
||||
// if (match) {
|
||||
// link.addClass("highlight");
|
||||
// } else {
|
||||
// link.removeClass("highlight");
|
||||
// }
|
||||
|
||||
// hide
|
||||
if (match) {
|
||||
li.removeClass("hidden");
|
||||
} else {
|
||||
li.addClass("hidden");
|
||||
}
|
||||
|
||||
if (str.length === 0) li.removeClass("hidden");
|
||||
});
|
||||
}
|
||||
|
||||
$(window).on("content loaded", function () {
|
||||
$("search").on("keyup", search);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<input id="search" type="text" placeholder="Search" autocomplete="off" />
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="directory">
|
||||
<h1><a href="/">~</a>{linked-path}</h1>
|
||||
{files}
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p>Explorer Developed by <a href="https://github.com/yandeu">@yandeu</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16,9V7H12V12.5C11.58,12.19 11.07,12 10.5,12A2.5,2.5 0 0,0 8,14.5A2.5,2.5 0 0,0 10.5,17A2.5,2.5 0 0,0 13,14.5V9H16M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z" fill="#ef5350"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 363 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m16.45 15.97.42 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96-1.14-1.27-1.68-2.88-1.68-4.83.04-2.31.72-4.08 2.04-5.32 1.28-1.25 2.92-1.89 4.9-1.89.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.6 2.49-1.04-.34c-.4-.1-.87-.15-1.4-.15-1.15-.01-2.11.36-2.86 1.1-.76.73-1.14 1.85-1.18 3.34.01 1.36.37 2.42 1.08 3.2.71.77 1.7 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.09-.32z" style="fill:#0277bd"/></svg>
|
||||
|
After Width: | Height: | Size: 501 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m4 2.5c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2h8v5l3-3 3 3v-5h2a2 2 0 0 0 2 -2v-10a2 2 0 0 0 -2 -2h-16m8 2 3 2 3-2v3.5l3 1.5-3 1.5v3.5l-3-2-3 2v-3.5l-3-1.5 3-1.5v-3.5m-8 0h5v2h-5v-2m0 4h3v2h-3v-2m0 4h5v2h-5z" fill="#ff5722"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 312 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m11 7.5v5.11l4.71 2.79.79-1.28-4-2.37v-4.25m0-5c-3.53 0-6.59 1.92-8.23 4.77l-2.27-2.27v6.5h6.5l-2.75-2.75c1.21-2.52 3.75-4.25 6.75-4.25a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1 -7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5a9.5 9.5 0 0 0 -9.5 -9.5z" style="fill:#8bc34a"/></svg>
|
||||
|
After Width: | Height: | Size: 396 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="25.6" height="25.6" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m20 19v-12h-16v12h16m0-16a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2v-14c0-1.11.9-2 2-2h16m-7 14v-2h5v2h-5m-3.42-4-4.01-4h2.83l3.3 3.3c.39.39.39 1.03 0 1.42l-3.28 3.28h-2.83z" fill="#ff7043"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 320 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m10 15.97.41 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96-1.12-1.27-1.68-2.88-1.68-4.83.05-2.31.72-4.08 2-5.32 1.32-1.25 2.96-1.89 4.94-1.89.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49-1.06-.34c-.4-.1-.86-.15-1.39-.15-1.16-.01-2.12.36-2.87 1.1-.76.73-1.15 1.85-1.18 3.34 0 1.36.37 2.42 1.08 3.2.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32m.5-4.97h2v-2h2v2h2v2h-2v2h-2v-2h-2v-2m7 0h2v-2h2v2h2v2h-2v2h-2v-2h-2z" style="fill:#0277bd"/></svg>
|
||||
|
After Width: | Height: | Size: 566 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m5 3l-.65 3.34h13.59l-.44 2.16h-13.58l-.66 3.33h13.59l-.76 3.81-5.48 1.81-4.75-1.81.33-1.64h-3.34l-.79 4 7.85 3 9.05-3 1.2-6.03.24-1.21 1.54-7.76h-16.94z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 263 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 3c-4.42 0-8 1.79-8 4s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4m-8 6v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4m0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4z" style="fill:#ffca28"/></svg>
|
||||
|
After Width: | Height: | Size: 309 B |
@@ -0,0 +1 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 14.5c-1.3875 0-2.5-1.125-2.5-2.5 0-1.3875 1.1125-2.5 2.5-2.5s2.5 1.1125 2.5 2.5a2.5 2.5 0 0 1-2.5 2.5m0-12.5a10 10 0 0 0-10 10 10 10 0 0 0 10 10 10 10 0 0 0 10-10 10 10 0 0 0-10-10z" style="fill:#b0bec5;stroke-width:1.25"/></svg>
|
||||
|
After Width: | Height: | Size: 317 B |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-.9-2-2v-16c0-1.11.89-2 2-2m9 16v-2h-9v2h9m3-4v-2h-12v2h12z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 234 B |
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg width="300" height="300" version="1.1" viewBox="0 0 299.99999 300.00001" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g transform="matrix(1.0344 0 0 1.0344 -2.8803 18.438)"><path d="m97.021 99.016 48.432-27.962c1.212-0.7 2.706-0.7 3.918 0l48.433 27.962c1.211 0.7 1.959 1.993 1.959 3.393v55.924c0 1.399-0.748 2.693-1.959 3.394l-48.433 27.962c-1.212 0.7-2.706 0.7-3.918 0l-48.432-27.962c-1.212-0.7-1.959-1.994-1.959-3.394v-55.924c1e-3 -1.4 0.748-2.693 1.959-3.393" fill="#7986cb"/><path d="m273.34 124.49-57.867-100.67c-2.102-3.64-5.985-6.325-10.188-6.325h-115.74c-4.204 0-8.088 2.685-10.19 6.325l-57.867 100.45c-2.102 3.641-2.102 8.236 0 11.877l57.867 99.847c2.102 3.64 5.986 5.501 10.19 5.501h115.74c4.203 0 8.087-1.805 10.188-5.446l57.867-100.01c2.104-3.639 2.104-7.907 1e-3 -11.547m-47.917 48.41c0 1.48-0.891 2.849-2.174 3.59l-73.71 42.527c-1.282 0.74-2.888 0.74-4.17 0l-73.767-42.527c-1.282-0.741-2.179-2.109-2.179-3.59v-85.055c0-1.481 0.884-2.849 2.167-3.59l73.707-42.527c1.282-0.741 2.886-0.741 4.168 0l73.772 42.527c1.283 0.741 2.186 2.109 2.186 3.59z" fill="#3f51b5"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m13 9h5.5l-5.5-5.5v5.5m-7-7h8l6 6v12a2 2 0 0 1 -2 2h-12c-1.11 0-2-.9-2-2v-16c0-1.11.89-2 2-2m5 2h-5v16h5 7v-9h-7v-7z" fill="#42a5f5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 226 B |
@@ -0,0 +1,326 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg4"
|
||||
sodipodi:docname="fiveserver.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter1214">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer1212">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR1206" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG1208" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB1210" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix1310" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix1312"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite1314"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4568">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4560">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4554" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4556" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4558" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4562" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4564"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4566"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4584">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4576">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4570" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4572" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4574" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4578" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4580"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4582"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4600">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4592">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4586" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4588" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4590" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4594" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4596"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4598"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4616">
|
||||
<feComponentTransfer
|
||||
result="fbSourceGraphic"
|
||||
id="feComponentTransfer4608">
|
||||
<feFuncR
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncR4602" />
|
||||
<feFuncG
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncG4604" />
|
||||
<feFuncB
|
||||
type="gamma"
|
||||
amplitude=".86"
|
||||
exponent="2.09"
|
||||
offset=".05"
|
||||
id="feFuncB4606" />
|
||||
</feComponentTransfer>
|
||||
<feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix4610" />
|
||||
<feColorMatrix
|
||||
id="feColorMatrix4612"
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -1 0.5 0.5 1 0"
|
||||
in="fbSourceGraphic"
|
||||
result="colormatrix" />
|
||||
<feComposite
|
||||
in2="fbSourceGraphic"
|
||||
id="feComposite4614"
|
||||
in="colormatrix"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1346"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="3.7439381"
|
||||
inkscape:cy="12.69948"
|
||||
inkscape:window-x="-11"
|
||||
inkscape:window-y="49"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<g
|
||||
id="g1527"
|
||||
transform="matrix(0.34104959,0,0,0.34104959,-132.83244,-85.218532)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1507"
|
||||
d="m 420.18,269.92 -2.36,10.16 c 1.08,0.96 2.19,1.9 3.27,2.86 a 4.76,4.76 0 1 1 -1,2.95 v -0.02 -0.03 -0.01 l -3.54,0.01 a 8.3,8.3 0 1 0 5.44,-7.78 l 1.21,-4.45 h 7.36 l 1.94,-3.69 z"
|
||||
style="opacity:1;fill:#7b1fa2;fill-opacity:1;stroke:none;stroke-width:0.93546373;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter1214)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,376.63,254.42)"
|
||||
style="fill:#ce93d8;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 35.2,63.1 c 0.1,-16.9 5.4,-31.5 16.3,-43.9 2.9,-3.3 6,-7.3 10.7,-3.1 4.2,3.8 1.3,7.4 -1.5,10.7 -13.7,16 -17.1,34.1 -10.6,54 2.2,6.9 6.2,12.9 11,18.3 2.8,3.2 4.8,6.8 0.9,10.2 -4,3.5 -7.1,0.8 -9.9,-2.4 C 40.8,94.4 35.2,79.6 35.2,63.1 Z"
|
||||
id="path1509" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,374.1,254.42)"
|
||||
style="fill:#ce93d8;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 166.5,63.6 c -0.2,16.4 -6,31.2 -17.4,43.7 -2.7,3 -5.7,5.4 -9.5,2.3 -4,-3.3 -2.4,-7 0.6,-10.2 17.1,-18 18.5,-45.6 6.6,-64.5 -2,-3.1 -4.3,-6 -6.6,-8.9 -2.8,-3.3 -4.5,-6.9 -0.6,-10.2 3.8,-3.2 6.8,-0.7 9.5,2.2 11.6,12.9 17.4,27.8 17.4,45.6 z"
|
||||
id="path1511" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,376.43,254.42)"
|
||||
style="fill:#9c27b0;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 57.5,63.1 c 0.3,-11.5 4,-21.3 11.4,-29.6 2.7,-3 5.7,-4.5 9.1,-1.6 3.4,2.9 2.5,6.3 -0.1,9.2 -6.5,7.4 -9.3,15.8 -8.2,25.6 0.7,6.1 3.1,11.4 7,16.1 2.8,3.3 5.6,7 1.2,10.6 -4.7,3.9 -7.7,0 -10.6,-3.5 -6.5,-7.8 -9.5,-17 -9.8,-26.8 z"
|
||||
id="path1513" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.48882,0,0,0.48882,374.37,254.42)"
|
||||
style="fill:#9c27b0;fill-opacity:1;filter:url(#filter1214)"
|
||||
class="st0"
|
||||
d="m 144.1,63.6 c -0.3,10.2 -3.9,19.9 -11.4,28.3 -2.7,3 -5.7,4.5 -9.1,1.7 -3.4,-2.8 -2.3,-6.1 0,-9.3 11.7,-15.9 11.7,-27.2 0,-43.1 -2.3,-3.2 -3.5,-6.4 -0.1,-9.3 3.4,-2.9 6.4,-1.4 9.1,1.5 7.1,7.8 11.5,18.7 11.5,30.2 z"
|
||||
id="path1515" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;fill:#7b1fa2;fill-opacity:1;stroke:none;stroke-width:0.93546373;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 419.95,269.15 -2.37,10.16 c 1.09,0.97 2.19,1.9 3.27,2.86 a 4.76,4.76 0 1 1 -1,2.95 v -0.02 -0.02 -0.02 l -3.54,0.02 a 8.3,8.3 0 1 0 5.44,-7.8 l 1.21,-4.44 h 7.37 l 1.93,-3.69 z"
|
||||
id="path1517" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1519"
|
||||
d="m 392.57,285.23 c 0.05,-8.26 2.64,-15.4 7.97,-21.45 1.42,-1.62 2.93,-3.57 5.23,-1.52 2.06,1.86 0.64,3.62 -0.73,5.23 -6.7,7.82 -8.36,16.67 -5.18,26.4 a 25.03,25.03 0 0 0 5.37,8.94 c 1.37,1.57 2.35,3.33 0.44,4.99 -1.95,1.7 -3.47,0.39 -4.83,-1.18 a 31.07,31.07 0 0 1 -8.27,-21.4 z"
|
||||
class="st0"
|
||||
style="fill:#ce93d8;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1521"
|
||||
d="m 456.76,285.48 a 31.51,31.51 0 0 1 -8.5,21.36 c -1.33,1.47 -2.8,2.64 -4.65,1.12 -1.96,-1.6 -1.18,-3.42 0.29,-4.98 8.36,-8.8 9.04,-22.3 3.23,-31.53 a 55.58,55.58 0 0 0 -3.23,-4.35 c -1.37,-1.61 -2.2,-3.37 -0.3,-4.99 1.86,-1.56 3.33,-0.34 4.65,1.08 a 32,32 0 0 1 8.5,22.29 z"
|
||||
class="st0"
|
||||
style="fill:#ce93d8;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1523"
|
||||
d="m 403.47,285.23 c 0.15,-5.62 1.96,-10.4 5.58,-14.46 1.32,-1.47 2.78,-2.2 4.45,-0.79 1.66,1.42 1.22,3.08 -0.05,4.5 a 15.5,15.5 0 0 0 -4.01,12.51 14.7,14.7 0 0 0 3.42,7.87 c 1.37,1.62 2.74,3.43 0.59,5.19 -2.3,1.9 -3.77,0 -5.18,-1.71 a 20.98,20.98 0 0 1 -4.8,-13.1 z"
|
||||
class="st0"
|
||||
style="fill:#9c27b0;fill-opacity:1;stroke-width:0.48881707" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1525"
|
||||
d="m 445.8,285.48 a 21.3,21.3 0 0 1 -5.57,13.83 c -1.32,1.47 -2.78,2.2 -4.44,0.83 -1.67,-1.37 -1.13,-2.98 0,-4.54 5.71,-7.77 5.71,-13.3 0,-21.07 -1.13,-1.56 -1.72,-3.13 -0.05,-4.55 1.66,-1.41 3.13,-0.68 4.44,0.74 a 22.12,22.12 0 0 1 5.63,14.76 z"
|
||||
class="st0"
|
||||
style="fill:#9c27b0;fill-opacity:1;stroke-width:0.48881707" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
clip-rule="evenodd"
|
||||
fill-rule="evenodd"
|
||||
stroke-linejoin="round"
|
||||
stroke-miterlimit="1.4142"
|
||||
version="1.1"
|
||||
viewBox="0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg6"
|
||||
sodipodi:docname="folder-ios.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
|
||||
id="metadata12"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs10" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="794"
|
||||
inkscape:window-height="480"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" /><path
|
||||
d="m10 4h-6c-1.11 0-2 .89-2 2v12c0 1.097.903 2 2 2h16c1.097 0 2-.903 2-2v-10c0-1.11-.9-2-2-2h-8l-2-2z"
|
||||
fill="#e57373"
|
||||
fill-rule="nonzero"
|
||||
style="fill:#78909c"
|
||||
id="path2" /></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8.9803 14.538 3.0197-8.0313 3.007 8.0313m-4.2757-11.419-6.9782 17.763h2.8547l1.421-3.8063h7.9298l1.4337 3.8063h2.8547l-6.9782-17.763z" fill="#f44336" stroke-width="1.2688"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 266 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z" fill="#e64a19"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 662 B |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#0277bd" aria-label="h">
|
||||
<path d="m16.745 19.818h-3.0066v-5.8824q0-2.381-1.7367-2.381-0.86836 0-1.4379 0.66294-0.56023 0.66294-0.56023 1.718v5.8824h-3.0159v-15.285h3.0159v6.508h0.03735q1.1858-1.8021 3.1933-1.8021 3.5108 0 3.5108 4.2391z" fill="#0277bd" stroke-width=".47806"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 439 B |