新供应链前端
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
["env", {
|
||||
"modules": false,
|
||||
"targets": {
|
||||
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
|
||||
}
|
||||
}],
|
||||
"stage-2"
|
||||
],
|
||||
"plugins": ["transform-vue-jsx", "transform-runtime"]
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
@ -0,0 +1,14 @@
|
||||
.DS_Store
|
||||
node_modules/
|
||||
/dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
@ -0,0 +1,10 @@
|
||||
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
|
||||
module.exports = {
|
||||
"plugins": {
|
||||
"postcss-import": {},
|
||||
"postcss-url": {},
|
||||
// to edit target browsers: use "browserslist" field in package.json
|
||||
"autoprefixer": {}
|
||||
}
|
||||
}
|
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [2018-2020] [macrozheng]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
@ -0,0 +1,24 @@
|
||||
# supply-chain-finance
|
||||
|
||||
## 前言
|
||||
|
||||
该项目为前后端分离项目的前端部分。
|
||||
|
||||
## 项目介绍
|
||||
|
||||
`supplychain.sztzjy`是一个供应链金融实训项目。
|
||||
|
||||
### 技术选型
|
||||
|
||||
技术 | 说明 | 官网
|
||||
----|----|----
|
||||
Vue | 前端框架 | [https://vuejs.org/](https://vuejs.org/)
|
||||
Vue-router | 路由框架 | [https://router.vuejs.org/](https://router.vuejs.org/)
|
||||
Vuex | 全局状态管理框架 | [https://vuex.vuejs.org/](https://vuex.vuejs.org/)
|
||||
Element | 前端UI框架 | [https://element.eleme.io/](https://element.eleme.io/)
|
||||
Axios | 前端HTTP框架 | [https://github.com/axios/axios](https://github.com/axios/axios)
|
||||
v-charts | 基于Echarts的图表框架 | [https://v-charts.js.org/](https://v-charts.js.org/)
|
||||
Js-cookie | cookie管理工具 | [https://github.com/js-cookie/js-cookie](https://github.com/js-cookie/js-cookie)
|
||||
nprogress | 进度条控件 | [https://github.com/rstacruz/nprogress](https://github.com/rstacruz/nprogress)
|
||||
vue-element-admin | 项目脚手架参考 | [https://github.com/PanJiaChen/vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
|
||||
|
@ -0,0 +1,11 @@
|
||||
Stack trace:
|
||||
Frame Function Args
|
||||
000FFFFB510 00180064365 (00180275F10, 00180266FD1, 000FFFFCA30, 000FFFFB9F0)
|
||||
000FFFFBA40 001800499D2 (00100002000, 0018034F1B0, 00000000002, 000000003F0)
|
||||
000FFFFCA50 00180049A11 (00000000002, 0018034F4C0, 000FFFFCA30, 00000000008)
|
||||
000FFFFCAE0 0018005CFCD (00000000000, 000FFFFCC10, 001800DC3EF, 205C745C615C635C)
|
||||
000FFFFCBC0 0018005D13C (635C655C205C265C, 3E5C205C6F5C685C, 765C655C645C2F5C, 795C745C745C2F5C)
|
||||
000FFFFCCE0 0018004A1A8 (00000000000, 00000000000, 00000000000, 00000000000)
|
||||
000FFFFCDA0 00180048A2A (00000000000, 00000000000, 00000000000, 00000000000)
|
||||
000FFFFCE50 00180048AEC (00000000000, 00000000000, 00000000000, 00000000000)
|
||||
End of stack trace
|
@ -0,0 +1,41 @@
|
||||
'use strict'
|
||||
require('./check-versions')()
|
||||
|
||||
process.env.NODE_ENV = 'dev'
|
||||
|
||||
const ora = require('ora')
|
||||
const rm = require('rimraf')
|
||||
const path = require('path')
|
||||
const chalk = require('chalk')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const webpackConfig = require('./webpack.build.dev.conf')
|
||||
|
||||
const spinner = ora('building for dev...')
|
||||
spinner.start()
|
||||
|
||||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
|
||||
if (err) throw err
|
||||
webpack(webpackConfig, (err, stats) => {
|
||||
spinner.stop()
|
||||
if (err) throw err
|
||||
process.stdout.write(stats.toString({
|
||||
colors: true,
|
||||
modules: false,
|
||||
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
|
||||
chunks: false,
|
||||
chunkModules: false
|
||||
}) + '\n\n')
|
||||
|
||||
if (stats.hasErrors()) {
|
||||
console.log(chalk.red(' Build failed with errors.\n'))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
console.log(chalk.cyan(' Build complete.\n'))
|
||||
console.log(chalk.yellow(
|
||||
' Tip: built files are meant to be served over an HTTP server.\n' +
|
||||
' Opening index.html over file:// won\'t work.\n'
|
||||
))
|
||||
})
|
||||
})
|
@ -0,0 +1,41 @@
|
||||
'use strict'
|
||||
require('./check-versions')()
|
||||
|
||||
process.env.NODE_ENV = 'qa'
|
||||
|
||||
const ora = require('ora')
|
||||
const rm = require('rimraf')
|
||||
const path = require('path')
|
||||
const chalk = require('chalk')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const webpackConfig = require('./webpack.qa.conf')
|
||||
|
||||
const spinner = ora('building for qa...')
|
||||
spinner.start()
|
||||
|
||||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
|
||||
if (err) throw err
|
||||
webpack(webpackConfig, (err, stats) => {
|
||||
spinner.stop()
|
||||
if (err) throw err
|
||||
process.stdout.write(stats.toString({
|
||||
colors: true,
|
||||
modules: false,
|
||||
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
|
||||
chunks: false,
|
||||
chunkModules: false
|
||||
}) + '\n\n')
|
||||
|
||||
if (stats.hasErrors()) {
|
||||
console.log(chalk.red(' Build failed with errors.\n'))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
console.log(chalk.cyan(' Build complete.\n'))
|
||||
console.log(chalk.yellow(
|
||||
' Tip: built files are meant to be served over an HTTP server.\n' +
|
||||
' Opening index.html over file:// won\'t work.\n'
|
||||
))
|
||||
})
|
||||
})
|
@ -0,0 +1,41 @@
|
||||
'use strict'
|
||||
require('./check-versions')()
|
||||
|
||||
process.env.NODE_ENV = 'production'
|
||||
|
||||
const ora = require('ora')
|
||||
const rm = require('rimraf')
|
||||
const path = require('path')
|
||||
const chalk = require('chalk')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const webpackConfig = require('./webpack.prod.conf')
|
||||
|
||||
const spinner = ora('building for production...')
|
||||
spinner.start()
|
||||
|
||||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
|
||||
if (err) throw err
|
||||
webpack(webpackConfig, (err, stats) => {
|
||||
spinner.stop()
|
||||
if (err) throw err
|
||||
process.stdout.write(stats.toString({
|
||||
colors: true,
|
||||
modules: false,
|
||||
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
|
||||
chunks: false,
|
||||
chunkModules: false
|
||||
}) + '\n\n')
|
||||
|
||||
if (stats.hasErrors()) {
|
||||
console.log(chalk.red(' Build failed with errors.\n'))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
console.log(chalk.cyan(' Build complete.\n'))
|
||||
console.log(chalk.yellow(
|
||||
' Tip: built files are meant to be served over an HTTP server.\n' +
|
||||
' Opening index.html over file:// won\'t work.\n'
|
||||
))
|
||||
})
|
||||
})
|
@ -0,0 +1,54 @@
|
||||
'use strict'
|
||||
const chalk = require('chalk')
|
||||
const semver = require('semver')
|
||||
const packageConfig = require('../package.json')
|
||||
const shell = require('shelljs')
|
||||
|
||||
function exec (cmd) {
|
||||
return require('child_process').execSync(cmd).toString().trim()
|
||||
}
|
||||
|
||||
const versionRequirements = [
|
||||
{
|
||||
name: 'node',
|
||||
currentVersion: semver.clean(process.version),
|
||||
versionRequirement: packageConfig.engines.node
|
||||
}
|
||||
]
|
||||
|
||||
if (shell.which('npm')) {
|
||||
versionRequirements.push({
|
||||
name: 'npm',
|
||||
currentVersion: exec('npm --version'),
|
||||
versionRequirement: packageConfig.engines.npm
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = function () {
|
||||
const warnings = []
|
||||
|
||||
for (let i = 0; i < versionRequirements.length; i++) {
|
||||
const mod = versionRequirements[i]
|
||||
|
||||
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
|
||||
warnings.push(mod.name + ': ' +
|
||||
chalk.red(mod.currentVersion) + ' should be ' +
|
||||
chalk.green(mod.versionRequirement)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (warnings.length) {
|
||||
console.log('')
|
||||
console.log(chalk.yellow('To use this template, you must update following to modules:'))
|
||||
console.log()
|
||||
|
||||
for (let i = 0; i < warnings.length; i++) {
|
||||
const warning = warnings[i]
|
||||
console.log(' ' + warning)
|
||||
}
|
||||
|
||||
console.log()
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,101 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const config = require('../config')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
const packageConfig = require('../package.json')
|
||||
|
||||
exports.assetsPath = function (_path) {
|
||||
const assetsSubDirectory = process.env.NODE_ENV === 'production'
|
||||
? config.build.assetsSubDirectory
|
||||
: config.dev.assetsSubDirectory
|
||||
|
||||
return path.posix.join(assetsSubDirectory, _path)
|
||||
}
|
||||
|
||||
exports.cssLoaders = function (options) {
|
||||
options = options || {}
|
||||
|
||||
const cssLoader = {
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
sourceMap: options.sourceMap
|
||||
}
|
||||
}
|
||||
|
||||
const postcssLoader = {
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
sourceMap: options.sourceMap
|
||||
}
|
||||
}
|
||||
|
||||
// generate loader string to be used with extract text plugin
|
||||
function generateLoaders (loader, loaderOptions) {
|
||||
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
|
||||
|
||||
if (loader) {
|
||||
loaders.push({
|
||||
loader: loader + '-loader',
|
||||
options: Object.assign({}, loaderOptions, {
|
||||
sourceMap: options.sourceMap
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// Extract CSS when that option is specified
|
||||
// (which is the case during production build)
|
||||
if (options.extract) {
|
||||
return ExtractTextPlugin.extract({
|
||||
use: loaders,
|
||||
fallback: 'vue-style-loader'
|
||||
})
|
||||
} else {
|
||||
return ['vue-style-loader'].concat(loaders)
|
||||
}
|
||||
}
|
||||
|
||||
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
|
||||
return {
|
||||
css: generateLoaders(),
|
||||
postcss: generateLoaders(),
|
||||
less: generateLoaders('less'),
|
||||
sass: generateLoaders('sass', { indentedSyntax: true }),
|
||||
scss: generateLoaders('sass'),
|
||||
stylus: generateLoaders('stylus'),
|
||||
styl: generateLoaders('stylus')
|
||||
}
|
||||
}
|
||||
|
||||
// Generate loaders for standalone style files (outside of .vue)
|
||||
exports.styleLoaders = function (options) {
|
||||
const output = []
|
||||
const loaders = exports.cssLoaders(options)
|
||||
|
||||
for (const extension in loaders) {
|
||||
const loader = loaders[extension]
|
||||
output.push({
|
||||
test: new RegExp('\\.' + extension + '$'),
|
||||
use: loader
|
||||
})
|
||||
}
|
||||
|
||||
return output
|
||||
}
|
||||
|
||||
exports.createNotifierCallback = () => {
|
||||
const notifier = require('node-notifier')
|
||||
|
||||
return (severity, errors) => {
|
||||
if (severity !== 'error') return
|
||||
|
||||
const error = errors[0]
|
||||
const filename = error.file && error.file.split('!').pop()
|
||||
|
||||
notifier.notify({
|
||||
title: packageConfig.name,
|
||||
message: severity + ': ' + error.name,
|
||||
subtitle: filename || '',
|
||||
icon: path.join(__dirname, 'logo.png')
|
||||
})
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
'use strict'
|
||||
const utils = require('./utils')
|
||||
const config = require('../config')
|
||||
const isProduction = process.env.NODE_ENV === 'production'
|
||||
const sourceMapEnabled = isProduction
|
||||
? config.build.productionSourceMap
|
||||
: config.dev.cssSourceMap
|
||||
|
||||
module.exports = {
|
||||
loaders: utils.cssLoaders({
|
||||
sourceMap: sourceMapEnabled,
|
||||
extract: false
|
||||
}),
|
||||
cssSourceMap: sourceMapEnabled,
|
||||
cacheBusting: config.dev.cacheBusting,
|
||||
transformToRequire: {
|
||||
video: ['src', 'poster'],
|
||||
source: 'src',
|
||||
img: 'src',
|
||||
image: 'xlink:href'
|
||||
}
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const utils = require('./utils')
|
||||
const config = require('../config')
|
||||
const vueLoaderConfig = require('./vue-loader.conf')
|
||||
|
||||
function resolve (dir) {
|
||||
return path.join(__dirname, '..', dir)
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = {
|
||||
context: path.resolve(__dirname, '../'),
|
||||
entry: {
|
||||
app: './src/main.js'
|
||||
},
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: '[name].js',
|
||||
publicPath: process.env.NODE_ENV === 'production'
|
||||
? config.build.assetsPublicPath
|
||||
: config.dev.assetsPublicPath
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.vue', '.json'],
|
||||
alias: {
|
||||
'vue$': 'vue/dist/vue.esm.js',
|
||||
'@': resolve('src'),
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.vue$/,
|
||||
loader: 'vue-loader',
|
||||
options: vueLoaderConfig
|
||||
},
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: 'babel-loader',
|
||||
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
|
||||
},
|
||||
{
|
||||
test: /\.svg$/,
|
||||
loader: 'svg-sprite-loader',
|
||||
include: [resolve('src/icons')],
|
||||
options: {
|
||||
symbolId: 'icon-[name]'
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
exclude: resolve('src/icons'),
|
||||
options: {
|
||||
limit: 10000,
|
||||
name: utils.assetsPath('img/[name].[hash:7].[ext]')
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
options: {
|
||||
limit: 10000,
|
||||
name: utils.assetsPath('media/[name].[hash:7].[ext]')
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
|
||||
loader: 'url-loader',
|
||||
options: {
|
||||
limit: 80000,
|
||||
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
node: {
|
||||
// prevent webpack from injecting useless setImmediate polyfill because Vue
|
||||
// source contains it (although only uses it if it's native).
|
||||
setImmediate: false,
|
||||
// prevent webpack from injecting mocks to Node native modules
|
||||
// that does not make sense for the client
|
||||
dgram: 'empty',
|
||||
fs: 'empty',
|
||||
net: 'empty',
|
||||
tls: 'empty',
|
||||
child_process: 'empty'
|
||||
}
|
||||
}
|
@ -0,0 +1,145 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
||||
|
||||
const env = require('../config/dev.env')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
module: {
|
||||
rules: utils.styleLoaders({
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
extract: true,
|
||||
usePostCSS: true
|
||||
})
|
||||
},
|
||||
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: utils.assetsPath('js/[name].[chunkhash].js'),
|
||||
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
|
||||
},
|
||||
plugins: [
|
||||
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': env
|
||||
}),
|
||||
new UglifyJsPlugin({
|
||||
uglifyOptions: {
|
||||
compress: {
|
||||
warnings: false
|
||||
}
|
||||
},
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
parallel: true
|
||||
}),
|
||||
// extract css into its own file
|
||||
new ExtractTextPlugin({
|
||||
filename: utils.assetsPath('css/[name].[contenthash].css'),
|
||||
// Setting the following option to `false` will not extract CSS from codesplit chunks.
|
||||
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
|
||||
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
|
||||
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
|
||||
allChunks: true,
|
||||
}),
|
||||
// Compress extracted CSS. We are using this plugin so that possible
|
||||
// duplicated CSS from different components can be deduped.
|
||||
new OptimizeCSSPlugin({
|
||||
cssProcessorOptions: config.build.productionSourceMap
|
||||
? { safe: true, map: { inline: false } }
|
||||
: { safe: true }
|
||||
}),
|
||||
// generate dist index.html with correct asset hash for caching.
|
||||
// you can customize output by editing /index.html
|
||||
// see https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({
|
||||
filename: config.build.index,
|
||||
template: 'index.html',
|
||||
inject: true,
|
||||
minify: {
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true
|
||||
// more options:
|
||||
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||
},
|
||||
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||
chunksSortMode: 'dependency'
|
||||
}),
|
||||
// keep module.id stable when vendor modules does not change
|
||||
new webpack.HashedModuleIdsPlugin(),
|
||||
// enable scope hoisting
|
||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||
// split vendor js into its own file
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'vendor',
|
||||
minChunks (module) {
|
||||
// any required modules inside node_modules are extracted to vendor
|
||||
return (
|
||||
module.resource &&
|
||||
/\.js$/.test(module.resource) &&
|
||||
module.resource.indexOf(
|
||||
path.join(__dirname, '../node_modules')
|
||||
) === 0
|
||||
)
|
||||
}
|
||||
}),
|
||||
// extract webpack runtime and module manifest to its own file in order to
|
||||
// prevent vendor hash from being updated whenever app bundle is updated
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'manifest',
|
||||
minChunks: Infinity
|
||||
}),
|
||||
// This instance extracts shared chunks from code splitted chunks and bundles them
|
||||
// in a separate chunk, similar to the vendor chunk
|
||||
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'app',
|
||||
async: 'vendor-async',
|
||||
children: true,
|
||||
minChunks: 3
|
||||
}),
|
||||
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.build.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
if (config.build.productionGzip) {
|
||||
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
||||
|
||||
webpackConfig.plugins.push(
|
||||
new CompressionWebpackPlugin({
|
||||
asset: '[path].gz[query]',
|
||||
algorithm: 'gzip',
|
||||
test: new RegExp(
|
||||
'\\.(' +
|
||||
config.build.productionGzipExtensions.join('|') +
|
||||
')$'
|
||||
),
|
||||
threshold: 10240,
|
||||
minRatio: 0.8
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
if (config.build.bundleAnalyzerReport) {
|
||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
|
||||
}
|
||||
|
||||
module.exports = webpackConfig
|
@ -0,0 +1,96 @@
|
||||
'use strict'
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const path = require('path')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
||||
const portfinder = require('portfinder')
|
||||
|
||||
const HOST = process.env.HOST
|
||||
const PORT = process.env.PORT && Number(process.env.PORT)
|
||||
|
||||
const devWebpackConfig = merge(baseWebpackConfig, {
|
||||
module: {
|
||||
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
|
||||
},
|
||||
// cheap-module-eval-source-map is faster for development
|
||||
devtool: config.dev.devtool,
|
||||
|
||||
// these devServer options should be customized in /config/index.js
|
||||
devServer: {
|
||||
disableHostCheck: true,
|
||||
clientLogLevel: 'warning',
|
||||
historyApiFallback: {
|
||||
rewrites: [
|
||||
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
|
||||
],
|
||||
},
|
||||
hot: true,
|
||||
contentBase: false, // since we use CopyWebpackPlugin.
|
||||
compress: true,
|
||||
host: HOST || config.dev.host,
|
||||
port: PORT || config.dev.port,
|
||||
open: config.dev.autoOpenBrowser,
|
||||
overlay: config.dev.errorOverlay
|
||||
? { warnings: false, errors: true }
|
||||
: false,
|
||||
publicPath: config.dev.assetsPublicPath,
|
||||
proxy: config.dev.proxyTable,
|
||||
quiet: true, // necessary for FriendlyErrorsPlugin
|
||||
watchOptions: {
|
||||
poll: config.dev.poll,
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': require('../config/dev.env')
|
||||
}),
|
||||
new webpack.HotModuleReplacementPlugin(),
|
||||
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
|
||||
new webpack.NoEmitOnErrorsPlugin(),
|
||||
// https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({
|
||||
filename: 'index.html',
|
||||
template: 'index.html',
|
||||
inject: true
|
||||
}),
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.dev.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = new Promise((resolve, reject) => {
|
||||
portfinder.basePort = process.env.PORT || config.dev.port
|
||||
portfinder.getPort((err, port) => {
|
||||
if (err) {
|
||||
reject(err)
|
||||
} else {
|
||||
// publish the new Port, necessary for e2e tests
|
||||
process.env.PORT = port
|
||||
// add port to devServer config
|
||||
devWebpackConfig.devServer.port = port
|
||||
|
||||
// Add FriendlyErrorsPlugin
|
||||
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
|
||||
compilationSuccessInfo: {
|
||||
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
|
||||
},
|
||||
onErrors: config.dev.notifyOnErrors
|
||||
? utils.createNotifierCallback()
|
||||
: undefined
|
||||
}))
|
||||
|
||||
resolve(devWebpackConfig)
|
||||
}
|
||||
})
|
||||
})
|
@ -0,0 +1,145 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
||||
|
||||
const env = require('../config/prod.env')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
module: {
|
||||
rules: utils.styleLoaders({
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
extract: true,
|
||||
usePostCSS: true
|
||||
})
|
||||
},
|
||||
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: utils.assetsPath('js/[name].[chunkhash].js'),
|
||||
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
|
||||
},
|
||||
plugins: [
|
||||
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': env
|
||||
}),
|
||||
new UglifyJsPlugin({
|
||||
uglifyOptions: {
|
||||
compress: {
|
||||
warnings: false
|
||||
}
|
||||
},
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
parallel: true
|
||||
}),
|
||||
// extract css into its own file
|
||||
new ExtractTextPlugin({
|
||||
filename: utils.assetsPath('css/[name].[contenthash].css'),
|
||||
// Setting the following option to `false` will not extract CSS from codesplit chunks.
|
||||
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
|
||||
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
|
||||
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
|
||||
allChunks: true,
|
||||
}),
|
||||
// Compress extracted CSS. We are using this plugin so that possible
|
||||
// duplicated CSS from different components can be deduped.
|
||||
new OptimizeCSSPlugin({
|
||||
cssProcessorOptions: config.build.productionSourceMap
|
||||
? { safe: true, map: { inline: false } }
|
||||
: { safe: true }
|
||||
}),
|
||||
// generate dist index.html with correct asset hash for caching.
|
||||
// you can customize output by editing /index.html
|
||||
// see https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({
|
||||
filename: config.build.index,
|
||||
template: 'index.html',
|
||||
inject: true,
|
||||
minify: {
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true
|
||||
// more options:
|
||||
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||
},
|
||||
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||
chunksSortMode: 'dependency'
|
||||
}),
|
||||
// keep module.id stable when vendor modules does not change
|
||||
new webpack.HashedModuleIdsPlugin(),
|
||||
// enable scope hoisting
|
||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||
// split vendor js into its own file
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'vendor',
|
||||
minChunks (module) {
|
||||
// any required modules inside node_modules are extracted to vendor
|
||||
return (
|
||||
module.resource &&
|
||||
/\.js$/.test(module.resource) &&
|
||||
module.resource.indexOf(
|
||||
path.join(__dirname, '../node_modules')
|
||||
) === 0
|
||||
)
|
||||
}
|
||||
}),
|
||||
// extract webpack runtime and module manifest to its own file in order to
|
||||
// prevent vendor hash from being updated whenever app bundle is updated
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'manifest',
|
||||
minChunks: Infinity
|
||||
}),
|
||||
// This instance extracts shared chunks from code splitted chunks and bundles them
|
||||
// in a separate chunk, similar to the vendor chunk
|
||||
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'app',
|
||||
async: 'vendor-async',
|
||||
children: true,
|
||||
minChunks: 3
|
||||
}),
|
||||
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.build.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
if (config.build.productionGzip) {
|
||||
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
||||
|
||||
webpackConfig.plugins.push(
|
||||
new CompressionWebpackPlugin({
|
||||
asset: '[path].gz[query]',
|
||||
algorithm: 'gzip',
|
||||
test: new RegExp(
|
||||
'\\.(' +
|
||||
config.build.productionGzipExtensions.join('|') +
|
||||
')$'
|
||||
),
|
||||
threshold: 10240,
|
||||
minRatio: 0.8
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
if (config.build.bundleAnalyzerReport) {
|
||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
|
||||
}
|
||||
|
||||
module.exports = webpackConfig
|
@ -0,0 +1,145 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const utils = require('./utils')
|
||||
const webpack = require('webpack')
|
||||
const config = require('../config')
|
||||
const merge = require('webpack-merge')
|
||||
const baseWebpackConfig = require('./webpack.base.conf')
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
|
||||
|
||||
const env = require('../config/qa.env')
|
||||
|
||||
const webpackConfig = merge(baseWebpackConfig, {
|
||||
module: {
|
||||
rules: utils.styleLoaders({
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
extract: true,
|
||||
usePostCSS: true
|
||||
})
|
||||
},
|
||||
devtool: config.build.productionSourceMap ? config.build.devtool : false,
|
||||
output: {
|
||||
path: config.build.assetsRoot,
|
||||
filename: utils.assetsPath('js/[name].[chunkhash].js'),
|
||||
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
|
||||
},
|
||||
plugins: [
|
||||
// http://vuejs.github.io/vue-loader/en/workflow/production.html
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': env
|
||||
}),
|
||||
new UglifyJsPlugin({
|
||||
uglifyOptions: {
|
||||
compress: {
|
||||
warnings: false
|
||||
}
|
||||
},
|
||||
sourceMap: config.build.productionSourceMap,
|
||||
parallel: true
|
||||
}),
|
||||
// extract css into its own file
|
||||
new ExtractTextPlugin({
|
||||
filename: utils.assetsPath('css/[name].[contenthash].css'),
|
||||
// Setting the following option to `false` will not extract CSS from codesplit chunks.
|
||||
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
|
||||
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
|
||||
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
|
||||
allChunks: true,
|
||||
}),
|
||||
// Compress extracted CSS. We are using this plugin so that possible
|
||||
// duplicated CSS from different components can be deduped.
|
||||
new OptimizeCSSPlugin({
|
||||
cssProcessorOptions: config.build.productionSourceMap
|
||||
? { safe: true, map: { inline: false } }
|
||||
: { safe: true }
|
||||
}),
|
||||
// generate dist index.html with correct asset hash for caching.
|
||||
// you can customize output by editing /index.html
|
||||
// see https://github.com/ampedandwired/html-webpack-plugin
|
||||
new HtmlWebpackPlugin({
|
||||
filename: config.build.index,
|
||||
template: 'index.html',
|
||||
inject: true,
|
||||
minify: {
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true
|
||||
// more options:
|
||||
// https://github.com/kangax/html-minifier#options-quick-reference
|
||||
},
|
||||
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
|
||||
chunksSortMode: 'dependency'
|
||||
}),
|
||||
// keep module.id stable when vendor modules does not change
|
||||
new webpack.HashedModuleIdsPlugin(),
|
||||
// enable scope hoisting
|
||||
new webpack.optimize.ModuleConcatenationPlugin(),
|
||||
// split vendor js into its own file
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'vendor',
|
||||
minChunks (module) {
|
||||
// any required modules inside node_modules are extracted to vendor
|
||||
return (
|
||||
module.resource &&
|
||||
/\.js$/.test(module.resource) &&
|
||||
module.resource.indexOf(
|
||||
path.join(__dirname, '../node_modules')
|
||||
) === 0
|
||||
)
|
||||
}
|
||||
}),
|
||||
// extract webpack runtime and module manifest to its own file in order to
|
||||
// prevent vendor hash from being updated whenever app bundle is updated
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'manifest',
|
||||
minChunks: Infinity
|
||||
}),
|
||||
// This instance extracts shared chunks from code splitted chunks and bundles them
|
||||
// in a separate chunk, similar to the vendor chunk
|
||||
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
name: 'app',
|
||||
async: 'vendor-async',
|
||||
children: true,
|
||||
minChunks: 3
|
||||
}),
|
||||
|
||||
// copy custom static assets
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: path.resolve(__dirname, '../static'),
|
||||
to: config.build.assetsSubDirectory,
|
||||
ignore: ['.*']
|
||||
}
|
||||
])
|
||||
]
|
||||
})
|
||||
|
||||
if (config.build.productionGzip) {
|
||||
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
||||
|
||||
webpackConfig.plugins.push(
|
||||
new CompressionWebpackPlugin({
|
||||
asset: '[path].gz[query]',
|
||||
algorithm: 'gzip',
|
||||
test: new RegExp(
|
||||
'\\.(' +
|
||||
config.build.productionGzipExtensions.join('|') +
|
||||
')$'
|
||||
),
|
||||
threshold: 10240,
|
||||
minRatio: 0.8
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
if (config.build.bundleAnalyzerReport) {
|
||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
||||
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
|
||||
}
|
||||
|
||||
module.exports = webpackConfig
|
@ -0,0 +1,7 @@
|
||||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const prodEnv = require('./prod.env')
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"development"',
|
||||
BASE_API: '"http://supplychain.api.sztzjy.com/server/api/"'
|
||||
})
|
@ -0,0 +1,77 @@
|
||||
'use strict'
|
||||
// Template version: 1.3.1
|
||||
// see http://vuejs-templates.github.io/webpack for documentation.
|
||||
|
||||
const path = require('path')
|
||||
|
||||
module.exports = {
|
||||
dev: {
|
||||
|
||||
// Paths
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: '/',
|
||||
proxyTable: {
|
||||
"/apiUpload": {
|
||||
target: 'http://supplychain.api.sztzjy.com:10000/project/67/interface/api//file/v1/upload/file',
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/apiUpload': ''
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Various Dev Server settings
|
||||
host: 'localhost', // can be overwritten by process.env.HOST
|
||||
port: 80, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
|
||||
autoOpenBrowser: false,
|
||||
errorOverlay: true,
|
||||
notifyOnErrors: true,
|
||||
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
|
||||
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
// https://webpack.js.org/configuration/devtool/#development
|
||||
devtool: 'cheap-module-eval-source-map',
|
||||
|
||||
// If you have problems debugging vue-files in devtools,
|
||||
// set this to false - it *may* help
|
||||
// https://vue-loader.vuejs.org/en/options.html#cachebusting
|
||||
cacheBusting: true,
|
||||
|
||||
cssSourceMap: true
|
||||
},
|
||||
|
||||
build: {
|
||||
// Template for index.html
|
||||
index: path.resolve(__dirname, '../dist/index.html'),
|
||||
|
||||
// Paths
|
||||
assetsRoot: path.resolve(__dirname, '../dist'),
|
||||
assetsSubDirectory: 'static',
|
||||
assetsPublicPath: './',
|
||||
|
||||
/**
|
||||
* Source Maps
|
||||
*/
|
||||
|
||||
productionSourceMap: true,
|
||||
// https://webpack.js.org/configuration/devtool/#production
|
||||
devtool: '#source-map',
|
||||
|
||||
// Gzip off by default as many popular static hosts such as
|
||||
// Surge or Netlify already gzip all static assets for you.
|
||||
// Before setting to `true`, make sure to:
|
||||
// npm install --save-dev compression-webpack-plugin
|
||||
productionGzip: false,
|
||||
productionGzipExtensions: ['js', 'css'],
|
||||
|
||||
// Run the build command with an extra argument to
|
||||
// View the bundle analyzer report after build finishes:
|
||||
// `npm run build --report`
|
||||
// Set to `true` or `false` to always turn it on or off
|
||||
bundleAnalyzerReport: process.env.npm_config_report
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
'use strict'
|
||||
module.exports = {
|
||||
NODE_ENV: '"production"',
|
||||
BASE_API: '"http://supplychain.api.sztzjy.com.com/server/api/"'
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
'use strict'
|
||||
const merge = require('webpack-merge')
|
||||
const prodEnv = require('./prod.env')
|
||||
|
||||
module.exports = merge(prodEnv, {
|
||||
NODE_ENV: '"qa"',
|
||||
BASE_API: '"http://supplychain.api.sztzjy.com/server/api/"'
|
||||
})
|
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>新金融供应链实训系统</title>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-144208445-2"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-144208445-2');
|
||||
</script>
|
||||
<!--Baidu Analytics-->
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "https://hm.baidu.com/hm.js?8b02a318fde5831da10426656a43d03c";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!--<script src="./static/tinymce4.7.5/tinymce.min.js"></script>-->
|
||||
<script src="https://unpkg.com/tinymce@4.7.5/tinymce.min.js"></script>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,83 @@
|
||||
{
|
||||
"name": "mall-admin-web",
|
||||
"version": "1.0.0",
|
||||
"description": "mall后台管理前端",
|
||||
"author": "macro",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
|
||||
"start": "npm run dev",
|
||||
"build": "node build/build.js",
|
||||
"build-qa": "node build/build-qa.js",
|
||||
"build-dev": "node build/build-dev.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.18.0",
|
||||
"echarts": "^4.2.0-rc.2",
|
||||
"element-ui": "2.15.6",
|
||||
"js-cookie": "^2.2.0",
|
||||
"moment": "^2.29.4",
|
||||
"node-sass": "^8.0.0",
|
||||
"normalize.css": "^8.0.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"qs": "^6.10.2",
|
||||
"swiper": "^5.4.0",
|
||||
"v-charts": "^1.19.0",
|
||||
"v-distpicker": "^1.0.20",
|
||||
"vue": "^2.5.2",
|
||||
"vue-awesome-swiper": "^4.1.1",
|
||||
"vue-quill-editor": "^3.0.6",
|
||||
"vue-router": "^3.0.1",
|
||||
"vuex": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
||||
"autoprefixer": "^7.1.2",
|
||||
"babel-core": "^6.22.1",
|
||||
"babel-helper-vue-jsx-merge-props": "^2.0.3",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-syntax-jsx": "^6.18.0",
|
||||
"babel-plugin-transform-runtime": "^6.22.0",
|
||||
"babel-plugin-transform-vue-jsx": "^3.5.0",
|
||||
"babel-preset-env": "^1.3.2",
|
||||
"babel-preset-stage-2": "^6.22.0",
|
||||
"chalk": "^2.0.1",
|
||||
"copy-webpack-plugin": "^4.0.1",
|
||||
"css-loader": "^0.28.0",
|
||||
"extract-text-webpack-plugin": "^3.0.0",
|
||||
"file-loader": "^1.1.4",
|
||||
"friendly-errors-webpack-plugin": "^1.6.1",
|
||||
"html-webpack-plugin": "^2.30.1",
|
||||
"node-notifier": "^5.1.2",
|
||||
"optimize-css-assets-webpack-plugin": "^3.2.0",
|
||||
"ora": "^1.2.0",
|
||||
"portfinder": "^1.0.13",
|
||||
"postcss-import": "^11.0.0",
|
||||
"postcss-loader": "^2.0.8",
|
||||
"postcss-url": "^7.2.1",
|
||||
"rimraf": "^2.6.0",
|
||||
"sass-loader": "6.0.6",
|
||||
"semver": "^5.3.0",
|
||||
"shelljs": "^0.7.6",
|
||||
"svg-sprite-loader": "^3.7.3",
|
||||
"uglifyjs-webpack-plugin": "^1.1.1",
|
||||
"url-loader": "^0.5.8",
|
||||
"vue-loader": "^13.3.0",
|
||||
"vue-style-loader": "^3.0.1",
|
||||
"vue-template-compiler": "^2.5.2",
|
||||
"webpack": "^3.6.0",
|
||||
"webpack-bundle-analyzer": "^2.9.0",
|
||||
"webpack-dev-server": "^2.9.1",
|
||||
"webpack-merge": "^4.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not ie <= 8"
|
||||
]
|
||||
}
|
@ -0,0 +1,744 @@
|
||||
# 1.3.7
|
||||
|
||||
Security related bug fixes.
|
||||
|
||||
- https://app.snyk.io/vuln/npm:extend:20180424
|
||||
- https://www.npmjs.com/advisories/1039
|
||||
|
||||
Thank you [@danfuzz](https://github.com/danfuzz), [@danielw93](https://github.com/danielw93), [@jonathanlloyd](https://github.com/jonathanlloyd), and [@k-sai-kiranmayee](https://github.com/k-sai-kiranmayee) for your contributions to this release.
|
||||
|
||||
|
||||
# 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 |