omim - init editor
|
@ -0,0 +1,18 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<style>
|
||||
m-button{
|
||||
margin: 20px;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<script src="bundle.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,12 @@
|
|||
import '../../src/editor/index.tsx'
|
||||
import { render, h } from 'omi'
|
||||
|
||||
render(
|
||||
<div>
|
||||
<m-editor>
|
||||
|
||||
</m-editor>
|
||||
|
||||
</div>
|
||||
, 'body')
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
|
||||
<meta charset="UTF-8" />
|
||||
<title>Add Omi in One Minute</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script src="https://tencent.github.io/omi/packages/omi/dist/omi.js"></script>
|
||||
<script src="../../src/badge/index.js"></script>
|
||||
|
||||
<div>
|
||||
<m-badge content="8">
|
||||
<m-icon path="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" color="#07C160" />
|
||||
</m-badge>
|
||||
|
||||
<br /><br /><br />
|
||||
<m-badge content="99">
|
||||
<m-icon path="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" color="red" />
|
||||
</m-badge>
|
||||
|
||||
<br /><br /><br />
|
||||
|
||||
<m-badge content="new">
|
||||
<m-icon path="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" color="black" />
|
||||
</m-badge>
|
||||
|
||||
|
||||
<br /><br /><br />
|
||||
<m-badge dot>
|
||||
<m-icon path="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" color="black" />
|
||||
</m-badge>
|
||||
|
||||
|
||||
</div>
|
||||
<a href="https://github.com/Tencent/omi" target="_blank" style="position: fixed; right: 0; top: 0; z-index: 3;">
|
||||
<img src="//alloyteam.github.io/github.png" alt="">
|
||||
</a>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -47,6 +47,16 @@ const config = {
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
'to-string-loader',
|
||||
'css-loader',
|
||||
{
|
||||
loader: 'resolve-url-loader'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.(jpe?g|png|gif|svg)$/i,
|
||||
loader: "url-loader"
|
||||
|
|
|
@ -47,6 +47,16 @@ module.exports = {
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
'to-string-loader',
|
||||
'css-loader',
|
||||
{
|
||||
loader: 'resolve-url-loader'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.(jpe?g|png|gif|svg)$/i,
|
||||
loader: "url-loader"
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
import { WeElement } from 'omi';
|
||||
import '../theme.ts';
|
||||
interface Props {
|
||||
z: number;
|
||||
}
|
||||
interface Data {
|
||||
}
|
||||
export default class Elevation extends WeElement<Props, Data> {
|
||||
static css: any;
|
||||
static propTypes: {
|
||||
z: NumberConstructor;
|
||||
};
|
||||
installed(): void;
|
||||
render(props: any): JSX.Element;
|
||||
}
|
||||
export {};
|
|
@ -0,0 +1,337 @@
|
|||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if(typeof exports === 'object' && typeof module === 'object')
|
||||
module.exports = factory(require("omi"));
|
||||
else if(typeof define === 'function' && define.amd)
|
||||
define(["omi"], factory);
|
||||
else if(typeof exports === 'object')
|
||||
exports["MElevation"] = factory(require("omi"));
|
||||
else
|
||||
root["MElevation"] = factory(root["Omi"]);
|
||||
})(window, function(__WEBPACK_EXTERNAL_MODULE_omi__) {
|
||||
return /******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // create a fake namespace object
|
||||
/******/ // mode & 1: value is a module id, require it
|
||||
/******/ // mode & 2: merge all properties of value into the ns
|
||||
/******/ // mode & 4: return value when already ns object
|
||||
/******/ // mode & 8|1: behave like require
|
||||
/******/ __webpack_require__.t = function(value, mode) {
|
||||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||
/******/ if(mode & 8) return value;
|
||||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||
/******/ var ns = Object.create(null);
|
||||
/******/ __webpack_require__.r(ns);
|
||||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||
/******/ return ns;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = "./src/elevation/index.tsx");
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ "./node_modules/_css-loader@1.0.1@css-loader/index.js!./node_modules/_resolve-url-loader@3.1.0@resolve-url-loader/index.js!./node_modules/_sass-loader@7.1.0@sass-loader/lib/loader.js?!./src/elevation/index.scss":
|
||||
/*!****************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/_css-loader@1.0.1@css-loader!./node_modules/_resolve-url-loader@3.1.0@resolve-url-loader!./node_modules/_sass-loader@7.1.0@sass-loader/lib/loader.js??ref--4-3!./src/elevation/index.scss ***!
|
||||
\****************************************************************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
exports = module.exports = __webpack_require__(/*! ../../node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js */ "./node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js")(false);
|
||||
// imports
|
||||
|
||||
|
||||
// module
|
||||
exports.push([module.i, ".mdc-elevation--z0 {\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z1 {\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z2 {\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z3 {\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z4 {\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z5 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z6 {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z7 {\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z8 {\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z9 {\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z10 {\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z11 {\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z12 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z13 {\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z14 {\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z15 {\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z16 {\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z17 {\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z18 {\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z19 {\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z20 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z21 {\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z22 {\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z23 {\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation--z24 {\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); }\n\n.mdc-elevation-transition {\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow; }\n", ""]);
|
||||
|
||||
// exports
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js":
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./node_modules/_css-loader@1.0.1@css-loader/lib/css-base.js ***!
|
||||
\*******************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
// css base code, injected by the css-loader
|
||||
module.exports = function(useSourceMap) {
|
||||
var list = [];
|
||||
|
||||
// return the list of modules as css string
|
||||
list.toString = function toString() {
|
||||
return this.map(function (item) {
|
||||
var content = cssWithMappingToString(item, useSourceMap);
|
||||
if(item[2]) {
|
||||
return "@media " + item[2] + "{" + content + "}";
|
||||
} else {
|
||||
return content;
|
||||
}
|
||||
}).join("");
|
||||
};
|
||||
|
||||
// import a list of modules into the list
|
||||
list.i = function(modules, mediaQuery) {
|
||||
if(typeof modules === "string")
|
||||
modules = [[null, modules, ""]];
|
||||
var alreadyImportedModules = {};
|
||||
for(var i = 0; i < this.length; i++) {
|
||||
var id = this[i][0];
|
||||
if(typeof id === "number")
|
||||
alreadyImportedModules[id] = true;
|
||||
}
|
||||
for(i = 0; i < modules.length; i++) {
|
||||
var item = modules[i];
|
||||
// skip already imported module
|
||||
// this implementation is not 100% perfect for weird media query combinations
|
||||
// when a module is imported multiple times with different media queries.
|
||||
// I hope this will never occur (Hey this way we have smaller bundles)
|
||||
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
|
||||
if(mediaQuery && !item[2]) {
|
||||
item[2] = mediaQuery;
|
||||
} else if(mediaQuery) {
|
||||
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
|
||||
}
|
||||
list.push(item);
|
||||
}
|
||||
}
|
||||
};
|
||||
return list;
|
||||
};
|
||||
|
||||
function cssWithMappingToString(item, useSourceMap) {
|
||||
var content = item[1] || '';
|
||||
var cssMapping = item[3];
|
||||
if (!cssMapping) {
|
||||
return content;
|
||||
}
|
||||
|
||||
if (useSourceMap && typeof btoa === 'function') {
|
||||
var sourceMapping = toComment(cssMapping);
|
||||
var sourceURLs = cssMapping.sources.map(function (source) {
|
||||
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
|
||||
});
|
||||
|
||||
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
|
||||
}
|
||||
|
||||
return [content].join('\n');
|
||||
}
|
||||
|
||||
// Adapted from convert-source-map (MIT)
|
||||
function toComment(sourceMap) {
|
||||
// eslint-disable-next-line no-undef
|
||||
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
|
||||
var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
|
||||
|
||||
return '/*# ' + data + ' */';
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/elevation/index.scss":
|
||||
/*!**********************************!*\
|
||||
!*** ./src/elevation/index.scss ***!
|
||||
\**********************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
|
||||
var result = __webpack_require__(/*! !../../node_modules/_css-loader@1.0.1@css-loader!../../node_modules/_resolve-url-loader@3.1.0@resolve-url-loader!../../node_modules/_sass-loader@7.1.0@sass-loader/lib/loader.js??ref--4-3!./index.scss */ "./node_modules/_css-loader@1.0.1@css-loader/index.js!./node_modules/_resolve-url-loader@3.1.0@resolve-url-loader/index.js!./node_modules/_sass-loader@7.1.0@sass-loader/lib/loader.js?!./src/elevation/index.scss");
|
||||
|
||||
if (typeof result === "string") {
|
||||
module.exports = result;
|
||||
} else {
|
||||
module.exports = result.toString();
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/elevation/index.tsx":
|
||||
/*!*********************************!*\
|
||||
!*** ./src/elevation/index.tsx ***!
|
||||
\*********************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = function (d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var omi_1 = __webpack_require__(/*! omi */ "omi");
|
||||
var css = __webpack_require__(/*! ./index.scss */ "./src/elevation/index.scss");
|
||||
//@ts-ignore
|
||||
__webpack_require__(/*! ../theme.ts */ "./src/theme.ts");
|
||||
var Elevation = /** @class */ (function (_super) {
|
||||
__extends(Elevation, _super);
|
||||
function Elevation() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
Elevation.prototype.installed = function () { };
|
||||
Elevation.prototype.render = function (props) {
|
||||
return (omi_1.h("div", __assign({}, omi_1.extractClass(props, 'mdc-elevation', "mdc-elevation--z" + props.z)),
|
||||
omi_1.h("slot", null)));
|
||||
};
|
||||
Elevation.css = css;
|
||||
Elevation.propTypes = {
|
||||
z: Number
|
||||
};
|
||||
Elevation = __decorate([
|
||||
omi_1.tag('m-elevation')
|
||||
], Elevation);
|
||||
return Elevation;
|
||||
}(omi_1.WeElement));
|
||||
exports.default = Elevation;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/theme.ts":
|
||||
/*!**********************!*\
|
||||
!*** ./src/theme.ts ***!
|
||||
\**********************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
theme();
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
theme();
|
||||
});
|
||||
function theme() {
|
||||
if (document.body && !document.body.style.getPropertyValue('--mdc-theme-primary')) {
|
||||
document.body.style.setProperty('--mdc-theme-primary', '#0072d9');
|
||||
document.body.style.setProperty('--mdc-theme-secondary', '#2170b8');
|
||||
document.body.style.setProperty('--mdc-theme-error', '#f5222d');
|
||||
document.body.style.setProperty('--mdc-theme-surface', '#ffffff');
|
||||
document.body.style.setProperty('--mdc-theme-on-primary', '#ffffff');
|
||||
document.body.style.setProperty('--mdc-theme-on-secondary', '#ffffff');
|
||||
document.body.style.setProperty('--mdc-theme-on-error', '#ffffff');
|
||||
document.body.style.setProperty('--mdc-theme-on-surface', '#000000');
|
||||
document.body.style.setProperty('--mdc-theme-background', '#ffffff');
|
||||
document.body.style.setProperty('--mdc-shape-small-component-radius', '4px');
|
||||
document.body.style.setProperty('--mdc-shape-medium-component-radius', '4px');
|
||||
document.body.style.setProperty('--mdc-shape-large-component-radius', '0px');
|
||||
document.body.style.setProperty('--mdc-typography--font-family', 'Roboto, sans-serif');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "omi":
|
||||
/*!******************************************************************************!*\
|
||||
!*** external {"commonjs":"omi","commonjs2":"omi","amd":"omi","root":"Omi"} ***!
|
||||
\******************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = __WEBPACK_EXTERNAL_MODULE_omi__;
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ })["default"];
|
||||
});
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -0,0 +1,2 @@
|
|||
@import "../theme";
|
||||
@import "@material/elevation/mdc-elevation";
|
|
@ -0,0 +1,44 @@
|
|||
import { tag, WeElement, h, extractClass } from 'omi'
|
||||
import * as css from 'quill/dist/quill.snow.css'
|
||||
import * as Quill from 'quill'
|
||||
//@ts-ignore
|
||||
import '../theme.ts'
|
||||
|
||||
interface Props {
|
||||
}
|
||||
|
||||
interface Data { }
|
||||
|
||||
@tag('m-editor')
|
||||
export default class Editor extends WeElement<Props, Data> {
|
||||
static css = css
|
||||
|
||||
static propTypes = {
|
||||
|
||||
}
|
||||
|
||||
installed() {
|
||||
|
||||
var editor = new Quill(this.shadowRoot.querySelector('#editor'), {
|
||||
modules: { toolbar: this.shadowRoot.querySelector('#toolbar') },
|
||||
theme: 'snow'
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
render(props) {
|
||||
return (
|
||||
<div>
|
||||
|
||||
<div id="toolbar">
|
||||
<button class="ql-bold">Bold</button>
|
||||
<button class="ql-italic">Italic</button>
|
||||
</div>
|
||||
|
||||
<div id="editor">
|
||||
<p>Hello World!</p>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"name": "@omim/elevation",
|
||||
"version": "0.0.1",
|
||||
"description": "Material Design for Omi.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [
|
||||
"omi",
|
||||
"omim",
|
||||
"material",
|
||||
"material design",
|
||||
"material-design"
|
||||
],
|
||||
"author": "dntzhang <dntzhang@qq.com>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/Tencent/omi/issues"
|
||||
},
|
||||
"homepage": "https://github.com/Tencent/omi",
|
||||
"typings": "./index.d.ts",
|
||||
"types": "index.d.ts",
|
||||
"dependencies": {}
|
||||
}
|
|
@ -0,0 +1,734 @@
|
|||
# 1.3.6
|
||||
|
||||
- Make picker accessible [#1999](https://github.com/quilljs/quill/pull/1999)
|
||||
- Fix Japanese composition in Chrome 65 [#2009](https://github.com/quilljs/quill/issues/2009)
|
||||
|
||||
Thanks to [@berylw](https://github.com/berylw) and [@erinsinger93](https://github.com/erinsinger93) for contributions to this release!
|
||||
|
||||
|
||||
# 1.3.5
|
||||
|
||||
- Fix indent preservation of a checked checklist item [#1818](https://github.com/quilljs/quill/issues/1818)
|
||||
- * added as a shortcut to trigger bullet list formatting [#1819](https://github.com/quilljs/quill/pull/1819)
|
||||
- Fix pasting text-align styles [#1873](https://github.com/quilljs/quill/issues/1873)
|
||||
- Fix cursor position after dangerouslyPasteHTML [#1886](https://github.com/quilljs/quill/issues/1886)
|
||||
- Fix value of history stack in text-change handler [#1906](https://github.com/quilljs/quill/pull/1906)
|
||||
- Workaround for Webkit locking up when navigating around images using hotkeys [#1910](https://github.com/quilljs/quill/issues/1910)
|
||||
|
||||
Thank you [@araruna](https://github.com/araruna), [@bryanrsmith](https://github.com/bryanrsmith), [@haugstrup](https://github.com/haugstrup), [@icylace](https://github.com/icylace), [@leimig](https://github.com/leimig), [@LFDM](https://github.com/LFDM), [@nikparo](https://github.com/nikparo), [@rafpaf](https://github.com/rafpaf) and [@vk2sky](https://github.com/vk2sky) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.3.4
|
||||
|
||||
- Loosen dependency specification [#1748](https://github.com/quilljs/quill/issues/1748)
|
||||
- Loosen list autofill constraint [#1749](https://github.com/quilljs/quill/issues/1749)
|
||||
|
||||
Thanks to [@danfuzz](https://github.com/danfuzz) and [@SoftVision-CarmenFat](https://github.com/SoftVision-CarmenFat) for contributions to this release!
|
||||
|
||||
|
||||
# 1.3.3
|
||||
|
||||
- Fix `getFormat` with no parameters while editor is not focused [#1548](https://github.com/quilljs/quill/issues/1548)
|
||||
- Remove automatic highlighting across embeds [#1691](https://github.com/quilljs/quill/issues/1691)
|
||||
- Support checking checklist on mobile [#1693](https://github.com/quilljs/quill/pull/1711)
|
||||
- Fix list creation keyboard shortcuts [#1723](https://github.com/quilljs/quill/issues/1723)
|
||||
- Show KaTex rendering errors [#1738](https://github.com/quilljs/quill/pull/1738)
|
||||
|
||||
|
||||
Thank you [@altschuler](https://github.com/altschuler), [@arrocke](https://github.com/arrocke), [@guillaumepotier](https://github.com/guillaumepotier), [@sferoze](https://github.com/sferoze) and [@volser](https://github.com/volser) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.3.2
|
||||
|
||||
- Pasting into code block should always paste as code [#1624](https://github.com/quilljs/quill/issues/1624)
|
||||
- Fix removing embed selection when arrow keys change selection [#1633](https://github.com/quilljs/quill/issues/1633)
|
||||
- Fix selection restoration after image insertion [#1649](https://github.com/quilljs/quill/issues/1649)
|
||||
- Fix selection-change firing after dragging off screen [#1654](https://github.com/quilljs/quill/issues/1654)
|
||||
- Fix placeholder text spacing [#1677](https://github.com/quilljs/quill/issues/1677)
|
||||
|
||||
Thanks to [@abramz](https://github.com/abramz), [@amitm02](https://github.com/amitm02), [@eamodio](https://github.com/eamodio), [@HWliao](https://github.com/HWliao), [@mmitis](https://github.com/mmitis), [@nelsonpecora](https://github.com/nelsonpecora), [@nipunjain87](https://github.com/nipunjain87), and [@ValueBerry](https://github.com/ValueBerry) for contributions to this release!
|
||||
|
||||
|
||||
# 1.3.1
|
||||
|
||||
- Fix placeholder when emptying text [#1594](https://github.com/quilljs/quill/issues/1594)
|
||||
- Fix inserting newline after header [#1616](https://github.com/quilljs/quill/issues/1616)
|
||||
|
||||
Thank you [@Natim](https://github.com/Natim) and [@stephenLYao](https://github.com/stephenLYao) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.3.0
|
||||
|
||||
Add `matchVisual` [configuration](https://quilljs.com/docs/modules/clipboard/#configuration) to Clipboard.
|
||||
|
||||
- Use DOM API to determine selected `<select>` option [#1576](https://github.com/quilljs/quill/pull/1576)
|
||||
- Add `:focus` styles to toolbar [#1540](https://github.com/quilljs/quill/issues/1540)
|
||||
- Allow users to undo automatic keyboard completions [#1538](https://github.com/quilljs/quill/issues/1538)
|
||||
- Use github-pages gem to make development environment consistent [#1536](https://github.com/quilljs/quill/issues/1536) [#1544](https://github.com/quilljs/quill/pull/1544)
|
||||
- Fix composing Chinese with preformatting [#1514](https://github.com/quilljs/quill/issues/1514)
|
||||
- Fix example clipboard module in docs [#1502](https://github.com/quilljs/quill/issues/1502)
|
||||
- Fix list layout in RTL mode [#1498](https://github.com/quilljs/quill/issues/1498)
|
||||
- Clarify documentation for scrollingContainer [#1496](https://github.com/quilljs/quill/issues/1496)
|
||||
- Add `tel` to default link whitelist [#1436](https://github.com/quilljs/quill/pull/1436)
|
||||
- Fix cursor interaction with custom contenteditable=false embeds [#1172](https://github.com/quilljs/quill/issues/1172) [#1181](https://github.com/quilljs/quill/issues/1181)
|
||||
- Fix rendered cursor in Chrome when interacting with scrollbar [#1114](https://github.com/quilljs/quill/issues/1114)
|
||||
|
||||
Thanks to [@alexkrolick](https://github.com/alexkrolick), [@amitm02](https://github.com/amitm02), [@Christilut](https://github.com/Christilut), [@danielschwartz](https://github.com/danielschwartz), [@emanuelbsilva](https://github.com/emanuelbsilva), [@ersommer](https://github.com/ersommer), [@fiurrr](https://github.com/fiurrr), [@jackmu95](https://github.com/jackmu95), [@jmzhang](https://github.com/jmzhang), [@mdpye](https://github.com/mdpye), [@ralrom](https://github.com/ralrom), [@sferoze](https://github.com/sferoze), [@simon-at-fugu](https://github.com/simon-at-fugu), and [@yogadzx](https://github.com/yogadzx) for contributions to this release!
|
||||
|
||||
|
||||
# 1.2.6
|
||||
|
||||
- Disable Grammarly by default [#574](https://github.com/quilljs/quill/issues/574)
|
||||
- Fix RTL list spacing [#1485](https://github.com/quilljs/quill/pull/1485)
|
||||
- Add support for mobile Youtube links [#1489](https://github.com/quilljs/quill/pull/1489)
|
||||
|
||||
Thank you [@amitm02](https://github.com/amitm02), [@benbro](https://github.com/benbro)
|
||||
[@nickbaum](https://github.com/nickbaum), [@stalniy](https://github.com/stalniy) and [@ygrishajev](https://github.com/ygrishajev) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.2.5
|
||||
|
||||
- Fix cursor shifting to be exclusive of user cursor [#1367](https://github.com/quilljs/quill/issues/1367)
|
||||
- Fix iOS hover state on toolbar [#1388](https://github.com/quilljs/quill/issues/1388)
|
||||
- Fix `getText()` for Bangla [#1427](https://github.com/quilljs/quill/issues/1427)
|
||||
- Fix Korean character composition in Safari [#1437](https://github.com/quilljs/quill/issues/1437)
|
||||
- Fix pasting HTML handling special class names [#1445](https://github.com/quilljs/quill/issues/1445)
|
||||
- Fix paste or initializing with font-weight [#1456](https://github.com/quilljs/quill/issues/1456)
|
||||
- Fix updating active picker logic [#1468](https://github.com/quilljs/quill/issues/1468)
|
||||
|
||||
Thanks to [@aliciawood](https://github.com/aliciawood), [@benbro](https://github.com/benbro), [@denis-aes](https://github.com/denis-aes), [@despreju](https://github.com/despreju), [@GlenKPeterson](https://github.com/GlenKPeterson), [@haugstrup](https://github.com/haugstrup), [@jziggas](https://github.com/jziggas), [@RobAley](https://github.com/RobAley), [@sheley1998](https://github.com/sheley1998), [@silverprize](https://github.com/silverprize), and [@yairy](https://github.com/yairy) for contributions to this release!
|
||||
|
||||
|
||||
# 1.2.4
|
||||
|
||||
- Fix pasting nested list [#906](https://github.com/quilljs/quill/issues/906)
|
||||
- Fix delete key interaction at end of list [#1277](https://github.com/quilljs/quill/issues/1277)
|
||||
- Fix pasting whitespace prefix [#1244](https://github.com/quilljs/quill/issues/1244)
|
||||
- Fix file dialog open speed [#1265](https://github.com/quilljs/quill/issues/1265)
|
||||
- Fix backspace with at beginning of list interaction with meta keys [#1307](https://github.com/quilljs/quill/issues/1307)
|
||||
- Fix pasting nested styles [#1333](https://github.com/quilljs/quill/issues/1333)
|
||||
- Fix backspacing into an empty line should keep own formats [#1339](https://github.com/quilljs/quill/issues/1339)
|
||||
- Fix IE11 autolinking interaction [#1390](https://github.com/quilljs/quill/issues/1390)
|
||||
- Fix persistent focus interaction with tabbing away [#1404](https://github.com/quilljs/quill/issues/1404)
|
||||
|
||||
Thanks to [@bigggge](https://github.com/bigggge), [@CoenWarmer](https://github.com/CoenWarmer), [@cutteroid](https://github.com/cutteroid), [@jay-cox](https://github.com/jay-cox), [@kiewic](https://github.com/kiewic), [@kloots](https://github.com/kloots), [@MichaelTontchev](https://github.com/MichaelTontchev), [@montlebalm](https://github.com/montlebalm), [@RichardNeill](https://github.com/RichardNeill), and [@vasconita](https://github.com/vasconita) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.2.3
|
||||
|
||||
- Fix scrolling when appending new lines [#1276](https://github.com/quilljs/quill/issues/1276) [#1361](https://github.com/quilljs/quill/issues/1361)
|
||||
- Fix binding to explicit shortcut key [#1365](https://github.com/quilljs/quill/issues/1365)
|
||||
- Merge clone update [#1359](https://github.com/quilljs/quill/pull/1359)
|
||||
|
||||
Thank you [@artaommahe](https://github.com/artaommahe), [@c-w](https://github.com/c-w), [@EladBet](https://github.com/EladBet), [@emenoh](https://github.com/emenoh), and [@montlebalm](https://github.com/montlebalm) for contributions to this release!
|
||||
|
||||
|
||||
# 1.2.2
|
||||
|
||||
- Fix backspace/delete on Windows/Ubuntu [#1334](https://github.com/quilljs/quill/issues/1334)
|
||||
|
||||
Thanks to [@dinusuresh](https://github.com/dinusuresh) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.2.1
|
||||
|
||||
- Fix link removal on Snow theme [#1259](https://github.com/quilljs/quill/issues/1259)
|
||||
- Fix CMD+backspace on empty editor [#1319](https://github.com/quilljs/quill/issues/1319)
|
||||
- Fix disabled checklist behavior [#1312](https://github.com/quilljs/quill/issues/1312)
|
||||
|
||||
Thank you [@danielschwartz](https://github.com/@danielschwartz), [@JedWatson](https://github.com/@JedWatson), [@montlebalm](https://github.com/@montlebalm), and [@simi](https://github.com/@simi) for contributions to this release!
|
||||
|
||||
|
||||
# 1.2.0
|
||||
|
||||
Add concept of experimental APIs: they are APIs meant to try out support for use cases we would like to address, but gives flexibility to find the right API interface. As such they are not covered by Semantic Versioning. Several are added to start things off: `find`, `getIndex`, `getLeaf`, `getLine`, `getLines`.
|
||||
|
||||
- Merge disabling list keyboard shortcut when list format is disabled [#1257](https://github.com/quilljs/quill/pull/1257)
|
||||
|
||||
Thanks to [@haugstrup](https://github.com/haugstrup) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.1.10
|
||||
|
||||
- Preserve user selection on API changes [#1152](https://github.com/quilljs/quill/issues/1152)
|
||||
- Fix backspacing into emojis [#1230](https://github.com/quilljs/quill/issues/1230)
|
||||
- Fix ability to type after emptying line in IE/Firefox [#1254](https://github.com/quilljs/quill/issues/1254)
|
||||
- Fix whitelisting block formats [#1256](https://github.com/quilljs/quill/issues/1256)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@haugstrup](https://github.com/haugstrup), [@peterweck](https://github.com/peterweck) and [@sbevels](https://github.com/sbevels) for contributions to this release!
|
||||
|
||||
|
||||
# 1.1.9
|
||||
|
||||
- Flip tooltips when vertically out of bounds [#851](https://github.com/quilljs/quill/issues/851)
|
||||
- Fix IE11 autolinking and control backspace [#1028](https://github.com/quilljs/quill/issues/1028)
|
||||
- Only show tooltip when user initiates selection change [#1193](https://github.com/quilljs/quill/issues/1193)
|
||||
- Fix bug needing to click twice on align [#1220](https://github.com/quilljs/quill/issues/1220)
|
||||
- Fix cut + pasting videos [#1222](https://github.com/quilljs/quill/issues/1222)
|
||||
|
||||
Thanks to [@amitguptagwl](https://github.com/amitguptagwl), [@antonlabunets](https://github.com/antonlabunets), [@benbro](https://github.com/benbro), [@eamodio](https://github.com/eamodio) and [@ygrishajev](https://github.com/ygrishajev) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.1.8
|
||||
|
||||
- Support pasting italics from Google Docs [#1185](https://github.com/quilljs/quill/issues/1185)
|
||||
- Fix setting dropdown picker back to default [#1191](https://github.com/quilljs/quill/issues/1191)
|
||||
- Fix code-block formatting on empty first line in Firefox [#1195](https://github.com/quilljs/quill/issues/1195)
|
||||
- Prevent formatting via keyboard shortcuts when not whitelisted [#1197](https://github.com/quilljs/quill/issues/1197)
|
||||
- Fix select-all copy and overwrite paste in Firefox [#1202](https://github.com/quilljs/quill/issues/1202)
|
||||
|
||||
Thank you [@adfaure](https://github.com/adfaure), [@berndschimmer](https://github.com/berndschimmer), [@CoenWarmer](https://github.com/CoenWarmer), [@montlebalm](https://github.com/montlebalm), and [@TraceyYau](https://github.com/TraceyYau) for contributions to this release!
|
||||
|
||||
|
||||
# 1.1.7
|
||||
|
||||
- Fix dropdown values reverting to default [#901](https://github.com/quilljs/quill/issues/901)
|
||||
- Add config to prevent scroll jumping on paste [#1082](https://github.com/quilljs/quill/issues/1082)
|
||||
- Prevent scrolling on API source calls [#1152](https://github.com/quilljs/quill/issues/1152)
|
||||
- Fix tsconfig build error [#1165](https://github.com/quilljs/quill/issues/1165)
|
||||
- Fix delete and formatting interaction in Firefox [#1171](https://github.com/quilljs/quill/issues/1171)
|
||||
- Fix cursor jump on formatting in middle of text [#1176](https://github.com/quilljs/quill/issues/1176)
|
||||
|
||||
Thanks to [@cutteroid](https://github.com/cutteroid), [@houxg](https://github.com/houxg), [@jasongisstl](https://github.com/jasongisstl), [@nikparo](https://github.com/nikparo), [@sbevels](https://github.com/sbevels), and [sferoze](https://github.com/sferoze) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.1.6
|
||||
|
||||
### Features
|
||||
|
||||
Checklists [#759](https://github.com/quilljs/quill/issues/759) support has been added to the API. UI and relevant interactions are still forthcoming.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix bug that allowed edits in readOnly mode [#1151](https://github.com/quilljs/quill/issues/1151)
|
||||
- Fix max call stack bug on large paste [#1123](https://github.com/quilljs/quill/issues/1123)
|
||||
|
||||
Thank you [@jgmediadesign](https://github.com/jgmediadesign) and [@julienbmobile](https://github.com/julienbmobile) for contributions to this release!
|
||||
|
||||
|
||||
# 1.1.5
|
||||
|
||||
- Remove unnecessary type attribute in documentation [#1087](https://github.com/quilljs/quill/pull/1087)
|
||||
- Fix chrome 52+ input file label open slow [#1090](https://github.com/quilljs/quill/pull/1090)
|
||||
- Only query the last op's insertion string if it's actually an insert [#1095](https://github.com/quilljs/quill/pull/1095)
|
||||
|
||||
Thank you [@jleen](https://github.com/jleen), [@kaelig](https://github.com/kaelig), and [@YouHan26](https://github.com/YouHan26) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.1.3
|
||||
|
||||
- Update quill-delta [delta#2](https://github.com/quilljs/delta/issues/2)
|
||||
- Fix link creation [#1073](https://github.com/quilljs/quill/issues/1073)
|
||||
|
||||
Thanks to [@eamodio](https://github.com/eamodio) and [@metsavir](https://github.com/metsavir) for contributions to this release!
|
||||
|
||||
|
||||
# 1.1.2
|
||||
|
||||
- Fix setContents on already formatted text [#1065](https://github.com/quilljs/quill/issues/1065)
|
||||
- Fix regression [#1067](https://github.com/quilljs/quill/issues/1067)
|
||||
- Improve documentation [#1069](https://github.com/quilljs/quill/pull/1069) [#1070](https://github.com/quilljs/quill/pull/1070)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@derickruiz](https://github.com/derickruiz), [@eamodio](https://github.com/eamodio), [@hallaathrad](https://github.com/hallaathrad), and [@philly385](https://github.com/philly385) for your contributions to this release.
|
||||
|
||||
|
||||
# 1.1.1
|
||||
|
||||
### Bug fixes
|
||||
|
||||
- TEXT_CHANGE event now use cursor position to inform change location [#746](https://github.com/quilljs/quill/issues/746)
|
||||
- Fix inconsistent cursor reporting between browsers [#1007](https://github.com/quilljs/quill/issues/1007)
|
||||
- Fix tooltip overflow in docs [#1060](https://github.com/quilljs/quill/issues/1060)
|
||||
- Fix naming [#1063](https://github.com/quilljs/quill/pull/1063)
|
||||
- Fix Medium example [#1064](https://github.com/quilljs/quill/issues/1064)
|
||||
|
||||
Thanks to [@artaommahe](https://github.com/artaommahe), [@benbro](https://github.com/benbro), [@fuffalist](https://github.com/fuffalist), [@sachinrekhi](https://github.com/sachinrekhi), [@sergop321](https://github.com/sergop321), and [@tlg](https://github.com/tlg) for contributions to this release!
|
||||
|
||||
Special thanks to [@DadaMonad](https://github.com/DadaMonad) for contributions on [fast-diff](https://github.com/jhchen/fast-diff) that enabled the [#746](https://github.com/quilljs/quill/issues/746) fix.
|
||||
|
||||
|
||||
# 1.1.0
|
||||
|
||||
### Additions
|
||||
|
||||
Quill has always allowed API calls, even when the editor is in readOnly mode. All API calls also took a `source` parameter to indicate the origin of the change. For example, a click handler in the toolbar would call `formatText` with `source` set to `"user"`. When the editor is in readOnly mode, it would make sense for user initiated actions to be ignored. For example the user cannot focus or type into the editor. However because API calls are allowed, the user could still modify the editor contents [#909](https://github.com/quilljs/quill/issues/909). The natural fix is to ignore user initiated actions, even if it came through an API call, when the editor is in readOnly mode.
|
||||
|
||||
However, the documentation never stated API calls with `source` set to `"user"` would be ignored sometimes, so this would be a breaking change under semver. Some could argue this is a bug fix and would only warrant a patch version bump, but this seems disingenuous for this particular case. The fact that almost no one took advantage of the `source` beyond default values is irrelevant under the eyes of semver.
|
||||
|
||||
So a `strict` configuration option has been added. It is true by default so the above behavior is unchanged, and [#909](https://github.com/quilljs/quill/issues/909) is unfixed. Changing this to `false`, will use new behavior of ignoring user initiated changes on a disabled editor, even if through an API call.
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix undo when preformatted text inserted before plain text [#1019](https://github.com/quilljs/quill/issues/1019)
|
||||
- Add focus indicator on toolbar buttons [#1020](https://github.com/quilljs/quill/issues/1020)
|
||||
- Do not steal focus on API calls [#1029](https://github.com/quilljs/quill/issues/1029)
|
||||
- Disable paste when Quill is disabled [#1038](https://github.com/quilljs/quill/issues/1038)
|
||||
- Fix blank detection [#1043](https://github.com/quilljs/quill/issues/1043)
|
||||
- Enable yarn [#1041](https://github.com/quilljs/quill/issues/1041)
|
||||
- Documentation fixes [#1026](https://github.com/quilljs/quill/pull/1026), [#1027](https://github.com/quilljs/quill/pull/1027), [#1032](https://github.com/quilljs/quill/pull/1032)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@cutteroid](https://github.com/cutteroid), [@evansolomon](https://github.com/evansolomon), [@felipeochoa](https://github.com/felipeochoa), [jackmu95](https://github.com/jackmu95), [@joedynamite](https://github.com/joedynamite), [@lance13c](https://github.com/lance13c), [@leebenson](https://github.com/leebenson), [@maartenvanvliet](https://github.com/maartenvanvliet), [@sarbbottam](https://github.com/sarbbottam), [@viljark](https://github.com/viljark), [@w00fz](https://github.com/w00fz) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.6
|
||||
|
||||
Documentation clarifications and bug fixes.
|
||||
|
||||
- Fix attaching toolbar to `<select>` without themes [#997](https://github.com/quilljs/quill/issues/997)
|
||||
- Link `code` icon to `code-block` [#998](https://github.com/quilljs/quill/issues/998)
|
||||
- Fix undo stack when at size limit [#1001](https://github.com/quilljs/quill/pull/1001)
|
||||
- Fix bug where `formatLine` did not ignore inline formats [8a7190](https://github.com/quilljs/parchment/commit/8a71905b2dd02d003edb02a15fdc727b26914e49)
|
||||
|
||||
Thanks to [@dropfen](https://github.com/dropfen), [@evansolomon](https://github.com/evansolomon), [@hallaathrad](https://github.com/hallaathrad), [@janyksteenbeek](https://github.com/janyksteenbeek), [@jackmu95](https://github.com/jackmu95), [@marktron](https://github.com/marktron), [@mcat-ee](https://github.com/mcat-ee), [@unhammer](https://github.com/unhammer), and [@zeke](https://github.com/zeke) for contributions to this release!
|
||||
|
||||
|
||||
# 1.0.5
|
||||
|
||||
Became 1.0.6 with a build/deploy fix.
|
||||
|
||||
|
||||
# 1.0.4
|
||||
|
||||
- Fix bubble theme defaults [#963](https://github.com/quilljs/quill/issues/963)
|
||||
- Fix browsers modifying inline nesting order [#971](https://github.com/quilljs/quill/issues/971)
|
||||
- Do not fire selection-change event on paste [#974](https://github.com/quilljs/quill/issues/974)
|
||||
- Support alt attribute in images [#975](https://github.com/quilljs/quill/issues/975)
|
||||
- Deprecate `pasteHTML` for removal in Quill 2.0 [#981](https://github.com/quilljs/quill/issues/981)
|
||||
|
||||
Thank you [jackmu95](https://github.com/jackmu95), [kristeehan](https://github.com/kristeehan), [ruffle1986](https://github.com/ruffle1986), [sergop321](https://github.com/sergop321), [sferoze](https://github.com/sferoze), and [sijad](https://github.com/sijad) for contributions to this release.
|
||||
|
||||
|
||||
# 1.0.3
|
||||
|
||||
- Fix [#928](https://github.com/quilljs/quill/issues/928)
|
||||
|
||||
Thank you [@scottmessinger](https://github.com/scottmessinger) for the bug report.
|
||||
|
||||
|
||||
# 1.0.2
|
||||
|
||||
- Fix building quill.core.js [docs #11](https://github.com/quilljs/quilljs.github.io/issues/11)
|
||||
- Fix regression of [#793](https://github.com/quilljs/quill/issues/793)
|
||||
|
||||
Thanks to [@eamodio](https://github.com/eamodio) and [@neandrake](https://github.com/neandrake) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0
|
||||
|
||||
Quill 1.0 is released! Read the [official announcement](https://quilljs.com/blog/announcing-quill-1-0/).
|
||||
|
||||
|
||||
# 1.0.0-rc.4
|
||||
|
||||
Fix one important bug [fdd920](https://github.com/quilljs/quill/commit/fdd920250c05403ed9e5d6d86826a00167ba0b09)
|
||||
|
||||
|
||||
# 1.0.0-rc.3
|
||||
|
||||
A few bug fixes, one with with possibly significant implications. See the [issue #889](https://github.com/quilljs/quill/issues/889) and [commit fix](https://github.com/quilljs/quill/commit/be24c62a6234818548658fcb5e1935a0c07b4eb7) for more details.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix indenting beyond first level with toolbar [#882](https://github.com/quilljs/quill/issues/882)
|
||||
- Fix toolbar font/size display on Safari [#884](https://github.com/quilljs/quill/issues/884)
|
||||
- Fix pasting from Gmail from on different browser [#886](https://github.com/quilljs/quill/issues/886)
|
||||
- Fix undo/redo consistency [#889](https://github.com/quilljs/quill/issues/889)
|
||||
- Fix null error when selecting all on Firefox [#891](https://github.com/quilljs/quill/issues/891)
|
||||
- Fix merging keyboard options twice [#897](https://github.com/quilljs/quill/issues/897)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@cgilboy](https://github.com/cgilboy), [@cutteroid](https://github.com/cutteroid), and [@routman](https://github.com/routman) for contributions to this release!
|
||||
|
||||
|
||||
# 1.0.0-rc.2
|
||||
|
||||
A few bug fixes, including one significant [one](https://github.com/quilljs/quill/issues/883)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix icon picker rendering in MS Edge [#877](https://github.com/quilljs/quill/issues/877)
|
||||
- Add back minified build to release [#881](https://github.com/quilljs/quill/issues/881)
|
||||
- Fix optimized change calculation with preformatted text [#883](https://github.com/quilljs/quill/issues/883)
|
||||
|
||||
Thanks to [benbro](https://github.com/benbro), [cutteroid](https://github.com/cutteroid), and [CapTec](https://github.com/CapTec) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-rc.1
|
||||
|
||||
A few bug fixes and performance improvements.
|
||||
|
||||
### Features
|
||||
|
||||
- Source maps now available from CDN for minified build
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix scroll interaction between two Quill editors [#855](https://github.com/quilljs/quill/issues/855)
|
||||
- Fix scroll on paste [#856](https://github.com/quilljs/quill/issues/856)
|
||||
- Fix native iOS tooltip formatting [#862](https://github.com/quilljs/quill/issues/862)
|
||||
- Remove comments from pasting from Word [#872](https://github.com/quilljs/quill/issues/872)
|
||||
- Fix indent at all supported indent levels [#873](https://github.com/quilljs/quill/issues/873)
|
||||
- Fix indent interaction with text direction [#874](https://github.com/quilljs/quill/issues/874)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@fernandogmar](https://github.com/fernandogmar), [@sachinrekhi](https://github.com/sachinrekhi), [@sferoze](https://github.com/sferoze), and [@stalniy](https://github.com/stalniy) for contributions to this release!
|
||||
|
||||
|
||||
# 1.0.0-rc.0
|
||||
|
||||
Take a look at [Quill 1.0 Release Candidate](https://quilljs.com/blog/quill-1-0-release-candidate-released/) for more details.
|
||||
|
||||
### Updates
|
||||
|
||||
- Going forward the minimal stylesheet build will be named quill.core.css, instead of quill.css
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix identifying ordered and bulletd lists [#846](https://github.com/quilljs/quill/issues/846) [#847](https://github.com/quilljs/quill/issues/847)
|
||||
- Fix bullet interaction with text direction [#848](https://github.com/quilljs/quill/issues/848)
|
||||
|
||||
A huge thank you to all contributors to through the beta! Special thanks goes to [@benbro](https://github.com/benbro) and [@sachinrekhi](https://github.com/sachinrekhi) who together submitted submitted almost 50 Issues and Pull Requests!
|
||||
|
||||
- [@abejdaniels](https://github.com/abejdaniels)
|
||||
- [@anovi](https://github.com/anovi)
|
||||
- [@benbro](https://github.com/benbro)
|
||||
- [@bram2w](https://github.com/bram2w)
|
||||
- [@brynjagr](https://github.com/brynjagr)
|
||||
- [@CapTec](https://github.com/CapTec)
|
||||
- [@Cinamonas](https://github.com/Cinamonas)
|
||||
- [@clemmy](https://github.com/clemmy)
|
||||
- [@crisbeto](https://github.com/crisbeto)
|
||||
- [@cutteroid](https://github.com/cutteroid)
|
||||
- [@DadaMonad](https://github.com/DadaMonad)
|
||||
- [@davelozier](https://github.com/davelozier)
|
||||
- [@emanuelbsilva](https://github.com/emanuelbsilva)
|
||||
- [@ersommer](https://github.com/ersommer)
|
||||
- [@fernandogmar](https://github.com/fernandogmar)
|
||||
- [@george-norris-salesforce](https://github.com/george-norris-salesforce)
|
||||
- [@jackmu95](https://github.com/jackmu95)
|
||||
- [@jasonmng](https://github.com/jasonmng)
|
||||
- [@jbrowning](https://github.com/jbrowning)
|
||||
- [@jonnolen](https://github.com/jonnolen)
|
||||
- [@KameSama](https://github.com/KameSama)
|
||||
- [@kei-ito](https://github.com/kei-ito)
|
||||
- [@kylebragger](https://github.com/kylebragger)
|
||||
- [@LucVanPelt](https://github.com/LucVanPelt)
|
||||
- [@lukechapman](https://github.com/lukechapman)
|
||||
- [@micimize](https://github.com/micimize)
|
||||
- [@mmorearty](https://github.com/mmorearty)
|
||||
- [@mshamaiev-intel471](https://github.com/mshamaiev-intel471)
|
||||
- [@quentez](https://github.com/quentez)
|
||||
- [@sachinrekhi](https://github.com/sachinrekhi)
|
||||
- [@sagacitysite](https://github.com/sagacitysite)
|
||||
- [@saw](https://github.com/saw)
|
||||
- [@stalniy](https://github.com/stalniy)
|
||||
- [@tOgg1](https://github.com/tOgg1)
|
||||
- [@u9520107](https://github.com/u9520107)
|
||||
- [@WriterStat](https://github.com/WriterStat)
|
||||
|
||||
|
||||
# 1.0.0-beta.11
|
||||
|
||||
Fixed some regressive bugs from previous release.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix activating more than one format before typing [#841](https://github.com/quilljs/quill/issues/841)
|
||||
- Run default matchers before before user defined ones [#843](https://github.com/quilljs/quill/issues/843)
|
||||
- Fix merging theme configurations [#844](https://github.com/quilljs/quill/issues/844), [#845](845)
|
||||
|
||||
Thanks [benbro](https://github.com/benbro), [jackmu95](https://github.com/jackmu95), and [george-norris-salesforce](https://github.com/george-norris-salesforce) for the bug reports.
|
||||
|
||||
|
||||
# 1.0.0-beta.10
|
||||
|
||||
Lots of bug fixes and performance improvements.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Keyboard handler format in initial [configuration](beta.quilljs.com/docs/modules/keyboard/) has changed. `addBinding` is overloaded to be backwards compatible.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Preserve last bullet on paste [#696](https://github.com/quilljs/quill/issues/696)
|
||||
- Fix getBounds calculation for lists [#765](https://github.com/quilljs/quill/issues/765)
|
||||
- Escape quotes in font value [#769](https://github.com/quilljs/quill/issues/769)
|
||||
- Fix spacing calculation on paste [#797](https://github.com/quilljs/quill/issues/797)
|
||||
- Fix Snow tooltip label [#798](https://github.com/quilljs/quill/issues/798)
|
||||
- Fix link tooltip showing up on long click [#799](https://github.com/quilljs/quill/issues/799)
|
||||
- Fix entering code block in IE and Firefox [#803](https://github.com/quilljs/quill/issues/803)
|
||||
- Fix opening image dialog on Firefox [#805](https://github.com/quilljs/quill/issues/805)
|
||||
- Fix focus loss on updateContents [#809](https://github.com/quilljs/quill/issues/809)
|
||||
- Reset toolbar of blur [#810](https://github.com/quilljs/quill/issues/810)
|
||||
- Fix cursor position calculation on delete [#811](https://github.com/quilljs/quill/issues/811)
|
||||
- Fix highlighting across different alignment values [#815](https://github.com/quilljs/quill/issues/815)
|
||||
- Allow default active button [#816](https://github.com/quilljs/quill/issues/816)
|
||||
- Fix deleting last character of formatted text on Firefox [#824](https://github.com/quilljs/quill/issues/824)
|
||||
- Fix Youtube regex [#826](https://github.com/quilljs/quill/pull/826)
|
||||
- Fix missing imports when Quill not global [#836](https://github.com/quilljs/quill/pull/836)
|
||||
|
||||
Thanks to [benbro](https://github.com/benbro), [clemmy](https://github.com/clemmy), [crisbeto](https://github.com/crisbeto), [cutteroid](https://github.com/cutteroid), [jackmu95](https://github.com/jackmu95), [kylebragger](https://github.com/kylebragger), [sachinrekhi](https://github.com/sachinrekhi), [stalniy](https://github.com/stalniy), and [tOgg1](https://github.com/tOgg1) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.9
|
||||
|
||||
Potentially the final beta before a release candidate, if no major issues are discovered.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- No longer expose `ui/link-tooltip` through `import` as implementation is now Snow specific
|
||||
- Significant refactoring of `ui/tooltip`
|
||||
- Syntax module now autodetects language, instead of defaulting to Javascript
|
||||
|
||||
### Features
|
||||
|
||||
- Formula and video insertion UI added to Snow and Bubble themes
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix toolbar active state after backspacing to previous line [#730](https://github.com/quilljs/quill/issues/730)
|
||||
- User selection is now preserved various API calls [#731](https://github.com/quilljs/quill/issues/731)
|
||||
- Fix long click on link-tooltip [#747](https://github.com/quilljs/quill/issues/747)
|
||||
- Fix ordered list and text-align right interaction [#784](https://github.com/quilljs/quill/issues/784)
|
||||
- Fix toggling code block off [#789](https://github.com/quilljs/quill/issues/789)
|
||||
- Scroll position is now automatically preserved between editor blur and focus
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@KameSama](https://github.com/KameSama), and [@sachinrekhi](https://github.com/sachinrekhi) for contributions to this release!
|
||||
|
||||
|
||||
# 1.0.0-beta.8
|
||||
|
||||
Weekly beta preview release. The editor is almost ready for release candidacy but a couple cycles will be spent on the Snow and Bubble interfaces.
|
||||
|
||||
### Work in Progress
|
||||
|
||||
Image insertion is being reworked in the provided Snow and Bubble themes. The old image-tooltip has been removed in favor of a simpler and native interaction. By default clicking the image icon on the toolbar will open the OS file picker to convert and that into a base64 image. This will allow for a more natural hook to upload to a remote server instead. Some changes to the link tooltip is also being made to accommodate formula and video insertion, currently only available through the API.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Image tooltip UI has been removed, see above
|
||||
- Code blocks now use a single `<pre>` tag, instead of one per line [#723](https://github.com/quilljs/quill/issues/723)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix multiline syntax highlighting [#723](https://github.com/quilljs/quill/issues/723)
|
||||
- Keep pickers open on api text-change [#734](https://github.com/quilljs/quill/issues/734)
|
||||
- Emit correct source for text-change [#760](https://github.com/quilljs/quill/issues/760)
|
||||
- Emit correct parameters in selection-change [#762](https://github.com/quilljs/quill/issues/762)
|
||||
- Fix error redoing line insertion [#767](https://github.com/quilljs/quill/issues/767)
|
||||
- Better emitted Deltas for text-change [#768](https://github.com/quilljs/quill/issues/768)
|
||||
- Better Array.prototype.find polyfill for IE11 [#776](https://github.com/quilljs/quill/issues/776)
|
||||
- Fix Parchment errors in replacing text [#779](https://github.com/quilljs/quill/issues/779) [#783](https://github.com/quilljs/quill/issues/783)
|
||||
- Fix align button active state [#780](https://github.com/quilljs/quill/issues/780)
|
||||
- Fix format text on falsy value [#782](https://github.com/quilljs/quill/issues/782)
|
||||
- Use native cut [#785](https://github.com/quilljs/quill/issues/785)
|
||||
- Fix initializing document where last line is formatted [#786](https://github.com/quilljs/quill/issues/786)
|
||||
|
||||
Thanks to [benbro](https://github.com/benbro), [bram2w](https://github.com/bram2w), [clemmy](https://github.com/clemmy), [DadaMonad](https://github.com/DadaMonad), [ersommer](https://github.com/ersommer), [michaeljosephrosenthal](https://github.com/michaeljosephrosenthal), [mmorearty](https://github.com/mmorearty), [mshamaiev-intel471](https://github.com/mshamaiev-intel471), and [sachinrekhi](https://github.com/sachinrekhi) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.7
|
||||
|
||||
Became 1.0.0-beta.8 with a fix.
|
||||
|
||||
|
||||
# 1.0.0-beta.6
|
||||
|
||||
Weekly beta preview release.
|
||||
|
||||
### Features
|
||||
|
||||
- Pickers can now be used and is styled in Bubble theme
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix editing within formula [#702](https://github.com/quilljs/quill/issues/702)
|
||||
- Fix adding new line when deleting across lists [#741](https://github.com/quilljs/quill/issues/741)
|
||||
- Fix placeholder when default block tag is changed [#743](https://github.com/quilljs/quill/issues/743)
|
||||
- Keep Bubble tooltip open on format [#744](https://github.com/quilljs/quill/issues/744)
|
||||
- Fix format loss when copying from Quill [#748](https://github.com/quilljs/quill/issues/748) [#750](https://github.com/quilljs/quill/issues/750)
|
||||
- Break long lines in Firefox [#751](https://github.com/quilljs/quill/issues/751)
|
||||
- Fix cursor position being off after formatting and typing quickly [#752](https://github.com/quilljs/quill/issues/752)
|
||||
- Remove image resizing handles on Firefox [#753](https://github.com/quilljs/quill/issues/753)
|
||||
- Fix removing blockquote on initialization [#754](https://github.com/quilljs/quill/issues/754)
|
||||
- Fix adding blank lines on initialization [#756](https://github.com/quilljs/quill/issues/756)
|
||||
|
||||
Thank you [abejdaniels](https://github.com/abejdaniels), [benbro](https://github.com/benbro), [davelozier](https://github.com/davelozier), [fernandogmar](https://github.com/fernandogmar), [KameSama](https://github.com/KameSama), and [WriterStat](https://github.com/WriterStat) for contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.5
|
||||
|
||||
Weekly beta preview release.
|
||||
|
||||
### Features
|
||||
|
||||
- Add blur() [#726](https://github.com/quilljs/quill/pull/726)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix null error [#728](https://github.com/quilljs/quill/issues/728)
|
||||
- Fix building with Node v6 [#732](https://github.com/quilljs/quill/issues/732)
|
||||
- Ensure button type for supplied buttons [#733](https://github.com/quilljs/quill/issues/733)
|
||||
- Fix line break pasting on Firefox [#735](https://github.com/quilljs/quill/issues/735)
|
||||
- Fix 'user' source on API calls [#739](https://github.com/quilljs/quill/issues/739)
|
||||
|
||||
Thanks to [benbro](https://github.com/benbro), [lukechapman](https://github.com/lukechapman), [sachinrekhi](https://github.com/sachinrekhi), and [saw](https://github.com/saw) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.4
|
||||
|
||||
Weekly beta preview release.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Headers no longer generates id attribute [#700](https://github.com/quilljs/quill/issues/700)
|
||||
- Add Control+Y hotkey on Windows [#705](https://github.com/quilljs/quill/issues/705)
|
||||
- BlockEmbed Blots are now length 1 and represented in a Delta the same as an inline embed
|
||||
- value() used to return object and newline, newline is now removed
|
||||
- formats used to be attributed on the newline character, it is now attributed on the object
|
||||
|
||||
### Features
|
||||
|
||||
- Enter on empty and indented list removes indent [#707](https://github.com/quilljs/quill/issues/707)
|
||||
- Allow base64 images to be inserted via APIs [#721](https://github.com/quilljs/quill/issues/721)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix typing after clearing inline format [#703](https://github.com/quilljs/quill/issues/703)
|
||||
- Correctly position Bubble tooltip when selecting multiple lines [#706](https://github.com/quilljs/quill/issues/706)
|
||||
- Fix typing after link format [#708](https://github.com/quilljs/quill/issues/708)
|
||||
- Fix loss of selection on using link tooltip [#709](https://github.com/quilljs/quill/issues/709)
|
||||
- Fix `setSelection(null)` [#722](https://github.com/quilljs/quill/issues/722)
|
||||
|
||||
Thank you [@benbro](https://github.com/benbro), [@brynjagr](https://github.com/brynjagr), and [@sachinrekhi](https://github.com/sachinrekhi) for contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.3
|
||||
|
||||
Weekly beta preview release.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Keyboard was incorrectly using `metaKey` to refer to the control key on Windows. It now correctly refers to the Window key and `shortKey` has been added to refer the common platform specific modifier for hotkeys (metaKey for Mac, ctrlKey for Windows/Linux)
|
||||
- Formula is now a module, since it uses KaTeX
|
||||
|
||||
### Features
|
||||
|
||||
- Picker now uses text from original `<option>` if available
|
||||
- Tabbing inside code blocks inserts tab to each line
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Enter preserves inline formats [#666](https://github.com/quilljs/quill/issues/666)
|
||||
- Fix resetting format button with no selection [#667](https://github.com/quilljs/quill/issues/667)
|
||||
- Fix paste interpretation from Word [#668](https://github.com/quilljs/quill/issues/668)
|
||||
- Focus scrolls to correct cursor position [#669](https://github.com/quilljs/quill/issues/669)
|
||||
- Fix deleting image on otherwise empty document [#670](https://github.com/quilljs/quill/issues/670)
|
||||
- Fix bubble toolbar formatting [#679](https://github.com/quilljs/quill/issues/679)
|
||||
- Fix pasting ql-indent lines [#681](https://github.com/quilljs/quill/issues/681)
|
||||
- Fix getting into state with double underline tag [#695](https://github.com/quilljs/quill/issues/695)
|
||||
- Fix source type on delete [#697](https://github.com/quilljs/quill/issues/697)
|
||||
- Fix indent becoming NaN [#698](https://github.com/quilljs/quill/issues/698)
|
||||
|
||||
Thanks to [@benbro](https://github.com/benbro), [@Cinamonas](https://github.com/Cinamonas), [@emanuelbsilva](https://github.com/emanuelbsilva), [@jasonmng](https://github.com/jasonmng), [@jonnolen](https://github.com/jonnolen), [@LucVanPelt](https://github.com/LucVanPelt), [@sachinrekhi](https://github.com/sachinrekhi), [@sagacitysite](https://github.com/sagacitysite), [@WriterStat](https://github.com/WriterStat) for their contributions to this release.
|
||||
|
||||
|
||||
# 1.0.0-beta.2
|
||||
|
||||
Weekly beta preview release. Major emphasis on keyboard API and customization.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Rename code highlighter module to syntax
|
||||
- Clipboard matchers specified in configuration appends to instead of replaces default matchers
|
||||
- Change video embed to use `<iframe>` instead of `<video>` enabling Youtube/Vimeo links
|
||||
|
||||
### Features
|
||||
|
||||
- Add contextual keyboard listeners
|
||||
- Allow indent format to take +1/-1 in addition to target indent level
|
||||
- Shortcuts for creating ordered or bulleted lists
|
||||
- Autofill mailto for email links [#278](https://github.com/quilljs/quill/issues/278)
|
||||
- Enter does not continue header format [#540](https://github.com/quilljs/quill/issues/540)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Allow native handling of backspace [#473](https://github.com/quilljs/quill/issues/473) [#548](https://github.com/quilljs/quill/issues/548) [#565](https://github.com/quilljs/quill/issues/565)
|
||||
- removeFormat() removes last line block formats [#649](https://github.com/quilljs/quill/issues/649)
|
||||
- Fix text direction icon direction [#654](https://github.com/quilljs/quill/issues/654)
|
||||
- Fix text insertion into root scroll [#655](https://github.com/quilljs/quill/issues/655)
|
||||
- Fix focusing on placeholder text in FF [#656](https://github.com/quilljs/quill/issues/656)
|
||||
- Hide placeholder on formatted line [#657](https://github.com/quilljs/quill/issues/657)
|
||||
- Fix selection handling on focus and blur [#664](https://github.com/quilljs/quill/issues/664)
|
||||
|
||||
Thanks to [@anovi](https://github.com/anovi), [@benbro](https://github.com/benbro), [@jbrowning](https://github.com/jbrowning), [@kei-ito](https://github.com/kei-ito), [@quentez](https://github.com/quentez), [@u9520107](https://github.com/u9520107) for their contributions to this release!
|
||||
|
||||
|
||||
# 1.0.0-beta.1
|
||||
|
||||
Weekly beta preview release.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Toolbar only attaches to `<button>` and `<select>` elements
|
||||
- Toolbar uses button `value` attribute, instead of `data-value`
|
||||
- Toolbar handlers overwrite default handlers instead of possibly cascading
|
||||
- Deprecate keyboard `removeBinding` and `removeAllBindings`
|
||||
|
||||
### Features
|
||||
|
||||
- Expose default keyboard bindings in configuration
|
||||
- Add context listener to keyboard bindings
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Error when cursor places next to video embed [#644](https://github.com/quilljs/quill/issues/644)
|
||||
- Selection removed when clicking on a menu button in the toolbar [#645](https://github.com/quilljs/quill/issues/645)
|
||||
- Editor looses focus in FF after typing two bold characters [#646](https://github.com/quilljs/quill/issues/646)
|
||||
- Get rid of resize boxes in code in IE11 [0ad636](https://github.com/quilljs/quill/commit/0ad6363c9fcd70c52ca667d39a393760eeb646b5)
|
||||
- Text direction icon should flip the arrow when pressed [#651](https://github.com/quilljs/quill/issues/651)
|
||||
- Not possible to combine direction:rtl with text-align:left [#652](https://github.com/quilljs/quill/issues/652)
|
||||
|
||||
Thanks to [@benbro](https://github.com/benbro) for the bug reports for this release!
|
||||
|
||||
|
||||
# 1.0.0-beta.0
|
||||
|
||||
Please see the [Upgrading to 1.0](http://beta.quilljs.com/guides/upgrading-to-1-0/) guide.
|
||||
|
||||
|
||||
# 0.20.1
|
||||
|
||||
Patch release for everything prior to Parchment's integration into Quill.
|
||||
|
||||
### Features
|
||||
|
||||
- API for hotkey removal [#110](https://github.com/quilljs/quill/issues/110), [#453](https://github.com/quilljs/quill/pull/453)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Editor jumps to top when clicking formatting buttons [#288](https://github.com/quilljs/quill/issues/288)
|
||||
- Editor does not preserve bold text when pasted from itself [#306](https://github.com/quilljs/quill/issues/306)
|
||||
- Focus issues when scrolled down in IE10+ [#415](https://github.com/quilljs/quill/issues/415)
|
||||
- Error if keyboard shortcut used for unavailable format [#432](https://github.com/quilljs/quill/issues/432)
|
||||
- Scrolls to cursor if not visible after enter/deletion/paste [#433](https://github.com/quilljs/quill/issues/433)
|
||||
|
||||
Thanks to [@devtimi](https://github.com/devtimi), [@emannes](https://github.com/emannes), [@ivan-i](https://github.com/ivan-i), [@magus](https://github.com/magus), [@Nick-The-Uncharted](https://github.com/Nick-The-Uncharted), [@rlivsey](https://github.com/rlivsey), [@thomsbg](https://github.com/thomsbg), [@wallylawless](https://github.com/wallylawless) for their bug reports and pull requests!
|
||||
|
||||
|
||||
# 0.20.0
|
||||
|
||||
### Breaking Changes
|
||||
- `getBounds` now returns `null` instead of throwing an error [#412](https://github.com/quilljs/quill/pull/412)
|
||||
|
||||
### Features
|
||||
- Allow `Document` module to be `Quill.require`'d [#400](https://github.com/quilljs/quill/pull/400)
|
||||
- Paste manager can optionally accept a custom conversion function [#401](https://github.com/quilljs/quill/pull/401)
|
||||
- Undo manager can optionally only affect user initiated changes [#413](https://github.com/quilljs/quill/pull/413)
|
||||
|
||||
### Bug Fixes
|
||||
- Retain formats between lines [#403](https://github.com/quilljs/quill/pull/403)
|
||||
- Fix bug that allows nested format tags [#406](https://github.com/quilljs/quill/pull/406)
|
||||
- Flatten nested list instead of truncating on paste [#421](https://github.com/quilljs/quill/issues/421)
|
||||
- Fix handling Chrome's usage of font-weight instead of tags [#423](https://github.com/quilljs/quill/issues/423)
|
||||
- Fix bug that allows nested parent tags [#426](https://github.com/quilljs/quill/pull/426)
|
||||
|
||||
Thank you [@thomsbg](https://github.com/thomsbg), [@yyjhao](https://github.com/yyjhao), [@willrowe](https://github.com/willrowe), [@hryanjones](https://github.com/hryanjones), [@nickretallack](https://github.com/nickretallack) for your contributions to this release!
|
|
@ -0,0 +1,30 @@
|
|||
Copyright (c) 2014, Jason Chen
|
||||
Copyright (c) 2013, salesforce.com
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
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. 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,109 @@
|
|||
<h1 align="center">
|
||||
<a href="https://quilljs.com/" title="Quill">Quill Rich Text Editor</a>
|
||||
</h1>
|
||||
<p align="center">
|
||||
<a href="https://quilljs.com/" title="Quill"><img alt="Quill Logo" src="https://quilljs.com/assets/images/logo.svg" width="180"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a title="Quickstart" href="#quickstart"><strong>Quickstart</strong></a>
|
||||
•
|
||||
<a title="Documentation" href="https://quilljs.com/docs/"><strong>Documentation</strong></a>
|
||||
•
|
||||
<a title="Development" href="https://github.com/quilljs/quill/blob/master/.github/DEVELOPMENT.md"><strong>Development</strong></a>
|
||||
•
|
||||
<a title="Contributing" href="https://github.com/quilljs/quill/blob/master/.github/CONTRIBUTING.md"><strong>Contributing</strong></a>
|
||||
•
|
||||
<a title="Interactive Playground" href="https://quilljs.com/playground/"><strong>Interactive Playground</strong></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/quilljs/quill" title="Build Status">
|
||||
<img src="https://travis-ci.org/quilljs/quill.svg?branch=master" alt="Build Status">
|
||||
</a>
|
||||
<a href="https://npmjs.com/package/quill" title="Version">
|
||||
<img src="https://img.shields.io/npm/v/quill.svg" alt="Version">
|
||||
</a>
|
||||
<a href="https://npmjs.com/package/quill" title="Downloads">
|
||||
<img src="https://img.shields.io/npm/dm/quill.svg" alt="Downloads">
|
||||
</a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://saucelabs.com/u/quill" title="Test Status">
|
||||
<img src="https://cdn.quilljs.com/badge.svg?v=2" alt="Test Status">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
[QuillJS](https://quilljs.com/) is a modern rich text editor built for compatibility and extensibility. It was created by [Jason Chen](https://twitter.com/jhchen) and [Byron Milligan](https://twitter.com/byronmilligan) and open sourced by Salesforce.
|
||||
|
||||
To get started, check out the [Quill](https://quilljs.com/) website for documentation, guides, and live demos!
|
||||
|
||||
|
||||
## Quickstart
|
||||
|
||||
Instantiate a new Quill object with a css selector for the div that should become the editor.
|
||||
|
||||
```html
|
||||
<!-- Include Quill stylesheet -->
|
||||
<link href="https://cdn.quilljs.com/1.0.0/quill.snow.css" rel="stylesheet">
|
||||
|
||||
<!-- Create the toolbar container -->
|
||||
<div id="toolbar">
|
||||
<button class="ql-bold">Bold</button>
|
||||
<button class="ql-italic">Italic</button>
|
||||
</div>
|
||||
|
||||
<!-- Create the editor container -->
|
||||
<div id="editor">
|
||||
<p>Hello World!</p>
|
||||
</div>
|
||||
|
||||
<!-- Include the Quill library -->
|
||||
<script src="https://cdn.quilljs.com/1.0.0/quill.js"></script>
|
||||
|
||||
<!-- Initialize Quill editor -->
|
||||
<script>
|
||||
var editor = new Quill('#editor', {
|
||||
modules: { toolbar: '#toolbar' },
|
||||
theme: 'snow'
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
Take a look at the [Quill](https://quilljs.com/) website for more documentation, guides and [live playground](https://quilljs.com/playground/)!
|
||||
|
||||
|
||||
## Download
|
||||
|
||||
- [npm](https://www.npmjs.com/package/quill) - `npm install quill`
|
||||
- tar - https://github.com/quilljs/quill/releases
|
||||
|
||||
|
||||
### CDN
|
||||
|
||||
```html
|
||||
<!-- Main Quill library -->
|
||||
<script src="//cdn.quilljs.com/1.0.0/quill.js"></script>
|
||||
<script src="//cdn.quilljs.com/1.0.0/quill.min.js"></script>
|
||||
|
||||
<!-- Theme included stylesheets -->
|
||||
<link href="//cdn.quilljs.com/1.0.0/quill.snow.css" rel="stylesheet">
|
||||
<link href="//cdn.quilljs.com/1.0.0/quill.bubble.css" rel="stylesheet">
|
||||
|
||||
<!-- Core build with no theme, formatting, non-essential modules -->
|
||||
<link href="//cdn.quilljs.com/1.0.0/quill.core.css" rel="stylesheet">
|
||||
<script src="//cdn.quilljs.com/1.0.0/quill.core.js"></script>
|
||||
```
|
||||
|
||||
|
||||
## Community
|
||||
|
||||
Get help or stay up to date.
|
||||
|
||||
- [Contribute](https://github.com/quilljs/quill/blob/develop/.github/CONTRIBUTING.md) on [Issues](https://github.com/quilljs/quill/issues)
|
||||
- Follow [@jhchen](https://twitter.com/jhchen) and [@quilljs](https://twitter.com/quilljs) on Twitter
|
||||
- Ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/quill)
|
||||
- If privacy is required, email support@quilljs.com
|
||||
|
||||
|
||||
## License
|
||||
|
||||
BSD 3-clause
|
|
@ -0,0 +1,304 @@
|
|||
// Styles shared between snow and bubble
|
||||
|
||||
controlHeight = 24px
|
||||
inputPaddingWidth = 5px
|
||||
inputPaddingHeight = 3px
|
||||
|
||||
colorItemMargin = 2px
|
||||
colorItemSize = 16px
|
||||
colorItemsPerRow = 7
|
||||
|
||||
|
||||
.ql-{themeName}.ql-toolbar, .ql-{themeName} .ql-toolbar
|
||||
&:after
|
||||
clear: both
|
||||
content: ''
|
||||
display: table
|
||||
|
||||
button
|
||||
background: none
|
||||
border: none
|
||||
cursor: pointer
|
||||
display: inline-block
|
||||
float: left
|
||||
height: controlHeight
|
||||
padding: inputPaddingHeight inputPaddingWidth
|
||||
width: controlHeight + (inputPaddingWidth - inputPaddingHeight)*2
|
||||
|
||||
svg
|
||||
float: left
|
||||
height: 100%
|
||||
|
||||
&:active:hover
|
||||
outline: none
|
||||
|
||||
input.ql-image[type=file]
|
||||
display: none
|
||||
|
||||
button:hover, button:focus, button.ql-active,
|
||||
.ql-picker-label:hover, .ql-picker-label.ql-active,
|
||||
.ql-picker-item:hover, .ql-picker-item.ql-selected
|
||||
color: activeColor
|
||||
.ql-fill, .ql-stroke.ql-fill
|
||||
fill: activeColor
|
||||
.ql-stroke, .ql-stroke-miter
|
||||
stroke: activeColor
|
||||
|
||||
// Fix for iOS not losing hover on touch
|
||||
@media (pointer: coarse)
|
||||
.ql-{themeName}.ql-toolbar, .ql-{themeName} .ql-toolbar
|
||||
button:hover:not(.ql-active)
|
||||
color: inactiveColor
|
||||
.ql-fill, .ql-stroke.ql-fill
|
||||
fill: inactiveColor
|
||||
.ql-stroke, .ql-stroke-miter
|
||||
stroke: inactiveColor
|
||||
|
||||
.ql-{themeName}
|
||||
box-sizing: border-box
|
||||
*
|
||||
box-sizing: border-box
|
||||
|
||||
.ql-hidden
|
||||
display: none
|
||||
.ql-out-bottom, .ql-out-top
|
||||
visibility: hidden
|
||||
|
||||
.ql-tooltip
|
||||
position: absolute
|
||||
transform: translateY(10px)
|
||||
a
|
||||
cursor: pointer
|
||||
text-decoration: none
|
||||
.ql-tooltip.ql-flip
|
||||
transform: translateY(-10px)
|
||||
|
||||
.ql-formats
|
||||
&:after
|
||||
clear: both
|
||||
content: ''
|
||||
display: table
|
||||
display: inline-block
|
||||
vertical-align: middle
|
||||
|
||||
.ql-stroke
|
||||
fill: none
|
||||
stroke: inactiveColor
|
||||
stroke-linecap: round
|
||||
stroke-linejoin: round
|
||||
stroke-width: 2
|
||||
.ql-stroke-miter
|
||||
fill: none
|
||||
stroke: inactiveColor
|
||||
stroke-miterlimit: 10
|
||||
stroke-width: 2
|
||||
|
||||
.ql-fill, .ql-stroke.ql-fill
|
||||
fill: inactiveColor
|
||||
|
||||
.ql-empty
|
||||
fill: none
|
||||
.ql-even
|
||||
fill-rule: evenodd
|
||||
.ql-thin, .ql-stroke.ql-thin
|
||||
stroke-width: 1
|
||||
.ql-transparent
|
||||
opacity: 0.4
|
||||
|
||||
.ql-direction
|
||||
svg:last-child
|
||||
display: none
|
||||
.ql-direction.ql-active
|
||||
svg:last-child
|
||||
display: inline
|
||||
svg:first-child
|
||||
display: none
|
||||
|
||||
.ql-editor
|
||||
h1
|
||||
font-size: 2em
|
||||
h2
|
||||
font-size: 1.5em
|
||||
h3
|
||||
font-size: 1.17em
|
||||
h4
|
||||
font-size: 1em
|
||||
h5
|
||||
font-size: 0.83em
|
||||
h6
|
||||
font-size: 0.67em
|
||||
a
|
||||
text-decoration: underline
|
||||
blockquote
|
||||
border-left: 4px solid #ccc
|
||||
margin-bottom: 5px
|
||||
margin-top: 5px
|
||||
padding-left: 16px
|
||||
code, pre
|
||||
background-color: #f0f0f0
|
||||
border-radius: 3px
|
||||
pre
|
||||
white-space: pre-wrap
|
||||
margin-bottom: 5px
|
||||
margin-top: 5px
|
||||
padding: 5px 10px
|
||||
code
|
||||
font-size: 85%
|
||||
padding: 2px 4px
|
||||
pre.ql-syntax
|
||||
background-color: #23241f
|
||||
color: #f8f8f2;
|
||||
overflow: visible
|
||||
img
|
||||
max-width: 100%
|
||||
|
||||
.ql-picker
|
||||
color: inactiveColor
|
||||
display: inline-block
|
||||
float: left
|
||||
font-size: 14px
|
||||
font-weight: 500
|
||||
height: controlHeight
|
||||
position: relative
|
||||
vertical-align: middle
|
||||
.ql-picker-label
|
||||
cursor: pointer
|
||||
display: inline-block
|
||||
height: 100%
|
||||
padding-left: 8px
|
||||
padding-right: 2px
|
||||
position: relative
|
||||
width: 100%
|
||||
&::before
|
||||
display: inline-block
|
||||
line-height: 22px
|
||||
.ql-picker-options
|
||||
background-color: backgroundColor
|
||||
display: none
|
||||
min-width: 100%
|
||||
padding: 4px 8px
|
||||
position: absolute
|
||||
white-space: nowrap
|
||||
.ql-picker-item
|
||||
cursor: pointer
|
||||
display: block
|
||||
padding-bottom: 5px
|
||||
padding-top: 5px
|
||||
.ql-picker.ql-expanded
|
||||
.ql-picker-label
|
||||
color: borderColor
|
||||
z-index: 2
|
||||
.ql-fill
|
||||
fill: borderColor
|
||||
.ql-stroke
|
||||
stroke: borderColor
|
||||
.ql-picker-options
|
||||
display: block
|
||||
margin-top: -1px
|
||||
top: 100%
|
||||
z-index: 1
|
||||
|
||||
.ql-color-picker, .ql-icon-picker
|
||||
width: controlHeight + 4
|
||||
.ql-picker-label
|
||||
padding: 2px 4px
|
||||
svg
|
||||
right: 4px
|
||||
.ql-icon-picker
|
||||
.ql-picker-options
|
||||
padding: 4px 0px
|
||||
.ql-picker-item
|
||||
height: controlHeight
|
||||
width: controlHeight
|
||||
padding: 2px 4px
|
||||
.ql-color-picker
|
||||
.ql-picker-options
|
||||
padding: inputPaddingHeight inputPaddingWidth
|
||||
width: (colorItemSize + 2*colorItemMargin) * colorItemsPerRow + 2*inputPaddingWidth + 2 // +2 for the border
|
||||
.ql-picker-item
|
||||
border: 1px solid transparent
|
||||
float: left
|
||||
height: colorItemSize
|
||||
margin: colorItemMargin
|
||||
padding: 0px
|
||||
width: colorItemSize
|
||||
|
||||
.ql-picker:not(.ql-color-picker):not(.ql-icon-picker)
|
||||
svg
|
||||
position: absolute
|
||||
margin-top: -9px
|
||||
right: 0
|
||||
top: 50%
|
||||
width: 18px
|
||||
|
||||
.ql-picker.ql-header, .ql-picker.ql-font, .ql-picker.ql-size
|
||||
.ql-picker-label[data-label]:not([data-label='']),
|
||||
.ql-picker-item[data-label]:not([data-label=''])
|
||||
&::before
|
||||
content: attr(data-label)
|
||||
|
||||
.ql-picker.ql-header
|
||||
width: 98px
|
||||
.ql-picker-label::before,
|
||||
.ql-picker-item::before
|
||||
content: 'Normal'
|
||||
for num in (1..6)
|
||||
.ql-picker-label[data-value=\"{num}\"]::before,
|
||||
.ql-picker-item[data-value=\"{num}\"]::before
|
||||
content: 'Heading ' + num
|
||||
.ql-picker-item[data-value="1"]::before
|
||||
font-size: 2em
|
||||
.ql-picker-item[data-value="2"]::before
|
||||
font-size: 1.5em
|
||||
.ql-picker-item[data-value="3"]::before
|
||||
font-size: 1.17em
|
||||
.ql-picker-item[data-value="4"]::before
|
||||
font-size: 1em
|
||||
.ql-picker-item[data-value="5"]::before
|
||||
font-size: 0.83em
|
||||
.ql-picker-item[data-value="6"]::before
|
||||
font-size: 0.67em
|
||||
|
||||
.ql-picker.ql-font
|
||||
width: 108px
|
||||
.ql-picker-label::before,
|
||||
.ql-picker-item::before
|
||||
content: 'Sans Serif'
|
||||
.ql-picker-label[data-value=serif]::before,
|
||||
.ql-picker-item[data-value=serif]::before
|
||||
content: 'Serif'
|
||||
.ql-picker-label[data-value=monospace]::before,
|
||||
.ql-picker-item[data-value=monospace]::before
|
||||
content: 'Monospace'
|
||||
.ql-picker-item[data-value=serif]::before
|
||||
font-family: Georgia, Times New Roman, serif;
|
||||
.ql-picker-item[data-value=monospace]::before
|
||||
font-family: Monaco, Courier New, monospace;
|
||||
|
||||
.ql-picker.ql-size
|
||||
width: 98px
|
||||
.ql-picker-label::before,
|
||||
.ql-picker-item::before
|
||||
content: 'Normal'
|
||||
.ql-picker-label[data-value=small]::before,
|
||||
.ql-picker-item[data-value=small]::before
|
||||
content: 'Small'
|
||||
.ql-picker-label[data-value=large]::before,
|
||||
.ql-picker-item[data-value=large]::before
|
||||
content: 'Large'
|
||||
.ql-picker-label[data-value=huge]::before,
|
||||
.ql-picker-item[data-value=huge]::before
|
||||
content: 'Huge'
|
||||
.ql-picker-item[data-value=small]::before
|
||||
font-size: 10px
|
||||
.ql-picker-item[data-value=large]::before
|
||||
font-size: 18px
|
||||
.ql-picker-item[data-value=huge]::before
|
||||
font-size: 32px
|
||||
|
||||
.ql-color-picker.ql-background
|
||||
.ql-picker-item
|
||||
background-color: #fff;
|
||||
.ql-color-picker.ql-color
|
||||
.ql-picker-item
|
||||
background-color: #000;
|
|
@ -0,0 +1,45 @@
|
|||
themeName = 'bubble'
|
||||
activeColor = #fff
|
||||
borderColor = #777
|
||||
backgroundColor = #444
|
||||
inactiveColor = #ccc
|
||||
shadowColor = #ddd
|
||||
textColor = #fff
|
||||
|
||||
@import './core'
|
||||
@import './base'
|
||||
@import './bubble/*'
|
||||
|
||||
.ql-container.ql-bubble:not(.ql-disabled)
|
||||
a
|
||||
position: relative
|
||||
white-space: nowrap
|
||||
a::before
|
||||
background-color: #444
|
||||
border-radius: 15px
|
||||
top: -5px
|
||||
font-size: 12px
|
||||
color: #fff
|
||||
content: attr(href)
|
||||
font-weight: normal
|
||||
overflow: hidden
|
||||
padding: 5px 15px
|
||||
text-decoration: none
|
||||
z-index: 1
|
||||
a::after
|
||||
border-top: 6px solid #444
|
||||
border-left: 6px solid transparent
|
||||
border-right: 6px solid transparent
|
||||
top: 0
|
||||
content: " "
|
||||
height: 0
|
||||
width: 0
|
||||
a::before, a::after
|
||||
left: 0
|
||||
margin-left: 50%
|
||||
position: absolute
|
||||
transform: translate(-50%, -100%)
|
||||
transition: visibility 0s ease 200ms
|
||||
visibility: hidden
|
||||
a:hover::before, a:hover::after
|
||||
visibility: visible
|
|
@ -0,0 +1,14 @@
|
|||
arrowWidth = 6px
|
||||
|
||||
.ql-bubble
|
||||
.ql-toolbar
|
||||
.ql-formats
|
||||
margin: 8px 12px 8px 0px
|
||||
.ql-formats:first-child
|
||||
margin-left: 12px
|
||||
|
||||
.ql-color-picker
|
||||
svg
|
||||
margin: 1px
|
||||
.ql-picker-item.ql-selected, .ql-picker-item:hover
|
||||
border-color: activeColor
|
|
@ -0,0 +1,49 @@
|
|||
arrowWidth = 6px
|
||||
|
||||
.ql-bubble
|
||||
.ql-tooltip
|
||||
background-color: backgroundColor
|
||||
border-radius: 25px
|
||||
color: textColor
|
||||
.ql-tooltip-arrow
|
||||
border-left: arrowWidth solid transparent
|
||||
border-right: arrowWidth solid transparent
|
||||
content: " "
|
||||
display: block
|
||||
left: 50%
|
||||
margin-left: -1 * arrowWidth
|
||||
position: absolute
|
||||
.ql-tooltip:not(.ql-flip) .ql-tooltip-arrow
|
||||
border-bottom: arrowWidth solid backgroundColor
|
||||
top: -1 * arrowWidth
|
||||
.ql-tooltip.ql-flip .ql-tooltip-arrow
|
||||
border-top: arrowWidth solid backgroundColor
|
||||
bottom: -1 * arrowWidth
|
||||
|
||||
.ql-tooltip.ql-editing
|
||||
.ql-tooltip-editor
|
||||
display: block
|
||||
.ql-formats
|
||||
visibility: hidden
|
||||
|
||||
.ql-tooltip-editor
|
||||
display: none
|
||||
input[type=text]
|
||||
background: transparent
|
||||
border: none
|
||||
color: textColor
|
||||
font-size: 13px
|
||||
height: 100%
|
||||
outline: none
|
||||
padding: 10px 20px
|
||||
position: absolute
|
||||
width: 100%
|
||||
a
|
||||
&:before
|
||||
color: inactiveColor
|
||||
content: "\00D7"
|
||||
font-size: 16px
|
||||
font-weight: bold
|
||||
top: 10px
|
||||
position: absolute
|
||||
right: 20px
|
|
@ -0,0 +1,183 @@
|
|||
// Styles necessary for Quill
|
||||
|
||||
LIST_STYLE = decimal lower-alpha lower-roman
|
||||
LIST_STYLE_WIDTH = 1.2em
|
||||
LIST_STYLE_MARGIN = 0.3em
|
||||
LIST_STYLE_OUTER_WIDTH = LIST_STYLE_MARGIN + LIST_STYLE_WIDTH
|
||||
MAX_INDENT = 9
|
||||
|
||||
resets(arr)
|
||||
unquote('list-' + join(' list-', arr))
|
||||
|
||||
.ql-container
|
||||
box-sizing: border-box
|
||||
font-family: Helvetica, Arial, sans-serif
|
||||
font-size: 13px
|
||||
height: 100%
|
||||
margin: 0px
|
||||
position: relative
|
||||
|
||||
.ql-container.ql-disabled
|
||||
.ql-tooltip
|
||||
visibility: hidden
|
||||
.ql-editor
|
||||
ul[data-checked] > li::before
|
||||
pointer-events: none
|
||||
|
||||
.ql-clipboard
|
||||
left: -100000px
|
||||
height: 1px
|
||||
overflow-y: hidden
|
||||
position: absolute
|
||||
top: 50%
|
||||
p
|
||||
margin: 0
|
||||
padding: 0
|
||||
|
||||
.ql-editor
|
||||
box-sizing: border-box
|
||||
line-height: 1.42
|
||||
height: 100%
|
||||
outline: none
|
||||
overflow-y: auto
|
||||
padding: 12px 15px
|
||||
tab-size: 4
|
||||
-moz-tab-size: 4
|
||||
text-align: left
|
||||
white-space: pre-wrap
|
||||
word-wrap: break-word
|
||||
> *
|
||||
cursor: text
|
||||
|
||||
p, ol, ul, pre, blockquote, h1, h2, h3, h4, h5, h6
|
||||
margin: 0
|
||||
padding: 0
|
||||
counter-reset: resets(1..MAX_INDENT)
|
||||
ol, ul
|
||||
padding-left: 1.5em
|
||||
ol > li, ul > li
|
||||
list-style-type: none
|
||||
ul > li::before
|
||||
content: '\2022'
|
||||
ul[data-checked=true],
|
||||
ul[data-checked=false]
|
||||
pointer-events: none
|
||||
> li *
|
||||
pointer-events: all
|
||||
> li::before
|
||||
color: #777
|
||||
cursor: pointer
|
||||
pointer-events: all
|
||||
ul[data-checked=true] > li::before
|
||||
content: '\2611'
|
||||
ul[data-checked=false] > li::before
|
||||
content: '\2610'
|
||||
li::before
|
||||
display: inline-block
|
||||
white-space: nowrap
|
||||
width: LIST_STYLE_WIDTH
|
||||
li:not(.ql-direction-rtl)::before
|
||||
margin-left: -1*LIST_STYLE_OUTER_WIDTH
|
||||
margin-right: LIST_STYLE_MARGIN
|
||||
text-align: right
|
||||
li.ql-direction-rtl::before
|
||||
margin-left: LIST_STYLE_MARGIN
|
||||
margin-right: -1*LIST_STYLE_OUTER_WIDTH
|
||||
ol, ul
|
||||
li:not(.ql-direction-rtl)
|
||||
padding-left: LIST_STYLE_OUTER_WIDTH
|
||||
li.ql-direction-rtl
|
||||
padding-right: LIST_STYLE_OUTER_WIDTH
|
||||
ol
|
||||
li
|
||||
counter-reset: resets(1..MAX_INDENT)
|
||||
counter-increment: unquote('list-0')
|
||||
&:before
|
||||
content: unquote('counter(list-0, ' + LIST_STYLE[0] + ')') '. '
|
||||
for num in (1..MAX_INDENT)
|
||||
li.ql-indent-{num}
|
||||
counter-increment: unquote('list-' + num)
|
||||
&:before
|
||||
content: unquote('counter(list-' + num + ', ' + LIST_STYLE[num%3] + ')') '. '
|
||||
if (num < MAX_INDENT)
|
||||
li.ql-indent-{num}
|
||||
counter-reset: resets((num+1)..MAX_INDENT)
|
||||
for num in (1..MAX_INDENT)
|
||||
.ql-indent-{num}:not(.ql-direction-rtl)
|
||||
padding-left: (3*num)em
|
||||
li.ql-indent-{num}:not(.ql-direction-rtl)
|
||||
padding-left: (3*num + LIST_STYLE_OUTER_WIDTH)em
|
||||
.ql-indent-{num}.ql-direction-rtl.ql-align-right
|
||||
padding-right: (3*num)em
|
||||
li.ql-indent-{num}.ql-direction-rtl.ql-align-right
|
||||
padding-right: (3*num + LIST_STYLE_OUTER_WIDTH)em
|
||||
|
||||
.ql-video
|
||||
display: block
|
||||
max-width: 100%
|
||||
.ql-video.ql-align-center
|
||||
margin: 0 auto
|
||||
.ql-video.ql-align-right
|
||||
margin: 0 0 0 auto
|
||||
|
||||
.ql-bg-black
|
||||
background-color: rgb(0,0,0)
|
||||
.ql-bg-red
|
||||
background-color: rgb(230,0,0)
|
||||
.ql-bg-orange
|
||||
background-color: rgb(255,153,0)
|
||||
.ql-bg-yellow
|
||||
background-color: rgb(255,255,0)
|
||||
.ql-bg-green
|
||||
background-color: rgb(0,138,0)
|
||||
.ql-bg-blue
|
||||
background-color: rgb(0,102,204)
|
||||
.ql-bg-purple
|
||||
background-color: rgb(153,51,255)
|
||||
|
||||
.ql-color-white
|
||||
color: rgb(255,255,255)
|
||||
.ql-color-red
|
||||
color: rgb(230,0,0)
|
||||
.ql-color-orange
|
||||
color: rgb(255,153,0)
|
||||
.ql-color-yellow
|
||||
color: rgb(255,255,0)
|
||||
.ql-color-green
|
||||
color: rgb(0,138,0)
|
||||
.ql-color-blue
|
||||
color: rgb(0,102,204)
|
||||
.ql-color-purple
|
||||
color: rgb(153,51,255)
|
||||
|
||||
.ql-font-serif
|
||||
font-family: Georgia, Times New Roman, serif
|
||||
.ql-font-monospace
|
||||
font-family: Monaco, Courier New, monospace
|
||||
|
||||
.ql-size-small
|
||||
font-size: 0.75em
|
||||
.ql-size-large
|
||||
font-size: 1.5em
|
||||
.ql-size-huge
|
||||
font-size: 2.5em
|
||||
|
||||
.ql-direction-rtl
|
||||
direction: rtl
|
||||
text-align: inherit
|
||||
|
||||
.ql-align-center
|
||||
text-align: center
|
||||
.ql-align-justify
|
||||
text-align: justify
|
||||
.ql-align-right
|
||||
text-align: right
|
||||
|
||||
.ql-editor.ql-blank::before
|
||||
color: rgba(0,0,0,0.6)
|
||||
content: attr(data-placeholder)
|
||||
font-style: italic
|
||||
left: 15px
|
||||
pointer-events: none
|
||||
position: absolute
|
||||
right: 15px
|
After Width: | Height: | Size: 696 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="14" x2="4" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="12" x2="6" y1="4" y2="4"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 223 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="15" x2="3" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="15" x2="3" y1="4" y2="4"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 223 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="3" x2="13" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="3" x2="9" y1="4" y2="4"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 222 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="15" x2="3" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="15" x2="5" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="15" x2="9" y1="4" y2="4"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 223 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M6.6,11.4L9,9a1.456,1.456,0,0,1,2.059,2.059L7.971,14.147a2.912,2.912,0,0,1-4.118-4.118l6.177-6.177a2.912,2.912,0,0,1,4.118,4.118"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 199 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<ellipse class="ql-fill" cx="10.5" cy="14" rx="2.5" ry="2"></ellipse>
|
||||
<path class="ql-stroke" d="M12,14V3c0,1.5,3,2.021,3,5"></path>
|
||||
<path class="ql-fill" d="M7,4A5,5,0,0,0,7,14a3.191,3.191,0,0,1,3-2.957V5.023A4.955,4.955,0,0,0,7,4ZM4.06,8.412a0.5,0.5,0,0,1-.49.4,0.485,0.485,0,0,1-.1-0.01,0.5,0.5,0,0,1-.393-0.588A3.98,3.98,0,0,1,6.216,5.079a0.5,0.5,0,0,1,.2.98A2.985,2.985,0,0,0,4.06,8.412ZM7,10A1,1,0,1,1,8,9,1,1,0,0,1,7,10Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 475 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="15" y2="15"></line>
|
||||
<path class="ql-fill ql-stroke" d="M9,8H9a3,3,0,0,1,3,3v0a0,0,0,0,1,0,0H6a0,0,0,0,1,0,0v0A3,3,0,0,1,9,8Z"></path>
|
||||
<path class="ql-even ql-fill" d="M11,5.01C11,6.021,10,9,9,9S7,6.021,7,5.01c0-1.651.292-2.99,2-2.99S11,3.359,11,5.01Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 341 B |
|
@ -0,0 +1,52 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-color-label">
|
||||
<polygon points="6 6.868 6 6 5 6 5 7 5.942 7 6 6.868"></polygon>
|
||||
<rect height="1" width="1" x="4" y="4"></rect>
|
||||
<polygon points="6.817 5 6 5 6 6 6.38 6 6.817 5"></polygon>
|
||||
<rect height="1" width="1" x="2" y="6"></rect>
|
||||
<rect height="1" width="1" x="3" y="5"></rect>
|
||||
<rect height="1" width="1" x="4" y="7"></rect>
|
||||
<polygon points="4 11.439 4 11 3 11 3 12 3.755 12 4 11.439"></polygon>
|
||||
<rect height="1" width="1" x="2" y="12"></rect>
|
||||
<rect height="1" width="1" x="2" y="9"></rect>
|
||||
<rect height="1" width="1" x="2" y="15"></rect>
|
||||
<polygon points="4.63 10 4 10 4 11 4.192 11 4.63 10"></polygon>
|
||||
<rect height="1" width="1" x="3" y="8"></rect>
|
||||
<path d="M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z"></path>
|
||||
<path d="M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z"></path>
|
||||
<path d="M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z"></path>
|
||||
<rect height="1" width="1" x="12" y="2"></rect>
|
||||
<rect height="1" width="1" x="11" y="3"></rect>
|
||||
<path d="M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z"></path>
|
||||
<rect height="1" width="1" x="2" y="3"></rect>
|
||||
<rect height="1" width="1" x="6" y="2"></rect>
|
||||
<rect height="1" width="1" x="3" y="2"></rect>
|
||||
<rect height="1" width="1" x="5" y="3"></rect>
|
||||
<rect height="1" width="1" x="9" y="2"></rect>
|
||||
<rect height="1" width="1" x="15" y="14"></rect>
|
||||
<polygon points="13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174"></polygon>
|
||||
<rect height="1" width="1" x="13" y="7"></rect>
|
||||
<rect height="1" width="1" x="15" y="5"></rect>
|
||||
<rect height="1" width="1" x="14" y="6"></rect>
|
||||
<rect height="1" width="1" x="15" y="8"></rect>
|
||||
<rect height="1" width="1" x="14" y="9"></rect>
|
||||
<path d="M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z"></path>
|
||||
<rect height="1" width="1" x="14" y="3"></rect>
|
||||
<polygon points="12 6.868 12 6 11.62 6 12 6.868"></polygon>
|
||||
<rect height="1" width="1" x="15" y="2"></rect>
|
||||
<rect height="1" width="1" x="12" y="5"></rect>
|
||||
<rect height="1" width="1" x="13" y="4"></rect>
|
||||
<polygon points="12.933 9 13 9 13 8 12.495 8 12.933 9"></polygon>
|
||||
<rect height="1" width="1" x="9" y="14"></rect>
|
||||
<rect height="1" width="1" x="8" y="15"></rect>
|
||||
<path d="M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z"></path>
|
||||
<rect height="1" width="1" x="5" y="15"></rect>
|
||||
<path d="M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z"></path>
|
||||
<rect height="1" width="1" x="11" y="15"></rect>
|
||||
<path d="M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z"></path>
|
||||
<rect height="1" width="1" x="14" y="15"></rect>
|
||||
<rect height="1" width="1" x="15" y="11"></rect>
|
||||
</g>
|
||||
<polyline class="ql-stroke" points="5.5 13 9 5 12.5 13"></polyline>
|
||||
<line class="ql-stroke" x1="11.63" x2="6.38" y1="11" y2="11"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-fill ql-stroke" height="3" width="3" x="4" y="5"></rect>
|
||||
<rect class="ql-fill ql-stroke" height="3" width="3" x="11" y="5"></rect>
|
||||
<path class="ql-even ql-fill ql-stroke" d="M7,8c0,4.031-3,5-3,5"></path>
|
||||
<path class="ql-even ql-fill ql-stroke" d="M14,8c0,4.031-3,5-3,5"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 334 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z"></path>
|
||||
<path class="ql-stroke" d="M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 281 B |
|
@ -0,0 +1,7 @@
|
|||
<svg class="" viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="5" x2="13" y1="3" y2="3"></line>
|
||||
<line class="ql-stroke" x1="6" x2="9.35" y1="12" y2="3"></line>
|
||||
<line class="ql-stroke" x1="11" x2="15" y1="11" y2="15"></line>
|
||||
<line class="ql-stroke" x1="15" x2="11" y1="11" y2="15"></line>
|
||||
<rect class="ql-fill" height="1" rx="0.5" ry="0.5" width="7" x="2" y="14"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 386 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline>
|
||||
<polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline>
|
||||
<line class="ql-stroke" x1="10" x2="8" y1="5" y2="13"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 243 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-color-label ql-stroke ql-transparent" x1="3" x2="15" y1="15" y2="15"></line>
|
||||
<polyline class="ql-stroke" points="5.5 11 9 3 12.5 11"></polyline>
|
||||
<line class="ql-stroke" x1="11.63" x2="6.38" y1="9" y2="9"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 266 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M9,3C5.686,3,3,5.239,3,8a4.669,4.669,0,0,0,2,3.719V15l3.094-2.063A7.186,7.186,0,0,0,9,13c3.314,0,6-2.239,6-5S12.314,3,9,3Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 193 B |
|
@ -0,0 +1,7 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polygon class="ql-stroke ql-fill" points="3 11 5 9 3 7 3 11"></polygon>
|
||||
<line class="ql-stroke ql-fill" x1="15" x2="11" y1="4" y2="4"></line>
|
||||
<path class="ql-fill" d="M11,3a3,3,0,0,0,0,6h1V3H11Z"></path>
|
||||
<rect class="ql-fill" height="11" width="1" x="11" y="4"></rect>
|
||||
<rect class="ql-fill" height="11" width="1" x="13" y="4"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 377 B |
|
@ -0,0 +1,7 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polygon class="ql-stroke ql-fill" points="15 12 13 10 15 8 15 12"></polygon>
|
||||
<line class="ql-stroke ql-fill" x1="9" x2="5" y1="4" y2="4"></line>
|
||||
<path class="ql-fill" d="M5,3A3,3,0,0,0,5,9H6V3H5Z"></path>
|
||||
<rect class="ql-fill" height="11" width="1" x="5" y="4"></rect>
|
||||
<rect class="ql-fill" height="11" width="1" x="7" y="4"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 376 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polygon class="ql-stroke" points="7 11 9 13 11 11 7 11"></polygon>
|
||||
<polygon class="ql-stroke" points="7 7 9 5 11 7 7 7"></polygon>
|
||||
</svg>
|
After Width: | Height: | Size: 168 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M14.60284,8.5036A2.48315,2.48315,0,0,0,14.71429,7.8a2.34494,2.34494,0,0,0-2.28571-2.4,2.19651,2.19651,0,0,0-1.3631.48358A4.01147,4.01147,0,0,0,7.28571,3a4.1037,4.1037,0,0,0-4,4.2,4.40682,4.40682,0,0,0,.07642.79553A3.57444,3.57444,0,0,0,1,11.4,3.51743,3.51743,0,0,0,4.42859,15h9.42853A3.22436,3.22436,0,0,0,17,11.7,3.26609,3.26609,0,0,0,14.60284,8.5036ZM6.85352,10.64648a.49995.49995,0,1,1-.707.707l-1-1a.49982.49982,0,0,1,0-.707l1-1a.49995.49995,0,0,1,.707.707L6.207,10ZM9.48535,8.12109l-1,4A.5.5,0,0,1,8,12.5a.51952.51952,0,0,1-.12109-.01465.50066.50066,0,0,1-.36426-.60645l1-4a.50023.50023,0,0,1,.9707.24219Zm2.36816,2.23242-1,1a.49995.49995,0,0,1-.707-.707L10.793,10l-.64648-.64648a.49995.49995,0,0,1,.707-.707l1,1A.49982.49982,0,0,1,11.85352,10.35352Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 818 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<circle class="ql-fill" cx="7" cy="7" r="1"></circle>
|
||||
<circle class="ql-fill" cx="11" cy="7" r="1"></circle>
|
||||
<path class="ql-stroke" d="M7,10a2,2,0,0,0,4,0H7Z"></path>
|
||||
<circle class="ql-stroke" cx="9" cy="9" r="6"></circle>
|
||||
</svg>
|
After Width: | Height: | Size: 264 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z"/>
|
||||
<path class="ql-fill" d="M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z"/>
|
||||
<rect class="ql-fill" x="3" y="6" width="12" height="6" rx="1" ry="1"/>
|
||||
</svg>
|
After Width: | Height: | Size: 250 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z"/>
|
||||
<path class="ql-fill" d="M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z"/>
|
||||
<rect class="ql-fill" x="2" y="6" width="14" height="6" rx="1" ry="1"/>
|
||||
</svg>
|
After Width: | Height: | Size: 248 B |
|
@ -0,0 +1,7 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z"/>
|
||||
<path class="ql-fill" d="M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z"/>
|
||||
<path class="ql-fill" d="M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z"/>
|
||||
<path class="ql-fill" d="M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z"/>
|
||||
<rect class="ql-fill" x="2" y="6" width="8" height="6" rx="1" ry="1"/>
|
||||
</svg>
|
After Width: | Height: | Size: 393 B |
|
@ -0,0 +1,7 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z"/>
|
||||
<path class="ql-fill" d="M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z"/>
|
||||
<path class="ql-fill" d="M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z"/>
|
||||
<path class="ql-fill" d="M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z"/>
|
||||
<rect class="ql-fill" x="8" y="6" width="8" height="6" rx="1" ry="1" transform="translate(24 18) rotate(-180)"/>
|
||||
</svg>
|
After Width: | Height: | Size: 429 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polyline class="ql-stroke" points="3.5 14 7 4 10.5 14"></polyline>
|
||||
<line class="ql-stroke" x1="9.45" x2="4.55" y1="11" y2="11"></line>
|
||||
<path class="ql-fill" d="M13.636,5.013a4.016,4.016,0,0,0-1.863.472,0.42,0.42,0,0,0-.179.629l0.112,0.214a0.418,0.418,0,0,0,.625.191,2.557,2.557,0,0,1,1.183-.326A0.933,0.933,0,0,1,14.573,7.2V7.338H14.339c-1.272,0-3.325.281-3.325,1.954A1.75,1.75,0,0,0,12.9,11.011a2.072,2.072,0,0,0,1.785-1.078h0.022a1.132,1.132,0,0,0-.022.247V10.4a0.412,0.412,0,0,0,.457.472h0.379A0.416,0.416,0,0,0,15.99,10.4V7.293A2.121,2.121,0,0,0,13.636,5.013Zm0.948,3.4a1.452,1.452,0,0,1-1.305,1.505,0.775,0.775,0,0,1-.859-0.753c0-.854,1.216-0.966,1.93-0.966h0.234V8.416Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 724 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z"></path>
|
||||
<rect class="ql-fill" height="1.6" rx="0.8" ry="0.8" width="5" x="5.15" y="6.2"></rect>
|
||||
<path class="ql-fill" d="M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="7" x2="6" y1="3" y2="15"></line>
|
||||
<line class="ql-stroke" x1="12" x2="11" y1="3" y2="15"></line>
|
||||
<line class="ql-stroke" x1="3.75" x2="14.75" y1="7" y2="7"></line>
|
||||
<line class="ql-stroke" x1="3.25" x2="14.25" y1="11" y2="11"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 300 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 641 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M16.65186,12.30664a2.6742,2.6742,0,0,1-2.915,2.68457,3.96592,3.96592,0,0,1-2.25537-.6709.56007.56007,0,0,1-.13232-.83594L11.64648,13c.209-.34082.48389-.36328.82471-.1543a2.32654,2.32654,0,0,0,1.12256.33008c.71484,0,1.12207-.35156,1.12207-.78125,0-.61523-.61621-.86816-1.46338-.86816H13.2085a.65159.65159,0,0,1-.68213-.41895l-.05518-.10937a.67114.67114,0,0,1,.14307-.78125l.71533-.86914a8.55289,8.55289,0,0,1,.68213-.7373V8.58887a3.93913,3.93913,0,0,1-.748.05469H11.9873a.54085.54085,0,0,1-.605-.60547V7.59863a.54085.54085,0,0,1,.605-.60547h3.75146a.53773.53773,0,0,1,.60547.59375v.17676a1.03723,1.03723,0,0,1-.27539.748L14.74854,10.0293A2.31132,2.31132,0,0,1,16.65186,12.30664ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 851 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm7.05371,7.96582v.38477c0,.39648-.165.60547-.46191.60547h-.47314v1.29785a.54085.54085,0,0,1-.605.60547h-.69336a.54085.54085,0,0,1-.605-.60547V12.95605H11.333a.5412.5412,0,0,1-.60547-.60547v-.15332a1.199,1.199,0,0,1,.22021-.748l2.56348-4.05957a.7819.7819,0,0,1,.72607-.39648h1.27637a.54085.54085,0,0,1,.605.60547v3.7627h.33008A.54055.54055,0,0,1,17.05371,11.96582ZM14.28125,8.7207h-.022a4.18969,4.18969,0,0,1-.38525.81348l-1.188,1.80469v.02246h1.5293V9.60059A7.04058,7.04058,0,0,1,14.28125,8.7207Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 639 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M16.74023,12.18555a2.75131,2.75131,0,0,1-2.91553,2.80566,3.908,3.908,0,0,1-2.25537-.68164.54809.54809,0,0,1-.13184-.8252L11.73438,13c.209-.34082.48389-.36328.8252-.1543a2.23757,2.23757,0,0,0,1.1001.33008,1.01827,1.01827,0,0,0,1.1001-.96777c0-.61621-.53906-.97949-1.25439-.97949a2.15554,2.15554,0,0,0-.64893.09961,1.15209,1.15209,0,0,1-.814.01074l-.12109-.04395a.64116.64116,0,0,1-.45117-.71484l.231-3.00391a.56666.56666,0,0,1,.62744-.583H15.541a.54085.54085,0,0,1,.605.60547v.43945a.54085.54085,0,0,1-.605.60547H13.41748l-.04395.72559a1.29306,1.29306,0,0,1-.04395.30859h.022a2.39776,2.39776,0,0,1,.57227-.07715A2.53266,2.53266,0,0,1,16.74023,12.18555ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 825 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M14.51758,9.64453a1.85627,1.85627,0,0,0-1.24316.38477H13.252a1.73532,1.73532,0,0,1,1.72754-1.4082,2.66491,2.66491,0,0,1,.5498.06641c.35254.05469.57227.01074.70508-.40723l.16406-.5166a.53393.53393,0,0,0-.373-.75977,4.83723,4.83723,0,0,0-1.17773-.14258c-2.43164,0-3.7627,2.17773-3.7627,4.43359,0,2.47559,1.60645,3.69629,3.19043,3.69629A2.70585,2.70585,0,0,0,16.96,12.19727,2.43861,2.43861,0,0,0,14.51758,9.64453Zm-.23047,3.58691c-.67187,0-1.22168-.81445-1.22168-1.45215,0-.47363.30762-.583.72559-.583.96875,0,1.27734.59375,1.27734,1.12207A.82182.82182,0,0,1,14.28711,13.23145ZM10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 717 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 577 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M15,12v2a.99942.99942,0,0,1-1,1H4a.99942.99942,0,0,1-1-1V12a1,1,0,0,1,2,0v1h8V12a1,1,0,0,1,2,0ZM14,3H4A.99942.99942,0,0,0,3,4V6A1,1,0,0,0,5,6V5h8V6a1,1,0,0,0,2,0V4A.99942.99942,0,0,0,14,3Z"/>
|
||||
<path class="ql-fill" d="M15,10H3A1,1,0,0,1,3,8H15a1,1,0,0,1,0,2Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 322 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke" height="10" width="12" x="3" y="4"></rect>
|
||||
<circle class="ql-fill" cx="6" cy="7" r="1"></circle>
|
||||
<polyline class="ql-even ql-fill" points="5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12"></polyline>
|
||||
</svg>
|
After Width: | Height: | Size: 254 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="9" x2="15" y1="9" y2="9"></line>
|
||||
<polyline class="ql-fill ql-stroke" points="3 7 3 11 5 9 3 7"></polyline>
|
||||
</svg>
|
After Width: | Height: | Size: 299 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="7" x2="13" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="5" x2="11" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="8" x2="10" y1="14" y2="4"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 224 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="7" x2="11" y1="7" y2="11"></line>
|
||||
<path class="ql-even ql-stroke" d="M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z"></path>
|
||||
<path class="ql-even ql-stroke" d="M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 431 B |
|
@ -0,0 +1,8 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 411 B |
|
@ -0,0 +1,8 @@
|
|||
<svg class="" viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="9" x2="15" y1="4" y2="4"></line>
|
||||
<polyline class="ql-stroke" points="3 4 4 5 6 3"></polyline>
|
||||
<line class="ql-stroke" x1="9" x2="15" y1="14" y2="14"></line>
|
||||
<polyline class="ql-stroke" points="3 14 4 15 6 13"></polyline>
|
||||
<line class="ql-stroke" x1="9" x2="15" y1="9" y2="9"></line>
|
||||
<polyline class="ql-stroke" points="3 9 4 10 6 8"></polyline>
|
||||
</svg>
|
After Width: | Height: | Size: 425 B |
|
@ -0,0 +1,9 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="7" x2="15" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="7" x2="15" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="7" x2="15" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke ql-thin" x1="2.5" x2="4.5" y1="5.5" y2="5.5"></line>
|
||||
<path class="ql-fill" d="M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z"></path>
|
||||
<path class="ql-stroke ql-thin" d="M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156"></path>
|
||||
<path class="ql-stroke ql-thin" d="M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 764 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M12,5c0,1.1-2,4-2,4S8,6.1,8,5A2,2,0,0,1,12,5Z"></path>
|
||||
<path class="ql-fill" d="M15.472,2.118a1,1,0,0,0-1.026.05l-1.067.712A3.944,3.944,0,0,1,14,4.869h0v7.6L12,13.8l-2.445-1.63a1,1,0,0,0-1.109,0L6,13.8,4,12.465v-7.6L5.445,5.832a0.992,0.992,0,0,0,.717.144A3.742,3.742,0,0,1,6,5a3.956,3.956,0,0,1,.258-1.374L6,3.8,3.555,2.168A1,1,0,0,0,2,3V13a1,1,0,0,0,.445.832l3,2a1,1,0,0,0,1.109,0L9,14.2l2.445,1.63a1,1,0,0,0,1.109,0l3-2A1,1,0,0,0,16,13V3A1,1,0,0,0,15.472,2.118Z"></path>
|
||||
<path class="ql-fill" d="M12.092,14.938a4.2,4.2,0,0,0-1.936-3.032c-1.125-.656-2.425.738-2.75-0.687A2.036,2.036,0,0,0,5.688,9.656,2.878,2.878,0,0,0,3,8.653V13l3,2,3-2,3,2Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 718 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<circle class="ql-stroke" cx="9" cy="9" r="2"></circle>
|
||||
<path class="ql-stroke" d="M11,14.651A6,6,0,1,1,15,9a2,2,0,0,1-4,0V7"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 170 B |
|
@ -0,0 +1,3 @@
|
|||
<svg viewBox="0 0 18 18">
|
||||
<path class="ql-fill" d="M6,9.5A1.5,1.5,0,1,1,4.5,8,1.5,1.5,0,0,1,6,9.5ZM9.5,8A1.5,1.5,0,1,0,11,9.5,1.5,1.5,0,0,0,9.5,8Zm5,0A1.5,1.5,0,1,0,16,9.5,1.5,1.5,0,0,0,14.5,8Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 205 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="14" y2="14"></line>
|
||||
<line class="ql-stroke" x1="3" x2="15" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="9" x2="15" y1="9" y2="9"></line>
|
||||
<polyline class="ql-stroke" points="5 7 5 11 3 9 5 7"></polyline>
|
||||
</svg>
|
After Width: | Height: | Size: 291 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polygon class="ql-fill ql-stroke" points="12 10 14 12 16 10 12 10"></polygon>
|
||||
<path class="ql-stroke" d="M9.91,13.91A4.6,4.6,0,0,1,9,14a5,5,0,1,1,5-5"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 196 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polyline class="ql-stroke" points="3.5 14 7 4 10.5 14"></polyline>
|
||||
<line class="ql-stroke" x1="9.45" x2="4.55" y1="11" y2="11"></line>
|
||||
<rect class="ql-fill" height="5" rx="0.5" ry="0.5" transform="translate(20 -7) rotate(90)" width="1" x="13" y="4"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 296 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polyline class="ql-stroke" points="3.5 14 7 4 10.5 14"></polyline>
|
||||
<line class="ql-stroke" x1="9.45" x2="4.55" y1="11" y2="11"></line>
|
||||
<rect class="ql-fill" height="5" rx="0.5" ry="0.5" width="1" x="13" y="4"></rect>
|
||||
<rect class="ql-fill" height="5" rx="0.5" ry="0.5" transform="translate(20 -7) rotate(90)" width="1" x="13" y="4"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 380 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polyline class="ql-stroke" points="3.5 14 7 4 10.5 14"></polyline>
|
||||
<line class="ql-stroke" x1="9.45" x2="4.55" y1="11" y2="11"></line>
|
||||
<path class="ql-fill" d="M12.09,7.55l1.7-1.473a0.337,0.337,0,0,1,.429,0l1.7,1.473A0.261,0.261,0,0,1,15.7,8H12.3A0.261,0.261,0,0,1,12.09,7.55Z"></path>
|
||||
<path class="ql-fill" d="M12.09,10.45l1.7,1.473a0.337,0.337,0,0,0,.429,0l1.7-1.473A0.261,0.261,0,0,0,15.7,10H12.3A0.261,0.261,0,0,0,12.09,10.45Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 481 B |
|
@ -0,0 +1,9 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke" x1="10" x2="15" y1="4" y2="4"></line>
|
||||
<line class="ql-stroke" x1="10" x2="15" y1="9" y2="9"></line>
|
||||
<line class="ql-stroke" x1="10" x2="15" y1="14" y2="14"></line>
|
||||
<polygon class="ql-fill ql-stroke" points="3 5 5 3 7 5 3 5"></polygon>
|
||||
<line class="ql-stroke" x1="5" x2="5" y1="7" y2="5"></line>
|
||||
<polygon class="ql-fill ql-stroke" points="3 13 5 15 7 13 3 13"></polygon>
|
||||
<line class="ql-stroke" x1="5" x2="5" y1="11" y2="13"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 502 B |
|
@ -0,0 +1,6 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M5,8a4,4,0,0,0,8,0"></path>
|
||||
<line class="ql-stroke" x1="6" x2="12" y1="15" y2="15"></line>
|
||||
<line class="ql-stroke" x1="9" x2="9" y1="12" y2="15"></line>
|
||||
<rect class="ql-fill" height="8" rx="2" ry="2" width="4" x="7" y="2"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 297 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<line class="ql-stroke ql-thin" x1="15.5" x2="2.5" y1="8.5" y2="9.5"></line>
|
||||
<path class="ql-fill" d="M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z"></path>
|
||||
<path class="ql-fill" d="M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 543 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z"/>
|
||||
<path class="ql-fill" d="M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 686 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z"/>
|
||||
<path class="ql-fill" d="M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 567 B |
|
@ -0,0 +1,5 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke-miter" height="12" width="12" x="3" y="3"></rect>
|
||||
<line class="ql-stroke-miter" x1="9" x2="9" y1="3" y2="15"></line>
|
||||
<line class="ql-stroke-miter" x1="15" x2="3" y1="9" y2="9"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 246 B |
|
@ -0,0 +1,28 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(18 -12) rotate(90)" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" transform="translate(21 -9) rotate(90)" width="2" x="14" y="5"></rect>
|
||||
<rect height="2" transform="translate(24 -6) rotate(90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(30 0) rotate(90)" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" transform="translate(27 -3) rotate(90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 0) rotate(90)" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" transform="translate(9 3) rotate(90)" width="2" x="2" y="5"></rect>
|
||||
<rect height="2" transform="translate(12 6) rotate(90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(18 12) rotate(90)" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" transform="translate(15 9) rotate(90)" width="2" x="2" y="11"></rect>
|
||||
</g>
|
||||
<line class="ql-stroke-miter" x1="2" x2="16" y1="15" y2="15"></line>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="2" x="5" y="2"></rect>
|
||||
<rect height="2" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" width="2" x="5" y="14"></rect>
|
||||
<rect height="2" width="2" x="8" y="14"></rect>
|
||||
<rect height="2" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(15 3) rotate(90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" transform="translate(21 -3) rotate(90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" width="2" x="11" y="14"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,28 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(30 6) rotate(180)" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" transform="translate(24 6) rotate(180)" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" transform="translate(18 6) rotate(180)" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" transform="translate(6 6) rotate(180)" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" transform="translate(12 6) rotate(180)" width="2" x="5" y="2"></rect>
|
||||
<rect height="2" transform="translate(30 30) rotate(180)" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" transform="translate(24 30) rotate(180)" width="2" x="11" y="14"></rect>
|
||||
<rect height="2" transform="translate(18 30) rotate(180)" width="2" x="8" y="14"></rect>
|
||||
<rect height="2" transform="translate(6 30) rotate(180)" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" transform="translate(12 30) rotate(180)" width="2" x="5" y="14"></rect>
|
||||
</g>
|
||||
<line class="ql-stroke-miter" x1="3" x2="3" y1="16" y2="2"></line>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(3 27) rotate(-90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 24) rotate(-90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(9 21) rotate(-90)" width="2" x="14" y="5"></rect>
|
||||
<rect height="2" transform="translate(-9 15) rotate(-90)" width="2" x="2" y="11"></rect>
|
||||
<rect height="2" transform="translate(-6 12) rotate(-90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 15) rotate(-90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" transform="translate(0 18) rotate(-90)" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" transform="translate(3 21) rotate(-90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" transform="translate(18 24) rotate(180)" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" transform="translate(18 12) rotate(180)" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(-3 9) rotate(-90)" width="2" x="2" y="5"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,25 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" width="2" x="5" y="2"></rect>
|
||||
<rect height="2" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" width="2" x="5" y="14"></rect>
|
||||
<rect height="2" width="2" x="8" y="14"></rect>
|
||||
<rect height="2" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" width="2" x="11" y="14"></rect>
|
||||
<rect height="2" transform="translate(-9 15) rotate(-90)" width="2" x="2" y="11"></rect>
|
||||
<rect height="2" transform="translate(-6 12) rotate(-90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 9) rotate(-90)" width="2" x="2" y="5"></rect>
|
||||
<rect height="2" transform="translate(3 27) rotate(-90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 24) rotate(-90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(3 21) rotate(-90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" transform="translate(0 18) rotate(-90)" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 15) rotate(-90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(9 21) rotate(-90)" width="2" x="14" y="5"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,35 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1{opacity:0.4;}
|
||||
.cls-2{fill:#444;}
|
||||
.cls-3{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2px;}
|
||||
</style>
|
||||
</defs>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" width="2" x="5" y="2"></rect>
|
||||
<rect height="2" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" width="2" x="5" y="14"></rect>
|
||||
<rect height="2" width="2" x="8" y="14"></rect>
|
||||
</g>
|
||||
<rect class="ql-stroke-miter" height="12" width="12" x="3" y="3"></rect>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" width="2" x="11" y="14"></rect>
|
||||
<rect height="2" transform="translate(-9 15) rotate(-90)" width="2" x="2" y="11"></rect>
|
||||
<rect height="2" transform="translate(-6 12) rotate(-90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 9) rotate(-90)" width="2" x="2" y="5"></rect>
|
||||
<rect height="2" transform="translate(3 27) rotate(-90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 24) rotate(-90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(3 21) rotate(-90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" transform="translate(0 18) rotate(-90)" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 15) rotate(-90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(9 21) rotate(-90)" width="2" x="14" y="5"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,28 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" width="2" x="5" y="2"></rect>
|
||||
<rect height="2" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" width="2" x="5" y="14"></rect>
|
||||
<rect height="2" width="2" x="8" y="14"></rect>
|
||||
<rect height="2" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" width="2" x="11" y="14"></rect>
|
||||
</g>
|
||||
<line class="ql-stroke-miter" x1="15" x2="15" y1="16" y2="2"></line>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(-9 15) rotate(-90)" width="2" x="2" y="11"></rect>
|
||||
<rect height="2" transform="translate(-6 12) rotate(-90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 9) rotate(-90)" width="2" x="2" y="5"></rect>
|
||||
<rect height="2" transform="translate(3 27) rotate(-90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 24) rotate(-90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(3 21) rotate(-90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" transform="translate(0 18) rotate(-90)" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 15) rotate(-90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(9 21) rotate(-90)" width="2" x="14" y="5"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,28 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(-12 18) rotate(-90)" width="2" x="2" y="14"></rect>
|
||||
<rect height="2" transform="translate(-9 15) rotate(-90)" width="2" x="2" y="11"></rect>
|
||||
<rect height="2" transform="translate(-6 12) rotate(-90)" width="2" x="2" y="8"></rect>
|
||||
<rect height="2" transform="translate(0 6) rotate(-90)" width="2" x="2" y="2"></rect>
|
||||
<rect height="2" transform="translate(-3 9) rotate(-90)" width="2" x="2" y="5"></rect>
|
||||
<rect height="2" transform="translate(0 30) rotate(-90)" width="2" x="14" y="14"></rect>
|
||||
<rect height="2" transform="translate(3 27) rotate(-90)" width="2" x="14" y="11"></rect>
|
||||
<rect height="2" transform="translate(6 24) rotate(-90)" width="2" x="14" y="8"></rect>
|
||||
<rect height="2" transform="translate(12 18) rotate(-90)" width="2" x="14" y="2"></rect>
|
||||
<rect height="2" transform="translate(9 21) rotate(-90)" width="2" x="14" y="5"></rect>
|
||||
</g>
|
||||
<line class="ql-stroke-miter" x1="16" x2="2" y1="3" y2="3"></line>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" transform="translate(24 30) rotate(-180)" width="2" x="11" y="14"></rect>
|
||||
<rect height="2" transform="translate(18 30) rotate(-180)" width="2" x="8" y="14"></rect>
|
||||
<rect height="2" transform="translate(12 30) rotate(-180)" width="2" x="5" y="14"></rect>
|
||||
<rect height="2" transform="translate(24 6) rotate(-180)" width="2" x="11" y="2"></rect>
|
||||
<rect height="2" transform="translate(18 6) rotate(-180)" width="2" x="8" y="2"></rect>
|
||||
<rect height="2" transform="translate(18 12) rotate(-180)" width="2" x="8" y="5"></rect>
|
||||
<rect height="2" transform="translate(18 18) rotate(-180)" width="2" x="8" y="8"></rect>
|
||||
<rect height="2" transform="translate(18 24) rotate(-180)" width="2" x="8" y="11"></rect>
|
||||
<rect height="2" transform="translate(3 21) rotate(-90)" width="2" x="11" y="8"></rect>
|
||||
<rect height="2" transform="translate(-3 15) rotate(-90)" width="2" x="5" y="8"></rect>
|
||||
<rect height="2" transform="translate(12 6) rotate(-180)" width="2" x="5" y="2"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,13 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-fill" d="M15.707,7l1.146-1.146a0.5,0.5,0,1,0-.707-0.707L15,6.293,13.854,5.146a0.5,0.5,0,0,0-.707.707L14.293,7,13.146,8.146a0.5,0.5,0,1,0,.707.707L15,7.707l1.146,1.146a0.5,0.5,0,1,0,.707-0.707Z"></path>
|
||||
<path class="ql-fill" d="M6,5H3A1,1,0,0,0,2,6V8A1,1,0,0,0,3,9H6V5Z"></path>
|
||||
<path class="ql-fill" d="M10,5H7V9h3a1,1,0,0,0,1-1V6A1,1,0,0,0,10,5Z"></path>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<path d="M8,11h4V9a1,1,0,0,0-1-1H8v3Z"></path>
|
||||
<path d="M7,11V8H4A1,1,0,0,0,3,9v2H7Z"></path>
|
||||
<path d="M7,12H3v2a1,1,0,0,0,1,1H7V12Z"></path>
|
||||
<path d="M8,12v3h3a1,1,0,0,0,1-1V12H8Z"></path>
|
||||
<path d="M8,6h3a1,1,0,0,0,1-1V3a1,1,0,0,0-1-1H8V6Z"></path>
|
||||
<path d="M4,6H7V2H4A1,1,0,0,0,3,3V5A1,1,0,0,0,4,6Z"></path>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 788 B |
|
@ -0,0 +1,8 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="10" rx="1" ry="1" width="4" x="2" y="6"></rect>
|
||||
<rect height="10" rx="1" ry="1" width="4" x="12" y="6"></rect>
|
||||
</g>
|
||||
<rect class="ql-fill" height="8" rx="1" ry="1" width="4" x="7" y="2"></rect>
|
||||
<path class="ql-fill" d="M9.707,13l1.146-1.146a0.5,0.5,0,0,0-.707-0.707L9,12.293,7.854,11.146a0.5,0.5,0,0,0-.707.707L8.293,13,7.146,14.146a0.5,0.5,0,1,0,.707.707L9,13.707l1.146,1.146a0.5,0.5,0,0,0,.707-0.707Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 508 B |
|
@ -0,0 +1,9 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-stroke ql-thin ql-transparent">
|
||||
<rect height="3" rx="0.5" ry="0.5" width="7" x="4.5" y="2.5"></rect>
|
||||
<rect height="3" rx="0.5" ry="0.5" width="7" x="4.5" y="12.5"></rect>
|
||||
</g>
|
||||
<rect class="ql-fill ql-stroke ql-thin" height="3" rx="0.5" ry="0.5" width="7" x="8.5" y="7.5"></rect>
|
||||
<line class="ql-stroke ql-thin" x1="6.5" x2="3.5" y1="7.5" y2="10.5"></line>
|
||||
<line class="ql-stroke ql-thin" x1="3.5" x2="6.5" y1="7.5" y2="10.5"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 504 B |
|
@ -0,0 +1,13 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<path d="M11,11h4V9a1,1,0,0,0-1-1H11v3Z"></path>
|
||||
<path d="M10,11V8H7A1,1,0,0,0,6,9v2h4Z"></path>
|
||||
<path d="M10,12H6v2a1,1,0,0,0,1,1h3V12Z"></path>
|
||||
<path d="M11,12v3h3a1,1,0,0,0,1-1V12H11Z"></path>
|
||||
<path d="M11,6h3a1,1,0,0,0,1-1V3a1,1,0,0,0-1-1H11V6Z"></path>
|
||||
<path d="M7,6h3V2H7A1,1,0,0,0,6,3V5A1,1,0,0,0,7,6Z"></path>
|
||||
</g>
|
||||
<path class="ql-fill" d="M5,6H4V5a0.5,0.5,0,0,0-.854-0.354l-2,2a0.5,0.5,0,0,0,0,.707l2,2A0.5,0.5,0,0,0,3.5,9.5a0.494,0.494,0,0,0,.191-0.038A0.5,0.5,0,0,0,4,9V8H5A1,1,0,0,0,5,6Z"></path>
|
||||
<path class="ql-fill" d="M15,5H12V9h3a1,1,0,0,0,1-1V6A1,1,0,0,0,15,5Z"></path>
|
||||
<path class="ql-fill" d="M11,5H8A1,1,0,0,0,7,6V8A1,1,0,0,0,8,9h3V5Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 766 B |
|
@ -0,0 +1,8 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="10" rx="1" ry="1" width="4" x="12" y="2"></rect>
|
||||
<rect height="10" rx="1" ry="1" width="4" x="2" y="2"></rect>
|
||||
</g>
|
||||
<path class="ql-fill" d="M11.354,4.146l-2-2a0.5,0.5,0,0,0-.707,0l-2,2A0.5,0.5,0,0,0,7,5H8V6a1,1,0,0,0,2,0V5h1A0.5,0.5,0,0,0,11.354,4.146Z"></path>
|
||||
<rect class="ql-fill" height="8" rx="1" ry="1" width="4" x="7" y="8"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 437 B |
|
@ -0,0 +1,9 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<g class="ql-fill ql-stroke ql-thin ql-transparent">
|
||||
<rect height="3" rx="0.5" ry="0.5" width="7" x="4.5" y="2.5"></rect>
|
||||
<rect height="3" rx="0.5" ry="0.5" width="7" x="4.5" y="12.5"></rect>
|
||||
</g>
|
||||
<rect class="ql-fill ql-stroke ql-thin" height="3" rx="0.5" ry="0.5" width="7" x="8.5" y="7.5"></rect>
|
||||
<polygon class="ql-fill ql-stroke ql-thin" points="4.5 11 2.5 9 4.5 7 4.5 11"></polygon>
|
||||
<line class="ql-stroke" x1="6" x2="4" y1="9" y2="9"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 499 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke" height="4" width="12" x="3" y="7"></rect>
|
||||
<path class="ql-fill ql-transparent" d="M2,2V16H16V2H2ZM14,14H10V11H8v3H4V4H8V7h2V4h4V14Z"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 201 B |
|
@ -0,0 +1,7 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke" height="4" width="12" x="3" y="7"></rect>
|
||||
<path class="ql-fill ql-transparent" d="M2,2V16H16V2H2ZM14,14H10V11H8v3H4V4H8V7h2V4h4V14Z"></path>
|
||||
<line class="ql-stroke" x1="12" x2="12" y1="11" y2="7"></line>
|
||||
<line class="ql-stroke" x1="9" x2="9" y1="11" y2="7"></line>
|
||||
<line class="ql-stroke" x1="6" x2="6" y1="11" y2="7"></line>
|
||||
</svg>
|
After Width: | Height: | Size: 392 B |
|
@ -0,0 +1,11 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke" height="12" width="12" x="3" y="3"></rect>
|
||||
<rect class="ql-fill" height="2" width="3" x="5" y="5"></rect>
|
||||
<rect class="ql-fill" height="2" width="4" x="9" y="5"></rect>
|
||||
<g class="ql-fill ql-transparent">
|
||||
<rect height="2" width="3" x="5" y="8"></rect>
|
||||
<rect height="2" width="4" x="9" y="8"></rect>
|
||||
<rect height="2" width="3" x="5" y="11"></rect>
|
||||
<rect height="2" width="4" x="9" y="11"></rect>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 481 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<path class="ql-stroke" d="M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3"></path>
|
||||
<rect class="ql-fill" height="1" rx="0.5" ry="0.5" width="12" x="3" y="15"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 210 B |
|
@ -0,0 +1,4 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<polygon class="ql-fill ql-stroke" points="6 10 4 12 2 10 6 10"></polygon>
|
||||
<path class="ql-stroke" d="M8.09,13.91A4.6,4.6,0,0,0,9,14,5,5,0,1,0,4,9"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 192 B |
|
@ -0,0 +1,14 @@
|
|||
<svg viewbox="0 0 18 18">
|
||||
<rect class="ql-stroke" height="12" width="12" x="3" y="3"></rect>
|
||||
<rect class="ql-fill" height="12" width="1" x="5" y="3"></rect>
|
||||
<rect class="ql-fill" height="12" width="1" x="12" y="3"></rect>
|
||||
<rect class="ql-fill" height="2" width="8" x="5" y="8"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="3" y="5"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="3" y="7"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="3" y="10"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="3" y="12"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="12" y="5"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="12" y="7"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="12" y="10"></rect>
|
||||
<rect class="ql-fill" height="1" width="3" x="12" y="12"></rect>
|
||||
</svg>
|
After Width: | Height: | Size: 827 B |
|
@ -0,0 +1,18 @@
|
|||
themeName = 'snow'
|
||||
activeColor = #06c
|
||||
borderColor = #ccc
|
||||
backgroundColor = #fff
|
||||
inactiveColor = #444
|
||||
shadowColor = #ddd
|
||||
textColor = #444
|
||||
|
||||
@import './core'
|
||||
@import './base'
|
||||
@import './snow/*'
|
||||
|
||||
.ql-snow
|
||||
a
|
||||
color: activeColor
|
||||
|
||||
.ql-container.ql-snow
|
||||
border: 1px solid borderColor
|
|
@ -0,0 +1,26 @@
|
|||
.ql-toolbar.ql-snow
|
||||
border: 1px solid borderColor
|
||||
box-sizing: border-box
|
||||
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif
|
||||
padding: 8px
|
||||
|
||||
.ql-formats
|
||||
margin-right: 15px
|
||||
|
||||
.ql-picker-label
|
||||
border: 1px solid transparent
|
||||
.ql-picker-options
|
||||
border: 1px solid transparent
|
||||
box-shadow: rgba(0,0,0,0.2) 0 2px 8px
|
||||
.ql-picker.ql-expanded
|
||||
.ql-picker-label
|
||||
border-color: borderColor
|
||||
.ql-picker-options
|
||||
border-color: borderColor
|
||||
|
||||
.ql-color-picker
|
||||
.ql-picker-item.ql-selected, .ql-picker-item:hover
|
||||
border-color: #000
|
||||
|
||||
.ql-toolbar.ql-snow + .ql-container.ql-snow
|
||||
border-top: 0px;
|
|
@ -0,0 +1,53 @@
|
|||
tooltipMargin = 8px
|
||||
|
||||
.ql-snow
|
||||
.ql-tooltip
|
||||
background-color: #fff
|
||||
border: 1px solid borderColor
|
||||
box-shadow: 0px 0px 5px shadowColor
|
||||
color: textColor
|
||||
padding: 5px 12px
|
||||
white-space: nowrap
|
||||
&::before
|
||||
content: "Visit URL:"
|
||||
line-height: 26px
|
||||
margin-right: tooltipMargin
|
||||
input[type=text]
|
||||
display: none
|
||||
border: 1px solid borderColor
|
||||
font-size: 13px
|
||||
height: 26px
|
||||
margin: 0px
|
||||
padding: 3px 5px
|
||||
width: 170px
|
||||
a.ql-preview
|
||||
display: inline-block
|
||||
max-width: 200px
|
||||
overflow-x: hidden
|
||||
text-overflow: ellipsis
|
||||
vertical-align: top
|
||||
a.ql-action::after
|
||||
border-right: 1px solid borderColor
|
||||
content: 'Edit'
|
||||
margin-left: tooltipMargin*2
|
||||
padding-right: tooltipMargin
|
||||
a.ql-remove::before
|
||||
content: 'Remove'
|
||||
margin-left: tooltipMargin
|
||||
a
|
||||
line-height: 26px
|
||||
.ql-tooltip.ql-editing
|
||||
a.ql-preview, a.ql-remove
|
||||
display: none
|
||||
input[type=text]
|
||||
display: inline-block
|
||||
a.ql-action::after
|
||||
border-right: 0px
|
||||
content: 'Save'
|
||||
padding-right: 0px
|
||||
.ql-tooltip[data-mode=link]::before
|
||||
content: "Enter link:"
|
||||
.ql-tooltip[data-mode=formula]::before
|
||||
content: "Enter formula:"
|
||||
.ql-tooltip[data-mode=video]::before
|
||||
content: "Enter video:"
|
|
@ -0,0 +1,174 @@
|
|||
import extend from 'extend';
|
||||
import Delta from 'quill-delta';
|
||||
import Parchment from 'parchment';
|
||||
import Break from './break';
|
||||
import Inline from './inline';
|
||||
import TextBlot from './text';
|
||||
|
||||
|
||||
const NEWLINE_LENGTH = 1;
|
||||
|
||||
|
||||
class BlockEmbed extends Parchment.Embed {
|
||||
attach() {
|
||||
super.attach();
|
||||
this.attributes = new Parchment.Attributor.Store(this.domNode);
|
||||
}
|
||||
|
||||
delta() {
|
||||
return new Delta().insert(this.value(), extend(this.formats(), this.attributes.values()));
|
||||
}
|
||||
|
||||
format(name, value) {
|
||||
let attribute = Parchment.query(name, Parchment.Scope.BLOCK_ATTRIBUTE);
|
||||
if (attribute != null) {
|
||||
this.attributes.attribute(attribute, value);
|
||||
}
|
||||
}
|
||||
|
||||
formatAt(index, length, name, value) {
|
||||
this.format(name, value);
|
||||
}
|
||||
|
||||
insertAt(index, value, def) {
|
||||
if (typeof value === 'string' && value.endsWith('\n')) {
|
||||
let block = Parchment.create(Block.blotName);
|
||||
this.parent.insertBefore(block, index === 0 ? this : this.next);
|
||||
block.insertAt(0, value.slice(0, -1));
|
||||
} else {
|
||||
super.insertAt(index, value, def);
|
||||
}
|
||||
}
|
||||
}
|
||||
BlockEmbed.scope = Parchment.Scope.BLOCK_BLOT;
|
||||
// It is important for cursor behavior BlockEmbeds use tags that are block level elements
|
||||
|
||||
|
||||
class Block extends Parchment.Block {
|
||||
constructor(domNode) {
|
||||
super(domNode);
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
delta() {
|
||||
if (this.cache.delta == null) {
|
||||
this.cache.delta = this.descendants(Parchment.Leaf).reduce((delta, leaf) => {
|
||||
if (leaf.length() === 0) {
|
||||
return delta;
|
||||
} else {
|
||||
return delta.insert(leaf.value(), bubbleFormats(leaf));
|
||||
}
|
||||
}, new Delta()).insert('\n', bubbleFormats(this));
|
||||
}
|
||||
return this.cache.delta;
|
||||
}
|
||||
|
||||
deleteAt(index, length) {
|
||||
super.deleteAt(index, length);
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
formatAt(index, length, name, value) {
|
||||
if (length <= 0) return;
|
||||
if (Parchment.query(name, Parchment.Scope.BLOCK)) {
|
||||
if (index + length === this.length()) {
|
||||
this.format(name, value);
|
||||
}
|
||||
} else {
|
||||
super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);
|
||||
}
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
insertAt(index, value, def) {
|
||||
if (def != null) return super.insertAt(index, value, def);
|
||||
if (value.length === 0) return;
|
||||
let lines = value.split('\n');
|
||||
let text = lines.shift();
|
||||
if (text.length > 0) {
|
||||
if (index < this.length() - 1 || this.children.tail == null) {
|
||||
super.insertAt(Math.min(index, this.length() - 1), text);
|
||||
} else {
|
||||
this.children.tail.insertAt(this.children.tail.length(), text);
|
||||
}
|
||||
this.cache = {};
|
||||
}
|
||||
let block = this;
|
||||
lines.reduce(function(index, line) {
|
||||
block = block.split(index, true);
|
||||
block.insertAt(0, line);
|
||||
return line.length;
|
||||
}, index + text.length);
|
||||
}
|
||||
|
||||
insertBefore(blot, ref) {
|
||||
let head = this.children.head;
|
||||
super.insertBefore(blot, ref);
|
||||
if (head instanceof Break) {
|
||||
head.remove();
|
||||
}
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
length() {
|
||||
if (this.cache.length == null) {
|
||||
this.cache.length = super.length() + NEWLINE_LENGTH;
|
||||
}
|
||||
return this.cache.length;
|
||||
}
|
||||
|
||||
moveChildren(target, ref) {
|
||||
super.moveChildren(target, ref);
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
optimize(context) {
|
||||
super.optimize(context);
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
path(index) {
|
||||
return super.path(index, true);
|
||||
}
|
||||
|
||||
removeChild(child) {
|
||||
super.removeChild(child);
|
||||
this.cache = {};
|
||||
}
|
||||
|
||||
split(index, force = false) {
|
||||
if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {
|
||||
let clone = this.clone();
|
||||
if (index === 0) {
|
||||
this.parent.insertBefore(clone, this);
|
||||
return this;
|
||||
} else {
|
||||
this.parent.insertBefore(clone, this.next);
|
||||
return clone;
|
||||
}
|
||||
} else {
|
||||
let next = super.split(index, force);
|
||||
this.cache = {};
|
||||
return next;
|
||||
}
|
||||
}
|
||||
}
|
||||
Block.blotName = 'block';
|
||||
Block.tagName = 'P';
|
||||
Block.defaultChild = 'break';
|
||||
Block.allowedChildren = [Inline, Parchment.Embed, TextBlot];
|
||||
|
||||
|
||||
function bubbleFormats(blot, formats = {}) {
|
||||
if (blot == null) return formats;
|
||||
if (typeof blot.formats === 'function') {
|
||||
formats = extend(formats, blot.formats());
|
||||
}
|
||||
if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {
|
||||
return formats;
|
||||
}
|
||||
return bubbleFormats(blot.parent, formats);
|
||||
}
|
||||
|
||||
|
||||
export { bubbleFormats, BlockEmbed, Block as default };
|
|
@ -0,0 +1,29 @@
|
|||
import Parchment from 'parchment';
|
||||
|
||||
|
||||
class Break extends Parchment.Embed {
|
||||
static value() {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
insertInto(parent, ref) {
|
||||
if (parent.children.length === 0) {
|
||||
super.insertInto(parent, ref);
|
||||
} else {
|
||||
this.remove();
|
||||
}
|
||||
}
|
||||
|
||||
length() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
value() {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
Break.blotName = 'break';
|
||||
Break.tagName = 'BR';
|
||||
|
||||
|
||||
export default Break;
|
|
@ -0,0 +1,9 @@
|
|||
import Parchment from 'parchment';
|
||||
import Block, { BlockEmbed } from './block';
|
||||
|
||||
|
||||
class Container extends Parchment.Container { }
|
||||
Container.allowedChildren = [Block, BlockEmbed, Container];
|
||||
|
||||
|
||||
export default Container;
|
|
@ -0,0 +1,116 @@
|
|||
import Parchment from 'parchment';
|
||||
import TextBlot from './text';
|
||||
|
||||
|
||||
class Cursor extends Parchment.Embed {
|
||||
static value() {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
constructor(domNode, selection) {
|
||||
super(domNode);
|
||||
this.selection = selection;
|
||||
this.textNode = document.createTextNode(Cursor.CONTENTS);
|
||||
this.domNode.appendChild(this.textNode);
|
||||
this._length = 0;
|
||||
}
|
||||
|
||||
detach() {
|
||||
// super.detach() will also clear domNode.__blot
|
||||
if (this.parent != null) this.parent.removeChild(this);
|
||||
}
|
||||
|
||||
format(name, value) {
|
||||
if (this._length !== 0) {
|
||||
return super.format(name, value);
|
||||
}
|
||||
let target = this, index = 0;
|
||||
while (target != null && target.statics.scope !== Parchment.Scope.BLOCK_BLOT) {
|
||||
index += target.offset(target.parent);
|
||||
target = target.parent;
|
||||
}
|
||||
if (target != null) {
|
||||
this._length = Cursor.CONTENTS.length;
|
||||
target.optimize();
|
||||
target.formatAt(index, Cursor.CONTENTS.length, name, value);
|
||||
this._length = 0;
|
||||
}
|
||||
}
|
||||
|
||||
index(node, offset) {
|
||||
if (node === this.textNode) return 0;
|
||||
return super.index(node, offset);
|
||||
}
|
||||
|
||||
length() {
|
||||
return this._length;
|
||||
}
|
||||
|
||||
position() {
|
||||
return [this.textNode, this.textNode.data.length];
|
||||
}
|
||||
|
||||
remove() {
|
||||
super.remove();
|
||||
this.parent = null;
|
||||
}
|
||||
|
||||
restore() {
|
||||
if (this.selection.composing || this.parent == null) return;
|
||||
let textNode = this.textNode;
|
||||
let range = this.selection.getNativeRange();
|
||||
let restoreText, start, end;
|
||||
if (range != null && range.start.node === textNode && range.end.node === textNode) {
|
||||
[restoreText, start, end] = [textNode, range.start.offset, range.end.offset];
|
||||
}
|
||||
// Link format will insert text outside of anchor tag
|
||||
while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {
|
||||
this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);
|
||||
}
|
||||
if (this.textNode.data !== Cursor.CONTENTS) {
|
||||
let text = this.textNode.data.split(Cursor.CONTENTS).join('');
|
||||
if (this.next instanceof TextBlot) {
|
||||
restoreText = this.next.domNode;
|
||||
this.next.insertAt(0, text);
|
||||
this.textNode.data = Cursor.CONTENTS;
|
||||
} else {
|
||||
this.textNode.data = text;
|
||||
this.parent.insertBefore(Parchment.create(this.textNode), this);
|
||||
this.textNode = document.createTextNode(Cursor.CONTENTS);
|
||||
this.domNode.appendChild(this.textNode);
|
||||
}
|
||||
}
|
||||
this.remove();
|
||||
if (start != null) {
|
||||
[start, end] = [start, end].map(function(offset) {
|
||||
return Math.max(0, Math.min(restoreText.data.length, offset - 1));
|
||||
});
|
||||
return {
|
||||
startNode: restoreText,
|
||||
startOffset: start,
|
||||
endNode: restoreText,
|
||||
endOffset: end
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
update(mutations, context) {
|
||||
if (mutations.some((mutation) => {
|
||||
return mutation.type === 'characterData' && mutation.target === this.textNode;
|
||||
})) {
|
||||
let range = this.restore();
|
||||
if (range) context.range = range;
|
||||
}
|
||||
}
|
||||
|
||||
value() {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
Cursor.blotName = 'cursor';
|
||||
Cursor.className = 'ql-cursor';
|
||||
Cursor.tagName = 'span';
|
||||
Cursor.CONTENTS = "\uFEFF"; // Zero width no break space
|
||||
|
||||
|
||||
export default Cursor;
|